📚 Read the full Stationeers Toolkit documentation
Fast, offline IC10 language support for Stationeers, powered by a native Rust language server and deterministic simulator.
The extension provides context-aware completion, hover documentation, signature
help, navigation, document symbols, and diagnostics while you edit .ic10
programs. The language server and generated reference data are bundled, so
users do not need Python, a Stationeers installation, or a separate server.
Lua editing is also supported without the StationeersLua extension through a lightweight bundled metadata library. Installing both extensions is recommended for Lua-heavy projects: Toolkit automatically uses the current StationeersLua library for the latest Lua API knowledge while retaining only its own Toolkit specific additions. This is optional and does not affect IC10-only work.
When both extensions are installed, use only one extension's live network, chip-editor, or source synchronisation tools for a game session. For projects using IC10 simulation, scenario testing, topology, or debugging, Stationeers Toolkit should be the live integration owner.
This is an independent community project. It is not affiliated with, endorsed by, or sponsored by RocketWerkz.
Visual Studio Code 1.107 or newer is required.
- Visual Studio Code: open Extensions, search for
Stationeers Toolkit, and install the extension published by
shaneyu. - Antigravity and other Open VSX editors: search the Extensions view for Stationeers Toolkit.
- Manual installation: download the VSIX matching your operating system and architecture from GitHub Releases, then choose Extensions: Install from VSIX....
Marketplace links will become active with the first public release:
- Install the extension.
- Open or create a file ending in
.ic10. - Start typing an instruction or hover an existing symbol.
define Solar HASH("StructureSolarPanel")
alias sensor d0
start:
l r0 sensor Horizontal
yield
j start
Language features activate automatically for .ic10 files.
- Syntax highlighting for instructions, labels, registers, devices, macros, constants, enum values, numbers, and comments.
- Context-aware completion for instructions, operands, registers, device pins,
constants, enums, labels, prefab hashes, and
HASH/STRliteral macros. - Hover help for instructions, registers, devices, constants, enums, symbols, reagent hashes, packed display strings, prefab names, and numeric hashes.
- Signature help generated from IC10 command syntax.
- Go to definition, references, highlights, rename, and document/workspace symbols for labels, defines, and aliases.
- Typed operand validation and conservative control-flow/value diagnostics, including subtle unused/dead-code hints.
- Semantic tokens, label folding, inlay hints, safe quick fixes, formatting, and a live official line/operations budget.
- A visual, source-controlled simulation environment for devices, labeller names, numbered connections, pins, logic fields, slots, registers, and stack values.
- Native VS Code debugging for single- and multi-IC systems, with breakpoints, editable variables, watches, instruction stepping, and coordinated world ticks.
- Shared cable-network channels and separate data/power network topology.
- Native Test Explorer scenario tests plus the headless
ic10CLI with deterministic human, JSON, and JUnit results. - Deterministic deployment builds with safe branch rewriting, compact previews, clipboard/file output, source maps, and reproducibility reports.
The parser is intentionally tolerant of incomplete lines, so editor assistance continues to work while a program is being written.
| Name | Purpose |
|---|---|
IC10: Restart Language Server |
Restarts the bundled language server. |
IC10: Create Simulation Environment |
Creates and opens a visual *.icsim scenario. |
IC10: Step World Tick |
Runs every eligible simulated IC for one game tick. |
IC10: Build for Game |
Writes deployable code and JSON sidecars without editing source. |
IC10: Copy Deployable Code |
Copies the identical in-memory build without writing files. |
ic10 build <source.ic10> |
Builds deployable code and sidecars under build/ beside the source; use --stdout for write-free output. |
ic10.server.path |
Uses a custom ic10-lsp executable instead of the bundled server. |
ic10.debugAdapter.path |
Uses a custom ic10-dap executable instead of the bundled adapter. |
ic10.cli.path |
Uses a custom ic10 command-line executable instead of the bundled CLI. |
ic10.testing.rerunOnSave |
Re-runs affected scenario tests after a referenced file is saved. |
ic10.diagnostics.unused |
Controls unused/dead-code diagnostics as off, hint, or warning. |
ic10.trace.server |
Logs LSP messages for troubleshooting. |
See the extension usage guide for troubleshooting
and platform details. See the simulator guide for the
environment format, multi-IC debugger model, and current fidelity, and the
generated compatibility report for the
evidence-backed instruction status. See scenario testing
for *.ictest, Test Explorer, and CI usage. The supported workspace filenames
and future compatibility policy are described in workspace formats.
Test Explorer labels pure Lua modules, full Lua-chip scenarios, and mixed
IC10/Lua scenarios separately; the latter two report an explicit local
unsupported runner/debug path.
Deployment options, safety rules, sidecars, and headless integration are
documented in the deployment build guide.
The extension runs locally. It does not include telemetry and does not send source code or Stationeers data to an external service.
Bug reports and feature requests are welcome in GitHub Issues. See CONTRIBUTING.md to build the monorepo, run the test suite, or refresh generated Stationpedia data.
Contributors record user-facing changes under Unreleased; maintainers follow
the release guide for versioning, signed tags, and
publication.
The design is documented in docs/architecture.md. The ordered, implementation-ready product roadmap lives in backlog/README.md.
Project source code is available under the MIT License. Stationeers names, reference material, and images remain the property of RocketWerkz and its licensors; see THIRD_PARTY_NOTICES.md.
