About IZCode
From Steam WorkshopIZCode - Structured Programming for Stationeers IZCode replaces IC10 with IZ: a structured language with types, real functions and recursion, on its own virtual machine inside the Programmable Chip.…
IZCode - Structured Programming for Stationeers
IZCode replaces IC10 with IZ: a structured language with types, real functions and recursion, on its own virtual machine inside the Programmable Chip.
Write #iz on the first line of a chip and IZCode takes over. Chips without the marker keep running as IC10, so existing builds are unaffected.
WHY IT EXISTS
[table] [tr][th]IC10[/th][th]IZ[/th][/tr] [tr][td]128 lines, 4096 bytes[/td][td]2000 lines, 16000 bytes[/td][/tr] [tr][td]16 registers[/td][td]Named variables managed by the compiler[/td][/tr] [tr][td]jal/ra, limited calls[/td][td]Functions, parameters, returns and recursion[/td][/tr] [tr][td]Restarts every tick[/td][td]Freezes and resumes execution[/td][/tr] [tr][td]Infinite loop hangs the chip[/td][td]VM preempts execution automatically[/td][/tr] [tr][td]Typos found at runtime[/td][td]Compile errors with suggestions[/td][/tr] [tr][td]Everything is a double[/td][td]num, bool, str and dev are type-checked[/td][/tr] [tr][td]HASH("text")[/td][td]Real strings with concatenation and comparison[/td][/tr] [tr][td]Loose registers[/td][td]Arrays, structs and lists[/td][/tr] [/table]
A COMPLETE PROGRAM
#iz
device sensor = d0;
device inlet = d1;
const TARGET = 101.325;
fn main() {
loop {
var p = sensor.Pressure;
inlet.On = p < TARGET - 5.0;
yield;
}
}
Execution starts at fn main(). When it returns, the chip stops until restarted.
THE LANGUAGE
Types
- num - 64-bit floating-point number
- bool - Boolean value
- str - Immutable ASCII string
- dev - Device pin d0-d5, or db
- T[N] - Fixed-size arrays
- list - Typed collections
- struct - User-defined structures
num and bool are not interchangeable: if x needs a bool; write if x != 0 for a number.
var counter = 0;
var active: bool = false;
const MAX = 101.325;
Globals keep their values across ticks.
Arrays and Structs
Arrays and structs live in the VM heap, laid out at compile time. No allocator, no GC.
var samples: num[8];
struct Gauge {
total: num;
cursor: num;
samples: num[8];
}
Array length is part of the type; len(a) is compile-time. Aggregates pass by reference.
Lists and Queries
Fixed-size arrays with a count, and LINQ-style queries:
var rooms: list Room[8];
var r: Room;
r.temp = 40;
rooms.add(r);
var mean = rooms.avg(x => x.temp);
var hot = rooms.where(x => x.temp > 30);
var worst = rooms.orderByDesc(x => x.temp).first();
Queries:
- where, select, take, skip
- takeWhile, skipWhile
- orderBy, orderByDesc, reverse
- distinct, sum, avg, min, max
- count, any, all
- first, last, firstOr, lastOr
- contains, indexOf, into
A query chain becomes a single loop, with the lambdas inlined: no intermediate lists, no per-element calls.
Devices
Device properties are checked against the game's LogicType table:
var p = sensor.Pressure;
pump.On = true;
Invalid properties are compile errors: Presure answers did you mean Pressure?
db is the device the chip is installed in, and the only way to reach it: nothing can be wired to it. In a circuit housing it is the housing; in a hardsuit it is the suit, so a program can read its own PressureExternal and drive its AC. On a suit the pins are the wearer's slots: d0 helmet, d1 backpack, d2 toolbelt, d3 glasses, d4 and d5 hands.
device self = db;
self.Setting = 1;
isset(dev) tells whether a pin has a device on it right now, so a program drives whatever is there instead of stopping on an empty pin. IC10's sdse.
device helmet = d0;
if isset(helmet) { helmet.On = true; }
Game Constants
The game's named values, spelled as IC10 spells them:
light.Color = Color.Green;
cooler.Mode = AirCon.Cold;
All 30 groups come from the game itself: Color, GasType, SlotClass, Sound, AirCon, PowerMode, EntityState, LogicType and the rest. Each value folds to its number at compile time, and a typo is a compile error with the nearest name.
Batch Operations
Every matching device on the network:
all(StructureWallLight).On = true;
named("Corridor Light").On = false;
named(StructureVolumePump, "north").On = true;
var avg = all(StructureGasSensor).Pressure;
var total = all(StructureSolarPanel).PowerGeneration.sum();
A bare read averages; sum(), min(), max() and count() collapse it another way.
A selector can be named and then used like a device on a pin:
device led = named(StructureDiode, #"led-dev");
led.On = true;
Prefab names, #"hash" literals and constants cost nothing at runtime.
Text
Strings are real runtime values: variables, parameters, returns, arrays and structs.
var label = "vent-" + side;
all("Structure" + kind).On = true;
Functions: len, hash, char, chr, sub, find, text, fixed, parse.
Numbers become text only through text(x).
Control Flow
- if / else if / else
- while / loop
- for
- break / continue
Ranges support 0..10 and 0..=10. There is no goto or labels. Braces are mandatory.
Functions and Recursion
Functions have typed parameters, return values and recursion.
fn gcd(a: num, b: num) -> num {
if b == 0 {
return a;
}
return gcd(b, a % b);
}
A call-depth limit turns runaway recursion into a clean error.
Operators and Math
Operators follow C precedence. Prefix: -x, !x and ~x. c ? a : b picks one of two values, IC10's select.
Division by zero follows IEEE-754. Assignment is a statement, so if (a = b) does not compile.
Highlights
From source dataFootprint
Rated a light load on a server.
Last update
Its author last shipped an update 41d ago.
IZCode on Nxeon
From our catalogue- One-click install
- Not available. One-click install isn't available for this game's mods yet. Download it and upload it to your server in Files.
- Server load
- light
- Smallest plan we suggest
- Stationeers — 4 GB (4 GB RAM). This follows our own load rating above, not a benchmark.
- Latest build
- 2026-09-05, released 2026-09-05
Game versions by loader
| Loader | Game versions | Newest |
|---|---|---|
| Workshop |
From 1 recorded build of IZCode.
Run IZCode on a Stationeers server
Deploy a server above, then upload the file in Files.
What kind of mod it is
From the catalogTechnology & automation
Machines, power, logistics and automation.
Compatibility
- Game
- Stationeers
Verified at the source
- ✓Steam WorkshopOfficial listing, checked 2026-10-16Open ↗
- ✓AuthorHoppy ∴, as published on Steam Workshop
- ✓LicenseNot published by the sourceFree
