Skip to content

Navigation Menu

Sign in
Sign up

Logic Entities

Vicious Squid edited this page Aug 21, 2026 · 7 revisions
[画像:LogicRelay] [画像:LogicGate] [画像:LogicTimer] [画像:LogicCommand] [画像:LogicCamera] [画像:Camera] [画像:LogicKeyValueStore]

Logic entities are invisible helper "things" that don't appear in the game world — they exist purely to build map logic. Instead of doing anything on their own, they are wired together with other entities through the I/O (Input/Output) system: an output on one entity (for example a trigger brush's OnTrigger) is connected to an input on another (for example a door's Open).

Logic entities sit between those endpoints and shape the signal — delaying it, gating it on a condition, repeating it, storing a value, or running a command — so you can build behaviour without writing any code.

Add them by right-clicking in the 2D view and choosing from the Logic submenu, then wire them up visually in the Logic Graph Editor (Ctrl+L).

Every connection you make in the graph has three parts, edited in the Property editor:

  • Name — the target entity the signal is sent to
  • Type — which input (or output) fires
  • Value — an optional parameter passed with the signal (and an optional time delay)

LogicRelay LogicRelay

A simple pass-through switch. When its Trigger input fires, it fires its own OnTrigger output — but only while it is enabled. This lets you turn a whole chain of logic on or off from one place, or fan a single trigger out to many targets from one reusable node.

  • Set Fire Once so the relay fires a single time and then stops.
  • Enable / Disable / Toggle gate whether incoming triggers pass through.
  • CancelPending clears any delayed triggers that haven't fired yet.
Input Description
Trigger Fire the OnTrigger output (if enabled)
Enable Enable this relay
Disable Disable this relay
Toggle Toggle enabled state
CancelPending Cancel any pending (delayed) triggers
Output Description
OnTrigger Fired when the relay is triggered

LogicGate LogicGate

A multi-input boolean gate. It remembers the on/off state of each source that feeds its Trigger input and fires OnTrigger only when the combination satisfies the chosen logic type.

  • Logic Type — one of AND, OR, XOR, NAND, NOR.
  • Initial State — the gate's starting output state (on / off).
  • Use it to require several conditions at once (e.g. two switches held down → open a door with an AND gate), or to branch behaviour.
Input Description
Trigger Send an input signal into the gate
Reset Reset all remembered input states
Enable Enable the gate
Disable Disable the gate
Output Description
OnTrigger Fired when the gate condition is met

LogicTimer LogicTimer

A countdown / interval timer that fires OnTimer after a set duration — once, or repeatedly. Ideal for delayed actions or things that happen on a beat (spawning waves, flashing lights, timed sequences).

Full details: LogicTimer

  • Interval — time in seconds before it fires.
  • Start On — start the timer automatically at level load.
  • FireTimer fires it immediately; ResetTimer restarts the countdown.
Input Description
Enable Start the timer
Disable Stop the timer
Toggle Toggle the timer on/off
FireTimer Fire immediately
SetTime Set the interval in seconds [float]
ResetTimer Reset to the initial time
Output Description
OnTimer Fired each time the interval elapses

LogicCommand LogicCommand

Runs a debug-console command when triggered, letting map logic drive anything the console can do (cam 2, wireframe, ent_fire, spawning, and more).

Full details: LogicConsoleCommand

  • Command — the command line to run when no parameter is supplied (default cam).
  • The connection's Value parameter overrides the Command property.
  • The command is queued and executed on the main UI thread, so it is safe to touch the renderer and editor state.
Input Description
RunCommand Run a console command (param: the command line; blank uses Command) [string]
SetCommand Set the default command string [string]
Enable Allow this entity to run commands
Disable Prevent this entity from running commands
Output Description
OnCommand Fired after a command is queued (param: the command line) [string]

LogicCamera LogicCamera

A cinematic camera that takes control away from the player and glides along a chain of PathNodes — used for cutscenes and scripted reveals. Control returns to the player when the sequence stops.

Full details: Camera · Demonstrated in maps/Maze.json

  • Path Target — the first PathNode of the chain to follow.
  • Speed — travel speed in world units per second.
  • FOV Override — optional field-of-view during the shot.
  • Look Ahead — aim at the next node (true) or follow the path tangent (false).
Input Description
Start Begin the cinematic sequence
Stop Abort and return the camera to the player
Pause Freeze the camera at its current position
Resume Continue a paused sequence
SetSpeed Override travel speed [float]
Output Description
OnStart Fired when the sequence begins
OnReachNode Fired each time the camera arrives at a PathNode
OnFinished Fired when the camera reaches the last node

Camera LogicSpawner

Creates a new entity at a PathNode's position when triggered — monsters, pickups, even another spawner. Great for waves, ambushes and dynamically populated rooms.

Full details: Spawner · Demonstrated in maps/Spawner_Test.json

  • Spawn Type — which entity type to create (default Monster).
  • Target Node — the PathNode used as the spawn point.
  • Max Spawn — cap on total spawns (0 = unlimited).
  • Spawn Properties — extra properties merged into each spawned entity.
Input Description
Spawn Spawn one entity at the target PathNode
Enable Allow spawning
Disable Prevent spawning
SetTargetNode Change the spawn location to a different PathNode [string]
Output Description
OnSpawn Fired each time an entity is spawned
OnMaxReached Fired when the Max Spawn limit is hit

LogicKeyValueStore LogicKeyValueStore

A small global store (up to 25 key/value pairs) that survives level changes, so events in one map can affect another — quest flags, puzzle state, counters, and simple inventories.

Full details: LogicKeyValueStore

  • Give stores in different levels the same store_name and they share the same data automatically.
  • SetValue writes, GetValue reads, and TestValue compares-and-branches via OnCompareTrue / OnCompareFalse.
  • Increment / Decrement treat values as numbers; ClearKey / ClearAll reset them.
Input Description
SetValue Store a key=value pair
GetValue Read a key and fire OnValueRead with the value
TestValue Compare a stored key and fire OnCompareTrue / OnCompareFalse
ClearKey Remove a single key
ClearAll Remove all keys
Increment / Decrement Adjust a numeric value up or down
Output Description
OnValueSet Fired when a key is set or modified
OnValueRead Fired by GetValue with the value
OnCompareTrue / OnCompareFalse Result of a TestValue comparison
OnKeyNotFound / OnStoreFull Error signals

(See the dedicated page for the full input/output list and cross-level persistence details.)


Related

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /