Server Overrides
These are the server-side manual compatibility overrides from the current Bridge build.
Use this page when you need server-side compatibility for an unsupported or custom setup.
Paste these overrides into fs_bridge/unlocked/server.lua.
Each item below is its own expandable section. Open one to see description, arguments, return value, and example code.
Ambulance
IsPlayerDowned
Description:
Copy this code into fs_bridge/unlocked/server.lua.
Arguments:
| Name | Type | Required | Notes |
|---|---|---|---|
source | number | Yes | Player source |
Returns:
boolean
Override code:
function Override.IsPlayerDowned(source)
return exports['your_ambulance']:isPlayerDowned(source)
endNotes:
- this override is server-side
- Bridge resolves this through the ambulance compatibility layer
IsPlayerDead
Description:
Copy this code into fs_bridge/unlocked/server.lua.
Arguments:
| Name | Type | Required | Notes |
|---|---|---|---|
source | number | Yes | Player source |
Returns:
boolean
Override code:
function Override.IsPlayerDead(source)
return exports['your_ambulance']:isPlayerDead(source)
endNotes:
- this override is server-side
- Bridge resolves this through the ambulance compatibility layer
RevivePlayer
Description:
Copy this code into fs_bridge/unlocked/server.lua.
Arguments:
| Name | Type | Required | Notes |
|---|---|---|---|
source | number | Yes | Player source |
Returns:
- optional result from your ambulance resource
Override code:
function Override.RevivePlayer(source)
return exports['your_ambulance']:revivePlayer(source)
endNotes:
- this override is server-side
- use the exact revive function expected by your ambulance system
GetAmbulanceResourceName
Description:
Copy this code into fs_bridge/unlocked/server.lua.
Arguments:
- none
Returns:
stringresource namenilif you do not want to report one
Override code:
function Override.GetAmbulanceResourceName()
return 'your_ambulance'
endNotes:
- this override is server-side
- return the exact started resource folder name
Banking
AddSocietyMoney
Description:
Copy this code into fs_bridge/unlocked/server.lua.
Arguments:
| Name | Type | Required | Notes |
|---|---|---|---|
job | string | Yes | Society or job name |
money | number | Yes | Amount to add |
Returns:
booleansuccess result- optional custom result from your banking resource
Override code:
function Override.AddSocietyMoney(job, money)
return exports['your_banking']:addSocietyMoney(job, money)
endNotes:
- this override is server-side
- keep your own validation around negative values if needed
RemoveSocietyMoney
Description:
Copy this code into fs_bridge/unlocked/server.lua.
Arguments:
| Name | Type | Required | Notes |
|---|---|---|---|
job | string | Yes | Society or job name |
money | number | Yes | Amount to remove |
Returns:
booleansuccess result- optional custom result from your banking resource
Override code:
function Override.RemoveSocietyMoney(job, money)
return exports['your_banking']:removeSocietyMoney(job, money)
endNotes:
- this override is server-side
- make sure your banking system handles missing accounts safely
GetSocietyMoney
Description:
Copy this code into fs_bridge/unlocked/server.lua.
Arguments:
| Name | Type | Required | Notes |
|---|---|---|---|
job | string | Yes | Society or job name |
Returns:
numberbalancefalseornilif the account cannot be read
Override code:
function Override.GetSocietyMoney(job)
return exports['your_banking']:getSocietyMoney(job)
endNotes:
- this override is server-side
- return a number when possible so dependent scripts can compare balances safely
GetBankResourceName (Server)
Description:
Copy this code into fs_bridge/unlocked/server.lua.
Arguments:
- none
Returns:
stringresource namenilif you do not want to report one
Override code:
function Override.GetBankResourceName()
return 'your_banking'
endNotes:
- return the exact started resource folder name
- if you also need this on the client side, define the same function in
fs_bridge/unlocked/client.lua
Dispatch
AddCustomDispatch
Description:
Copy this code into fs_bridge/unlocked/server.lua.
Arguments:
| Name | Type | Required | Notes |
|---|---|---|---|
argument.Job | table | Yes | Target jobs, for example { 'police', 'sheriff' } |
argument.Location | vector3 | Yes | Dispatch location |
argument.CallCode.Code | string | No | Dispatch call code |
argument.CallCode.Title | string | No | Dispatch title |
argument.Message | string | Yes | Main dispatch message |
argument.Flashes | boolean | No | Flash state |
argument.Image | string | No | Screenshot or image URL |
argument.icon | string | No | Dispatch icon |
argument.Blip | table | No | Blip settings such as sprite, scale, colour, text, time, and radius |
Returns:
- optional result from your dispatch resource
Override code:
function Override.AddCustomDispatch(argument)
return exports['your_dispatch']:sendAlert({
jobs = argument.Job,
coords = argument.Location,
code = argument.CallCode,
message = argument.Message,
flashes = argument.Flashes,
image = argument.Image,
icon = argument.icon,
blip = argument.Blip,
})
endNotes:
- this override is server-side
- match the argument mapping to the exact alert format your dispatch expects
GetDispatchResourceName
Description:
Copy this code into fs_bridge/unlocked/server.lua.
Arguments:
- none
Returns:
stringresource namenilif you do not want to report one
Override code:
function Override.GetDispatchResourceName()
return 'your_dispatch'
endNotes:
- return the exact started resource folder name
- this override is server-side
Logging
CreateLog
Description:
Copy this code into fs_bridge/unlocked/server.lua.
Arguments:
| Name | Type | Required | Notes |
|---|---|---|---|
source | number or string | Yes | Player source or invoking resource name |
event | string | Yes | Log event name |
message | string | Yes | Log message |
... | any | No | Extra values forwarded by Bridge |
Returns:
- no return is required
Override code:
function Override.CreateLog(source, event, message, ...)
local extra = { ... }
return exports['your_logger']:createLog({
source = source,
event = event,
message = message,
extra = extra,
})
endNotes:
- this override is server-side
- Bridge can still run its own built-in logger after this override
Phone
SendEmail
Description:
Copy this code into fs_bridge/unlocked/server.lua.
Arguments:
| Name | Type | Required | Notes |
|---|---|---|---|
source | number or string | Yes | Player source or identifier |
emaildata.sender | string | Yes | Sender name |
emaildata.subject | string | Yes | Email subject |
emaildata.message | string | Yes | Email message |
emaildata.imageurl | string | No | Optional image URL |
Returns:
- optional result from your phone resource
Override code:
function Override.SendEmail(source, emaildata)
return exports['your_phone']:sendEmail(source, {
sender = emaildata.sender,
subject = emaildata.subject,
message = emaildata.message,
imageurl = emaildata.imageurl,
})
endNotes:
- this override is server-side
- map
sourcethe way your phone resource expects it
GetPhoneResourceName (Server)
Description:
Copy this code into fs_bridge/unlocked/server.lua.
Arguments:
- none
Returns:
stringresource namenilif you do not want to report one
Override code:
function Override.GetPhoneResourceName()
return 'your_phone'
endNotes:
- return the exact started resource folder name
- if you also need this on the client side, define the same function in
fs_bridge/unlocked/client.lua
Security
BanPlayer
Description:
Copy this code into fs_bridge/unlocked/server.lua.
Arguments:
| Name | Type | Required | Notes |
|---|---|---|---|
source | number | Yes | Player source |
reason | string | No | Ban reason |
Returns:
booleansuccess result- optional custom result from your ban system
Override code:
function Override.BanPlayer(source, reason)
return exports['your_anticheat']:banPlayer(source, reason)
endNotes:
- this override is server-side
- Bridge uses a default reason if one is not provided
Kick
Description:
Copy this code into fs_bridge/unlocked/server.lua.
Arguments:
| Name | Type | Required | Notes |
|---|---|---|---|
source | number | Yes | Player source |
reason | string | No | Kick reason |
Returns:
- optional result from your kick flow
Override code:
function Override.Kick(source, reason)
DropPlayer(source, reason or 'You have been Kicked from the server.')
endNotes:
- this override is server-side
- Bridge uses a default reason if one is not provided
Sounds
PlayUrlPos
Description:
Copy this code into fs_bridge/unlocked/server.lua.
Arguments:
| Name | Type | Required | Notes |
|---|---|---|---|
source | number | Yes | Target player source, or -1 for broadcast if your sound system supports it |
soundId | string | Yes | Generated Bridge sound id |
position | vector3 | Yes | Sound location |
distance | number | Yes | Max hearing distance |
url | string | Yes | Audio URL |
volume | number | Yes | Sound volume |
loop | boolean | No | Loop state |
Returns:
- optional result from your sound resource
Override code:
function Override.PlayUrlPos(source, soundId, position, distance, url, volume, loop)
return exports['your_sound']:playUrlPos(source, soundId, position, distance, url, volume, loop)
endNotes:
- this override is server-side
- Bridge will still return the generated
soundIdto the caller after this override runs
DestroySound
Description:
Copy this code into fs_bridge/unlocked/server.lua.
Arguments:
| Name | Type | Required | Notes |
|---|---|---|---|
source | number | Yes | Target player source, or -1 if your sound system supports it |
soundId | string | Yes | Bridge sound id |
Returns:
- optional result from your sound resource
Override code:
function Override.DestroySound(source, soundId)
return exports['your_sound']:destroySound(source, soundId)
endNotes:
- this override is server-side
- use the same sound id created during
Override.PlayUrlPos
GetSoundResourceName
Description:
Copy this code into fs_bridge/unlocked/server.lua.
Arguments:
- none
Returns:
stringresource namenilif you do not want to report one
Override code:
function Override.GetSoundResourceName()
return 'your_sound'
endNotes:
- return the exact started resource folder name
- this override is server-side
Vehicle
GenerateVehiclePlate
Description:
Copy this code into fs_bridge/unlocked/server.lua.
Arguments:
- none
Returns:
stringgenerated vehicle plate
Override code:
function Override.GenerateVehiclePlate()
return ('ABC %04d'):format(math.random(0, 9999))
endNotes:
- this override is server-side
- keep the result compatible with your server plate format and database rules
Vehicle Keys
GiveCarKeyPlayer (Server)
Description:
Copy this code into fs_bridge/unlocked/server.lua.
Arguments:
| Name | Type | Required | Notes |
|---|---|---|---|
source | number | Yes | Player source |
vehicle | number | Yes | Vehicle entity handle or network-aware vehicle reference |
Returns:
- optional result from your vehicle-keys resource
Override code:
function Override.GiveCarKeyPlayer(source, vehicle)
return exports['your_keys']:giveKeys(source, vehicle)
endNotes:
- this override is server-side
- use the server-facing give-keys function from your keys resource
RemoveCarKeyPlayer (Server)
Description:
Copy this code into fs_bridge/unlocked/server.lua.
Arguments:
| Name | Type | Required | Notes |
|---|---|---|---|
source | number | Yes | Player source |
vehicle | number | Yes | Vehicle entity handle or network-aware vehicle reference |
Returns:
- optional result from your vehicle-keys resource
Override code:
function Override.RemoveCarKeyPlayer(source, vehicle)
return exports['your_keys']:removeKeys(source, vehicle)
endNotes:
- this override is server-side
- use the server-facing remove-keys function from your keys resource
GetVehicleKeysResourceName (Server)
Description:
Copy this code into fs_bridge/unlocked/server.lua.
Arguments:
- none
Returns:
stringresource namenilif you do not want to report one
Override code:
function Override.GetVehicleKeysResourceName()
return 'your_keys'
endNotes:
- this override is server-side
- return the exact started resource folder name
