Skip to main content

Introduction

Server events are the backbone of RSG Framework’s server-side communication system. They allow resources to listen for and respond to player actions, system events, and cross-resource communication.
Server events run on the server and can be triggered by clients using TriggerServerEvent or by other server-side code using TriggerEvent.

How It Works

Event Flow

Registering Events

Server events are registered using RegisterNetEvent:
Always validate data received from client events! Never trust client input.

Core Player Events

RSGCore:Server:OnPlayerLoaded

Triggered when a player successfully loads into the server after character selection.
Use Cases:
  • Initialize player-specific data
  • Load custom player stats
  • Trigger welcome messages
  • Set up player blips/markers

RSGCore:Server:OnPlayerUnload

Triggered when a player logs out or returns to character selection.
Use Cases:
  • Clean up temporary data
  • Save custom player stats
  • Remove player from active lists
  • Stop player-specific threads

Server Management Events

RSGCore:Server:CloseServer

Closes the server to non-whitelisted players with a custom reason.
Trigger from Client:
Use Cases:
  • Emergency maintenance
  • Scheduled restarts
  • Server events preparation
  • Testing with limited players

RSGCore:Server:OpenServer

Reopens the server to all players.
Trigger from Client:

Player Data Events

RSGCore:UpdatePlayer

Updates and saves player needs (hunger, thirst, cleanliness).
This event is typically called on a timer to gradually decrease player needs over time.
Complete Example with Timer:

RSGCore:Server:SetMetaData

Sets a specific metadata value for a player with validation.
Trigger from Client:
Use Cases:
  • Restore hunger after eating
  • Restore thirst after drinking
  • Restore cleanliness after bathing
  • Custom metadata updates

Job & Duty Events

RSGCore:ToggleDuty

Toggles a player’s on-duty status for their job.
Trigger from Client:
Complete Example with Job Restrictions:

Callback Events

RSGCore:Server:TriggerCallback

Handles server-side callback requests from clients.
This is an internal event used by the callback system. Use RSGCore.Functions.CreateCallback instead of listening to this event directly.
Proper Usage:

Permission Events

RSGCore:Server:GivePermission

Grants a permission level to a player (typically admin/god).

RSGCore:Server:RemovePermission

Removes a permission level from a player.

Best Practices

1. Always Validate Player

2. Validate Client Input

3. Use Meaningful Event Names

4. Handle Permissions Properly


Common Patterns

Pattern 1: Transaction Event

Pattern 2: Item Give/Take Event

Pattern 3: Proximity Check Event


Troubleshooting

Event Not Triggering

Make sure the event name matches exactly between client and server
Use RegisterNetEvent for networked events triggered across client/server
Always validate source exists before using it

Player Not Found

Permission Denied


Summary


Next Steps


Need more help? Join the RSG Framework Discord!