scmJS is a powerful, fully featured map editor for StarCraft and Brood War, written in TypeScript and modelled on StarEdit, SCMDraft 2 and StarForge. It runs in a native browser tab or as a desktop app.
It comes with a powerful plugin API. See the plugins page for the complete current list of plugins. Install them in the editor by going to Plugins → Browse Plugins.
English and Korean (AI generated). It should automatically configure locale, but you can override in application preferences. Currently looking for a native Korean speaker to review the localization!
| Release | Link |
|---|---|
| Web Editor (stable) | https://editor.scmjs.dev |
| Web Editor (nightly, latest) | https://nightly.editor.scmjs.dev |
| Desktop Builds | Windows, Mac, Linux |
The editor ships with no Blizzard assets by default. stardat.mpq and broodat.mpq are required assets from StarCraft
needed to render tiles, units, and doodads. On first load the editor will prompt you to download them directly
from Blizzard, or you can upload your own files if you have them. The desktop build will attempt to find them
on disk.
Nothing is uploaded anywhere unless you use the scmjs.dev or scmscx.com plugins. The map stays on your disk, and once the Blizzard assets are installed they also remain locally on disk
Consider contributing a plugin. A plugin is a powerful program that allows extensive editing of the map through a nicely abstracted plugin API. Start with:
- plugin-hello-world - a working example plugin to copy
- docs.scmjs.dev/plugins - the plugin guide
- https://docs.scmjs.dev/api - the plugin API reference
During development you can load your plugin right from your own git repository. Once you have your plugin written and want to add it to the registry for everyone, fill out this issue form.
To contribute to the editor itself, see these documents and open a PR against the scm-js repository.
- docs.scmjs.dev/map-files is the format reference,
- game-data covers what is read out of the archives, and
- development is how to build and run it.
| Repository | Description |
|---|---|
| scm-js | the editor itself, and the map maker's guide |
| plugin-api | @scm-js/plugin-api, the type definitions a plugin builds against |
| registry | the index behind Plugins ▸ Browse Plugins… |
| site | scmjs.dev, the landing page |
| docs | docs.scmjs.dev, built from the editor's own documents |
| nightly | last night's build of main, served at nightly.editor.scmjs.dev |
| Plugin | Description |
|---|---|
| scm-scx | search scmscx.com and open a map straight from it |
| repair | checks a map as it opens and offers to rebuild what is missing or broken |
| walkability | where ground units can actually go, and how wide the chokes are |
| image-to-terrain | paints a picture into terrain |
| paint | lines, shapes, text and sprays made of units, sprites, doodads, terrain or fog |
| trigscript | a TypeScript-like language, and its editor, compiled to triggers |
| stamp-library | named terrain pieces kept across maps and shared as JSON |
| trigedit | SCMDraft 2's text trigger editor |
| scmjs-dev | a scmjs.dev account: maps kept online, and the AI assistant |
| melee-wizard | symmetric start locations and mineral lines for a ladder map |
| section-explorer | an annotated hex editor over the map's own sections |
| trigger-map | the map's triggers as a graph: who sets and who reads each switch, counter and location, and what looks wrong |
| timelapse | records the map as you build it and exports the recording as a GIF or video |
| aftermath | plays a replay back over its map: heat maps, build orders, APM |
| magenta | a trigger editor where each trigger reads as a sentence, with Remastered EUD conditions and actions |
| eudplib | runs eudplib in the browser so other plugins can build EUD maps |
| api-playground | try the plugin API in a panel without writing a plugin |
| hello-world | the smallest plugin there is, to copy |
MIT licensed. StarCraft and Brood War are Blizzard Entertainment's; this project is not affiliated with Blizzard, and ships none of the game's data.
See the attributions document for algorithms used in this project.