Bridge — API Serveur
Toutes les fonctions bridge côté serveur — joueurs, argent, métiers, gangs, inventaire et lifecycle.
Toutes les fonctions bridge côté serveur — joueurs, argent, métiers, gangs, inventaire et lifecycle.
Ces fonctions s'appellent côté serveur, sur lib.bridge. Tous les retours sont normalisés —
la même forme sur ESX, QBCore, QBox, ox et vanilla.
| Fonction | Retour | Description |
|---|---|---|
getPlayer(source) | BridgePlayer? | Le joueur, ou nil si introuvable. |
getIdentifier(source) | string? | Identifiant stable (license / citizenid). |
getCoords(source) | vector3? | Position actuelle. |
getPlayers() | number[] | Les source des joueurs connectés. |
getPlayerCount() | number | Nombre de joueurs en ligne. |
getCharacterName(source) | string | Nom RP ; toujours une string (retombe sur le nom de compte, puis Unknown). |
isPlayerOnline(source) | boolean | Si le source correspond à un joueur chargé. |
kick(source, reason?) | — | Kick avec une raison optionnelle. |
getPlayer(source)BridgePlayer?nil si introuvable.getIdentifier(source)string?getCoords(source)vector3?getPlayers()number[]source des joueurs connectés.getPlayerCount()numbergetCharacterName(source)stringUnknown).isPlayerOnline(source)booleansource correspond à un joueur chargé.kick(source, reason?)---@class BridgePlayer
---@field source number
---@field identifier string
---@field name string| Fonction | Retour | Description |
|---|---|---|
getMoney(source, moneyType?) | number | Solde d'un compte. |
addMoney(source, moneyType?, amount) | — | Ajoute sur un compte. |
removeMoney(source, moneyType?, amount) | — | Retire d'un compte. |
canAfford(source, amount, accounts?) | boolean | Si la somme des comptes couvre amount. |
getAccounts(source) | table | Renvoie { cash, bank, black }. |
getMoney(source, moneyType?)numberaddMoney(source, moneyType?, amount)removeMoney(source, moneyType?, amount)canAfford(source, amount, accounts?)booleanamount.getAccounts(source)table{ cash, bank, black }.moneyType vaut cash (défaut), bank ou black — normalisé entre frameworks (black
mappe vers black_money sur ESX, crypto sur QB/QBox). canAfford utilise { cash, bank } par défaut.
| Fonction | Retour | Description |
|---|---|---|
getJob(source) | BridgeJob? | Métier actuel. |
setJob(source, name, grade) | — | Définit le métier du joueur. |
getPlayersByJob(jobs, options?) | BridgePlayer[] | Joueurs sur un ou plusieurs métiers. |
getJobs() | table | Tous les métiers, indexés par nom. |
getJob(source)BridgeJob?setJob(source, name, grade)getPlayersByJob(jobs, options?)BridgePlayer[]getJobs()tablegetPlayersByJob accepte un métier ou une liste ; options.minGrade (défaut 0) filtre par grade.
---@class BridgeJob
---@field name string
---@field label string
---@field grade number
---@field gradeLabel string| Fonction | Retour | Description |
|---|---|---|
getGang(source) | BridgeGang? | Gang actuel. |
setGang(source, name, grade) | — | Définit le gang du joueur. |
getGangs() | table | Tous les gangs. |
getPlayersByGang(gangs, options?) | BridgePlayer[] | Joueurs dans un ou plusieurs gangs. |
getGang(source)BridgeGang?setGang(source, name, grade)getGangs()tablegetPlayersByGang(gangs, options?)BridgePlayer[]ESX, ox et vanilla n'ont pas de gang natif — ces fonctions renvoient nil / {} avec un avertissement unique.
| Fonction | Retour | Description |
|---|---|---|
hasItem(source, itemName, count?) | boolean | Si le joueur a au moins count (défaut 1). |
addItem(source, itemName, count, metadata?) | — | Donne un item. |
removeItem(source, itemName, count, metadata?) | — | Retire un item. |
getInventory(source) | BridgeInventoryItem[] | Les items du joueur. |
registerUsableItem(itemName, cb) | — | Exécute cb(source) à l'utilisation de l'item. |
hasItem(source, itemName, count?)booleancount (défaut 1).addItem(source, itemName, count, metadata?)removeItem(source, itemName, count, metadata?)getInventory(source)BridgeInventoryItem[]registerUsableItem(itemName, cb)cb(source) à l'utilisation de l'item.Utilise ox_inventory s'il est présent, sinon l'inventaire natif du framework. Sur ESX sans
ox, item.metadata est toujours nil — gère ce cas si tu le lis.
| Fonction | Retour | Description |
|---|---|---|
notify(source, data) | — | Affiche une notification au joueur. |
notify(source, data)---@class NotifyData
---@field type 'info' | 'success' | 'error' | 'warning'
---@field content string
---@field title? string
---@field duration? number| Fonction | Retour | Description |
|---|---|---|
onPlayerLoaded(cb) | — | Exécute cb(source) quand un joueur a fini de charger. |
onPlayerDropped(cb) | — | Exécute cb(source, reason) quand un joueur se déconnecte. |
onPlayerLoaded(cb)cb(source) quand un joueur a fini de charger.onPlayerDropped(cb)cb(source, reason) quand un joueur se déconnecte.| Fonction | Retour | Description |
|---|---|---|
giveVehicleKeys(source, vehicle) | — | Donne les clés du vehicle (entity handle). |
removeVehicleKeys(source, vehicle) | — | Retire les clés. |
giveVehicleKeys(source, vehicle)vehicle (entity handle).removeVehicleKeys(source, vehicle)Routé via ton système see:keys. mrnewb et qs sont client-only : l'appel serveur est
alors un no-op — voir Détection & config pour la note de support.
Utilisé par les systèmes multicharacter. createCharacter renvoie un token opaque que tu
stockes et repasses tel quel à loadCharacter — son contenu est spécifique au framework, ne l'interprète pas.
| Fonction | Retour | Description |
|---|---|---|
loadCharacter(source, charToken) | — | Charge un personnage depuis un token stocké. |
createCharacter(source, slot, data) | string? | Crée un personnage ; renvoie le token à stocker. |
loadCharacter(source, charToken)createCharacter(source, slot, data)string?local player = lib.bridge.getPlayer(source)
if not player then return end
if not lib.bridge.canAfford(source, 500) then
lib.bridge.notify(source, { type = 'error', content = 'Pas assez d\'argent' })
return
end
lib.bridge.removeMoney(source, 'bank', 500)
lib.bridge.addItem(source, 'phone', 1)
lib.bridge.notify(source, { type = 'success', content = 'Téléphone acheté' })Pas de cache — chaque appel refait la requête au framework. Mets en cache toi-même si tu appelles le même getter dans une boucle serrée.