Here you can compile a schematics definition written in Schemacode, a schema definition language, into a text representation to be pasted into Mindustry using the Import schematics... button. If your schematics contain processors, you can specify code for the processor using either Mindustry Logic or Mindcode. You can also decompile an existing schematics using the Decompiler and modify the resulting code.

Here are some examples to give you an idea how to use Schemacode:

182 lines of code

Bug reports, suggestions and questions are welcome at the project page.

  • Compiling embedded code
  • 133 instructions before optimizations.
  • 7 instructions eliminated by Temp Variables Elimination (2 passes, 5 iterations).
  • 8 instructions eliminated by Dead Code Elimination (4 iterations).
  • 1 instructions eliminated by Jump Normalization (4 iterations).
  • 4 instructions eliminated by Jump Optimization (4 iterations).
  • 4 instructions eliminated by Single Step Elimination (5 iterations).
  • 3 instructions eliminated by If Expression Optimization (3 iterations).
  • 7 instructions eliminated by Data Flow Optimization (3 passes, 12 iterations).
  • 1 loops improved by Loop Hoisting.
  • 5 instructions added by Function Inlining (6 iterations).
  • 10 function calls inlined by Function Inlining.
  • 1 instructions updated by Jump Threading.
  • 1 instructions eliminated by Unreachable Code Elimination (2 iterations).
  • 103 instructions after optimizations.
  • Code size and number of instantiations by function: Size Times AvgSize Function 40 1x 40.0 <no function> 24 4x 6.0 void checkUnit() 20 1x 20.0 void moveItems() 10 5x 2.0 void message(in text) 10 2x 5.0 void moveTo(in building)
  • Performance: parsed in 23 ms, compiled in 8 ms, optimized in 62 ms.
  • Compiling embedded code
  • 91 instructions before optimizations.
  • 2 instructions eliminated by Temp Variables Elimination (6 iterations).
  • 10 instructions eliminated by Dead Code Elimination (5 iterations).
  • 1 instructions eliminated by Jump Normalization (5 iterations).
  • 6 instructions eliminated by Jump Optimization (5 iterations).
  • 10 instructions eliminated by Single Step Elimination (3 passes, 8 iterations).
  • 1 instructions eliminated by If Expression Optimization (4 iterations).
  • 9 instructions eliminated by Data Flow Optimization (2 passes, 8 iterations).
  • 102 instructions added by Loop Unrolling (4 iterations).
  • 1 loops unrolled by Loop Unrolling.
  • 5 instructions eliminated by Jump Straightening (5 iterations).
  • 6 instructions updated by Jump Threading.
  • 9 instructions eliminated by Unreachable Code Elimination (2 iterations).
  • 140 instructions after optimizations.
  • Code size and number of instantiations by function: Size Times AvgSize Function 75 5x 15.0 def findFreeUnit(in unit_type, in initial_flag) 56 1x 56.0 export def findUnit(in currentUnit) 10 1x 10.0 <no function>
  • Performance: parsed in 28 ms, compiled in 8 ms, optimized in 29 ms.
  • Created schematic 'Item Transport' with dimensions ( 3, 5).