Skip to main content
The Status component manages player statuses like hunger, thirst, stress, and drunkenness. It has both server and client components — the server tracks persistence while the client handles visual display and effects.

Overview

Access via Status on both server and client.

Built-in Statuses

Hunger, Thirst, Stress, Drunk

Custom Statuses

Register your own status types

Visual Effects

HUD display, blur, shake effects

Persistence

Saved to character data

Server-Side Methods

Server-side Status methods manage data persistence. The client handles visual display and modification logic. Use Execute:Client or events to trigger client-side changes from the server.

Status:Register (Server)

Register a status type on the server.
string
required
Status identifier (e.g., 'PLAYER_HUNGER')
number
required
Maximum value
string
required
Icon identifier
function
Callback for tick logic
function
Callback for modification logic

Status.Get:All (Server)

Get all registered status definitions.
table
All registered status definitions

Status.Get:Single (Server)

Get a single status definition.
string
required
Status name

Status:Set (Server)

Set a status value for a player and sync to client.
number
required
Player server ID
string
required
Status name
number
required
New value
Example:

Status.Modify:Add (Server)

Add to a status value via client callback.
number
required
Player server ID
string
required
Status name
number
required
Amount to add
boolean
Add cooldown after modification
boolean
Force the modification (bypass checks)
Example:

Status.Modify:Remove (Server)

Remove from a status value via client callback.
Example:
For inverted statuses like Stress and Drunk (where higher = worse), Remove decreases the value and Add increases it. Use Remove to reduce these statuses.

Client-Side Methods

Status:Register (Client)

Register a status with visual properties for the HUD.
string
required
Status identifier
number
required
Maximum value
string
required
FontAwesome icon name
string
required
Hex color code for HUD display
boolean
required
Enable flash animation when low
function
required
Callback for value changes: function(change, force)
table
required
Display options (see Options below)

Status.Get:All (Client)

Get all statuses with their current values.
table
All statuses with current values from LocalPlayer.state

Status.Get:Single (Client)

Get a single status with current value.

Status.Set:All (Client)

Set all statuses to a specific value.

Status.Set:Single (Client)

Set a single status to a specific value.
Example:

Status.Modify:Add (Client)

Add to a status value on the client.

Status.Modify:Remove (Client)

Remove from a status value on the client.

Status:Reset

Reset all resettable statuses to their maximum value.
Statuses with noReset = true (like Stress and Drunk) are not affected by Reset.

Status:Toggle

Toggle the status system on or off.

Status:Check

Check if the status system is currently enabled.
boolean
true if status system is active

Options Structure


Status Storage

  • Character Data: Character:SetData("Status", { PLAYER_HUNGER = 100, ... })
  • State Variables: LocalPlayer.state["status:PLAYER_HUNGER"]
  • HUD Display: Registered via Hud:RegisterStatus()

Best Practices


Next Steps

Status - Defaults

Built-in status types and effects

HUD API

HUD display system

Characters API

Character data access