PBR needs some more shader math but its possible. There is nothing magicam about PBR but there is “correctness” into it, so just plugging PBR textures into a non-PBR shader will yield wrong results. It wont be tragic but it will still be far from the result you’d see in ue4.
For my game Elium I made something close to PBR with the staple schlick+fresnel shading model and shiny/rough reflections. It doesnt look as good as ue4 but I was able to use PBR textures and especially for metallic things it was much better than the old non-PBR result.
The part that clearly doesnt work is getting local reflections (ue4 used reflection probes + SSR), but for my game I had the same colors everywhere so I got away with using one single ‘generic’ cubemap for reflection.
The rest can be assembled with material nodes but you’d need to research how to make the schlick shading model into CustomLighting. Or you could go even more basic and use phong.
The reflection needs to force a different mipmap depending on the roughness. i.e. 0 roughness = sharp reflection so mip 0, roughneds 1 = blurry reflection si mip 5 or 6 (depends on your cubemap texture size). To force a mip you need a custom hlsl node.
To blend the reflection: Metallic works by muitplying the reflection with the diffuse, while non metallic works by adding the reflection with the diffuse. For non-metals the specular is the amount that the reflection is added to the diffuse, and for non metals specular has no use. For non-metals the reflection should be dimmed with a fresnel, but not for metals (or only subtly).
That covers the reflection. In the real world that would be it, but in games a speculsr highlight is still added on top (because we’re still not 100% there when it comes to reflecting light in a locally-precise way). So you’ll need to map the metal/spec/roughness into something that makes sense to output as specular and specpower (if you use the schlick shading model its easy, but implementing it is much harder)
About AO - yes it can be multiplied with diffuse to make things pop but that’s also not correct (AO is supposed to appear only on indirect lighting, but with this multiply the AO also appears under direct light)