Create: Logic

Create: Logic

Safe scripting language for Create automation, instead of redstone.

by
241 Downloads
neoforgegame-mechanicstechnology
Rent Server with this Mod

Screenshots

Flashing lamp
Flashing lamp code

About this Mod

A create automation with using own programming language, naming "Metal".
Place a computer, right click, enter code, press save, shift+right click for toggle run.

Coding:
Declare 2 Systems (System is just like function), "INIT" and "TICK" like that:

SYSTEM(INIT): START;

init code here

END_SYSTEM;

SYSTEM(TICK): START;

tick (loop) code here

END_SYSTEM;

API:
There is some functions to work with Metal.

built-in functions:

MAKE_VAR(VAR_TYPE,$name,start_value); - making a global variable (global variable MUST start with '$', ONLY in INIT)

MAKE_ITEM_VAR($name,item_id); - making a INT variable by minecraft item number id (ONLY in INIT)

SET($name,value); - set new value for variable

ADD/SUB/MUL/DIV($name,value); - operations with variables

WAIT(ms); - delaying script (ONLY in TICK)

CONTINUE(); - return to the current System begin (ONLY in TICK)

RERUN(); - return to the main System of current script (ONLY in TICK)

EXIT_STACK(); - exit entire stack of System calls and returns to the point of stack start

RETURN(); - exit 1 System of stack of System calls

ABORT(); - forcibly terminate current script (Doesn't turn off computer)

CALL_SYSTEM(name, args...); - call System (max stack size is 16), cannot call Systems-EntryPoints (INIT, TICK), args is ONLY in in 0.0.3+ mod version

IF(condition): START; - Base IF operator (closing - "END_IF;")

ELSE(): START; - Base ELSE operator (between IF and END_IF)

BIND_ARGS_TO_SYSTEM(name, args...); ONLY in INIT, args must be like "#var:INT", setting arguments to system call (CALL_SYSTEM), ONLY in 0.0.3+ mod version

MAKE_LOCAL_VAR(VAR_TYPE,#name,start_value); - making a local variable (local variable MUST start with '#') ONLY in 0.0.3+ mod version

ACCEPT_INVOKES(); - allow invoke non-reserved systems by integrations ONLY in INIT, for 0.0.4+ mod version

PRINT(args...); - INFO Output (white) ONLY in 0.0.6+ mod version

WARN(args...); - WARN Output (yellow) ONLY in 0.0.6+ mod version

ERROR(args...); - ERROR Output (red) ONLY in 0.0.6+ mod version

end of built-in functions

Java Functions (registered outside of a Metal):

CONNECT_LINK_SENDER(id,item1,item2); - making a transmitter connection (for two last arguments recommends use MAKE_ITEM_VAR, id is any value, doesn't used before), ONLY in INIT

CONNECT_LINK_RECEIVER(id,item1,item2); - making a receiver connection (use MAKE_ITEM_VAR variables for two last arguments) ONLY in INIT

SEND_LINK(id,power); - send power to Create Redstone Link (use with id, used in CONNECT_LINK_SENDER)

RECEIVE_LINK(id); - receive power from Create Redstone Link (use with id, used in CONNECT_LINK_RECEIVER)

RANDOM(min,max); - returns random INT between min and max

RAND(); - returns random DOUBLE between 0.0 - 1.0

SIN(value); - returns sin of the value (use radians)

COS(value); - returns cos of the value (use radians)

TAN(value); - returns tan of the value (use radians)

SQRT(value); - returns sqrt of the value

DTR(value); - degrees to radians

RTD(value); - radians to degrees

GET_PI(); - returns PI

MIN(args...); - returns MIN of all arguments

MAX(args...); - returns MAX of all arguments

CLAMP(value,min,max); - returns limited value in range

ABS(value); - returns module of value

POW(value,pow); - returns exponentiation of the value

GET_OPS(); - returns completed operations of this script - 0.0.5+

end of Java Functions;

Tips:

ADD,SUB, etc using ONLY in modification of value
for example:

ADD($x,1); = x += 1;

In brackets:

IF($x + 1 > $y): START;

code

END_IF;

And, ": START" is not necessarily, but recommended, you also can use

SYSTEM(INIT);
...

IF(condition);
...

etc.

Current variable types: INT, DOUBLE, POWER, BOOL.

TICK EntryPoint (System) running in the other thread 1000 times per second.

INTEGRATION:
Since 0.0.4 you can call non-reserved systems from Computer Craft mod, its looks like:
Metal:
SYSTEM(INIT): START;
ACCEPT_INVOKES();
BIND_ARGS_TO_SYSTEM(SUM,#first:DOUBLE,#second:DOUBLE);
END_SYSTEM;
SYSTEM(SUM): START;
RETURN(#first + #second);
END_SYSTEM;
SYSTEM(TICK): START;

END_SYSTEM;

CC Lua:
local metal = peripheral.find("metal");
if metal then
print(metal.callSystem("SUM",5,10)); -- output: 15
else
print("Cannot find Metal Computer");
end

Since 0.0.5 you can use
SYSTEM(NAME,args...): START; instead of BIND_ARGS_TO_SYSTEM

example:

SYSTEM(SET_POWER,#f:POWER,#s:POWER): START;

SEND_LINK(1,#f);

SEND_LINK(2,#s);

END_SYSTEM;

"**" instead of "POW(val,pow);"
"%" operator

Since 0.0.6, in output functions you can use literals, just like that:

PRINT(~Hello World);

Hello World

or, with variable:

MAKE_VAR(INT,$test,150);

PRINT(~counter: ,$test);

counter: 150

Available Versions

Create: Logic 0.0.6-hotfix-2alpha
MC 1.21.1neoforge
May 11, 2026
Create: Logic 0.0.6-hotfixalpha
MC 1.21.1neoforge
May 10, 2026
Create: Logic 0.0.6alpha
MC 1.21.1neoforge
May 10, 2026
Create: Logic 0.0.5-hotfixalpha
MC 1.21.1neoforge
May 6, 2026
Create: Logic 0.0.5alpha
MC 1.21.1neoforge
May 6, 2026

How to Install Create: Logic on Your Server

1

Order Server

Order a Minecraft Java server with at least 4 GB RAM (6 GB recommended).

2

Set neoforge Loader

In the panel under "Egg", select the neoforge loader and matching Minecraft version (1.21.1).

3

Install Mod

Open the mod browser in the dashboard and search for "Create: Logic". Click "Install" – done! Alternatively, upload the .jar via SFTP to the /mods folder.

Compatibility

Mod Loaders

neoforge

Minecraft Versions

1.21.1

Server-side

Required

Recommended RAM

6 GB(min. 4 GB)

Frequently Asked Questions

Create: Logic server crashes on startup – what to do?

Most common cause: wrong neoforge version or insufficient RAM. Check the server log (latest.log) for "OutOfMemoryError" or "Mixin" errors. With Mado Hosting: ensure at least 4 GB RAM is allocated and the loader matches the mod version (1.21.1). You can switch loaders with one click in the panel.

Is Create: Logic compatible with neoforge?

Create: Logic officially supports neoforge for Minecraft 1.21.1. The Mado dashboard automatically detects incompatible loader combinations.

Server lagging with Create: Logic – how to optimize performance?

Recommended RAM: 6 GB (per 5 players). Use /spark profiler to check if Create: Logic consumes the most tick time. Common fixes: reduce server view-distance to 8-10, install "performant" or "starlight" as supplementary mods on Forge. With Mado Hosting, your server runs on NVMe SSDs with dedicated CPU cores for minimal latency.

Rent Modded Server

Install Create: Logic with just one click on your server.

Recommended RAM
6 GBab €12/mo
Min. 4 GB | +1 GB pro 5 Spieler
Create Server Now
1-Click Mod Install
NVMe SSD Storage
DDoS Protection included

Details

License
MIT License
Server-side
Required

Supported Versions

1.21.1