-
Notifications
You must be signed in to change notification settings - Fork 0
Console Commands
FUSE registers its commands with Railroader's in-game console. Open the console,
type the command, and press Enter. Every command returns text in the console; the
dump* family also writes a file to the main Railroader folder.
All commands are safe to run while a map is loaded except the two experimental recovery commands at the end of this page.
| Command | Purpose |
|---|---|
/fuse.report |
Last map-load report (human or JSON) |
/fuse.loaded |
Loaded packages and applied/faulted state |
/fuse.update |
Version/update status and re-check |
/fuse.conflicts |
Recorded ownership collisions |
/fuse.validate |
Re-run the validator for one package |
/fuse.graph |
Track graph summary |
/fuse.groups |
Runtime track groups |
/fuse.segments.audit |
Segment renderer/visibility audit |
/fuse.track.rebuild |
Force a full track geometry rebuild |
/fuse.operations |
Loads, industries, loaders, stations, turntables |
/fuse.progressions |
Progression sections, features, delivery phases |
/fuse.assets |
Discovered asset pack folders |
/fuse.suppressions |
Active world suppressions |
/fuse.patches |
Harmony patches applied or skipped |
/fuse.dumpgraph |
Write the captured original graph |
/fuse.dumpruntimegraph |
Write the active post-FUSE graph |
/fuse.dumpmandelas |
Write scene clone and world path data |
/fuse.dumpprogression |
Write the live progression graph |
/fuse.reapply |
Experimental — re-apply resident definitions |
/fuse.restore |
Experimental — reload from disk and reapply |
Shows the last FUSE map-load report — the same summary the startup toast abbreviates.
/fuse.report
Pass json for machine-readable output, which is the better form to paste into a
bug report because it does not wrap or truncate:
/fuse.report json
Lists every loaded FUSE package with its applied/faulted state. This is the first command to run when a package's content is missing from the world — a package that faulted during apply still appears here, with the fault recorded.
A faulted package does not stop unrelated packages from loading.
Reports the running FUSE version, the detected install source (GitHub or Nexus),
and whether a newer stable release is available, then kicks a fresh check against
GitHub. The result also lands in FUSE.log and on the FUSE window's Status page.
/fuse.update
A newer stable release shows a download link; release candidates are ignored,
and a local or development build (version 0.0.0) reports that the check does not
run for it. The EnableUpdateCheck setting only governs the automatic startup
check; this command always checks on demand — see
SETTINGS.md.
Lists registry conflicts — cases where two packages claimed ownership of the same object id. An empty list is the healthy result.
Conflicts are the expected outcome of loading a legacy route and its converted FUSE equivalent at the same time. See MIGRATION_FROM_LEGACY.md.
Re-runs the FUSE validator against one already-loaded package and prints errors and warnings with the offending field and error code.
/fuse.validate <modId>
The <modId> argument is required; without it the command prints its usage line.
If the id is not loaded, the command says so rather than failing silently — check
the spelling against /fuse.loaded.
Each line is formatted as [error] or [warn ] followed by the field, message,
and code.
Summarizes the active Railroader graph alongside FUSE's own track definitions. Use it to confirm FUSE applied the node/segment counts you expect.
Lists the runtime track groups discovered on the active graph. Group ids (s2,
for example) are the filter values /fuse.segments.audit accepts.
Audits FUSE-tracked segments for visual renderer state — the command to reach for when track exists in the graph but nothing is drawn on screen. It reports, per group, how many segments have no renderer, have renderers but none enabled, or are inactive, and flags which segments FUSE claims versus vanilla.
/fuse.segments.audit
/fuse.segments.audit s2
/fuse.segments.audit s2 verbose
The first non-flag argument filters by group id. Adding verbose (or -v /
--verbose) emits per-segment lines instead of group summaries — expect long
output on a full route.
Requires a populated graph; before a map finishes loading it reports that and stops.
Invalidates every segment's cached bezier curve and forces a full
TrackObjectManager rebuild.
This is the recovery for the "switch tracks do not intersect" geometry failure, where stale cached curves no longer reflect post-migration node positions and rotations. Invalidating the curves forces the next access to recompute against the current node transforms.
The command reports how many curves it invalidated and the segment count before and after. If previously-invisible switches and their connected segments render afterward, stale curve caches were the cause.
Summarizes loads, industries, industry components, loaders, stations, and turntables. Run this for a wrong-looking company window, Locations tab, or industry.
Summarizes progression sections, map features, and delivery phases. Run this when an object is visible earlier than its progression should allow.
Lists the FUSE asset pack folders discovered for direct PrefabStore loading. If
scenery is missing, confirm here that the required pack was actually found before
assuming the package is at fault.
Lists active FUSE world suppressions — base-game world objects a package asked FUSE to hide.
Lists the Harmony patch classes FUSE applied or skipped, with a failure reason for each skipped patch. Worth including in any bug report that involves another mod, since a skipped patch usually means a conflict with something else in the load order.
Each writes a JSON file to the main Railroader folder. These files are large; attach them to bug reports rather than pasting their contents.
Writes FUSE's captured original Railroader track graph to
FUSE-original-graph.json — the graph as it existed before FUSE applied anything.
Writes the active post-FUSE track graph to FUSE-runtime-graph.json.
Diffing this against FUSE-original-graph.json is the standard way to see exactly
what a package changed about the track.
Writes loaded scene-clone definitions and the current World scene paths to
FUSE-mandelas.json. Use it when a scene clone resolves to the wrong building —
compare the recorded source path against the base game scene path.
Writes the live progression graph to FUSE-progression.json, covering features,
sections, track-group ownership, areas, industries, and passenger stops.
These two exist for testing and recovery. They are not part of normal play, and each logs a warning the first time it is used in a session.
Both refuse to run while a map is loaded unless you pass --force. That guard is
deliberate: re-applying definitions mid-session can destabilize a running save.
Back up the save before overriding it.
Rebuilds FUSE's caches and re-applies the definitions already resident in memory. It does not re-read anything from disk. Reports how many definitions it applied.
/fuse.reapply
/fuse.reapply --force
The heavier operation: unloads every package, clears all caches, reloads packages from disk, rebuilds caches, and re-applies. Use it after editing package files on disk and wanting them picked up without a game restart.
Reports both how many packages loaded from disk and how many applied to the runtime.
/fuse.restore
/fuse.restore --force
Restarting the game is the safer path in every case where you are not specifically testing reload behavior.
- TROUBLESHOOTING.md — which command to run for which symptom
- SETTINGS.md — the debug overlays that complement these commands
- PACKAGE_AUTHOR_GUIDE.md — using these while authoring
Mirrored from docs/CONSOLE_COMMANDS.md — edit there, not here.