Skip to content

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:

NameTypeRequiredNotes
sourcenumberYesPlayer source

Returns:

  • boolean

Override code:

lua
function Override.IsPlayerDowned(source)
    return exports['your_ambulance']:isPlayerDowned(source)
end

Notes:

  • 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:

NameTypeRequiredNotes
sourcenumberYesPlayer source

Returns:

  • boolean

Override code:

lua
function Override.IsPlayerDead(source)
    return exports['your_ambulance']:isPlayerDead(source)
end

Notes:

  • 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:

NameTypeRequiredNotes
sourcenumberYesPlayer source

Returns:

  • optional result from your ambulance resource

Override code:

lua
function Override.RevivePlayer(source)
    return exports['your_ambulance']:revivePlayer(source)
end

Notes:

  • 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:

  • string resource name
  • nil if you do not want to report one

Override code:

lua
function Override.GetAmbulanceResourceName()
    return 'your_ambulance'
end

Notes:

  • 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:

NameTypeRequiredNotes
jobstringYesSociety or job name
moneynumberYesAmount to add

Returns:

  • boolean success result
  • optional custom result from your banking resource

Override code:

lua
function Override.AddSocietyMoney(job, money)
    return exports['your_banking']:addSocietyMoney(job, money)
end

Notes:

  • 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:

NameTypeRequiredNotes
jobstringYesSociety or job name
moneynumberYesAmount to remove

Returns:

  • boolean success result
  • optional custom result from your banking resource

Override code:

lua
function Override.RemoveSocietyMoney(job, money)
    return exports['your_banking']:removeSocietyMoney(job, money)
end

Notes:

  • 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:

NameTypeRequiredNotes
jobstringYesSociety or job name

Returns:

  • number balance
  • false or nil if the account cannot be read

Override code:

lua
function Override.GetSocietyMoney(job)
    return exports['your_banking']:getSocietyMoney(job)
end

Notes:

  • 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:

  • string resource name
  • nil if you do not want to report one

Override code:

lua
function Override.GetBankResourceName()
    return 'your_banking'
end

Notes:

  • 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:

NameTypeRequiredNotes
argument.JobtableYesTarget jobs, for example { 'police', 'sheriff' }
argument.Locationvector3YesDispatch location
argument.CallCode.CodestringNoDispatch call code
argument.CallCode.TitlestringNoDispatch title
argument.MessagestringYesMain dispatch message
argument.FlashesbooleanNoFlash state
argument.ImagestringNoScreenshot or image URL
argument.iconstringNoDispatch icon
argument.BliptableNoBlip settings such as sprite, scale, colour, text, time, and radius

Returns:

  • optional result from your dispatch resource

Override code:

lua
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,
    })
end

Notes:

  • 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:

  • string resource name
  • nil if you do not want to report one

Override code:

lua
function Override.GetDispatchResourceName()
    return 'your_dispatch'
end

Notes:

  • 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:

NameTypeRequiredNotes
sourcenumber or stringYesPlayer source or invoking resource name
eventstringYesLog event name
messagestringYesLog message
...anyNoExtra values forwarded by Bridge

Returns:

  • no return is required

Override code:

lua
function Override.CreateLog(source, event, message, ...)
    local extra = { ... }

    return exports['your_logger']:createLog({
        source = source,
        event = event,
        message = message,
        extra = extra,
    })
end

Notes:

  • 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:

NameTypeRequiredNotes
sourcenumber or stringYesPlayer source or identifier
emaildata.senderstringYesSender name
emaildata.subjectstringYesEmail subject
emaildata.messagestringYesEmail message
emaildata.imageurlstringNoOptional image URL

Returns:

  • optional result from your phone resource

Override code:

lua
function Override.SendEmail(source, emaildata)
    return exports['your_phone']:sendEmail(source, {
        sender = emaildata.sender,
        subject = emaildata.subject,
        message = emaildata.message,
        imageurl = emaildata.imageurl,
    })
end

Notes:

  • this override is server-side
  • map source the way your phone resource expects it
GetPhoneResourceName (Server)

Description:

Copy this code into fs_bridge/unlocked/server.lua.

Arguments:

  • none

Returns:

  • string resource name
  • nil if you do not want to report one

Override code:

lua
function Override.GetPhoneResourceName()
    return 'your_phone'
end

Notes:

  • 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:

NameTypeRequiredNotes
sourcenumberYesPlayer source
reasonstringNoBan reason

Returns:

  • boolean success result
  • optional custom result from your ban system

Override code:

lua
function Override.BanPlayer(source, reason)
    return exports['your_anticheat']:banPlayer(source, reason)
end

Notes:

  • 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:

NameTypeRequiredNotes
sourcenumberYesPlayer source
reasonstringNoKick reason

Returns:

  • optional result from your kick flow

Override code:

lua
function Override.Kick(source, reason)
    DropPlayer(source, reason or 'You have been Kicked from the server.')
end

Notes:

  • 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:

NameTypeRequiredNotes
sourcenumberYesTarget player source, or -1 for broadcast if your sound system supports it
soundIdstringYesGenerated Bridge sound id
positionvector3YesSound location
distancenumberYesMax hearing distance
urlstringYesAudio URL
volumenumberYesSound volume
loopbooleanNoLoop state

Returns:

  • optional result from your sound resource

Override code:

lua
function Override.PlayUrlPos(source, soundId, position, distance, url, volume, loop)
    return exports['your_sound']:playUrlPos(source, soundId, position, distance, url, volume, loop)
end

Notes:

  • this override is server-side
  • Bridge will still return the generated soundId to the caller after this override runs
DestroySound

Description:

Copy this code into fs_bridge/unlocked/server.lua.

Arguments:

NameTypeRequiredNotes
sourcenumberYesTarget player source, or -1 if your sound system supports it
soundIdstringYesBridge sound id

Returns:

  • optional result from your sound resource

Override code:

lua
function Override.DestroySound(source, soundId)
    return exports['your_sound']:destroySound(source, soundId)
end

Notes:

  • 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:

  • string resource name
  • nil if you do not want to report one

Override code:

lua
function Override.GetSoundResourceName()
    return 'your_sound'
end

Notes:

  • 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:

  • string generated vehicle plate

Override code:

lua
function Override.GenerateVehiclePlate()
    return ('ABC %04d'):format(math.random(0, 9999))
end

Notes:

  • 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:

NameTypeRequiredNotes
sourcenumberYesPlayer source
vehiclenumberYesVehicle entity handle or network-aware vehicle reference

Returns:

  • optional result from your vehicle-keys resource

Override code:

lua
function Override.GiveCarKeyPlayer(source, vehicle)
    return exports['your_keys']:giveKeys(source, vehicle)
end

Notes:

  • 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:

NameTypeRequiredNotes
sourcenumberYesPlayer source
vehiclenumberYesVehicle entity handle or network-aware vehicle reference

Returns:

  • optional result from your vehicle-keys resource

Override code:

lua
function Override.RemoveCarKeyPlayer(source, vehicle)
    return exports['your_keys']:removeKeys(source, vehicle)
end

Notes:

  • 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:

  • string resource name
  • nil if you do not want to report one

Override code:

lua
function Override.GetVehicleKeysResourceName()
    return 'your_keys'
end

Notes:

  • this override is server-side
  • return the exact started resource folder name

FWB Studio documentation.