This page shows how to wire common TTT map interactions with map I/O. The examples are intentionally small. Once the patterns make sense, you can combine them into larger traps, puzzle rooms, traitor testers, elevators, secret doors, and environmental events.
A sender fires an output. Each output contains one or more map links. A map link finds one or more receivers, then sends an input name and optional payload. The receiver decides what that input means.
Example:
TTT Button
TargetsOnActivated
TargetName = secret_door_1
Input = Open
When the button activates, the object named door_secret receives Open.
| Field | What it does | When to use it |
|---|---|---|
Target | Direct component reference. | Best for scene-authored maps, because Facepunch's dropper tool actually works. |
TargetName | Finds GameObjects by exact name. All matching names receive the signal. Matching is case-insensitive and trims whitespace. | Made with Hammer in mind but works either way. |
TargetTag | Sends the signal to all GameObjects with the authored tag. | Best for broad one-to-many events. |
Input | Input name sent to the receiver. Blank usually forwards the sender's default input. | Use when you want Open, Start, Stop, GoTo, etc. |
Payload | Optional string data. | Required for some path-mover commands such as GoTo or CallOrDepart. |
DelaySeconds | Delays delivery of this link. | Use for timed sequences. |
| Input | Typical meaning |
|---|---|
Activate | Generic action or default behavior for that object, if it has one (For example, DoorRotating will open when sent this). |
Press / Release | Button-style press state. |
Start / Stop | Generic on/off behavior. Preferred for lights, effects, triggers, and state receivers. |
Open / Close | Door and mover-friendly aliases for start/stop-style behavior. |
Toggle | Flip the current state. |
Lock / Unlock | Prevent or allow future activation. |
GoTop / GoBottom | Binary mover aliases for open/close-style movement. |
GoTo | Move a path mover to a named point or zero-based point index. Uses Payload. |
CallOrDepart | Elevator-style call/send-away behavior. Uses Payload. |
Next / Previous | Move a path mover to a neighboring path point. |
Pause / Resume / Reverse / Reset | Path mover runtime controls. |
Enter / Exit / Occupied / Empty | Trigger occupancy outputs. |
Pass / Fail | Role tester outputs. |
Use this for ordinary sliding doors, secret panels, trap shutters, or lifts that only need two positions.
1. Select the door object. 2. Add TTT Linear Mover.
3. Set MoveDelta to the local-space offset from closed to open.
4. Set OpenDuration and CloseDuration (Or don't, for default speed).
5. Decide whether it should StartsOpen or StartsLocked. 6. Give the object a unique name (like secret_door_1, so on and so forth).
This process works similarly for rotating doors.
7. Select the button object. 8. Add TTT Button. 9. Set Mode to Press, Hold, or Toggle.
10. Set HintText for the prompt shown to players (Or ignore for default).
11. Add a link under TargetsOnActivated:
CooldownSeconds on the button to prevent spam.FireDelaySeconds to delay the main activation while still letting pressed/released outputs happen immediately.AutoReset and ResetTime on the mover to close the door after a delay.
Use TTT Role Button for traitor/detective-only buttons. These will display a floating panel to that role.
TTT Role Button to the button object.RoleName to Traitor, Detective, or another allowed display team.Description and optional SubText (The top and bottom fields on the image above).StartsLocked for traps that should be armed later.RemoveOnUse for one-shot traps.To start a hurt volume:
TTT Role Button
TargetsOnActivated
TargetName = trap_hurt_volume
Input = Start
To fire a timed hurt trigger, set the hurt trigger's ActivateMode to Timed and wire the button with Input = Activate.
To teleport players in a room:
TTT Role Button
TargetsOnActivated
TargetName = trap_teleport_volume
Input = Activate
A role button activated through map IO still needs a real player activator who passes the same role and range checks as direct use.
Use TTT Trigger Box for simple occupancy logic, then use TTT Enable Target as the receiver.
TTT Enable Target near the light, particle system, sound emitter, component, or GameObject you want to control.TargetKind to Component or GameObject.TargetComponent or TargetObject.light_room_warning_enable.TTT Trigger Box to a trigger volume.Include as player for ordinary player occupancy logic.TargetsOnOccupied:TargetName = light_room_warning_enableInput = StartTargetsOnEmpty:TargetName = light_room_warning_enableInput = Stop
Important: Avoid disabling the same GameObject, or an ancestor of the GameObject, that contains the TTT Enable Target. Once the receiver disables itself, later signals may not reach it. It's alright to disable Components on the same GameObject.
Use path tools when movement has more than two positions (e.g. Elevator with 3+ floors).
TTT Path Track.TTT Path Point.PointName, for example basement, lobby, and roof.Order when hierarchy order is not enough.ClosedLoop on the track only when the last point should connect back to the first.TTT Path Mover to the elevator platform.Track directly or use TrackName.StartPoint if it should begin somewhere other than the first point.MoveSpeed and MovementCurve.QueueRequestedStops should queue calls while the elevator is busy.For a button that always sends the platform to the roof:
TTT Button
TargetsOnActivated
TargetName = elevator_platform
Input = GoTo
Payload = roof
For a call/send-away button at the lobby:
TTT Button
TargetsOnActivated
TargetName = elevator_platform
Input = CallOrDepart
Payload = lobby
On a two-point track, CallOrDepart means “come here if away, go to the other point if already here.” On tracks with three or more points, set DepartureTarget or DepartureTargetName on the path point.
Use TTT Trigger Role Tester for traitor testers, filtered chambers, or trap logic that branches by occupant role.
TTT Trigger Role Tester to the chamber volume.MatchRole to the role/team considered a pass.RequireAlive enabled when only alive players should count.TargetsOnPassed to a green light, safe door, sound, or relay.TargetsOnFailed to a red light, alarm, trap, or lock.Mixed-role occupancy can fire both pass and fail outputs, so design tester rooms with that behavior in mind.
GoTo or CallOrDepart.TargetName values unintentionally. All matches receive the signal.TTT Button would be simpler.| Command or ConVar | Use |
|---|---|
t.db.use 1 | Logs direct-use rejection and activation details for pressable objects. |
t.db.triggers 1 | Logs trigger occupant filtering and behavior. |
t.db.resetregistry 1 | Logs reset capture and reset behavior. |