Repository navigation
Logic Props Guide EN
Logic props let you connect events on a map: for example, open a door only after two buttons are pressed, make a lamp blink, or remember the order in which the player pressed buttons. Once you understand how the basic elements work, you can build anything - from a simple code lock to a computer
Regular map objects and logic props have numbers called Activation IDs. The same number connects a sender to its receivers
Button (ID 10) -> AND: Input A = 10
Button (ID 11) -> AND: Input B = 11
AND: Output = 20 -> object with ID 20
You do not need to place any actual wires. When an object sends ID 10, every logic input configured to listen to 10 receives the signal
- Input (Input A, Input B) - the ID the prop listens to
- Output (Output, Q, /Q) - the ID the prop sends further
-
-1means “not connected” - One output can be connected to multiple inputs: simply use its ID in every required field
- Two different sources can feed the same input: give both of them the same ID
The logic system only sees two states:
- 0 (LOW) - there is currently no signal
- 1 (HIGH) - this Activation ID was received during the current logic tick
A logic tick is a very short game step. While a source remains HIGH, its output is sent every tick. A regular button usually sends only a short pulse, so on the next tick its input will be LOW again
This matters for lights and other objects that toggle on every signal: do not connect a constant output directly to them, otherwise they will toggle rapidly. Put an EDGE between them to turn a state change into a single pulse
All gates below use the same fields: Input A, Input B, Output. In the table, A and B are the inputs, and the remaining columns show the output state
| A | B | AND | OR | XOR | XNOR | NAND | NOR |
|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
| 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 |
| 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 |
- AND: output is active only when both inputs are active
- OR: output is active when at least one input is active
- XOR (exclusive OR): output is active when exactly one input is active
-
NOT: has one
Inputand oneOutput; inverts the signal: 0 becomes 1, and 1 becomes 0 - XNOR: output is active when both inputs are equal: both 0 or both 1
- NAND: active in every case except when both inputs are 1. This is an inverted AND. In fact, every other logic gate can be built using NAND alone
- NOR: output is active only when both inputs are 0. This is an inverted OR
A constant value
-
Value = 1continuously sends itsOutput -
Value = 0sends nothing
Use CONST = 1 when you need an input to stay permanently enabled. For example, CONST -> T on a T flip-flop makes every CLOCK pulse toggle its state
Automatically alternates between 0 and 1
-
Output- ID of the output signal -
Period- duration of a full “off + on” cycle in seconds -
Initial HIGH- whether to start at 1 or 0
With Period = 2, the signal stays LOW for about one second and HIGH for about one second. CLOCK by itself produces a continuously blinking level; if you need one event per activation, put an EDGE after it with Mode = 0
Converts a state change into one short pulse. This is especially useful before a light, door, or any other object that reacts to a single activation
-
Input- the observed ID -
Output- ID of the single pulse -
Mode:0- only 0 -> 1,1- only 1 -> 0,2- both transitions
Example of a blinking light: CLOCK Output = 30 -> EDGE Input = 30, Output = 31, Mode = 0 -> light with ID 31. The light will toggle once every time the CLOCK turns on
Not a logic gate, but a useful prop for randomness. When it receives its Activation ID, it chooses one ID from the Random IDs field and sends it. Numbers in the list can be separated by commas, spaces, or ;, for example: 40, 41, 42
Example: button ID 5 -> RND Activation ID = 5, Random IDs = 40,41,42 -> one of the three objects is activated
A regular gate forgets its input on the next tick. These props can store 0 or 1 until they receive a command to change it
All of them have:
- Q - normal output of the stored state
- /Q - inverted output: always the opposite of Q
-
Initial Q - the starting state after the map loads (
0or1)
If Q = 1, Q is active; if Q = 0, /Q is active
-
S(Set) sets Q to 1 -
R(Reset) sets Q to 0 - if S and R arrive at the same time, the state does not change
This is the best option for a first “do something after two buttons are pressed one after another” circuit. For example, each button can set its own SR latch; then both Q outputs are connected to an AND. After both buttons have been pressed, AND will remain HIGH. If the target only needs a single pulse, add an EDGE after the AND
On a CLK transition from 0 to 1, it copies the state of D into Q. Between clock edges, Q does not change
Useful when you need to “read a switch only when the clock signal arrives.” Usually unnecessary for simple doors
On every CLK transition from 0 to 1:
- if
T = 1, Q toggles to the opposite state - if
T = 0, nothing happens
Simplest use: CONST = 1 -> T, button or EDGE -> CLK. Every press will alternate Q: 0, 1, 0, 1…
On a CLK transition from 0 to 1, it checks J and K:
| J | K | What happens to Q |
|---|---|---|
| 0 | 0 | keep the current state |
| 0 | 1 | set to 0 |
| 1 | 0 | set to 1 |
| 1 | 1 | toggle to the opposite state |
For simple circuits, SR or T is usually more convenient; JK is useful when you need “set”, “reset”, and “toggle” modes at the same time