🧩 Création d'un Pont de Cadre Personnalisé
Dream Bridge prend en charge ESX, QBCore et QBX dès le départ. Si vous utilisez un cadre différent ou modifié, vous pouvez implémenter votre propre pont personnalisé pour assurer la compatibilité.
Ce guide vous explique comment créer un nouveau pont en utilisant le modèle custom
intégré.
💡 Remarque: QBX (Qbox) est entièrement compatible avec le pont QBCore. Aucune implémentation séparée n'est nécessaire.
📁 Structure du Pont
Tous les ponts se trouvent dans le dossier bridge/
.
Chaque cadre (par exemple, esx
, qbcore
, custom
) a son propre sous-dossier avec:
client.lua
server.lua

Le pont détecte automatiquement votre cadre actif via GetResourceState
.
Important: Si votre ressource de cadre est renommée (par exemple,
es_extended
→roleplay_framework
), la détection automatique peut échouer.
🚀 Comment Utiliser le Pont Personnalisé
Utilisez le pont custom
:
- Vous utilisez un cadre autonome ou non officiel/non pris en charge
➡️ Créez un nouveau pont basé sur le modèlecustom
. - Vous devez modifier/changer quelque chose dans un pont existant.
➡️ Essayez d'abord de modifier le pont existant. Par exemple, si votre table owned_vehicles est différente de celle par défaut, vous devez simplement modifier les fonctions liées aux véhicules dans le pont existant. Pas besoin d'en créer un nouveau ou de tout modifier. - Aucun cadre pris en charge n'est détecté par défaut.
➡️ Si vous avez renommé votre ressource de cadre, elle peut ne pas être détectée automatiquement (par exemple,es_extended
->roleplay_framework
). Dans ce cas, vous devez ajouterGetResourceState
à votre ressource renommée dans le fichier de pont correct.
🛠️ Premiers Pas
- Copiez le dossier
bridge/custom
Renommez-le pour correspondre au nom de votre cadre personnalisé (par exemple,bridge/moncadre
). - Modifiez à la fois
client.lua
etserver.lua
Implémentez votre logique dans les fonctions fournies. - Ajustez la logique de détection du cadre
Remplacez ou étendez les vérificationsGetResourceState
pour détecter votre cadre personnalisé.
✅ Exemple: client.lua
if GetResourceState('mon_cadre') ~= 'started' then return end
DreamFramework.ServerFramework = 'moncadre'
DreamFramework.ServerFrameworkLoaded = true
function DreamFramework.showHelpNotification(text)
-- Votre code d'affichage d'aide personnalisé
end
function DreamFramework.getPlayerJobName()
return exports['mon_cadre']:GetJobName()
end
✅ Exemple: server.lua
if GetResourceState('mon_cadre') ~= 'started' then return end
DreamFramework.ServerFramework = 'moncadre'
DreamFramework.ServerFrameworkLoaded = true
function DreamFramework.getPlayerFromId(source)
return exports['mon_cadre']:GetPlayer(source)
end
function DreamFramework.getPlayerMoney(source, account)
local player = DreamFramework.getPlayerFromId(source)
return player.money or 0
end
🧠 Quelles Fonctions Implémenter?
Votre pont doit implémenter toutes les fonctions incluses dans le modèle custom
et tous les autres ponts. Cela inclut:
- Fonctions du joueur (par exemple,
getPlayerFromId
,getPlayerName
) - Gestion des emplois
- Inventaire & argent
- Propriété des véhicules
- Événements comme
OnPlayerLoaded
,OnPlayerJobChange
- Toutes autres fonctions que le pont possède...
Consultez les fichiers
bridge/custom/client.lua
etbridge/custom/server.lua
pour la liste complète des fonctions requises.
Chaque fonction du modèle de pont doit être implémentée dans votre pont personnalisé.
Si même une fonction est manquante, votre cadre risque de générer plusieurs erreurs, de casser les scripts qui dépendent de ces fonctions et de causer un comportement inattendu.
➡️ Vérifiez bridge/moncadre/client.lua
et bridge/moncadre/server.lua
pour assurer une couverture fonctionnelle complète.
Fonctions manquantes = expérience altérée.
⏰ Gestion des Événements
Certains événements doivent être déclenchés manuellement pour la compatibilité:
RegisterNetEvent('moncadre:joueurChargé', function(playerId)
OnPlayerLoaded(playerId)
end)
RegisterNetEvent('moncadre:changementEmploi', function(playerId, nouvelEmploi)
OnPlayerJobChange(playerId, nouvelEmploi.nom)
end)
💬 Conseils
- Utilisez des journaux comme
print("[Pont] Pont personnalisé chargé")
pour un débogage plus facile. - Testez chaque fonction individuellement dans un environnement contrôlé.
- Utilisez le dossier
custom
comme base — il est déjà pré-rempli avec toutes les fonctions requises.
🙌 Contribuez Votre Pont
Vous avez créé un pont fonctionnel pour votre propre cadre?
N'hésitez pas à le partager avec nous — aidez les autres à bénéficier de votre intégration!
🧠 Votre contribution peut devenir partie du projet officiel, et vous obtiendrez tout le crédit pour votre travail.
💡 Si vous avez des questions ou avez besoin d'aide, n'hésitez pas à nous contacter sur notre serveur Discord.
Bon codage! 🚀