Arming live mode used to mean a census — a scan of the whole game process for
byte patterns taken from every tag, twenty seconds on half the machine's cores,
and a first edit of a weapon paid a similar scan of its own. The engine keeps a
better record than that. Its simulation module holds a table it labels
tag instance: one entry per loaded tag with the tag's name, group, a handle,
and where its root element lives. Reading that table is one pointer-chase from
two addresses in the module, and it is what the editor does now.
Added
- New Tag. Right-click any tag — in the tag list or the file browser — and choose New Tag From This… to clone it under a new path in the same group. The clone opens like any other tag, starts as the donor is in your mod, and records its own edits under the new name; the mod panel lists it with a remove link. Optionally bind it to a different Unreal asset (a Blueprint for objects and effects, an asset for sounds). Testing or exporting builds each new tag into a package of its own, in an addition container the game registers by name. Measured in game: a rifle projectile cloned this way was listed in the game's own tag table and fired by the repointed rifle. A new tag nothing in the mod references is never loaded, and the bake says so.
Changed
- The census is instant. Arming live mode in a mission lists every loaded
tag — 7,055 in the Pillar of Autumn — from the game's own table, with the
level named exactly, and every one of them pokes at an exact address. The
status line says
from the game's own tag tablewhen this path was used. - Fields inside block elements resolve exactly. The table's addresses use the engine's own encoding — a segment plus an offset — and the editor reads the segment table rather than inferring an "arena" from a tag's contents. The old inference stays as the fallback.
- A relocated tag is caught. The engine can re-read and move a tag while the
game runs (its
tag_reload_forcecommand does exactly that), so a remembered address is verified against the tag's own scalars before anything is written, and re-read from the table when it no longer matches.
Fixed
- A reference directly after an empty one was invisible to the "referenced by" index (and to a new tag's preload list): the scanner stepped one byte too far past a reference set to nothing, over the header of the section behind it. A scenario's structure lighting reference sits exactly there.
Known limits
- The table's addresses are specific to a game build, chosen by the hash of
the simulation module. This release knows the current Steam build
(
2026.08.11.1121610.2, CU4). On a build it does not know, live mode says so and falls back to the sweep, which needs no addresses at all. - The table is built when a mission loads. At the main menu live mode reports that no mission is loaded rather than scanning.
- A new tag is cloned from a shipped tag of the same group; its path may not
contain
-or., and its name may not repeat a shipped tag's within the group. The archive'schanges.jsondeclares them undernew_tags, which the hub accepts but does not display yet.