Files
Arcturus-Morningstar-Extended/docs/wired_full_reference.md
T

48 KiB
Raw Blame History

Wired Full Reference

1. Scope

This document is a code-based reference for the current wired runtime in Arcturus-Morningstar-Extended.

It covers:

  • general wired engine rules
  • tick and delay rules
  • protection and monitor rules
  • custom variable rules
  • every registered wired trigger, effect, selector, condition, extra, and variable definition

Primary runtime sources used for this reference:

  • Emulator/src/main/java/com/eu/habbo/habbohotel/items/ItemManager.java
  • Emulator/src/main/java/com/eu/habbo/habbohotel/wired/core/WiredManager.java
  • Emulator/src/main/java/com/eu/habbo/habbohotel/wired/core/WiredEngine.java
  • Emulator/src/main/java/com/eu/habbo/habbohotel/wired/tick/WiredTickService.java
  • Emulator/src/main/java/com/eu/habbo/habbohotel/wired/WiredHandler.java

This file is meant to describe the runtime behavior and configuration surface, not the Nitro UI layout in detail. For :wired monitor and inspection tooling, also see Arcturus-Morningstar-Extended/docs/wired_tools_reference.md.


2. Wired Engine, Tick, and General Runtime Rules

2.1 Main runtime architecture

The modern wired runtime is centered around these components:

  • WiredManager
    • initializes the wired runtime
    • loads config
    • owns the centralized engine and stack index
    • exposes high-level trigger methods such as user click, walk on, say, signal, game events, and so on
  • WiredEngine
    • receives WiredEvent objects
    • finds candidate stacks through the room stack index
    • evaluates selectors, conditions, extras, and effects
    • enforces abuse protection, delayed queue limits, recursion limits, and diagnostics
  • RoomWiredStackIndex
    • caches stack membership so the engine can quickly find candidate stacks for a given event type
  • WiredTickService
    • runs a single global tick loop
    • keeps repeaters and other tickables synchronized across rooms
  • WiredHandler
    • legacy compatibility path that still exists in the codebase
    • still useful to understand older stack execution logic and some compatibility behavior

2.2 Current execution model

At a high level, the engine processes a stack like this:

  1. receive an event
  2. find candidate stacks for the event type
  3. check whether the trigger matches
  4. build a WiredContext
  5. run selectors first, so the target set is available
  6. apply selection-filter extras if present
  7. evaluate conditions
  8. apply stack-level gates such as execution limit
  9. activate the trigger and extras
  10. execute or schedule effects

Important consequences of this model:

  • selectors run before conditions in the new engine
  • conditions can inspect the selected targets or even the whole stack
  • effects may run immediately or with delay
  • extras can modify selection, condition evaluation, effect ordering, and effect subset choice

2.3 Tick rules

The centralized tick service is defined in WiredTickService.

Current core rules:

  • default global tick interval: 50ms
  • hard allowed range: 10ms to 500ms
  • repeaters and other tickables use a shared global tick counter
  • tickables are registered per room
  • when a room is unloaded, tickables should be unregistered

This means:

  • repeaters are synchronized with each other
  • two repeaters with the same timing do not drift independently per room
  • unload/cleanup behavior matters for room-scoped temporary state

2.4 Delay rules

The classic wired delay value is stored in half-second steps.

Runtime rule:

  • effective delay in milliseconds = delay * 500

Examples:

  • delay 0 = immediate execution
  • delay 1 = 500ms
  • delay 2 = 1000ms

This rule is used both by the legacy path and by the new engine.

2.5 Stack ordering rules

There are several separate notions of order:

  • stack candidate order
    • candidate stacks are found through the index for the specific event type
  • item ordering inside one tile stack
    • WiredExecutionOrderUtil sorts by:
      • z
      • then item id
  • effect subset modifiers
    • wf_xtra_random can choose only part of the effects
    • wf_xtra_unseen can rotate through effects without repeats
  • ordered execution
    • wf_xtra_exec_in_order is the explicit “run in stable stack order” modifier

Practical takeaway:

  • if there is no order modifier, execution may depend on the collection/order produced by the runtime path
  • if exact order matters, wf_xtra_exec_in_order is the intended box to use

2.6 Selection rules

Selectors build or refine the WiredTargets inside WiredContext.

In practice:

  • target users and target furni are built before conditions are checked
  • later effects consume those selected targets
  • some selectors are pure “build a selection” tools
  • some extras then trim, sort, or invert that selection

2.7 Condition rules

Conditions are evaluated after selectors.

General behavior:

  • if there are no conditions, the stack can continue directly to effects
  • if there are conditions, all configured condition logic must pass according to the current evaluation mode
  • wf_xtra_or_eval changes how the condition results are aggregated

The runtime supports both:

  • ordinary condition matching
  • grouped OR semantics through condition operators and the OR-eval extra

2.8 Protection rules

The wired runtime has multiple safety layers:

  • maximum steps per stack
  • recursion depth protection
  • per-room event rate limiting
  • room temporary wired ban after abuse
  • delayed queue cap
  • execution budget / usage cap per room window

Main defaults from runtime/config:

  • wired.engine.maxStepsPerStack = 100
  • wired.abuse.max.recursion.depth = 10
  • wired.abuse.max.events.per.window = 100
  • wired.abuse.rate.limit.window.ms = 10000
  • wired.abuse.ban.duration.ms = 600000
  • wired.monitor.usage.window.ms = 1000
  • wired.monitor.usage.limit = 1000
  • wired.monitor.delayed.events.limit = 100

2.9 Monitor and diagnostics rules

The new engine tracks room diagnostics through WiredRoomDiagnostics.

This is where :wired monitor gets values such as:

  • usage in current window
  • delayed events count
  • average execution time
  • peak execution time
  • recursion state
  • heavy room status
  • overload windows

Heavy/overload decisions are based on rolling windows, not on a single event.

2.10 Legacy compatibility notes

The project still contains WiredHandler.

Important practical notes:

  • WiredManager is the intended modern entrypoint
  • wired.engine.enabled and wired.engine.exclusive are treated as compatibility-only flags by WiredManager
  • WiredHandler still exists and is useful for compatibility and for understanding legacy behavior

So when documenting stacks, it is best to think in terms of:

  • modern runtime: WiredManager + WiredEngine
  • legacy compatibility surface: WiredHandler

2.11 Custom variable rules

Custom wired variables are defined by:

  • wf_var_user
  • wf_var_furni
  • wf_var_room

Shared rules:

  • variable names must be unique across the whole room, even across different variable types
  • allowed name length: 1..40
  • allowed characters: letters, numbers, _

Availability rules:

  • wf_var_user
    • room-scoped while the user is in the room
    • or permanent
  • wf_var_furni
    • room-active while the room is active/loaded
    • or permanent
  • wf_var_room
    • room-active
    • or permanent

Timestamp rules:

  • user variables: creation/update are tied to the assignment on that user
  • furni variables: creation/update are tied to the assignment on that furni
  • room variables: practically meaningful timestamp is mainly the last update time

Current context-status note:

  • context appears in several variable-related layouts
  • it is still partial / placeholder in several runtime paths
  • user, furni, and room/global are the truly active targets today

2.12 Useful global config keys

Key Meaning
wired.engine.enabled Compatibility-only legacy flag
wired.engine.exclusive Compatibility-only legacy flag
wired.engine.maxStepsPerStack Loop/step protection limit
wired.engine.debug Verbose engine logging
wired.custom.enabled Legacy custom wired compatibility behavior
hotel.wired.furni.selection.count Max furni selection size stored by wired boxes
hotel.wired.max_delay Max accepted delay value
hotel.wired.message.max_length Max wired/bot text size
wired.effect.teleport.delay Teleport effect delay
wired.tick.interval.ms Global tick loop interval
wired.tick.debug Tick debug logging
wired.tick.thread.priority Tick thread priority
wired.abuse.max.recursion.depth Recursion protection
wired.abuse.max.events.per.window Event spam protection
wired.abuse.rate.limit.window.ms Abuse window size
wired.abuse.ban.duration.ms Temporary room wired-ban duration
wired.monitor.usage.window.ms Usage monitor window size
wired.monitor.usage.limit Execution budget per window
wired.monitor.delayed.events.limit Delayed queue ceiling
wired.monitor.overload.average.ms Overload average threshold
wired.monitor.overload.peak.ms Overload peak threshold
wired.monitor.heavy.usage.percent Heavy-room usage threshold
wired.highscores.displaycount Wired highscore rows shown to users

3. Triggers

wf_trg_walks_on_furni

  • Class: WiredTriggerHabboWalkOnFurni
  • Behavior: fires when a user walks onto the selected furni/tile stack.
  • Main settings: selected furni, standard trigger cooldown.
  • Notes: commonly used as the first event in movement or pressure-style stacks.

wf_trg_walks_off_furni

  • Class: WiredTriggerHabboWalkOffFurni
  • Behavior: fires when a user leaves the selected furni/tile stack.
  • Main settings: selected furni, standard trigger cooldown.
  • Notes: useful for exit logic, cleanup logic, and delayed “leave area” patterns.

wf_trg_click_furni

  • Class: WiredTriggerHabboClicksFurni
  • Behavior: fires when a user clicks a furni.
  • Main settings: selected furni.
  • Notes: click-based stacks often combine this with selectors or trigger-user conditions.

wf_trg_click_tile

  • Class: WiredTriggerHabboClicksTile
  • Behavior: fires when a user clicks a tile.
  • Main settings: selected click-tile furni / trigger area depending on setup.
  • Notes: often used for invisible tile-style interactions.

wf_trg_click_user

  • Class: WiredTriggerHabboClicksUser
  • Behavior: fires when one avatar clicks another avatar.
  • Main settings: runtime flags such as menu blocking and rotation behavior.
  • Notes: the event carries both the clicking user and the clicked user.

wf_trg_user_performs_action

  • Class: WiredTriggerHabboPerformsAction
  • Behavior: fires when a user performs a configured avatar action.
  • Main settings: action id and action parameter.
  • Notes: pairs naturally with the matching positive/negative action conditions.

wf_trg_enter_room

  • Class: WiredTriggerHabboEntersRoom
  • Behavior: fires when a user enters the room.
  • Main settings: none beyond default cooldown.
  • Notes: common for welcome logic, spawn logic, variable assignment, and snapshot restore.

wf_trg_leave_room

  • Class: WiredTriggerHabboLeavesRoom
  • Behavior: fires when a user leaves the room.
  • Main settings: none beyond default cooldown.
  • Notes: common for cleanup and last-known-state stacks.

wf_trg_says_something

  • Class: WiredTriggerHabboSaysKeyword
  • Behavior: fires when a user says the configured text/keyword.
  • Main settings: text/keyword, message hiding mode.
  • Notes: can optionally suppress the visible chat output when configured to hide the message.

wf_trg_clock_counter

  • Class: WiredTriggerClockCounter
  • Behavior: fires when a selected counter reaches its configured match point.
  • Main settings: target counter(s), counter matching behavior.
  • Notes: often combined with wf_act_control_clock and wf_act_adjust_clock.

wf_trg_periodically

  • Class: WiredTriggerRepeater
  • Behavior: fires on a repeating interval.
  • Main settings: repeat interval.
  • Notes: synchronized through the global tick service.

wf_trg_period_short

  • Class: WiredTriggerRepeaterShort
  • Behavior: faster repeating trigger with short cadence.
  • Main settings: short repeater timing.
  • Notes: aligned to the global 50ms tick service.

wf_trg_period_long

  • Class: WiredTriggerRepeaterLong
  • Behavior: repeating trigger with longer cadence.
  • Main settings: long repeater timing.
  • Notes: intended for lower-frequency repeating behavior.

wf_trg_state_changed

  • Class: WiredTriggerFurniStateToggled
  • Behavior: fires when the state of the selected furni changes.
  • Main settings: selected furni.
  • Notes: runtime is shared with wf_trg_stuff_state.

wf_trg_stuff_state

  • Class: WiredTriggerFurniStateToggled
  • Behavior: same runtime behavior as wf_trg_state_changed.
  • Main settings: selected furni.
  • Notes: kept as a second key/alias for compatibility/content mapping.

wf_trg_at_given_time

  • Class: WiredTriggerAtSetTime
  • Behavior: fires once after the configured time target is reached.
  • Main settings: time value.
  • Notes: behaves like a one-shot timer rather than a repeater.

wf_trg_at_time_long

  • Class: WiredTriggerAtTimeLong
  • Behavior: long-duration variant of the set-time trigger.
  • Main settings: time value.
  • Notes: used when the short version is not sufficient for the desired range.

wf_trg_collision

  • Class: WiredTriggerCollision
  • Behavior: fires when the configured collision case is detected.
  • Main settings: collision participants / collision mode.
  • Notes: can easily produce loops when combined with chase/flee unless protections are configured.

wf_trg_game_starts

  • Class: WiredTriggerGameStarts
  • Behavior: fires when the room game starts.
  • Main settings: none beyond default cooldown.
  • Notes: useful for score resets, timers, and spawn setup.

wf_trg_game_ends

  • Class: WiredTriggerGameEnds
  • Behavior: fires when the room game ends.
  • Main settings: none beyond default cooldown.
  • Notes: useful for rewards, cleanup, and reset logic.

wf_trg_bot_reached_stf

  • Class: WiredTriggerBotReachedFurni
  • Behavior: fires when a bot reaches the selected furni.
  • Main settings: bot path target furni.
  • Notes: typically paired with bot movement effects.

wf_trg_bot_reached_avtr

  • Class: WiredTriggerBotReachedHabbo
  • Behavior: fires when a bot reaches an avatar.
  • Main settings: target avatar/source mode.
  • Notes: useful for escort, interaction, or story-style flows.

wf_trg_score_achieved

  • Class: WiredTriggerScoreAchieved
  • Behavior: fires when the configured score threshold is reached.
  • Main settings: score threshold.
  • Notes: usually tied to game or team score flows.

wf_trg_game_team_win

  • Class: WiredTriggerTeamWins
  • Behavior: fires when a team wins the current room game.
  • Main settings: target team.
  • Notes: can be used for reward or celebration logic.

wf_trg_game_team_lose

  • Class: WiredTriggerTeamLoses
  • Behavior: fires when a team loses the current room game.
  • Main settings: target team.
  • Notes: often paired with reset or consolation logic.

wf_trg_recv_signal

  • Class: WiredTriggerReceiveSignal
  • Behavior: fires when a matching signal is received from wf_act_send_signal.
  • Main settings: selected antenna(s), signal/channel matching.
  • Notes: can receive user/furni payload carried by the signal event.

4. Effects

wf_act_toggle_state

  • Class: WiredEffectToggleFurni
  • Behavior: toggles the state of the selected furni.
  • Main settings: selected furni, effect delay.
  • Notes: one of the most common state-manipulation effects.

wf_act_reset_timers

  • Class: WiredEffectResetTimers
  • Behavior: resets compatible timer/repeater-style boxes.
  • Main settings: selected timer/counter/repeater items.
  • Notes: used to restart timing flows cleanly.

wf_act_match_to_sshot

  • Class: WiredEffectMatchFurni
  • Behavior: restores furni to a saved snapshot of state/position/rotation settings.
  • Main settings: selected furni, snapshot match mode/settings.
  • Notes: usually paired with move/rotate or state-change effects.

wf_act_move_rotate

  • Class: WiredEffectMoveRotateFurni
  • Behavior: moves and/or rotates furni according to the configured pattern.
  • Main settings: selected furni, movement direction, rotation behavior, effect delay.
  • Notes: obeys move physics extras when present.

wf_act_give_score

  • Class: WiredEffectGiveScore
  • Behavior: gives score to the target user/player.
  • Main settings: score amount.
  • Notes: room/game scoring effect.

wf_act_show_message

  • Class: WiredEffectWhisper
  • Behavior: sends the configured message text.
  • Main settings: message text, effect delay.
  • Notes: text length is limited by wired message config.

wf_act_teleport_to

  • Class: WiredEffectTeleport
  • Behavior: teleports the target user to the configured destination.
  • Main settings: target furni/tile, effect delay.
  • Notes: also respects wired.effect.teleport.delay.

wf_act_join_team

  • Class: WiredEffectJoinTeam
  • Behavior: moves the target user into the selected team.
  • Main settings: team id/color.
  • Notes: game-specific utility effect.

wf_act_leave_team

  • Class: WiredEffectLeaveTeam
  • Behavior: removes the target user from their team.
  • Main settings: effect delay.
  • Notes: typically used in game cleanup.

wf_act_chase

  • Class: WiredEffectMoveFurniTowards
  • Behavior: moves furni toward the configured target.
  • Main settings: selected furni, target source, movement distance/direction rules.
  • Notes: can interact strongly with collision and movement validation.

wf_act_flee

  • Class: WiredEffectMoveFurniAway
  • Behavior: moves furni away from the configured target.
  • Main settings: selected furni, target source, movement rules.
  • Notes: often paired with collision or proximity triggers.

wf_act_move_to_dir

  • Class: WiredEffectChangeFurniDirection
  • Behavior: changes furni direction/rotation.
  • Main settings: selected furni, new direction or direction mode.
  • Notes: pure direction-change effect without full movement pathing.

wf_act_give_score_tm

  • Class: WiredEffectGiveScoreToTeam
  • Behavior: gives score directly to a team.
  • Main settings: team id and score amount.
  • Notes: separate from single-user score.

wf_act_toggle_to_rnd

  • Class: WiredEffectToggleRandom
  • Behavior: toggles a random compatible furni among the selected set.
  • Main settings: selected furni.
  • Notes: randomness is per execution.

wf_act_move_furni_to

  • Class: WiredEffectMoveFurniTo
  • Behavior: moves furni to a configured target position.
  • Main settings: selected furni, destination tile/furni, effect delay.
  • Notes: works with movement physics and animation extras.

wf_act_give_reward

  • Class: WiredEffectGiveReward
  • Behavior: gives a configured reward.
  • Main settings: reward type, reward content, amount, inventory/catalog parameters depending on reward mode.
  • Notes: may generate inventory items, badges, or related reward outputs depending on configuration.

wf_act_call_stacks

  • Class: WiredEffectTriggerStacks
  • Behavior: triggers other stacks indirectly.
  • Main settings: selected furni/tile sources.
  • Notes: recursion protection is important here.

wf_act_kick_user

  • Class: WiredEffectKickHabbo
  • Behavior: kicks the target user from the room.
  • Main settings: target source, effect delay.
  • Notes: administrative/gameplay removal effect.

wf_act_mute_triggerer

  • Class: WiredEffectMuteHabbo
  • Behavior: mutes the target user.
  • Main settings: mute duration / target source depending on layout.
  • Notes: often used in moderation or mini-game penalties.

wf_act_bot_teleport

  • Class: WiredEffectBotTeleport
  • Behavior: teleports the selected bot.
  • Main settings: bot source and destination.
  • Notes: bot-only effect.

wf_act_bot_move

  • Class: WiredEffectBotWalkToFurni
  • Behavior: makes a bot walk toward the selected furni.
  • Main settings: bot source, target furni.
  • Notes: commonly paired with bot reached triggers.

wf_act_bot_talk

  • Class: WiredEffectBotTalk
  • Behavior: makes a bot say configured text.
  • Main settings: bot source, message text.
  • Notes: subject to wired/bot text size limits.

wf_act_bot_give_handitem

  • Class: WiredEffectBotGiveHandItem
  • Behavior: gives a handitem to a bot.
  • Main settings: bot source, handitem id.
  • Notes: bot cosmetic / state effect.

wf_act_bot_follow_avatar

  • Class: WiredEffectBotFollowHabbo
  • Behavior: makes a bot follow an avatar.
  • Main settings: bot source, avatar source.
  • Notes: useful for escort or scripted behaviors.

wf_act_bot_clothes

  • Class: WiredEffectBotClothes
  • Behavior: changes a bots clothes/look.
  • Main settings: bot source, look string.
  • Notes: bot appearance effect.

wf_act_bot_talk_to_avatar

  • Class: WiredEffectBotTalkToHabbo
  • Behavior: makes a bot talk toward an avatar/target.
  • Main settings: bot source, avatar target, text.
  • Notes: dialogue-oriented bot effect.

wf_act_give_respect

  • Class: WiredEffectGiveRespect
  • Behavior: gives respect to the target user.
  • Main settings: respect amount / target source.
  • Notes: social reward effect.

wf_act_alert

  • Class: WiredEffectAlert
  • Behavior: sends an alert window/message.
  • Main settings: alert text.
  • Notes: distinct from whisper-style chat output.

wf_act_give_handitem

  • Class: WiredEffectGiveHandItem
  • Behavior: gives a handitem to the target user.
  • Main settings: handitem id.
  • Notes: user state/cosmetic effect.

wf_act_give_effect

  • Class: WiredEffectGiveEffect
  • Behavior: gives an avatar effect to the target user.
  • Main settings: effect id.
  • Notes: visual avatar effect.

wf_act_freeze

  • Class: WiredEffectFreeze
  • Behavior: freezes the selected user targets.
  • Main settings: target source, effect delay.
  • Notes: mainly game/control utility.

wf_act_unfreeze

  • Class: WiredEffectUnfreeze
  • Behavior: unfreezes the selected user targets.
  • Main settings: target source, effect delay.
  • Notes: counterpart to wf_act_freeze.

wf_act_furni_to_user

  • Class: WiredEffectFurniToUser
  • Behavior: moves furni toward/on a user target.
  • Main settings: furni source, user source, effect delay.
  • Notes: movement batching/physics extras may change the visible result.

wf_act_user_to_furni

  • Class: WiredEffectUserToFurni
  • Behavior: moves a user toward a furni target.
  • Main settings: user source, furni target.
  • Notes: a user-targeted movement effect.

wf_act_furni_to_furni

  • Class: WiredEffectFurniToFurni
  • Behavior: moves one furni set onto another furni set.
  • Main settings: primary furni source, secondary furni source.
  • Notes: supports double-selection source flow.

wf_act_set_altitude

  • Class: WiredEffectSetAltitude
  • Behavior: sets furni altitude.
  • Main settings: selected furni, altitude value or altitude mode.
  • Notes: used in advanced movement / stacking setups.

wf_act_rel_mov

  • Class: WiredEffectRelativeMove
  • Behavior: moves furni using relative X/Y offsets.
  • Main settings: selected furni, X offset, Y offset.
  • Notes: easier to reason about than absolute destination when building movement loops.

wf_act_control_clock

  • Class: WiredEffectControlClock
  • Behavior: controls counter boxes.
  • Main settings: selected counter(s), action mode such as start/stop/reset/pause/resume.
  • Notes: works directly with counter-based trigger/condition flows.

wf_act_adjust_clock

  • Class: WiredEffectAdjustClock
  • Behavior: adjusts a counters current value.
  • Main settings: selected counter(s), operation mode, amount.
  • Notes: intended for dynamic counter manipulation.

wf_act_move_rotate_user

  • Class: WiredEffectMoveRotateUser
  • Behavior: moves and/or rotates user targets.
  • Main settings: user source, movement mode, direction/rotation settings.
  • Notes: user-side analogue of furni move/rotate logic.

wf_act_send_signal

  • Class: WiredEffectSendSignal
  • Behavior: sends a signal through antenna-based wiring.
  • Main settings: selected antenna furni, signal payload/source options.
  • Notes: can carry user/furni payload to wf_trg_recv_signal.

wf_act_give_var

  • Class: WiredEffectGiveVariable
  • Behavior: assigns a custom variable to a compatible target.
  • Main settings: variable definition, target type/source, overwrite flag, initial value if the variable has value.
  • Notes: works with wf_var_user and wf_var_furni; room/global variables are definition-driven and do not need this assigner.

wf_act_remove_var

  • Class: WiredEffectRemoveVariable
  • Behavior: removes a custom variable assignment from the selected target.
  • Main settings: variable definition, target type/source.
  • Notes: counterpart to wf_act_give_var.

wf_act_change_var_val

  • Class: WiredEffectChangeVariableValue
  • Behavior: changes the value of a variable by applying an operation.
  • Main settings: variable selection, operation, reference mode, constant or reference variable, reference source, target source.
  • Supported operations: assign, add, subtract, multiply, divide, power, modulo, min, max, random, absolute, bitwise AND/OR/XOR/NOT, left shift, right shift.
  • Notes: one of the most flexible variable effects; textual rendering is separate and handled by extras.

5. Selectors

General selector notes

Selectors typically do one or both of these:

  • build a new target set
  • filter/transform an existing target set

When the UI exposes classic selector options, those usually include:

  • filter the existing selection
  • invert the result

wf_slc_furni_area

  • Class: WiredEffectFurniArea
  • Behavior: selects furni in a configured area.
  • Main settings: area size/position.
  • Notes: foundational room-space selector.

wf_slc_furni_neighborhood

  • Class: WiredEffectFurniNeighborhood
  • Behavior: selects furni in a local neighborhood around the source point.
  • Main settings: neighborhood/radius.
  • Notes: useful for adjacency-based logic.

wf_slc_furni_bytype

  • Class: WiredEffectFurniByType
  • Behavior: selects furni by base furni type.
  • Main settings: furni type.
  • Notes: good for “all chairs”, “all switches”, and similar patterns.

wf_slc_furni_altitude

  • Class: WiredEffectFurniAltitude
  • Behavior: selects furni by altitude relation/value.
  • Main settings: compare mode and altitude target.
  • Notes: useful in stacked build logic.

wf_slc_furni_onfurni

  • Class: WiredEffectFurniOnFurni
  • Behavior: selects furni that are on top of other furni.
  • Main settings: base furni selection.
  • Notes: stack-inspection selector.

wf_slc_furni_picks

  • Class: WiredEffectFurniPicks
  • Behavior: selects a hand-picked list of furni.
  • Main settings: selected furni list.
  • Notes: capped by hotel.wired.furni.selection.count.

wf_slc_furni_signal

  • Class: WiredEffectFurniSignal
  • Behavior: selects furni carried by a signal event.
  • Main settings: signal source mode.
  • Notes: meaningful only in signal-driven stacks.

wf_slc_users_area

  • Class: WiredEffectUsersArea
  • Behavior: selects users in a configured area.
  • Main settings: area size/position.
  • Notes: area equivalent of the furni selector.

wf_slc_users_neighborhood

  • Class: WiredEffectUsersNeighborhood
  • Behavior: selects users in a nearby neighborhood.
  • Main settings: neighborhood/radius.
  • Notes: good for local interaction logic.

wf_slc_users_signal

  • Class: WiredEffectUsersSignal
  • Behavior: selects users carried by a signal event.
  • Main settings: signal source mode.
  • Notes: signal-only context.

wf_slc_users_bytype

  • Class: WiredEffectUsersByType
  • Behavior: selects users by runtime category.
  • Main settings: user type such as habbo, bot, pet.
  • Notes: useful for mixed rooms with bots and pets.

wf_slc_users_team

  • Class: WiredEffectUsersTeam
  • Behavior: selects users by team membership.
  • Main settings: team id/color.
  • Notes: game-centric selector.

wf_slc_users_byaction

  • Class: WiredEffectUsersByAction
  • Behavior: selects users by current action/state.
  • Main settings: action type / action parameter.
  • Notes: complements the action trigger/conditions.

wf_slc_users_byname

  • Class: WiredEffectUsersByName
  • Behavior: selects users whose names are listed in the text area.
  • Main settings: multiline list of usernames.
  • Notes: direct name-driven selector.

wf_slc_users_handitem

  • Class: WiredEffectUsersHandItem
  • Behavior: selects users holding a specific handitem.
  • Main settings: handitem id.
  • Notes: useful for role/item possession flows.

wf_slc_users_onfurni

  • Class: WiredEffectUsersOnFurni
  • Behavior: selects users standing on selected furni.
  • Main settings: base furni selection.
  • Notes: common in pressure/tile gameplay.

wf_slc_users_group

  • Class: WiredEffectUsersGroup
  • Behavior: selects users by group relationship in the room.
  • Main settings: group relation/mode.
  • Notes: useful for rights/group-room logic.

wf_slc_furni_with_var

  • Class: WiredEffectFurniWithVariable
  • Behavior: selects furni that hold a chosen custom variable.
  • Main settings: variable selection, optional value filter, comparison operator, constant or variable reference, reference source, selector options.
  • Notes: if value filtering is disabled, it behaves as a presence-only selector.

wf_slc_users_with_var

  • Class: WiredEffectUsersWithVariable
  • Behavior: selects users that hold a chosen custom variable.
  • Main settings: variable selection, optional value filter, comparison operator, constant or variable reference, reference source, selector options.
  • Notes: user-side analogue of the furni variable selector.

6. Conditions

General condition notes

Conditions can be thought of as gates for the stack.

Common patterns:

  • positive/negative counterpart pairs
  • threshold checks
  • “match the current selection”
  • variable-based checks
  • time/date checks

wf_cnd_has_furni_on

  • Class: WiredConditionFurniHaveFurni
  • Behavior: true if the configured furni have other furni on top.
  • Main settings: target furni selection.

wf_cnd_furnis_hv_avtrs

  • Class: WiredConditionFurniHaveHabbo
  • Behavior: true if the configured furni currently have avatars on top.
  • Main settings: target furni selection.

wf_cnd_stuff_is

  • Class: WiredConditionFurniTypeMatch
  • Behavior: true if the furni match the configured type.
  • Main settings: furni type.

wf_cnd_actor_in_group

  • Class: WiredConditionGroupMember
  • Behavior: true if the acting user is in the required group relation.
  • Main settings: group relation.

wf_cnd_user_count_in

  • Class: WiredConditionHabboCount
  • Behavior: true if room user count satisfies the configured threshold.
  • Main settings: comparison and count value.

wf_cnd_wearing_effect

  • Class: WiredConditionHabboHasEffect
  • Behavior: true if the target user is wearing the configured effect.
  • Main settings: effect id.

wf_cnd_wearing_badge

  • Class: WiredConditionHabboWearsBadge
  • Behavior: true if the target user wears the configured badge.
  • Main settings: badge code.

wf_cnd_time_less_than

  • Class: WiredConditionLessTimeElapsed
  • Behavior: true if less than the configured time has elapsed.
  • Main settings: duration.

wf_cnd_match_snapshot

  • Class: WiredConditionMatchStatePosition
  • Behavior: true if the current furni state/position matches the stored snapshot.
  • Main settings: selected furni, snapshot fields to compare.

wf_cnd_time_more_than

  • Class: WiredConditionMoreTimeElapsed
  • Behavior: true if more than the configured time has elapsed.
  • Main settings: duration.

wf_cnd_not_furni_on

  • Class: WiredConditionNotFurniHaveFurni
  • Behavior: logical negation of wf_cnd_has_furni_on.
  • Main settings: target furni selection.

wf_cnd_not_hv_avtrs

  • Class: WiredConditionNotFurniHaveHabbo
  • Behavior: logical negation of wf_cnd_furnis_hv_avtrs.
  • Main settings: target furni selection.

wf_cnd_not_stuff_is

  • Class: WiredConditionNotFurniTypeMatch
  • Behavior: logical negation of wf_cnd_stuff_is.
  • Main settings: furni type.

wf_cnd_not_user_count

  • Class: WiredConditionNotHabboCount
  • Behavior: logical negation of the user-count match.
  • Main settings: comparison and count value.

wf_cnd_not_wearing_fx

  • Class: WiredConditionNotHabboHasEffect
  • Behavior: true if the user is not wearing the configured effect.
  • Main settings: effect id.

wf_cnd_not_wearing_b

  • Class: WiredConditionNotHabboWearsBadge
  • Behavior: true if the user is not wearing the configured badge.
  • Main settings: badge code.

wf_cnd_not_in_group

  • Class: WiredConditionNotInGroup
  • Behavior: true if the user is not in the configured group relation.
  • Main settings: group relation.

wf_cnd_not_in_team

  • Class: WiredConditionNotInTeam
  • Behavior: true if the user is not in the configured team.
  • Main settings: team id/color.

wf_cnd_not_match_snap

  • Class: WiredConditionNotMatchStatePosition
  • Behavior: logical negation of snapshot match.
  • Main settings: selected furni, snapshot fields to compare.

wf_cnd_not_trggrer_on

  • Class: WiredConditionNotTriggerOnFurni
  • Behavior: true if the triggerer is not on the selected furni.
  • Main settings: selected furni.

wf_cnd_actor_in_team

  • Class: WiredConditionTeamMember
  • Behavior: true if the actor belongs to the required team.
  • Main settings: team id/color.

wf_cnd_trggrer_on_frn

  • Class: WiredConditionTriggerOnFurni
  • Behavior: true if the triggerer is on the selected furni.
  • Main settings: selected furni.

wf_cnd_has_handitem

  • Class: WiredConditionHabboHasHandItem
  • Behavior: true if the user currently holds the configured handitem.
  • Main settings: handitem id.

wf_cnd_not_has_handitem

  • Class: WiredConditionNotHabboHasHandItem
  • Behavior: logical negation of the handitem condition.
  • Main settings: handitem id.

wf_cnd_date_rng_active

  • Class: WiredConditionDateRangeActive
  • Behavior: true if current server time is between the configured absolute date/time bounds.
  • Main settings: start timestamp, end timestamp.

wf_cnd_valid_moves

  • Class: WiredConditionMovementValidation
  • Behavior: simulates movement-related effects in the current stack and fails if a movement would be invalid.
  • Main settings: no major user-facing setting besides stack composition.
  • Notes: especially useful before move/rotate stacks.

wf_cnd_counter_time_matches

  • Class: WiredConditionCounterTimeMatches
  • Behavior: true if the selected counter(s) match the configured time value.
  • Main settings: counter selection, compare mode, target value, quantifier.

wf_cnd_match_time

  • Class: WiredConditionMatchTime
  • Behavior: true if server local time matches the configured clock rule.
  • Main settings: hour/minute/second or related time fields.

wf_cnd_match_date

  • Class: WiredConditionMatchDate
  • Behavior: true if server local date matches the configured date rule.
  • Main settings: weekday/day/month/year.

wf_cnd_actor_dir

  • Class: WiredConditionActorDir
  • Behavior: true if the actor faces the configured direction.
  • Main settings: direction.

wf_cnd_slc_quantity

  • Class: WiredConditionSelectionQuantity
  • Behavior: true if the current selection size matches the configured threshold.
  • Main settings: compare mode and amount.

wf_cnd_user_performs_action

  • Class: WiredConditionUserPerformsAction
  • Behavior: true if the tracked user action matches.
  • Main settings: action id / action parameter.

wf_cnd_not_user_performs_action

  • Class: WiredConditionNotUserPerformsAction
  • Behavior: logical negation of the user action condition.
  • Main settings: action id / action parameter.

wf_cnd_has_altitude

  • Class: WiredConditionHasAltitude
  • Behavior: true if the selected furni satisfy the altitude comparison.
  • Main settings: compare mode and altitude value.

wf_cnd_triggerer_match

  • Class: WiredConditionTriggererMatch
  • Behavior: true if the triggerer matches the required target/source rule.
  • Main settings: target source/match mode.

wf_cnd_not_triggerer_match

  • Class: WiredConditionNotTriggererMatch
  • Behavior: logical negation of triggerer match.
  • Main settings: target source/match mode.

wf_cnd_team_has_score

  • Class: WiredConditionTeamHasScore
  • Behavior: true if the selected team score satisfies the configured comparison.
  • Main settings: team id, comparison mode, score threshold.

wf_cnd_team_has_rank

  • Class: WiredConditionTeamHasRank
  • Behavior: true if the selected team currently has the configured rank/placement.
  • Main settings: team id, rank target.

wf_cnd_has_var

  • Class: WiredConditionHasVariable
  • Behavior: true if the target entity holds the chosen variable.
  • Main settings: variable selection, quantifier (all / any), variable source target.
  • Notes: current layout/runtime is centered on user and furni variables; context exists as future placeholder.

wf_cnd_neg_has_var

  • Class: WiredConditionNotHasVariable
  • Behavior: logical negation of wf_cnd_has_var.
  • Main settings: variable selection, quantifier, source target.

wf_cnd_var_val_match

  • Class: WiredConditionVariableValueMatch
  • Behavior: compares a variable value against a constant or another variable.
  • Main settings: variable selection, compare type (>, , =, , <, ), reference mode, reference variable/source, quantifier.
  • Notes: room/global variables are supported here; context remains partial.

wf_cnd_var_age_match

  • Class: WiredConditionVariableAgeMatch
  • Behavior: compares variable age against a duration.
  • Main settings: variable selection, compare field (creation or update time), compare type (lower than / higher than), duration value + unit, quantifier, source.
  • Notes: room/global variables are mostly meaningful for update time.

7. Extras

wf_xtra_random

  • Class: WiredExtraRandom
  • Behavior: executes only a random subset of effects instead of all effects.
  • Main settings: number of effects to choose, optional recent-history protection.
  • Notes: effect subset changes at each execution.

wf_xtra_unseen

  • Class: WiredExtraUnseen
  • Behavior: rotates through effects without repeating one until the full cycle is exhausted.
  • Main settings: hidden runtime state / no-repeat cycle.
  • Notes: useful when true round-robin behavior is preferred over randomness.

wf_blob

  • Class: WiredBlob
  • Behavior: special wired/game helper item.
  • Main settings: blob-specific gameplay/runtime state.
  • Notes: not a normal logic extra in the same sense as the others, but it is registered in the wired extra family.

wf_xtra_or_eval

  • Class: WiredExtraOrEval
  • Behavior: changes how condition results are aggregated.
  • Main settings: evaluation mode and compare value.
  • Notes: lets stacks use modes beyond plain “all conditions must pass”.

wf_xtra_filter_furni

  • Class: WiredExtraFilterFurni
  • Behavior: trims the current furni selection to a limited quantity.
  • Main settings: quantity.
  • Notes: selection-filter extra, not a normal selector.

wf_xtra_filter_user

  • Class: WiredExtraFilterUser
  • Behavior: trims the current user selection to a limited quantity.
  • Main settings: quantity.
  • Notes: same runtime family as wf_xtra_filter_users.

wf_xtra_filter_users

  • Class: WiredExtraFilterUser
  • Behavior: same runtime behavior as wf_xtra_filter_user.
  • Main settings: quantity.
  • Notes: alias key kept for content compatibility.

wf_xtra_filter_furni_by_var

  • Class: WiredExtraFilterFurniByVariable
  • Behavior: sorts furni by variable metric and keeps only the top N.
  • Main settings: variable selection, sort mode, quantity mode, constant quantity or variable reference, reference source.
  • Supported sort modes: highest value, lowest value, oldest creation, latest creation, oldest update, latest update.

wf_xtra_filter_users_by_var

  • Class: WiredExtraFilterUsersByVariable
  • Behavior: sorts users by variable metric and keeps only the top N.
  • Main settings: variable selection, sort mode, quantity mode, constant quantity or variable reference, reference source.
  • Supported sort modes: highest value, lowest value, oldest creation, latest creation, oldest update, latest update.

wf_xtra_mov_carry_users

  • Class: WiredExtraMoveCarryUsers
  • Behavior: carries users together with moved furni.
  • Main settings: carry mode.
  • Notes: affects how movement results are applied when furni move.

wf_xtra_mov_no_animation

  • Class: WiredExtraMoveNoAnimation
  • Behavior: suppresses movement animation.
  • Main settings: none besides presence in stack.
  • Notes: intended for instant or hidden movement behavior.

wf_xtra_anim_time

  • Class: WiredExtraAnimationTime
  • Behavior: overrides movement animation time.
  • Main settings: animation duration.
  • Notes: influences visual pacing, not core selection logic.

wf_xtra_mov_physics

  • Class: WiredExtraMovePhysics
  • Behavior: changes the physics rules applied during movement.
  • Main settings: physics flags such as collision/pass-through/stack behavior depending on layout.
  • Notes: important for advanced furni movement setups.

wf_xtra_exec_in_order

  • Class: WiredExtraExecuteInOrder
  • Behavior: forces ordered effect execution.
  • Main settings: none besides presence in stack.
  • Notes: the explicit “do not rely on arbitrary order” extra.

wf_xtra_execution_limit

  • Class: WiredExtraExecutionLimit
  • Behavior: allows the stack to execute only a configured number of times per window.
  • Main settings: max executions, time window.
  • Notes: stack-level throttle.

wf_xtra_text_output_username

  • Class: WiredExtraTextOutputUsername
  • Behavior: exposes one or more usernames as a text placeholder for other wired text.
  • Main settings: placeholder name, placeholder type (single/multiple), delimiter, user source.
  • Notes: works like a text injector for later wired text output.

wf_xtra_text_output_furni_name

  • Class: WiredExtraTextOutputFurniName
  • Behavior: exposes furni names as a text placeholder.
  • Main settings: placeholder name, placeholder type (single/multiple), delimiter, furni source.
  • Notes: furni-name counterpart to username output.

wf_xtra_text_output_variable

  • Class: WiredExtraTextOutputVariable
  • Behavior: exposes a variable value as a text placeholder.
  • Main settings: placeholder name, variable selection, display type (numeric / textual), placeholder type (single / multiple), delimiter, dynamic variable source.
  • Notes: textual display works only when the selected variable is connected through wf_xtra_var_text_connector.

wf_xtra_var_text_connector

  • Class: WiredExtraVariableTextConnector
  • Behavior: maps numeric values to text labels for a variable.
  • Main settings: text area mapping in the form 0=text, 1=text, and so on.
  • Notes: must live in the same stack context as the corresponding wf_var_* definition to be meaningful.

8. Variable Definitions

wf_var_user

  • Class: WiredExtraUserVariable
  • Behavior: defines a custom variable that can be assigned to users.
  • Main settings: variable name, has value flag, availability (while user is in room / permanent).
  • Notes: assignment is done through wf_act_give_var; timestamps belong to the assignment on the individual user.

wf_var_furni

  • Class: WiredExtraFurniVariable
  • Behavior: defines a custom variable that can be assigned to furni.
  • Main settings: variable name, has value flag, availability (while room is active / permanent).
  • Notes: non-permanent assignments are cleaned when the room is unloaded/unregistered from room tickables.

wf_var_room

  • Class: WiredExtraRoomVariable
  • Behavior: defines a room/global variable.
  • Main settings: variable name, availability (while room is active / permanent).
  • Notes: always has a value; there is no separate “has value” checkbox for room variables.

9. Special Wired Items

These are part of the wired ecosystem, even if they are not regular trigger/effect/selector/condition/extra boxes.

wf_highscore

  • Class: InteractionWiredHighscore
  • Behavior: wired highscore furniture that stores and displays ranked score data.
  • Main settings: score type, clear/reset policy, display behavior depending on furniture configuration.
  • Notes: governed also by wired.highscores.displaycount.

10. Practical Design Notes

10.1 If exact order matters

Use:

  • wf_xtra_exec_in_order

Do not rely on “it seems to run in that order” when the stack becomes more complex.

10.2 If the stack performs movement

Prefer to think about:

  • movement validation
  • movement physics extras
  • carry-users extra
  • animation/no-animation extras
  • snapshot restore effects

Movement stacks are where most subtle runtime interactions appear.

10.3 If the stack uses variables

Remember:

  • variable name must be room-unique
  • target type matters
  • room/global variables are definition-driven
  • textual rendering requires the text connector
  • context is not yet fully implemented everywhere

10.4 If the stack uses repeaters/timers

Remember:

  • repeaters are synchronized on the global tick loop
  • delay units are half-seconds
  • counters, repeaters, and timer-style triggers often need explicit reset/control logic

10.5 If the stack is heavy

Check:

  • selection size
  • number of delayed effects
  • recursion or self-trigger chains
  • random/unseen subsets
  • execution limits
  • room diagnostics in :wired

11. Quick Alias / Shared Runtime Notes

  • wf_trg_state_changed and wf_trg_stuff_state share the same runtime.
  • wf_xtra_filter_user and wf_xtra_filter_users share the same runtime.
  • Several positive/negative conditions are simple logical counterparts.
  • wf_act_give_var, wf_act_remove_var, wf_act_change_var_val, variable selectors, and variable conditions all operate on top of the same custom variable system defined by wf_var_*.