Skip to content
S3ctor’s S3cret St4sh
experiment

The House Moves When You're Not Looking

Use activation batches and small relative transforms to make dungeon clutter drift over time.

What this demonstrates

Why it works

When a matching static object becomes active, SSS samples a small position offset and rotation and applies them relative to the object's current transform. once: per_cell prevents duplicate work within the current activation batch, but allows a later batch to roll again.

Nothing is polling these objects. They move when the world wakes them back up. Because the transform is relative, repeated successful activations can accumulate into a slow drift rather than replacing the original placement with one fixed random value.

The catch

  • per_cell means the current activation batch, not a tracked cell identity, and its marker is not saved.
  • The transform itself may remain part of the saved world state, so this is accumulated mutation, not a temporary visual effect.
  • cell_match: tomb is deliberately broad. Replace it with explicit cells, regions, or a FlexTag condition when “tomb” is not a sufficient boundary.
  • The selectors use vanilla static record IDs; expand the list only after checking the active content load order.

Complete YAML

The source fixture is Examples/InstanceModifier_HouseMoves.yaml.

log_name: The House Moves When You're Not Looking
priority: polish

instances:
  - conditions:
      - object_type: Static
      - cell_match: tomb
      - record_id:
          - furn_bone_01
          - furn_bone_rib_01
          - furn_bone_skull_01
          - furn_bone_stake00
          - furn_com_lantern_hook
    once: per_cell
    actions:
      - transform:
          position:
            x: { min: -4, max: 4 }
            y: { min: -4, max: 4 }
          rotate:
            z: { min: -3, max: 3 }