Binary releases are posted to the releases page.
Support is currently provided in /tg/station13's coderbus (ping
and on GitHub's issue tracker. Pull requests are welcome.
SpacemanDMM includes a language server providing autocomplete, go-to-definition, and more for the DreamMaker language. The preferred installation method is the Visual Studio Code plugin, which will update with newly-released language server binaries automatically. Details on available features are listed in the language server's package readme.
The VS Code plugin is currently hosted in a separate repository.
cargo build -p dm-langserver to build a local copy of the language server
for debugging or development purposes. The plugin can be configured to run a
locally built language server rather than the binary releases.
dmm-tools is SpacemanDMM's map renderer. It generates full-sized map images
and emulates many in-game graphical enhancements not usually visible in the map
editor, including overlays and smoothing. These features currently assume
/tg/station13, but are highly likely to work on downstreams or closely
dmm-tools minimap _maps/map_files/BoxStation/BoxStation.dmm.
For best results, run from the directory containing your
By default, output is saved to
data/minimaps, which can be changed with the
-o flag. The
-e flag, specified before the subcommand, can be used to load
.dme file. More detailed usage information is available in the
The minimap output is a very large PNG (e.g. 9.3 MB for Box). You are strongly
advised to run the resulting file through image optimization software such as
--pngcrush option to the
minimap subcommand can do this
automatically in many cases, but is off by default for speed reasons.
dmdoc is a simple Doxygen-esque documentation generator for DreamMaker code.
Files, macros, types, vars, and procs can be documented. Documentation comments
/// when preceding the documented item, or
when contained within it.
By default, only documented types are included in the output, and types with
only a one-line note do not get their own
.html page. The index shows the
code/README.md, and other Markdown files within the
directory are shown alongside documented DM files.
If run in a Git repository, web links to source code are placed next to item headings in the generated output; otherwise, file and line numbers are shown but are not linked.
To build locally, begin by installing Rust or updating your existing installation. SpacemanDMM is tested against stable Rust.
For one-time installation, run
cargo install --git https://github.com/SpaceManiac/SpacemanDMM cli
to install the
dmm-tools binary to
For development or easy installation of updates, clone this repository and run
cargo build -p cli --release to create
target/release/dmm-tools. See the
source readme for a list of the available packages, or omit
a debug build.
Executables are placed in
target/debug depending on build
type. The CLI binary is known as
SpacemanDMM is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
SpacemanDMM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with SpacemanDMM. If not, see http://www.gnu.org/licenses/.