Install
Four steps to a character on screen. UE5.8+.
1. The plugin
cd YourProject/Plugins
git clone git@github.com:Vaei/GradientTool.git
git clone git@github.com:Vaei/MobFort.git
GradientTool is required, not optional - the diffuse falloff and both rim palettes are gradients.
Rebuild, open the project. A Fort button appears on the level editor toolbar.
2. A panorama
Point SpecPanorama at an equirectangular HDR image. This is every reflection in your scene, so pick one that matches the level's sky.
NoMipmaps. Roughness picks a mip, so without a chain every surface is a mirror at every roughness - and the material still compiles and still renders, so nothing tells you.
Set MaxMip to roughly the mip at which the image is a few pixels across. For a 2048×1024 panorama that is about 8.
The plugin ships a flat 4×4 placeholder so a fresh install compiles. It is grey, not broken.
3. The sun
Fort → Sync Sun From Directional Light. It writes your level's directional light into MPC_FortLighting and saves.
Better, if you are staying on this renderer: install ForwardRender and it ticks the sun in for you, as well as loading the editor in mobile forward preview. Settings here.
4. A character
Instance M_FortCharacter and set three textures: BaseColor, Normal and CRM. Tick bUseCRMTexture.
Duplicate the instance and tick bEnemy. Ally and enemy are two instances rather than one instance with a scalar, so only one rim gradient ever compiles.
What to expect first time
| Everything is flat grey | the placeholder panorama is a uniform 4×4. Step 2 |
| Everything is blown out white | SpecularScalar against a bright HDR. It defaults to 0.12 for a reason; go lower before going higher |
| Everyone is pink | skin. See If it is wrong |
The Fort menu
Everything here is also a Python call, but you should not need one.
| New Character Atlas… | copies GA_FortCharacter so a character can have gradients of its own |
| Open <atlas> | one entry per Gradient asset in the project |
| Sync Sun From Directional Light | writes the level's sun into MPC_FortLighting |
| Open MPC_FortLighting | scrub Indirect and every character follows live |
| Open <master> | the three masters |
| Verify Contract | asserts what the cost page claims. 47 checks, Output Log |
| Rebuild Materials | re-authors every asset from author_fort.py |
Hide it under Editor Preferences → Plugins → Mob Fort Editor.
Sanity check
Fort → Verify Contract. 47 claims, results in the Output Log. On a cold derived data cache run it twice - the first pass reports permutations nobody has compiled yet.