Page cover

🚒BA Board

A standalone and highly realistic Breathing Apparatus (BA) Entry Control Board system for UK-style fire services in FiveM.

🚀 Features

  • 📋 Fully functional BA Entry Control Board UI with drag-and-drop freetype areas

  • 🧑‍🚒 Insert/remove tags per player with synced real-time status

  • ⏱️ Dynamic Time To Whistle (TTW) and Time Of Whistle (TOW) calculation

  • 🔁 Realtime ADSU/DSU alarm monitoring and flashing

  • 🔊 Built-in audio alarms (evacuation tones, beeps)

  • 🚨 EVAC system with acknowledge prompt

  • 🧭 Supports multiple BA boards at once, each fully independent

  • ✅ Works with r_scba (optional) and ox_target

  • 🔌 Fully exportable for use with other scripts


📦 Dependencies

This script requires:

We also recommend:

  • BA Board 3D Model - Available on our store


🧱 Installation

Follow instructions in Getting Started


🧩 Commands

Command
Description

/dsu

Triggers DSU alarm

/withdraw

Triggers withdrawal alert

🛑 All commands only work while wearing an SCBA (If integration enabled).


🎯 Interactions

The system uses ox_target to handle interactions with placed board props.

When looking at a board, options include:

  • Open BA Board – View the UI

  • Insert Tag – Insert your identity into the board

  • Remove Tag – Only available on the board you've tagged into


📤 Exports

Client Exports

exports["DH_BABoard"]:IsTagInserted() -- Get whether client's tag is inserted (BOOL)
exports["DH_BABoard"]:GetCurrentBoardId() -- Get current netID of board open (int)
exports["DH_BABoard"]:GetTagBoardId() -- Get netID of board client has tag in (int)
exports["DH_BABoard"]:GetTTW() -- Get current client's time to whistle
exports["DH_BABoard"]:GetTOW() -- Get current client's time of whistle

Server Exports

exports["DH_BABoard"]:GetWearersForBoard(boardId) -- Get all wearers with tags in the board
exports["DH_BABoard"]:IsPlayerOnBoard(playerId)-- Does the player have their tag in? (Bool)
exports["DH_BABoard"]:GetBoardFromPlayer(playerId) -- Get the board netID the player has tag in

⚙️ Configuration

-- 🔧 Prop model used for the BA board
Config.BAPropModel = "prop_ba"  -- Change this if your server uses a custom model

-- 🚀 Enable or disable the spawn ba command 
--     (ANY prop matching the above prop will work, it doesn't need to be spawned 
--     by this script - Disable if using boot script or other spawning method)
Config.EnableSpawnCommand = true

-- Automatically detects if r_scba is active. Set to false to manually disable 
-- integration.
Config.UseSCBA = GetResourceState("r_scba") == "started"

-- 📡 Update frequency (in ms) for sending pressure/TTW updates
Config.UpdateInterval = 1000

-- ⏱️ Time (in seconds) a player must be stationary before ADSU alert triggers
Config.ADSU_TriggerTime = 28

-- 📢 Minimum pressure before whistle alarm (in bar)
Config.WhistlePressure = 50

-- 🧪 TTW Scaling Values
Config.StandardWorkingDuration = 30 -- minutes @ 300 bar
Config.HardWorkingDuration = 15     -- minutes @ 300 bar

💬 Credits

  • Developed by: RP Works Modding

  • Targeting System: ox_target

Last updated