MobFort
Characters that look like Valorant or Team Fortress 2. Or better - because Valorant is deliberately holding back. Unlit master materials for Unreal's mobile forward renderer.
cd YourProject/Plugins
git clone git@github.com:Vaei/MobFort.git
The idea
Riot tuned this model so that nothing about a character competes with spotting one. The restraint is the feature there: controlled contrast, tones that never fight the read, no flourish that could be mistaken for movement. If you are not making a tactical shooter you inherit the technique without the constraint, and you can push the gradients, the rim and the skin as far as your art direction wants to go.
Valve got there first - the wrapped falloff and the rim light are out of Team Fortress 2. Riot rebuilt it for a modern forward renderer and, unusually, wrote down how. This is that write-up implemented in Unreal.
How it works
A lit character is at the mercy of the room. Walk into a dark corner and the art direction goes with it - the palette shifts, the silhouette softens, and the model you spent a week on reads as a grey shape.
So none of this is lit. The masters are Unlit and every term is authored: one directional light read from a parameter collection, a gradient in place of the diffuse falloff, a pre-blurred HDR panorama in place of every reflection in the scene, and no ambient term at all - the gradient never reaches black, so nothing ever goes fully dark.
What that buys, in any genre: a character who looks like themselves everywhere, a look set by dragging gradient stops rather than by placing lights, and a cost that does not move.
What you get
| Character | Gradient diffuse, panoramic specular, a two-palette rim weighted toward up-facing surfaces and the upper body, fake skin with a redder falloff and a wax underglow, and a distance response that keeps a character legible when they are small on screen. |
| Weapon | A smoothstep diffuse instead of a gradient. A weapon is mostly shiny metal, so the specular carries it - which makes this the one to reach for on hard-surface props generally, not just weapons. |
| Base | The three shared responses and nothing else. Environment, or anything that does not fit the other two. |
What about environments?
Use MobMaterials. Its surface and landscape masters are lit, and they have the things a world needs and this does not: layers, triplanar, tiling break, parallax, weather, and terrain integration. A wall wants to be grounded in the level's light. That is the whole reason a character here is not.
What M_FortBase is for is the case where you want that unlit stylized read everywhere - or an object that would look pasted in if it were lit while the character beside it was not.
| Reach for MobFort | Reach for MobMaterials |
|---|---|
| A game stylized hard enough to want one lighting model everywhere | A world that should respond to its own light |
| An objective, pickup, deployable or ability prop | Walls, floors, buildings, terrain |
| Silhouetted geometry where grounding does not matter | Anything large enough to need layers, tiling break or detail |
| A fixed cost per pixel, whatever the lighting | Anything wet, snowed on, or trampled |
The two coexist. Nothing stops a level using MobMaterials for the world and MobFort for what moves through it, and that is the expected setup.
Ten minutes to a character
- Enable the plugin and point
SpecPanoramaat an equirectangular HDR. - Fort → Sync Sun From Directional Light.
- Instance
M_FortCharacter, set three textures. - Duplicate it, tick
bEnemy. Two rim palettes, however you want to use them.
Design
| The maths is not in the graph | It lives in MobFortShading.ush and is reached from Custom nodes. A master material is under ten nodes. |
| Nothing you turn off is paid for | Features are gated by static bools on material function inputs, so a discarded input takes its texture taps with it. Measured, not claimed. |
| The materials ship built | No recipe asset, no generate step. Three masters and their instances are content. |
Light reading
| Valorant shaders and gameplay clarity | Riot's write-up, and the foundation this is built on. Gradient lambert, panoramic specular, the rim biases and the fake skin all come from here |
| Illustrative Rendering in Team Fortress 2 | where the wrapped falloff and the rim light came from in the first place, in 2007 |
| Mobile Forward Rendering guide | why this path exists and how to get on it |
| Forward Render | recommended. Ticks the sun into the collection for you, and loads the editor in mobile preview |
| Gradient Tool | required. Realtime gradients, which UE's Color Ramp cannot give you |
| MobMaterials | the world these characters stand in. Lit surface, landscape and foliage masters on the same renderer |