Skip to content

Repository files navigation

GRIMP

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 .exe is 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 .exeProperties → tick UnblockApply. 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.

Direction

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.

Features

Authoring maps and ship grids

  • Document kinds that match the game: New Map and New Grid produce exactly what the engine's savemap / savegrid write, 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 against MapLoaderSystem).
  • 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, and BecomesStation with 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.

Editing

  • 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.json and stamp it elsewhere.
  • Import/Export: load existing SS14 .yml maps 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.

Running it

  • Desktop app: native menus, native open/save dialogs, and local fork loading. Packaged as a Windows portable .exe and 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.

Pointing it at game content

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.

Getting started (development)

Requirements: Node.js 20.19+ (CI runs 22) and npm.

git clone <this-repo-url> grimp
cd grimp
npm install
npm run dev

Open 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/.

Desktop build

The desktop app is the primary target. To run it against the live dev server:

npm run electron:dev

To 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.

Project structure

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.

Tech stack

React 18 · TypeScript · Vite · Canvas 2D rendering · js-yaml · Tailwind CSS.

Contributing

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.

License

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.

Acknowledgements

About

GRIMP (Generally Reliable Interactive Mapping Program): a map editor for Space Station 14

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages