GRIMP (Generally Reliable Interactive Mapping Program) is a map editor for Space Station 14. Build and edit maps and ship grids with a fast, GUI-driven workflow inspired by tools like Photoshop: without launching the game.
GRIMP is a fork of space-station-14-map-editor by SuspensionPoint. The rendering pipeline, tools, and the large majority of the editor core are their work, and this project would not exist without it. GRIMP builds on that foundation in a different direction: a natively maintained desktop app (Electron), byte-exact export parity with the game serializer, grid documents, and mapper-workflow features driven by fork maintainer feedback.
The editor does not hardcode any game content. It discovers tiles, entity prototypes, sprites, and decals at runtime by parsing your fork's prototype YAML and RSI sprite sheets, so it always reflects the current state of the content it is pointed at.
Note on game content: This repository contains only the editor. It ships with no Space Station 14 game assets (prototypes, textures, sprites). You supply those from your own SS14 fork: see Pointing it at game content below.
Windows: the download is not code-signed yet. The release
.exeis unsigned, so SmartScreen will show "Windows protected your PC" the first time you run it. Click More info → Run anyway. If it still won't launch, right-click the.exe→ Properties → tick Unblock → Apply. Code signing is in progress and will remove this step in a future release. Nothing here is a workaround for a real warning: only do this for a build you downloaded from the official releases page.
GRIMP started as a browser-based map viewer/editor and is growing into a maintained desktop application for authoring SS14 maps and ship grids. The rendering core it inherited is excellent; the work going in now is about the mapper's real workflow: creating grid files from scratch, preparing ships for the shipyard, and matching what fork maintainers actually ask for in review. It still runs in the browser, but the desktop build (native menus, real file dialogs, local fork loading) is the primary target.
- Document kinds that match the game: New Map and New Grid produce exactly
what the engine's
savemap/savegridwrite, format and structure identical. A Map / Grid badge shows which kind you're editing. Grid files authored from scratch load in-game through the engine's own grid loader (verified againstMapLoaderSystem). - Map Properties: the file-side view you'd otherwise VV in-game. Edit the grid's
identity (name/description) and toggle ship switches:
Shuttle(required by the shipyard),IFF,Roof, andBecomesStationwith a station id. Detects and cleans up map-entity contamination on grids saved as maps. Edits to imported files preserve byte-for-byte parity on every untouched line.
- Accurate rendering: tiles, entities, and infrastructure render the same way they appear in-game: RSI sprite sheets, multi-layer compositing, DrawDepth sorting, rotation/direction handling, color tinting, IconSmooth (walls/windows/tables/carpets/ puddles), and cable/pipe connection visualization.
- Tile tools: Paint, Erase, Fill, Rectangle, Line, Circle, and rectangular Select with copy/cut/paste/delete.
- Entity editing: browse a searchable, categorized palette; place with a ghost preview; select, move, rotate, scale, free-place, and bulk-edit; per-entity sprite-state override; component property editor with device linking.
- Infrastructure drawing: lay HV/MV/APC cables and supply/return/disposal pipes with automatic fitting (straight/bend/T-junction/fourway) and neighbor refitting.
- Decals: paint, pick, and edit decals with color.
- Prefabs: save a selected region as a reusable
.prefab.jsonand stamp it elsewhere. - Import/Export: load existing SS14
.ymlmaps and export valid YAML that loads back in-game, preserving entities round-trip. - Multi-grid support, undo/redo, layer visibility toggles (including an Atmos Markers toggle for the VAC. marker carpet on hulls), T-Ray (subfloor) mode, and lighting preview.
- Desktop app: native menus, native open/save dialogs, and local fork loading.
Packaged as a Windows portable
.exeand a Linux.AppImage. This is how you run GRIMP. - The same app also runs in a browser during development (
npm run dev), pointed at a fork folder you pick. - All file processing happens locally; nothing is uploaded.
GRIMP is a standalone application. It does not bundle game assets and does not need to live inside a fork, so install or clone it wherever you like.
To load content, use Open Fork Folder on the landing screen and pick any SS14 fork's
root directory. The editor reads that fork's Resources/ folder directly and rescans it
whenever you point it somewhere new. On the desktop build this is a native folder picker;
in the browser it uses the File System Access API, with an upload fallback for Firefox and
Safari.
That is the only way in. The editor has no bundled content and no configured content path, so where you keep the repository has no bearing on which fork you edit.
Requirements: Node.js 20.19+ (CI runs 22) and npm.
git clone <this-repo-url> grimp
cd grimp
npm install
npm run devOpen the URL shown in the terminal (e.g. http://localhost:5174) and pick your fork's
root directory with Open Fork Folder; the editor scans its Resources/.
The desktop app is the primary target. To run it against the live dev server:
npm run electron:devTo produce distributable binaries:
npm run package # Windows portable .exe (release/)Tagged releases (v*) build the Windows .exe and Linux .AppImage via GitHub Actions
and assemble them into a draft release for review before publishing. See
.github/workflows/release.yml.
grimp/
docs/ # system & architecture documentation
electron/ # desktop shell (main process, native menus, dialogs)
public/
images/ # editor UI images (favicon, backgrounds)
prefabs/ # example prefab(s)
src/
components/ # React UI components
rendering/ # canvas rendering systems
state/ # editor state, reducer, command pattern, undo/redo
tools/ # editing tools (paint, place, link, ...)
prefab/ # prefab save/load/place
loaders/ # game-data discovery & loading
import/ export/ # map YAML import/export
index.html
vite.config.ts
See docs/ for a full feature/architecture tour.
React 18 · TypeScript · Vite · Canvas 2D rendering · js-yaml · Tailwind CSS.
Work lands through pull requests. Branch off main, make your change, and open a PR;
the template walks you through the rest. CI has to go green before merge: it checks
formatting (Prettier, npm run format), types (npm run typecheck), the
strict-indexing ratchet (npm run typecheck:strict; directories already cleaned for
noUncheckedIndexedAccess stay clean), lint (npm run lint, type-aware ESLint),
tests, and the production build.
User-facing changes add a line to CHANGELOG.md under Unreleased.
The full workflow lives in the wiki:
- Contributing: the PR flow, testing standards, and the export-parity sweep required for importer/exporter changes.
- UI Style Guide: theme tokens, chrome patterns, and where the pixel art goes, for anything that touches the UI.
One hard rule worth repeating: no SS14 game content in this repository, ever; not even as test fixtures. See the note at the top of this README.
This editor is released under the MIT License.
Space Station 14 game content (prototypes, sprites, textures) is not included in this repository and is governed by the licenses in the space-station-14 repository: its code is MIT-licensed and most assets are CC-BY-SA 3.0. GRIMP reads a fork's content live from disk and does not redistribute it; if you ever bundle a fork's content into a build, you are responsible for complying with that content's licenses and attribution.
- SuspensionPoint: original author of space-station-14-map-editor, the codebase this fork is built on. The MIT license and copyright notice are theirs.
- Built for the Space Station 14 community and the many community forks that extend it.