Addon ID

  • salmanshh_procroom

Info

Statistics

  • Download count31 total downloads
  • Latest download count 12 downloads of latest version
  • Average download count1 downloads per day average

Owners

A list of all Actions, Conditions and Expressions supported in this addon.

Generation

  • Actions

    Add connection from room {0} to room {1}

    Add a link for custom room routes.

    Clear room {0} data key {1}

    Clear room metadata before reuse.

    Generate graph with seed {0} and biome {1}

    Build a seeded graph for a new run.

    Regenerate graph from last seed and biome

    Rebuild the last run for retries.

    Remove connection from room {0} to room {1}

    Remove a link while tuning routes.

    Set room {0} data key {1} to {2}

    Set room metadata for logic and tags.

  • Conditions

    On graph generated

    Run logic after a graph build.

  • Expressions

    GraphBiome

    Get the last biome for replay or debug.

    GraphJSON

    Serialize the full graph to a JSON string; use for custom map rendering, external save formats, or debug logging.

    GraphSeed

    Get the last seed for replay or debug.

    GraphTopology

    Get the topology used to generate the current graph; use for conditional logic when mixing topology configs.

    TotalDepths

    Get total depths for route planning.

    TotalRooms

    Get total rooms for pacing or debug.

Pathfinding

  • Actions

    Compute path from {0} to {1}

    Find and store the shortest path between two rooms; read it with PathLength and PathRoomByIndex. Leave From empty to start from the current room.

  • Conditions

    {1} is reachable from {0}

    True if a directed path of connections leads from one room to another. Leave From empty to start from the current room.

  • Expressions

    DistanceBetween

    Shortest number of connection hops from one room to another, or -1 if unreachable. Leave From empty to start from the current room.

    PathLength

    Number of rooms in the path stored by the last Compute Path action (0 if no path).

    PathRoomByIndex

    Get a room ID from the stored path by index (0 = start, PathLength-1 = destination).

Registry

  • Actions

    Guarantee room type {0} at depth {1}

    Force at least one room of this type to exist at the given depth tier.

    Add tag {1} to room type {0}

    Attach a tag to a room type so every room of this type inherits it at generation.

    Reset generation config overrides

    Reset overrides for a fresh run.

    Clear registered room types and biomes

    Clear room and biome lists for reloads.

    Define biome {0} display name {1}

    Create or replace a biome by ID without JSON. Use Set Biome Type Weight to configure it.

    Define room type {0} display {1} weight {2} depth {3}-{4} max/depth {5}

    Create or replace a room type. Sets depth range and per-depth cap inline. Use -1 for Max Depth or Max/Depth for no limit.

    Register biome from JSON {0}

    Register biome weights for varied runs.

    Register room type from JSON {0}

    Register room types for graph generation.

    Set biome {0} weight for type {1} to {2}

    Multiply a room type's spawn weight within a biome. 0 excludes it, 2 doubles its chance.

    Set config topology {0} depths {1} rooms {2}-{3}/depth

    Set all generation parameters in one action. Call before Generate Graph. Topologies: Linear Tiered = one chain per depth; Branching Path = tree with reconvergence; Freeform Grid = 2D grid with horizontal links; Hub & Spoke = hub room with dead-end wings per depth; Gauntlet = single-room corridor (1 room per depth); Ring = tier connections plus a bidirectional ring at each depth; River Delta = wide opening that narrows toward the boss; Skip Lane = tier connections plus seeded depth+2 shortcuts.

    Set generation config from JSON {0}

    Set per-run overrides before build.

    Set room type {0} can repeat adjacent: {1}

    Control whether two directly connected rooms can both be this type.

    Set room type {0} depth range {1} to {2}

    Restrict a room type to appear within a depth range. Use -1 for Max Depth to allow any.

    Set room type {0} max per depth to {1}

    Cap how many rooms of this type appear at any single depth tier. Use -1 for no limit.

  • Expressions

    CountBiomes

    Get how many biomes are registered; use with GetBiomeByIndex to build dynamic biome selection UIs.

    CountRoomTypes

    Get how many room types are registered; use with GetRoomTypeByIndex to build dynamic room-type picker UIs.

    GetBiomeByIndex

    Get a registered biome ID by index; pair with CountBiomes to iterate all biomes without hardcoding IDs.

    GetRoomTypeByIndex

    Get a registered room type ID by index; pair with CountRoomTypes to iterate all types without hardcoding IDs.

Room Queries

  • Actions

    Build room list (depth {0}, type {1}, tag {2})

    Build a filtered, ordered list of rooms; read it with RoomListCount and RoomListItem. Use depth -1, empty type and empty tag to match everything.

    Clear instance binding for room {0}

    Remove the object UID binding for a room.

    Bind room {0} to instance UID {1}

    Associate a spawned object's UID with a room. Read it back with RoomInstanceUID and pick with System: Pick by unique ID.

  • Conditions

    Room {0} data key {1} {2} {3}

    Compare a room's metadata value against a value. Numeric when both sides are numbers, otherwise a string comparison.

    Room {0} has a bound instance

    True if a room has an object UID bound via Set Room Instance.

  • Expressions

    CountAvailableRooms

    Count available rooms for route choices.

    CountConnectionsFrom

    Count exits from a room for navigation.

    CountEdges

    Total number of directed connections in the graph; pair with EdgeFrom/EdgeTo to draw every link.

    CountRoomsAtDepth

    Count rooms at a depth for pacing.

    CountRoomsByTag

    Count tagged rooms for theme logic.

    CountRoomsByType

    Count room types for balancing.

    EdgeFrom

    Source room ID of the edge at this index; loop 0..CountEdges-1 to draw connection lines.

    EdgeTo

    Target room ID of the edge at this index; loop 0..CountEdges-1 to draw connection lines.

    GetAvailableRoomByIndex

    Get an accessible room's ID by index; pair with CountAvailableRooms to build choice menus.

    GetConnectionFromByIndex

    Get a connected room's ID by index; pair with CountConnectionsFrom to list exits.

    GetRoomAtDepthByIndex

    Get a room ID at a depth tier by index; pair with CountRoomsAtDepth to iterate.

    GetRoomByIndex

    Get a room ID from the flat list of all rooms by index; pair with TotalRooms to spawn one object per room.

    GetRoomByTagIndex

    Get a tagged room's ID by index; pair with CountRoomsByTag to iterate tagged rooms.

    GetRoomByTypeIndex

    Get a typed room's ID by index; pair with CountRoomsByType to iterate type rooms.

    RoomBiome

    Get a room biome for theme checks.

    RoomByInstanceUID

    Room ID bound to the given object UID, or empty if none. Use in an object's On clicked to find which room was picked.

    RoomData

    Get room metadata for branching logic.

    RoomDataNumber

    Room metadata value read as a number (0 if missing or non-numeric).

    RoomDataString

    Room metadata value read as a string (empty if missing).

    RoomDepth

    Get a room depth for progression logic.

    RoomInstanceUID

    UID bound to a room via Set Room Instance, or -1 if none. Feed into System: Pick by unique ID.

    RoomListCount

    Number of rooms in the list built by the last Build Room List action.

    RoomListItem

    Get a room ID from the list built by Build Room List by index; loop 0..RoomListCount-1 to iterate the filtered set.

    RoomTags

    Get all tags on a room as a comma-separated string (type tags then runtime tags); use for display or text-based matching.

    RoomType

    Get a room type for event logic.

Traversal

  • Actions

    Add tag {1} to room {0}

    Add a runtime tag to a room; use to mark rooms dynamically (e.g. 'has_key', 'boss_spawned').

    Enter room {0}

    Move to a connected room for play.

    Force enter room {0}

    Jump to any room for debug or cutscenes.

    Lock room {0}

    Block a room until a condition clears.

    Mark room {0} visited

    Flag a room visited for custom flow.

    Remove tag {1} from room {0}

    Remove a runtime tag from a room; use to clear dynamic markers when a room state changes.

    Reset traversal state of room {0}

    Clear visited, revealed, and locked state for one room; use for challenge rooms that respawn.

    Reset traversal state

    Clear traversal state for a new route.

    Reveal room {0}

    Show a room for map or fog logic.

    Set start room to {0}

    Set the start room for a run.

    Unlock room {0}

    Allow entry after a lock clears.

    Unreveal room {0}

    Hide a room again for fog control.

  • Conditions

    Room {0} has data key {1}

    Check room data for branching logic.

    Room {0} has tag {1}

    Check if a room has a specific tag (from its type or added at runtime); use instead of iterating CountRoomTags.

    Graph is empty (no rooms generated)

    True if no graph has been generated yet; use as a guard before any traversal or query action.

    Is graph ready

    Check if a graph can be used.

    Is room {0} available

    True if a room is reachable and unlocked; use to gate player movement or dim UI.

    {0} is directly connected to {1}

    True if a direct one-way connection exists between two rooms; use to validate routes without iterating exits.

    Is room {0} locked

    Check if a room is blocked.

    Is room {0} revealed

    Check if a room is visible.

    Is room {0} visited

    Check if a room was visited.

    On all rooms at depth {0} cleared

    Trigger when a depth is fully cleared.

    On room {0} entered

    Trigger when a room is entered.

    On room {0} exited

    Fires when the player leaves a room; use to save state, close UI, or run cleanup logic on departure.

    On room of type {0} entered

    Trigger when a room type is entered.

    On room {0} unlocked

    Fires when a room is unlocked via Unlock Room; use to play door animations or show map indicators.

    On traversal blocked

    Fires when a room entry fails; use to show locked-door feedback or a warning.

  • Expressions

    BlockedRoomId

    Get the blocked room's ID; use for feedback or custom block handling.

    BlockReason

    Get why the last move was blocked; use to display player feedback text.

    ClearedDepth

    Get the last fully-cleared depth tier; use in OnAllRoomsAtDepthCleared events.

    CountConnectionsTo

    Get how many rooms have a connection leading into a room; use for 'convergence point' logic or map display.

    CountLockedRooms

    Get how many rooms are currently locked; use for key/puzzle tracking or a lock counter HUD.

    CountRevealedRooms

    Get how many rooms are revealed; use for map or exploration completion UI.

    CountRoomTags

    Get the total number of tags on a room (type tags + runtime tags); use with GetRoomTagByIndex to iterate.

    CountUnvisitedRooms

    Get how many rooms the player has not yet visited; use for 'rooms remaining' UI or completion tracking.

    CountUnvisitedRoomsAtDepth

    Get how many rooms at a depth have not been visited; use for per-floor 'rooms left' counters without manual subtraction.

    CountVisitedRooms

    Get how many rooms were visited; use for exploration stats or progress bars.

    CountVisitedRoomsAtDepth

    Get how many rooms at a depth tier the player has visited; use for per-depth clear progress bars.

    CurrentDepth

    Get the active room's depth tier; use for progression checks and difficulty scaling.

    CurrentRoomBiome

    Get the active room's biome; use for dynamic theming or loot table decisions.

    CurrentRoomId

    Get the active room's ID; use for queries, data reads, or UI binding.

    CurrentRoomType

    Get the active room's type; use for on-enter event branching (shop, boss, etc.).

    EnteredRoomBiome

    Get the last entered room's biome; use inside OnRoomEntered for theming.

    EnteredRoomDepth

    Get the last entered room's depth; use inside OnRoomEntered for progression logic.

    EnteredRoomId

    Get the last entered room's ID; use inside OnRoomEntered for data reads or UI.

    EnteredRoomType

    Get the last entered room's type; use inside OnRoomEntered for event branching.

    ExitedRoomBiome

    Get the biome of the room that was just left; use inside On Room Exited to handle biome-transition effects.

    ExitedRoomDepth

    Get the depth of the room that was just left; use inside On Room Exited to check if the player is descending.

    ExitedRoomId

    Get the ID of the room that was just left; use inside On Room Exited to know the departure room.

    ExitedRoomType

    Get the type of the room that was just left; use inside On Room Exited to trigger type-specific departure logic.

    GetConnectionToByIndex

    Get a room ID that connects into a room by index; pair with CountConnectionsTo to list all incoming routes.

    GetRoomTagByIndex

    Get a tag on a room by index (type tags first, then runtime tags); pair with CountRoomTags to iterate all tags.

    PreviousRoomId

    Get the room ID the player was in before the current one; use for back-button UI or narrative transitions.

    StartRoomId

    Get the ID of the room set as the start via Set Start Room; use to highlight spawn on a map.

Layout

  • Expressions

    RoomLaneCount

    Number of rooms in the same depth tier as this room; use to centre a tier when positioning.

    RoomLaneIndex

    Zero-based index of a room within its depth tier; use with RoomLaneCount to lay out a map screen.

    RoomNormalizedX

    Room position along the depth axis as 0-1 (start=0, deepest tier=1); multiply by map width and add an origin to place it.

    RoomNormalizedY

    Room position across its depth tier as 0-1, evenly spaced and centred; multiply by map height and add an origin to place it.