Browse docs

Interior Extinguishers

Persistent wall extinguishers, custom mount placement, fill levels, maintenance, and inventory integration.

Overview

The interior extinguisher system turns configured world props into usable firefighting equipment. Firefighters can take an extinguisher from its wall mount, use it as WEAPON_FIREEXTINGUISHER, inspect its remaining fill, and return it to a nearby empty mount.

The default setup recognizes:

  • prop_fire_exting_1a
  • prop_fire_exting_1b
  • prop_fire_exting_2a
  • prop_fire_exting_3a

Persistent mount state

Taken extinguishers and custom mounts are stored in sky_fire_extinguishers. The saved state includes:

  • World position and full rotation
  • Current fill percentage
  • Maintenance condition
  • Whether the mount is occupied or empty
  • Inventory metadata
  • Custom mount ownership

This state is restored after a resource or server restart. An empty mount uses the streamed sky_fire_exting_mount prop until an extinguisher is returned.

Fill level and maintenance

The remaining fill follows the extinguisher between the wall and inventory. Metadata-capable inventories use the stored extinguisherFill/durability value; other integrations fall back to normalized durability or weapon ammo.

Authorized workers can use the radial menu to:

  • Check fill level and maintenance status
  • Take an extinguisher
  • Return it to an empty mount
  • Inspect nearby mounts from the Job Configurator

The maintenance state distinguishes checked, damaged, empty, and missing extinguishers. Access and the empty threshold are configured under Config.InteriorExtinguishers.maintenance.

Custom mount placement

Using fire_extinguisher_mount_kit starts the shared prop placer. Wall placement saves the exact position and three-axis rotation selected by the player.

By default:

  • Placement requires an on-duty authorized job
  • One kit is consumed after successful placement
  • Removing the custom mount returns the kit
  • Custom mounts persist across restarts
  • The Job Configurator lists each mount as Prop 1, Prop 2, and so on

The displayed IDs are compacted automatically when a custom mount is deleted.

Configuration

The feature is controlled by Config.InteriorExtinguishers:

SettingPurpose
enabledEnables interior extinguisher interactions
itemInventory weapon used when an extinguisher is taken
modelsWorld prop models treated as extinguisher mounts
fullAmmoAmmo value representing 100% fill
emptyMountOffsetLocal position correction for the empty mount prop
emptyMountHeadingOffsetModel-specific heading correction
placementCustom mount item, wall placement, access, and return behavior
maintenanceMaintenance access and empty threshold
stockOptional job-storage supply used for mount restocking

Required setup

  1. Import the current import.sql so sky_fire_extinguishers includes rotation, metadata, condition, and custom-mount columns.
  2. Copy fire_extinguisher_mount_kit.png into your inventory image directory.
  3. Register fire_extinguisher_mount_kit using the matching inventory definition.
  4. Verify WEAPON_FIREEXTINGUISHER exists as a unique weapon item.
  5. Restart sky_jobs_base before sky_firejob.