Rapid Mapping Device (rmd) is a map editor for Space Station 13 that can run DM code from your codebase. A profile can call existing procedures to preview smoothing, overlays, lighting, and connections. Your codebase remains the source of truth for these previews.
- Map editing: Select and resize regions. Fill, copy, move, rotate, or mirror tiles. Edit individual atoms from the map context menu.
- Multiplayer and co-op: Edit shared maps together. See other users' cursors and selections in real time. Follow their view. Add comments to shared maps.
- Appearance previews: Run a DM profile to draw icon states, overlays, and underlays. RMD updates affected tiles after edits, undo, and redo.
- Lighting: Preview lights and blockers across Z levels. Use the viewport settings to hide lighting or reduce darkness.
- Profile tools: Show connection guides and map highlights. Profiles can add UI panels and enable the Node tool for routing connected objects.
- Map navigation: Browse the object tree, inspect placed atoms, and use tile and pixel grids when you need precise placement.
- Git integration: Resolve map merge conflicts tile by tile, see which commit last changed each tile, and diff the map against any revision.
Download the editor for Windows, Linux, or macOS (Apple Silicon) from Releases. Start it, open your .dme from the welcome page, and then open a .dmm map.
macOS setup (Apple Silicon)
On macOS, the editor renders through KosmicKrisp, which ships with the Vulkan SDK 1.4.341 or later. Install the SDK, then point the Vulkan loader at KosmicKrisp before you start the editor:
source ~/VulkanSDK/<version>/setup-env.sh
export VK_DRIVER_FILES="$VULKAN_SDK/share/vulkan/icd.d/libkosmickrisp_icd.json"
xattr -d com.apple.quarantine rmd-*-aarch64-apple-darwin
chmod +x rmd-*-aarch64-apple-darwin
./rmd-*-aarch64-apple-darwinFrom a source checkout with the build dependencies installed, you can open both files directly:
cargo run --release --bin rmde -- path/to/codebase.dme path/to/map.dmmThe repository pins its Rust toolchain in rust-toolchain.toml. On Linux, shell.nix provides a development shell with the native build dependencies. On macOS, the Vulkan SDK also provides Slang, which the build finds through VULKAN_SDK.
Co-op lets multiple users edit shared maps together. Each user must first open a local .dme for the same codebase. The editor checks codebase compatibility when users connect.
- Host: Choose Co-op > Host.... Enter your nickname, a password, and a port. The default port is
3131. Click Host. - Join: Other users choose Co-op > Join.... Enter your nickname, the host address as
host:port, and the password. Click Join. - Share: Open a map inside the codebase directory. Choose Co-op > Share current map. Any connected user can share maps.
The host must accept UDP traffic on the selected port. For internet sessions, forward that UDP port through the host's router when necessary.
Shared maps show edits, cursors, and selections from other users. Click a user's name in the menu bar to follow their view. Use the Comment tool to add comments to shared maps.
Save each map locally to write shared edits to disk. Choose Co-op > Leave to leave the session and keep your open maps.
When a map is inside a Git worktree, open Git > Git Panel. The editor runs your installed git, so it must be on your PATH.
- Conflicts: When a merge leaves conflicts in a
.dmm, load them from the panel. The viewport marks conflicting tiles. Take ours or theirs for a tile, a region, or a selection from the panel or the map context menu. When every tile is resolved, Mark resolved stages the map withgit add. - Blame: Run blame to find the commit that last changed each tile. Show a heatmap from newest to oldest, hover a tile to see its commit, and click it to pin the details. Select a commit in the panel to outline its tiles. Settings > Git > Blame history depth limits how many revisions blame walks.
- Diff: Compare the working map with HEAD, with a commit from the map's history, or between any two revisions such as branches, tags, or hashes. The viewport shows the changed tiles, and you can restore tiles from the other version.
To turn off the integration, clear Settings > Git > Enable Git map integration.
The editor includes profiles for CMSS13, Goonstation, Monkestation, Monke’s Paw, Nova Sector, Oculis Station, SecondCity, TGMC, tgstation, and Vanderlin. To try one, open your .dme and choose it under Settings > Compiler > Forced bundled profile. The bundled profile runs without changes to your codebase.
To keep a profile in your codebase:
- Add a DM file to your project and include it from the
.dme. - Put the profile inside an
#ifdef __DEMIR_BAKE__block. BYOND skips this block, and editor's compiler reads it when it builds a map preview. - Create a
/datum/demirsubtype. Setdefault = TRUEdirectly on exactly one profile.
For example, this profile sets the icon state for placed walls:
#ifdef __DEMIR_BAKE__
/datum/demir/my_codebase
default = TRUE
bake(atom/target)
if(istype(target, /turf/closed/wall))
target.icon_state = "wall"
#endifUse a wall type and icon state from your codebase. Reload the .dme in the editor to see changes to the profile. Check Settings > Compiler > Diagnostics if a bake fails.
You can also check a profile from the command line:
cargo run --release --bin rmdc -- bake path/to/codebase.dme path/to/map.dmm --summaryThe profile guide covers lighting, connections, highlights, UI hooks, and the Node tool. The bundled profiles show how these hooks work in larger codebases.

