EZWarPlot is an Unreal Engine Code Plugin for runtime tactical situation plotting.
It includes 105 plotting types covering basic geometry, movement arrows, control measures, defensive deployments, fire-support areas, obstacles, deployment areas, tactical point symbols, joint-operation graphics, and annotations.
The plugin provides a complete runtime tactical editing framework with world-traced placement, interactive control-point manipulation, data-driven plot definitions, procedural rendering, persistence, and extensible Blueprint/C++ interfaces. It is suitable for simulation tools, strategy gameplay, command interfaces, training applications, and any project requiring dynamic tactical graphics.
Plots can be placed on traceable world surfaces, selected at runtime, reshaped with draggable control points, adjusted vertically per control point, styled through runtime settings, committed or cancelled as edit transactions, and persisted through collection-aware SaveGame data.
Runtime placement first traces the cursor into the world. After a new plot is created, generated control points are projected vertically toward traceable surfaces where possible.
Regular control-point context menus include Duplicate, Delete, and Adjust Height. The diamond center handle moves every control point together to a traced world position and offers only Adjust Height; single-control-point plots show only that center handle. Menus are attached to their control point, and closing a menu clears selection. Adjust Height treats the point's height when the panel opens as a temporary 0 m reference. Its vertical slider updates live from -1 m to +1 m, while the numeric field accepts any finite relative offset and also updates continuously while dragged left or right. The temporary UI value is not stored as a separate persistent property; the final control-point position is saved after Commit.
New interactive placements remain pending until their first Commit. Pending placements are excluded from persistence and are removed completely by Cancel/Escape. Existing committed plots retain normal edit rollback behavior.
Two rendering modes are included:
Mesh — crisp procedural geometry through ProceduralMeshComponent.
Decal — terrain/uneven-surface projection. General plots use runtime render targets; 30 SVG-backed one-point symbols use asynchronously rasterized packaged vector artwork for stable proportions and rotation.
Freeform multi-control-point types preserve local control-point heights rather than forcing every point onto one fitted plane. Polygon corners therefore remain aligned with their individual control points, while generated curve points interpolate Z continuously.
The runtime architecture separates interaction, management UI, and persistence. The included AWarPlotPawn is optional; projects can attach UWarPlotInteractionComponent to an existing Pawn or Character.
Included example content provides an interactive map and a 105-type catalogue map. The catalogue map also demonstrates consistent colors for `CustomPatternArea` plots on the same floor; this is preconfigured sample styling, not automatic runtime grouping. In a new integration, explicitly create the list/details widgets and call Show War Plot Runtime UI for control-point feedback; this does not load saves.
Documentation: https://ni-hen-de-bu-luo-yisorganization.gitbook.io/ezwarplot/
Example Project: https://drive.google.com/file/d/1b2mDTvZxkRFMkHlvUlp1rshfJ6Nj1Z3g/view?usp=drive_link