Appearance
How the examples are authored
The five public examples are real plugin maps, not screenshots. Each map stores a Blueprint world-layout actor, a Blueprint gameplay-root actor, and a Player Start. The running game reuses the saved gameplay root, lighting, camera, and environment settings. The world-layout actor also owns an explicitly labelled editor-only composition preview: route/deployment geometry, obstacles, landmarks, and representative teams remain visible before Play, then hide while the runtime collision geometry and Mass population take authority.
This division is intentional: designers can inspect and change composition and gameplay definitions in Blueprint and Data Assets, while the high-volume entity loops remain in compiled Mass processors and bounded sample backends.
Find the editable content
Enable Show Plugin Content in the Content Browser, then open /MassForge/L_MF_ShowcaseMenu or one of the maps below.
| Example | Map | Blueprint gameplay root | Blueprint world layout |
|---|---|---|---|
| Tower Defense | /MassForge/MassForgeShowcases/Maps/L_MF_TowerDefense | BP_MF_TowerDefense_WorldRoot | BP_MF_TOWER_DEFENSE_WorldLayout |
| Third-Person Horde Defense | /MassForge/MassForgeShowcases/Maps/L_MF_ThirdPersonHordeDefense | BP_MF_ThirdPersonHordeDefense_WorldRoot | BP_MF_WIZARD_HORDE_WorldLayout |
| Third-Person Horde Defense — VAT | /MassForge/MassForgeShowcases/Maps/L_MF_ThirdPersonHordeDefenseVAT | BP_MF_ThirdPersonHordeDefenseVAT_WorldRoot | BP_MF_WIZARD_HORDE_VAT_WorldLayout |
| Battle Simulator | /MassForge/MassForgeShowcases/Maps/L_MF_BattleSimulator | BP_MF_BattleSimulator_WorldRoot | BP_MF_BATTLE_SIMULATOR_WorldLayout |
| Survivor Roguelite | /MassForge/MassForgeShowcases/Maps/L_MF_SurvivorRoguelite | BP_MF_SurvivorRoguelite_WorldRoot | BP_MF_ARCANE_STAMPEDE_WorldLayout |
The shared editable gameplay definitions are under /MassForge/BlueprintExamples/Data. They include the three attribute schemas, entity and projectile configs, damage definitions, instant and persistent effects, targeting policy, and abilities used by the examples.
Plugin content is a versioned reference. Duplicate an asset into /Game before changing it for a real project, then assign the duplicate on the project's Blueprint root.
What exists before Play
Select the MF_AUTHORED_*_WORLD_LAYOUT actor in the World Outliner. Its inherited Blueprint components contain the ground, routes or deployment markers, obstacles, landmarks, representative team staging, lighting, atmosphere, post process, overview camera, and concise teaching labels. Change Showcase, toggle the labels, or use Rebuild Authored Layout to rebuild the saved editor composition. The preview geometry has Hidden in Game enabled by design: it explains the level before Play without duplicating, flickering against, or pretending to own the runtime Mass presentation.
Select MF_AUTHORED_*_GAMEPLAY_ROOT to inspect the definitions used by that game. The Mass Forge Showcases > Authoring categories expose schema, Entity Config, ability, damage, projectile, and effect references. The root is the actor the GameMode reuses when Play begins; the GameMode does not spawn a hidden replacement.
Open the root Blueprint's Event Graph. Every published root contains a visible, commented startup flow:
- Tower Defense calls Initialize Example from Event BeginPlay.
- The other four roots call Start Mode with the map's explicit mode preset.
- On Tower Defense Example Ready or On Showcase Example Ready is an empty project extension event for UI, audio, tutorials, objectives, or game-specific rules.
The startup calls are idempotent and retain a native fallback for C++-only or blank-map use. Automation rejects a public root whose graph, preset, comments, extension event, or editable definition references are missing.
The Player Start is also saved and labelled. Representative friendly and hostile formations are present before Play to communicate scale, routes, and faction intent. They are previews rather than simulated entities and are replaced by the real Mass population when Play begins. The gameplay-root Blueprint and editor monitor remain the sources for live entity state.
Blueprint and C++ ownership boundary
| Responsibility | Blueprint/Data Asset | Native backend |
|---|---|---|
| Saved editor composition, light, camera, teaching markers | Yes | Reusable component implementation |
| Editor-only representative teams and route preview | Blueprint component instances | Hidden and replaced by runtime Mass presentation |
| Attribute names, defaults, bounds, and stable slots | Yes | Fixed-capacity fragments and lookup |
| Entity/projectile trait composition | Yes | Trait build implementation |
| Damage, effects, targeting, abilities, cooldowns, costs | Yes | Validation and atomic execution |
| Per-example definition references and balance inputs | Yes | Safe startup and fallback diagnostics |
| Mass population iteration and fixed-step combat | No | Yes |
| Batched skeletal/VAT/HISM presentation updates | Profile/material assets | Yes |
| Project-specific UI, objectives, progression, and controls | Replaceable sample Blueprint/native surface | Sample implementation |
Mass Forge does not pretend that a Blueprint actor is simulating thousands of entities one by one. The public Blueprint and Data Asset surface owns authoring and orchestration. The C++ path owns the operations where Blueprint iteration would be misleading, unsafe during Mass processing, or unnecessarily expensive.
Make a project-owned variant
- Duplicate the example map and both referenced Blueprints into
/Game. - Duplicate only the Data Assets you want to change from
/MassForge/BlueprintExamples/Data. - Assign those project-owned definitions on the duplicated gameplay root.
- Edit the layout Blueprint or replace the placed world-layout actor with project scenery. Keep one actor tagged
MassForge.AuthoredEnvironmentif the sample GameMode should use its overview camera. - Press Play and open Tools > Mass Forge Live Showcase. Confirm the active, simulated, represented, and rendered counts mean what your design expects.
- Open Mass Forge Entity Inspector and Gameplay Event History to verify attributes, tags, grants, effects, damage, and lifecycle events.
- Run Mass Forge Project Health before packaging.
Example-specific authoring surfaces
Tower Defense
The Blueprint root references the public starter schemas, a combat-ready Entity Config, direct and mitigated damage definitions, and a persistent slow. Runtime duplicates the definitions before applying match-specific values, so the shipping reference assets are never mutated.
Horde Defense and Survivor Roguelite
The Blueprint root references the schemas, unit and projectile configs, four ability templates, and entity/Actor damage definitions. Horde Defense selects the skeletal character backend; its VAT twin selects the VAT backend while preserving the same gameplay setup. Survivor changes population, objective, and progression behavior while using the same Mass Forge contracts.
Battle Simulator
The same root exposes symmetric faction combat definitions. Melee and ranged/support actions resolve through the shared damage/effect/projectile systems; the fixed-step army loop stays native because it is the high-volume portion being demonstrated.
Runtime fallback
If a developer launches a supported GameMode in a blank map, the sample can still spawn a temporary root and environment so the map fails usefully instead of crashing. Published maps must not use that fallback. Automation requires exactly one saved Blueprint gameplay root and one saved authored layout in every public map, and runtime audits require ActiveRoots=1 with StaleRemoved=0.
Rebuild the authored reference content
The checked-in .uasset files are the shipping source of truth. Maintainers can reproduce them in an isolated host in this order:
- Run
Examples/MassForgeShowcases/Scripts/CreateShowcaseMap.pythrough the rendered Unreal Editor Python runner to create or refresh the maps, layout Blueprints, gameplay-root Blueprints, and Player Starts. - Run
UnrealEditor-Cmd <Project> -run=MFGenerateShowcaseBlueprintGraphsto author the five inspectable startup graphs. - Run
UnrealEditor-Cmd <Project> -run=MFGenerateBlueprintExamples -RebuildGeneratedAssetsto rebuild the Blueprint Quick Start, 27 Data Assets, and four material instances (32 assets total). - Run
UnrealEditor.exe <Project> -ExecutePythonScript=<absolute path to CreateBlueprintQuickStartMap.py> -Unattended -NoSound -NoSplashto rebuild the authored learning map. Do not add-NullRHI: UE 5.6 actor placement consults the level viewport and its NullRHI hit-proxy path is not safe. - Run
MassForgeShowcases.Editor.StandaloneMapsandMassForge.Editor.BlueprintExamples.QuickStartGraphbefore promoting generated assets. - Generate and save assets with Unreal Engine 5.6, the oldest supported version, then cross-load and test them in 5.7 and 5.8.
Continue with Playable Showcases, Blueprint Quick Start, and C++ High-Volume Integration.