twinded_lgw_instances
Un script de gestion d'instances (routing bucket) pour RedM. Bascule automatiquement les joueurs vers des routing buckets OneSync separes lorsqu'ils entrent dans des zones polygonales definies, en gardant leur monture, cheval mene et vehicule synchronises.
Dependances
| Ressource | Requise | Notes |
|---|---|---|
| twinded_libs | Oui | Librairie partagee gratuite |
| PolyZone | Oui | Detection de zones polygonales |
Compatibilite
Cross-framework — fonctionne avec VORP, RSG, QBCore RedM, QRCore, RedEM:RP, RPX, TPZ-CORE et FRP. Le framework est auto-detecte par twinded_libs.
Installation
bash
ensure twinded_libs
ensure PolyZone
ensure twinded_lgw_instancesFichiers de configuration
| Fichier | Description |
|---|---|
settings.lua | Mode debug, notifications, groupes admin, webhook, zones d'instance |
lang.lua | Chaines de traduction |
webhook.lua | Handler de webhook personnalise (quand Config.Webhook.type = 'custom') |
Consultez le guide de configuration pour savoir comment surcharger ces fichiers.
Reference de configuration
settings.lua
| Option | Type | Defaut | Description |
|---|---|---|---|
Config.Debug | boolean | false | Activer le logging de debug et les commandes de debug |
Config.Notify | boolean | true | Afficher les notifications a l'entree/sortie des instances |
Config.AdminCommand | string | "instance" | Nom de la commande admin |
Config.AdminGroups | table | {"admin", "dev", "superadmin"} | Groupes autorises a utiliser les commandes admin |
Config.Webhook.type | string | "discord" | 'discord' ou 'custom' |
Config.Webhook.url | string | "" | URL du webhook Discord |
Champs des zones
Chaque entree dans Config.Zones :
| Champ | Type | Description |
|---|---|---|
bucketId | number | ID du routing bucket (doit etre > 0, 0 = monde principal) |
name | string | Nom d'affichage de la zone |
points | table | Tableau de points vector2 definissant le polygone |
minZ | number | Hauteur Z minimale de la zone |
maxZ | number | Hauteur Z maximale de la zone |
webhook.lua — Couleurs des embeds
| Couleur | Code | Signification |
|---|---|---|
| Bleu | 3447003 | Joueur entre/sorti de la zone |
| Orange | 16744448 | Admin a force un joueur dans un bucket |
| Rouge | 15158332 | Admin a reinitialise un joueur |
Fonctionnalites
- Instances par polygone — Definissez des zones avec des polygones PolyZone — bascule automatique a l'entree/sortie
- Synchronisation d'entites — Le cheval monte, le cheval mene et le vehicule suivent le joueur
- Empilement de zones — Zones imbriquees gerees via une pile — la sortie retourne au bucket precedent
- Commandes admin — Gestion complete des instances de joueurs
- Logging webhook — Discord ou handler personnalise
- API Exports — Exports client et serveur pour l'integration
Commandes admin
| Commande | Description |
|---|---|
/instance list | Lister tous les joueurs actuellement dans une instance |
/instance info <serverId> | Afficher le bucket actuel d'un joueur |
/instance set <serverId> <bucketId> | Forcer un joueur dans un bucket specifique |
/instance reset <serverId> | Reinitialiser un joueur vers le monde principal |
Exports
Client
lua
-- Obtenir le routing bucket actuel (0 = monde principal)
local bucket = exports['twinded_lgw_instances']:getCurrentBucket()
-- Verifier si le joueur est dans un bucket specifique
local inZone = exports['twinded_lgw_instances']:isInZone(bucketId)
-- Demander programmatiquement un changement de bucket
local ok = exports['twinded_lgw_instances']:requestBucketChange(bucketId)Server
lua
-- Obtenir le bucket actuel d'un joueur
local bucket = exports['twinded_lgw_instances']:getPlayerBucket(serverId)
-- Definir le bucket d'un joueur (avec migration d'entites)
exports['twinded_lgw_instances']:setPlayerBucket(serverId, bucketId, entities)
-- Reinitialiser un joueur vers le monde principal
exports['twinded_lgw_instances']:resetPlayerBucket(serverId)
-- Obtenir tous les buckets de joueurs suivis
local all = exports['twinded_lgw_instances']:getAllPlayerBuckets()
-- Verifier si un joueur est dans le monde principal
local main = exports['twinded_lgw_instances']:isInMainWorld(serverId)Depannage
| Probleme | Solution |
|---|---|
| Le script ne demarre pas | Assurez-vous que twinded_libs et PolyZone sont demarres avant |
| Les joueurs ne changent pas de bucket | Verifiez les points du polygone de zone et les valeurs minZ/maxZ |
| Les entites ne suivent pas | Seules les entites possedees par le joueur sont migrees |
| Les commandes admin ne fonctionnent pas | Verifiez que le groupe de votre personnage correspond a Config.AdminGroups |

