Implémenté Idée bonus À faire
Phase 1 Fondations RP Base du serveur
💰
Économie & Argent✔ Implémenté
Compte bancaire par joueur, argent liquide droppable sur mort, transactions entre joueurs. Affichage action bar.
/gtlw money give/gtlw money set/gtlw pay/gtlw bank
🛒
Magasins GUI✔ Implémenté
Armurerie, munitions, équipement — acheter contre cash. Prix configurables par yml. Bloc-shop posable par admin.
/gtlw shop createshops/*.yml
Phase 2 Jobs & Revenus Progression économique
🚔
Système Police✔ Implémenté
Menottes, amende, niveau wanted 1–5 étoiles avec décroissance auto.
/gtlw police handcuff/gtlw police fine/gtlw police wanted
💊
Drogue & Trafic✔ Implémenté
Planter, récolter, transformer, revendre. Prix fluctuant. Wanted monte si cop nearby.
drugs/*.ymlconfig: Market_Volatility
🔧
Jobs légaux✔ Implémenté
Livreur (colis A→B), Médecin (soigne joueurs blessés), Mécanicien (répare véhicules endommagés, +25 PV par intervention). GUI 6 rangées, fiches explicatives, points de livraison via wand admin.
/gtlw jobs/gtlw job take/gtlw job quit
Phase 3 Véhicules Le pilier GTA
🚗
Voitures & Motos✔ Implémenté
ItemDisplay 3D, physique réaliste (vitesse, accélération, friction, gravité, marche arrière). WASD + SHIFT.
/gtlw vehicle spawn/gtlw vehicle removevehicles/*.yml
🅿
Garage & Propriété✔ Implémenté
Acheter à la concession, stocker en garage, plaques d'immatriculation uniques. Persistence SQLite.
/gtlw garage
🔫
Drive-by✔ Implémenté
Tirer depuis un véhicule — ADS bloqué, dispersion proportionnelle à la vitesse.
config: Driveby_Spread_Penalty
🔧
Plaques personnalisées💡 Idée bonus
Le joueur choisit sa plaque à l'achat — validation de format et unicité.
/gtlw vehicle plate
Santé Véhicule & Réparation✔ Implémenté
Système de PV par véhicule (Max_Hp configurable). Dégâts sur collision selon la vitesse, véhicule hors service à 0 PV. Mécanicien répare via son kit (+25 PV). Carburant : idée bonus non implémentée.
config: Max_HpVehicleTaskJobManager#tryRepairVehicle
👥
Passagers💡 Idée bonus
Un deuxième joueur peut monter à bord d'un véhicule en marche.
passenger seat
🔲
Bordure de Map Visible✔ Implémenté
Particules oranges affichées en temps réel le long des 4 murs de bordure définis dans la config, visibles à ≤48 blocs. Mise à jour toutes les 0,5s. Hauteur adaptive selon la position Y du joueur.
BorderParticleTaskParticle.DUSTconfig: Border.*
Phase 4 Gangs & RP Cœur du RP
🏴
Gangs✔ Implémenté
Créer un gang (nom, tag, couleur), grades LEADER / OFFICER / MEMBER, chat radio privé, caisse commune, relations ally/ennemi.
/gang create/gang invite/gang promote/demote/gang bank/g
Mort RP & KO✔ Implémenté
À 0 HP → animation "WASTED" fluide 60 étapes (caméra monte ~3s). État KO 60s : crawl au sol (bloc BARRIER invisible force la pose). Revive via trousse de secours (clic droit, consommée). Mort réelle : perte 50% cash, TP hôpital avec fondu noir (DARKNESS).
FirstAidItem/gtlw firstaid/gtlw sethospitalconfig: Ko.Duration_Secondsconfig: Ko.Cash_Loss_Percent
🗺
Territoires⬜ À faire
Zones délimitées capturables par les gangs. Revenus passifs (taxe des shops dans la zone). Guerre de territoire.
/gtlw territory claimterritories.yml
🎒
Inventaire RP⬜ À faire
Poches limitées par équipement (gilet = +slots). Fouille d'un joueur à terre.
/gtlw searchconfig: pocket_slots
Phase 5 Monde Vivant Finition GTA RP
📻
Radio & Comms⬜ À faire
Fréquences radio (chat par canal), téléphone portable (msg privé RP).
/radio/call
🏠
Propriétés✔ Implémenté (base)
Régions polygonales arbitraires (ray-casting, rétrocompat cuboid). Sélecteur wand avec preview particules. Snapshot des blocs à l'achat, restauration à la vente. Achat/vente, spawn intérieur configurable. Coffre persistant et serrure : à venir.
/gtlw property wand/gtlw property create/gtlw property setyrangePropertyRegionproperties/*.yml
📊
Stats & Classement⬜ À faire
K/D, argent gagné, temps joué. Leaderboard in-game.
/gtlw stats/gtlw top
🎯
Events automatiques⬜ À faire
Braquage de banque planifié, convoi armé aléatoire, contrat assassinat généré.
config: bank_robbery_cooldownevents/*.yml
📨 Rapport reçu de Tu peux continuer les tests et re-partager.
Progression globale 0 / 0
OK Bug Partiel — Clic pour cycler
Phase 1 💰 Économie & Argent
Prérequis : être OP, plugin GTLW chargé
/gtlw money give <pseudo> 10000 → action bar affiche le nouveau solde
/gtlw money set <pseudo> 50000 → solde passe exactement à 50 000$
/gtlw pay <joueur> 500 → 500$ débités de toi, crédités à l'autre
/gtlw bank deposit 1000 → liquide réduit, solde banque augmente
/gtlw bank withdraw 500 → banque réduit, liquide augmente
Mourir → argent droppe au sol (item ramassable)
Phase 1 🛒 Magasins GUI
Prérequis : bloc shop configuré via wand admin
/gtlw wand → clic droit sur un bloc → GUI admin 36 slots s'ouvre
Cliquer "Shop" → GUI de sélection s'ouvre
Sélectionner un shop → confirmation dans le chat
Clic droit sur le bloc configuré (sans wand) → GUI shop s'ouvre
Acheter une arme → argent débité, arme dans l'inventaire
Phase 2 🚔 Système Police
Prérequis : permission gtlw.police, deux joueurs en ligne
/gtlw police wanted <joueur> 3 → 3 étoiles sur tab / action bar du ciblé
Attendre Wanted_Decay_Seconds → étoiles diminuent automatiquement
/gtlw police handcuff <joueur> → joueur menotté
/gtlw police uncuff <joueur> → menottes retirées
/gtlw police fine <joueur> 500 → 500$ saisis sur le joueur
Phase 2 💊 Drogue & Trafic
Prérequis admin (à faire une fois) : créer un fichier plugins/GTLW/drug/<id>.yml (ex: cannabis.yml), puis regarder un bloc → /gtlw drug station create pour la station de transformation, et un autre bloc → /gtlw drug dealer create pour le revendeur. Donner une graine au testeur : /gtlw drug give <id> seed
[Admin] /gtlw drug list → la drogue configurée apparaît avec son prix de base
[Admin] /gtlw drug give cannabis seed → item "Graine de Cannabis" dans l'inventaire
Clic droit avec la graine sur une terre labourée (farmland) → culture plantée, message avec le temps de pousse
Attendre la pousse puis casser le bloc → item "Cannabis (Brut)" dans l'inventaire
Clic droit avec l'item brut sur le bloc station → item "Cannabis (Traité)" dans l'inventaire
Clic droit avec le traité sur le bloc dealer → cash reçu, message de vente avec le prix
Vendre à nouveau rapidement → prix légèrement plus bas (volatilité Market_Volatility)
Vendre avec un joueur ayant gtlw.police à moins de Police_Detect_Radius blocs → message "repéré", niveau wanted augmente
Clic droit dans l'air avec le traité → effets de potion appliqués au joueur (si configurés)
Phase 2 🔧 Jobs légaux
Prérequis admin (à faire une fois) : se placer à chaque point de livraison → /gtlw job delivery add <id> (minimum 2 points, ex: entrepot et port). Vérifier : /gtlw job delivery list. Les jobs médecin et mécanicien ne nécessitent aucune config.
/gtlw job list → affiche les 3 jobs (Livreur, Médecin, Mécanicien) avec leur salaire par tâche
/gtlw jobs → GUI 54 slots s'ouvre avec les 3 fiches de job cliquables
[Livreur] Cliquer "Livreur" dans le GUI (ou /gtlw job take livreur) → colis apparu dans l'inventaire, message indique le trajet (ex: entrepot → port) et le salaire
[Livreur] Se rendre au point de destination (dans un rayon de 5 blocs) avec le colis → livraison validée, cash reçu, nouveau trajet assigné automatiquement
[Livreur] Supprimer le colis de l'inventaire → message "colis perdu", job annulé automatiquement
[Médecin] /gtlw job take medecin → kit médical apparu dans l'inventaire
[Médecin] Clic droit avec le kit sur un joueur blessé → joueur soigné à 50% de ses PV max, cash reçu ($150), message pour les deux joueurs
[Médecin] Soigner le même joueur trop rapidement → message "réessayez dans Xs" (cooldown 60s par cible)
[Mécanicien] /gtlw job take mecanicien → kit de réparation apparu dans l'inventaire
[Mécanicien] Clic droit avec le kit sur un véhicule (minecart) endommagé → +25 PV au véhicule, cash reçu, barre d'action mise à jour
[Mécanicien] Clic droit sur un véhicule déjà à 100% PV → message "déjà en parfait état", pas de paiement
/gtlw job status → affiche le job actuel (et le trajet en cours si livreur)
/gtlw job quit → job quitté, confirmation dans le chat
Phase 3 🚗 Véhicules
Prérequis : ressourcepack chargé avec modèles 3D
/gtlw vehicle spawn sedan → véhicule spawné, joueur entré automatiquement
WASD → véhicule se déplace correctement
S → décélération puis marche arrière
A / D → tournage proportionnel à la vitesse
SHIFT → sortir du véhicule
Clic droit sur véhicule vide → y entrer
/gtlw vehicle list → liste des véhicules disponibles
/gtlw vehicle remove → véhicule supprimé
Phase 3 🅿 Garage & Propriété
Prérequis : wand admin, argent, concession configurée
Wand + clic droit → GUI → "Concession auto" → confirmation
Clic droit sur le bloc concession → GUI véhicules à acheter
Cliquer un véhicule → prix débité, message de confirmation avec plaque
/gtlw garage → GUI garage, véhicule en vert (au garage)
Cliquer → spawné à ta position, tu y entres, plaque visible au-dessus
/gtlw garage de nouveau → statut jaune "En jeu"
Cliquer "En jeu" → rangé, entité disparaît du monde
Relancer serveur / relog → véhicule toujours dans le garage
Phase 3 🔫 Drive-by
Prérequis : dans un véhicule, avoir une arme
Conduire et essayer de viser (clic gauche) → ADS bloqué
Tirer (clic droit) en conduisant → tirs possibles mais imprécis
Tirer à l'arrêt → dispersion normale
Tirer à pleine vitesse → dispersion nettement plus élevée
Phase 4 🏴 Gangs
Prérequis : deux comptes joueur en ligne
/gang create MesAmis MS GOLD → gang créé, tag et couleur confirmés
/gang info → affiche nom, tag, couleur, leader, membres, solde
/gang invite <joueur2> → joueur 2 reçoit une invitation
Joueur 2 tape /gang join → devient MEMBER, confirmation pour les deux
/gang promote <joueur2> → rang passe à OFFICER
/gang demote <joueur2> → rang repasse à MEMBER
/gang chat Bonjour → message visible seulement par les membres
/g sans message → mode chat gang activé
/gang bank deposit 1000 → cash débité, caisse gang créditée
/gang bank withdraw 500 → 500$ retirés de la caisse, crédités au joueur
/gang list → liste tous les gangs actifs
/gang disband (leader) → gang dissous, membres libérés
Phase 4 ⚰ Mort RP & KO
Prérequis : deux joueurs, /gtlw sethospital configuré (admin)
Admin : /gtlw sethospital → message "Point hôpital enregistré"
Se faire tuer (0 PV) → animation "WASTED" : caméra passe en vue de haut et monte progressivement (~3s)
Après l'animation → retour en survie, crawl (nage au sol), message "Vous êtes à terre"
Les joueurs proches (≤50 blocs) reçoivent "⚠ [pseudo] est à terre !"
Pendant le KO → impossible d'interagir ou dropper des items
Joueur 2 utilise la trousse de secours (clic droit sur le joueur KO) à moins de 5 blocs → ranimé avec 50% des PV, trousse consommée
Utiliser la trousse de secours à plus de 5 blocs → message "Trop loin pour ranimer"
Laisser le timer expirer (60s) → mort réelle, 50% du cash perdu, TP à l'hôpital, titre "MORT"
Faire /tp <joueur> → écran fade au noir, téléportation après ~0.6s
Phase 3 ❤ Santé Véhicule
Prérequis : véhicule spawné, Max_Hp configuré dans vehicles/*.yml
Conduire et rentrer dans un mur à grande vitesse → barre d'action affiche les PV diminués, son d'impact
Barre d'action toutes les secondes : ❤ X/Y PV — couleur verte >60%, jaune >30%, rouge en dessous
Véhicule à 0 PV → message "hors service", impossible de conduire (le véhicule ne répond plus)
Mécanicien répare avec son kit (clic droit sur le véhicule) → PV remontent de +25, action bar mise à jour immédiatement
Phase 3 🔲 Bordure de Map
Prérequis : limites de map définies dans la config
S'approcher d'une limite de map (≤48 blocs) → particules oranges apparaissent le long du mur de bordure
Particules visibles sur les 4 côtés selon la position du joueur — s'actualisent toutes les 0,5s
Phase 5 🏗 Propriétés Polygonales
Prérequis admin : permission gtlw.command.property
/gtlw property wand → sélecteur polygonal dans l'inventaire + instructions dans le chat
Clic droit avec le sélecteur → point ajouté, particules cyan (coins) et or (arêtes) montrent la sélection en temps réel
Clic gauche avec le sélecteur → dernier point annulé, preview mise à jour
Sneak + clic droit → sélection entièrement effacée
/gtlw property create <id> <prix> HOUSE false <nom> avec ≥3 points → propriété créée, YAML sauvegardé au format polygone
Ancien fichier propriété au format cuboid (X1/Y1/Z1/X2/Y2/Z2) → rechargé sans erreur, converti automatiquement en rectangle 4 points
Intro Présentation & installation

GTLW est le plugin cœur du serveur : gamemode GTA-like RP complet — économie cash/banque, armes à feu custom avec raretés, gangs, police et niveau de recherche, drogues, jobs, véhicules, propriétés louables, events. Tout tourne autour de la commande racine /gtlw plus quelques commandes dédiées (/gang, /property, /near, /tpa…).

Installation

1. Installer Citizens (dépendance requise pour les PNJ shops/concessionnaires) dans plugins/ — build gratuit compatible Paper 26.2 (ex : Citizens-2.0.43-b4214.jar).
2. Déposer gtlw-1.1.20.jar dans plugins/ (serveur Paper 26.2). ⚠️ Sans Citizens, GTLW ne se charge pas.
3. Distribuer le resourcepack (modèles d'armes, cash, véhicules) — pack_format 88 ; après modification : /gtlw resourcepack reload.
4. Les données joueurs (argent, gangs, véhicules…) sont stockées en SQLite (data.db), les définitions en YAML (weapon/*.yml, shops/*.yml, rarities.yml…).

Permissions

gtlw.command.main (défaut : tous) — commandes joueur · gtlw.admin et permissions gtlw.command.* (défaut : OP) — commandes d'administration. /gtlw help affiche l'aide adaptée au rang, avec insertion au clic.

Setup Setup complet de la map — ordre recommandé

Le montage d'une map dans l'ordre, pour ne rien oublier. Chaque étape est indépendante, mais suivre l'ordre évite les mauvaises surprises (ex : un shop qui pointe vers un YAML pas encore rechargé). Astuce transverse : /gtlw wand donne la baguette d'admin qui regroupe shops, dealers, drogue, livraison et coffres dans un seul menu — clic droit sur un bloc.

  1. Plugins & resource pack. Déposer Citizens puis gtlw-1.1.20.jar (et lwdisplay si utilisé) dans plugins/, redémarrer. Distribuer le resourcepack (pack_format 88). Vérifier que /gtlw répond et qu'aucune erreur Citizens n'apparaît en console.
  2. Points névralgiques. Se placer au spawn → /setspawn. Hub BungeeCord → /sethub <serveur>. Respawn hôpital (mort RP) → /gtlw sethospital.
  3. Bordure de map. /gtlw border wand → sélectionner 2 coins → set pour poser la limite (clear pour retirer, info pour vérifier).
  4. Zones sans PvP. /gtlw safezone pos1 puis pos2 aux deux coins → /gtlw safezone create <nom>. À faire au minimum sur le spawn et l'hôpital.
  5. Shops. Définir les articles dans plugins/GTLW/shops/<id>.yml/gtlw reload → se placer face au comptoir → /gtlw shop create <id>. Donner un skin au PNJ : le viser → /npc select/npc skin --url <lien mineskin>. (armurerie, munitions, équipement…)
  6. Concessionnaires véhicules. Définir les véhicules dans vehicles/*.yml. Poser le PNJ via la baguette admin (menu « concessionnaire ») → lui donner un skin comme un shop. Tester : /gtlw vehicle spawn <id>.
  7. Drogues. Créer plugins/GTLW/drug/<id>.yml → viser le bloc de traitement /gtlw drug station create, viser le comptoir dealer /gtlw drug dealer create. Vérifier le marché : /gtlw drug list.
  8. Jobs — points de livraison. Se placer à chaque point → /gtlw job delivery add <id> (minimum 2 points, ex : entrepot, port). Vérifier : /gtlw job delivery list.
  9. Coffres à loot. Viser le coffre → /gtlw lootchest create [minTier] [maxTier] [cooldownSec]. Lister / forcer la régénération : /gtlw lootchest list / reset.
  10. Propriétés. /gtlw property wand → dessiner le polygone au sol (≥3 points) → /gtlw property create (assistant id/prix/type/nom) → /gtlw property setspawn|setdepot <id>.
  11. Events. Régler l'auto-airdrop dans events.yml (intervalle, monde, centre, rayon, tiers). Piloter à la main : /gtlw event gui ou /gtlw event airdrop.
  12. Hologrammes (LWDisplay). Poser les hologrammes avec /ld et utiliser les placeholders ({event}, etc.). Détails dans l'onglet 📟 LWDisplay.
  13. Vérification finale. /gtlw reload, puis tester en conditions réelles : un achat en shop, un job de livraison, un skin de PNJ, un airdrop. Redémarrer une fois pour confirmer que tout persiste (les PNJ Citizens sont sauvegardés par Citizens).

Les PNJ (shops, concessionnaires) sont des NPC Citizens persistés par Citizens lui-même — pas besoin de les recréer après un redémarrage, et les skins sont conservés.

Joueur Commandes joueur

Argent

/gtlw moneyVoir son solde liquide + banque. Le liquide est droppé à la mort et lootable — planque en banque !
/gtlw bank deposit <montant>Déposer du liquide en banque (alias deposer).
/gtlw bank withdraw <montant>Retirer de la banque en liquide (alias retirer).
/gtlw bank balanceSolde bancaire (alias solde).
/gtlw pay <joueur> <montant>Payer un joueur en liquide.

Classes & progression

/gtlw class listVoir les classes disponibles.
/gtlw class infoDétails de sa classe actuelle.
/gtlw class choose <id>Choisir sa classe (alias choisir).
/gtlw progressionOuvre le menu de progression (niveaux, débloquages).
/gtlw hudActiver/désactiver le HUD (action bar).

Jobs

/gtlw jobsTableau des offres d'emploi (GUI).
/gtlw job take <id>Prendre un job (un seul à la fois — quit d'abord pour changer).
/gtlw job statusVoir son job actuel et sa progression.
/gtlw job quitQuitter son job.
/gtlw job listListe des jobs disponibles (version texte de /gtlw jobs).

Véhicules

/gtlw vehicle listVoir les véhicules disponibles.
/gtlw garageGUI de ses véhicules personnels (sortir/ranger).

Propriétés

/property listGUI des propriétés du serveur.
/property louer [gang]Louer la propriété où tu te trouves — gang pour la louer au nom de ton gang (payée par la caisse de gang).
/property home <id>Se téléporter à sa propriété.
/property resilier <id>Résilier son bail.
/property quitterSortir de la propriété où tu es (vers son spawn extérieur).

Santé & secours

/gtlw revive <joueur>Ranimer un joueur à terre (KO) à ≤5 blocs.

Déplacements & divers

/near [rayon]Joueurs proches et leur distance.
/spawnRetour au spawn.
/hub · /lobbyRetour au hub BungeeCord.
/tpa <joueur> · /tpahere <joueur>Demander une téléportation vers un joueur / le faire venir.
/tpaccept · /tpdenyAccepter / refuser la demande reçue.

📱 Le téléphone est un objet (équipement phone) : clic droit → GUI avec ta classe et ton niveau, virement d'argent à un joueur en ligne et gestion de tes véhicules.

Gangs /gang — la vie de gang

Créer & gérer

/gang create <nom> <tag> <couleur>Créer son gang — le tag apparaît dans le chat et les events.
/gang invite <joueur>Inviter un joueur en ligne.
/gang joinAccepter l'invitation reçue.
/gang leaveQuitter son gang.
/gang kick <joueur>Exclure un membre.
/gang promote / demote <joueur>Monter / descendre un membre en grade.
/gang disbandDissoudre le gang (chef uniquement).

Infos & diplomatie

/gang info [gang]Fiche de son gang, ou d'un autre.
/gang listTous les gangs du serveur.
/gang ally|enemy|neutral <gang>Déclarer un gang allié, ennemi ou neutre.

Chat & caisse

/gang chat [message]Sans message : bascule tout ton chat en mode gang. Avec : envoie ce message au gang. Raccourcis : /gang c et /g <message>.
/gang bankSolde de la caisse commune.
/gang bank deposit|withdraw <montant>Alimenter / retirer de la caisse — sert aussi aux locations de propriétés au nom du gang.
Admin Admin — items, armes & équilibrage

Donner des items

/gtlw weapon give <id> [rareté]Donner une arme (weapon list pour les IDs). Sans rareté : stats de base — utiliser rarity give/roll pour une version tirée.
/gtlw ammo give <id> [quantité]Donner des munitions (ammo list pour les IDs).
/gtlw gear give <id>Donner un équipement : armures t1-t5, jetpack, téléphone… (gear list).
/gtlw firstaid <joueur> [quantité]Donner des trousses de secours.
/gtlw drug give <joueur> <id> seed|raw|processedDonner une drogue au stade voulu : graine, brute ou traitée.

Raretés

/gtlw rarity listTiers de rareté chargés depuis rarities.yml.
/gtlw rarity set <rarityId>Applique la rareté à l'arme tenue en main.
/gtlw rarity give <weaponId> <rarityId> [qté]Donner une arme avec une rareté précise.
/gtlw rarity roll <weaponId> [qté]Donner une arme avec rareté tirée au sort (mêmes poids que le loot).

Taux de drop

/gtlw drop infoVoir tous les poids actuels (coffres et airdrops).
/gtlw drop tier <1-5> <poids>Régler le poids d'un tier de coffre.
/gtlw drop cat <catégorie> <poids>Régler le poids d'une catégorie d'objet.
/gtlw drop rarity <id> <poids>Régler le poids d'une rareté au tirage.
/gtlw drop airdrop tier|cat …Mêmes réglages mais pour les airdrops uniquement.

Serveur

/gtlw menuGUI admin principal (armes, munitions, équipement, loot…).
/gtlw reloadRecharge toute la configuration YAML sans redémarrer.
/gtlw resourcepack reloadRe-propose le resourcepack aux joueurs connectés.
/gtlw money give|take|set <joueur> <montant>Modifier le liquide d'un joueur ; show <joueur> pour consulter.
/gtlw speed [valeur | reset]Changer sa vitesse de marche/vol ; reset = vanilla.
Monde Admin — monde, zones & PNJ

La baguette d'admin

/gtlw wandDonne la ✦ Baguette d'Admin ✦ (blaze rod). Clic droit sur un bloc → menu tout-en-un : point de livraison, coffre à loot, station/dealer drogue, shop NPC, concessionnaire véhicules. C'est le moyen le plus rapide de configurer le monde.

Shops

/gtlw shop create <id>Spawne un PNJ-shop Citizens (modèle joueur) 2 blocs devant toi (IDs = fichiers shops/*.yml).
/gtlw shop removeSupprime le shop NPC le plus proche (≤5 blocs).
/gtlw shop list / open <id>Lister les shops définis / ouvrir un shop sans NPC (test).

PNJ (Citizens) : les vendeurs et concessionnaires sont désormais des NPC Citizens au modèle joueur (fini les villageois), avec la tête qui suit le joueur (trait LookClose). Les anciens NPC villageois sont convertis automatiquement au premier démarrage. Pour donner un skin : viser le PNJ → /npc select/npc skin --url <lien mineskin> (ou /npc skin -t <texture> <signature>). Génère tes skins sur mineskin.org.

Coffres à loot

/gtlw lootchest create [minTier] [maxTier] [cooldownSec]Enregistre le coffre visé comme coffre à loot auto-régénérant.
/gtlw lootchest remove / list / resetDésenregistrer le coffre visé / lister / forcer la régénération de tous.

Drogues

/gtlw drug station create|removeLe bloc regardé devient (ou cesse d'être) une station de traitement.
/gtlw drug dealer create|removeIdem pour un point de vente dealer.
/gtlw drug listDrogues chargées et leurs prix de base (marché dynamique).

Jobs — points de livraison

/gtlw job delivery add <id>Ajouter un point de livraison à ta position.
/gtlw job delivery remove <id> / listSupprimer / lister les points.

Véhicules

/gtlw vehicle spawn <id>Spawner un véhicule à ta position.
/gtlw vehicle remove / purgeSupprimer le véhicule conduit / tous les véhicules orphelins.

Zones

/gtlw safezone pos1 / pos2Marquer les deux coins d'une zone sans PvP.
/gtlw safezone create <nom> / delete <nom> / listCréer la zone à partir des coins / supprimer / lister.
/gtlw border wand → set / clear / infoSélectionner 2 points avec la baguette bordure puis set pour poser la limite de map ; clear la retire.

Propriétés (création admin)

/gtlw property wand [deny|allow]Baguette de zonage : sélectionne les sommets du polygone au sol (≥3 points). deny/allow pour dessiner des sous-zones interdites/autorisées.
/gtlw property createOuvre l'assistant de création (id, prix, type, nom) sur la sélection en cours ; cancel pour abandonner.
/gtlw property setspawn|setdepot <id>Définir le point d'apparition intérieur / le dépôt de la propriété à ta position.
/gtlw property info / snapshot <id> / delete <id> / reloadInfos de la propriété où tu es / sauvegarder l'état des blocs / supprimer / recharger les YAML.

Divers

/setspawn · /sethub <serveur>Définir le spawn ici / le serveur hub BungeeCord.
/gtlw sethospitalDéfinir le respawn hôpital (mort RP) à ta position.
Police Police, wanted & events

Police

/gtlw police wanted <joueur> [0-5]Voir ou fixer le niveau de recherche (étoiles). 0 = blanchi (alias recherche).
/gtlw police handcuff <joueur>Menotter un joueur proche — il ne peut plus courir/frapper (alias menotte).
/gtlw police uncuff <joueur>Retirer les menottes (alias liberer).
/gtlw police fine <joueur> <montant>Infliger une amende, prélevée sur le joueur (alias amende).

Events

/gtlw event guiGUI de pilotage des events (airdrop manuel, auto-drop…).
/gtlw event airdropLargue un airdrop à ta position : coffre rempli au tirage + feux d'artifice + annonce des coordonnées à tous — pillage autorisé.
/gtlw event gang <nom|tag> [répétitions] [intervalSec]Gang event : révèle en boucle les positions des membres du gang ciblé à tout le serveur.
/gtlw event gangset <répétitions> <intervalSec>Régler les valeurs par défaut du gang event.

L'auto-airdrop se règle dans events.yml (activation, intervalle, monde, centre, rayon, tiers min/max). Les events en cours sont relayés par le placeholder {event} de LWDisplay — voir l'onglet 📟.

Recettes Flux de mise en place (pas à pas)

Monter une armurerie

# 1. Définir les articles dans plugins/GTLW/shops/armurerie.yml puis :
/gtlw reload
# 2. Se placer à l'endroit voulu, face au comptoir :
/gtlw shop create armurerie
# 3. Donner un skin au PNJ (Citizens) — le viser puis :
/npc select
/npc skin --url <lien mineskin>
# 4. Tester l'achat :
/gtlw shop open armurerie

Circuit drogue complet

# 1. Regarder le bloc de traitement puis :
/gtlw drug station create
# 2. Regarder le comptoir du dealer puis :
/gtlw drug dealer create
# 3. Donner des graines à un joueur pour tester :
/gtlw drug give <joueur> <id> seed
# → il plante, récolte (raw), traite à la station (processed), vend au dealer.
#   Prix dynamiques : /gtlw drug list pour l'état du marché.

Job de livraison

# 1. Créer chaque point de livraison sur place :
/gtlw job delivery add usine_nord
/gtlw job delivery add docks
# 2. Vérifier :
/gtlw job delivery list
# 3. Côté joueur : /gtlw jobs → prendre le job livreur, suivre les points.

Coffre à loot qui régénère

# Poser un coffre, le viser, puis (tiers 2 à 4, respawn 10 min) :
/gtlw lootchest create 2 4 600
# Forcer un re-remplissage global :
/gtlw lootchest reset

Créer une propriété louable

/gtlw property wand
# Cliquer ≥3 sommets au sol pour dessiner le polygone
/gtlw property create
# → assistant : id, prix, type (HOUSE…), nom
/gtlw property setspawn villa_01
/gtlw property setdepot villa_01
/gtlw property snapshot villa_01
# Côté joueur : /property louer (ou /property louer gang)

Lancer un event

# Airdrop immédiat à ta position :
/gtlw event airdrop
# Traquer un gang pendant 5 passages toutes les 30 s :
/gtlw event gang MAFIA 5 30
Fichiers Fichiers de configuration & données
config.ymlRéglages généraux du plugin (resourcepack, hôpital, HUD…).
events.ymlAuto-airdrop : activation, intervalle (min), monde, centre, rayon, tiers.
drops.ymlPoids de loot des coffres (tiers, catégories) — modifiable en jeu via /gtlw drop.
rarities.ymlTiers de rareté des armes et leurs multiplicateurs de stats.
loot_table.ymlContenu des coffres à loot par tier.
weapon/*.ymlUne arme par fichier : dégâts, recul, cadence, munitions, sons, zoom…
gear/*.ymlÉquipements : armures t1-t5, jetpack, téléphone…
shops/*.ymlUn shop par fichier : articles et prix (l'ID du shop = nom du fichier).
drugs/*.ymlDrogues : effets, prix de base, culture.
jobs/ · vehicles/ · properties/Définitions des jobs, véhicules et propriétés.
data.dbSQLite : argent, gangs, véhicules possédés, baux… À sauvegarder régulièrement.

Après toute édition YAML : /gtlw reload. Après modification du resourcepack : rezipper (attention aux forward slashes) puis /gtlw resourcepack reload.

Intro Présentation & installation

LWDisplay affiche des textes flottants (hologrammes) dans le monde : accueil au spawn, panneaux d'info, compteurs, event en cours… Chaque hologramme est une entité TextDisplay native — fond configurable, texte face au joueur, taille libre. Les lignes acceptent couleurs/gras/dégradés et des placeholders dynamiques rafraîchis chaque seconde.

Installation

1. Déposer lwdisplay-1.0.0.jar dans plugins/.
2. Pour le placeholder {event}, il faut aussi gtlw-1.1.16.jar ou plus récent. Sans GTLW, LWDisplay fonctionne quand même — {event} affiche « Aucun événement en cours ».
3. Redémarrer : plugins/LWDisplay/config.yml et holograms.yml sont créés automatiquement.

Permission

lwdisplay.admin (défaut : OP) — accès à toute la commande /ld. Les hologrammes sont visibles par tous.

/ld Commandes

Créer / supprimer

/ld create <nom> [texte]Crée un hologramme à ta position (1,8 bloc au-dessus des pieds). Nom en minuscules, sans espaces.
/ld delete <nom>Supprime définitivement.
/ld listListe tout : monde, coordonnées, nombre de lignes.
/ld info <nom>Réglages + contenu brut de chaque ligne (tags visibles) — pratique avant un setline.

Éditer les lignes (numérotées à partir de 1)

/ld addline <nom> <texte>Ajoute une ligne à la fin.
/ld setline <nom> <n> <texte>Remplace la ligne n.
/ld insertline <nom> <n> <texte>Insère avant la ligne n.
/ld removeline <nom> <n>Supprime la ligne n.

Position

/ld movehere <nom>Déplace l'hologramme à ta position.
/ld tp <nom>Te téléporte à l'hologramme.

Apparence

/ld scale <nom> <0.1 – 10>Taille du texte. 1 = normal, 2 = double. Virgule ou point acceptés.
/ld billboard <nom> <mode>center (défaut) : face au joueur · vertical : pivote à l'horizontale · fixed : figé · horizontal : pivote verticalement.
/ld align <nom> <left|center|right>Alignement quand les lignes ont des longueurs différentes.
/ld background <nom> <valeur>default : fond noir vanilla · transparent : aucun fond · #RRGGBB : couleur custom · #AARRGGBB : couleur + opacité (AA de 00 à FF).
/ld shadow <nom> <on|off>Ombre portée du texte.

Divers

/ld placeholdersRappel en jeu des placeholders.
/ld reloadRecharge config.yml + holograms.yml et respawne tout — après édition manuelle des fichiers.
/ld helpAide en jeu.

Toutes les sous-commandes ont la tab-complétion : noms d'hologrammes et valeurs possibles.

Style Formatage — couleurs, gras, italique, dégradés

Deux syntaxes, mixables dans la même ligne : codes classiques &x et tags MiniMessage <tag>.

Couleurs

&0 <black>
&1 <dark_blue>
&2 <dark_green>
&3 <dark_aqua>
&4 <dark_red>
&5 <dark_purple>
&6 <gold>
&7 <gray>
&8 <dark_gray>
&9 <blue>
&a <green>
&b <aqua>
&c <red>
&d <light_purple>
&e <yellow>
&f <white>

Couleur libre (hex) : &#ff8800 ou <#ff8800> — n'importe quelle couleur RRGGBB.

Mise en forme

&l · <bold> · <b>GrasTexte en gras
&o · <italic> · <i>ItaliqueTexte en italique
&n · <underlined> · <u>SoulignéTexte souligné
&m · <strikethrough> · <st>BarréTexte barré
&k · <obfuscated> · <obf>▒▒▒▒▒Caractères brouillés animés
&r · <reset>NormalAnnule couleur + mise en forme

Exclusivités MiniMessage

<gradient:red:gold>…</gradient>DégradéDégradé 2+ couleurs (noms ou hex) : <gradient:#ff0000:#ffaa00:#ffff00>
<rainbow>…</rainbow>Arc-en-cielArc-en-ciel automatique

Un tag MiniMessage fermé limite sa portée : <red>rouge</red> normal. Un code & s'applique jusqu'au prochain code.

Piège des codes & : une couleur annule le gras qui précède — &l&6texte = or non-gras. Écrire &6&ltexte. MiniMessage n'a pas ce problème.

Data Placeholders dynamiques

À écrire tels quels dans une ligne — toute ligne qui en contient est rafraîchie automatiquement (1×/seconde par défaut).

{players}Joueurs connectés sur le serveur.
{max_players}Slots maximum.
{tps}TPS (moyenne 1 min, plafonné à 20.0).
{time}Heure réelle, format HH:mm.
{date}Date réelle, format jj/MM/aaaa.
{world}Monde de l'hologramme.
{world_players}Joueurs dans ce monde.
{event}Event GTLW en cours : airdrop (coordonnées du colis, 15 min après largage) ou gang event (gang ciblé, 5 min). Sinon texte « aucun event ». Durées et textes configurables.

GTLW ≥ 1.1.16 requis pour {event}. Lien optionnel (softdepend) : sans GTLW, retombe sur « aucun événement ».

Config Fichiers de configuration

plugins/LWDisplay/config.yml

# Intervalle de rafraîchissement des lignes dynamiques (ticks, 20 = 1 s)
refresh-interval-ticks: 20

event:
  # Durée (min) pendant laquelle l'airdrop est considéré "en cours"
  airdrop-duration-minutes: 15
  # Idem pour le gang event
  gang-duration-minutes: 5
  # Textes du placeholder {event} — MiniMessage accepté
  none: "<gray>Aucun événement en cours</gray>"
  airdrop: "<red><bold>AIRDROP</bold></red> <white>en <yellow>{x}</yellow>, <yellow>{y}</yellow>, <yellow>{z}</yellow></white>"
  gang: "<aqua><bold>GANG EVENT</bold></aqua> <white>{gang} repéré !</white>"

Dans event.airdrop : {x} {y} {z} = coordonnées du colis. Dans event.gang : {gang} = « [TAG] NomDuGang ».

plugins/LWDisplay/holograms.yml

Généré par les commandes — éditable à la main puis /ld reload :

holograms:
  bienvenue:
    world: world
    x: 0.5
    y: 82.0
    z: 0.5
    scale: 1.5
    billboard: CENTER
    align: CENTER
    shadow: false
    see-through: false
    background: default
    lines:
    - "<gradient:gold:yellow><bold>LastWorld</bold></gradient>"
    - "<white>{players}</white><gray>/{max_players} joueurs</gray>"
    - "{event}"

Sauvegarde à chaque commande et à l'arrêt du serveur. Si tu édites le fichier pendant que le serveur tourne, fais /ld reload avant toute commande /ld, sinon tes éditions manuelles seront écrasées.

Recettes Exemples prêts à l'emploi

Panneau d'accueil au spawn

/ld create bienvenue <gradient:#ff0040:#ffaa00><bold>LASTWORLD</bold></gradient>
/ld addline bienvenue &7— <white>{players}</white>&7/{max_players} joueurs —
/ld addline bienvenue {event}
/ld scale bienvenue 1.5
/ld background bienvenue transparent

Tableau d'infos serveur

/ld create infos &6&lINFOS SERVEUR
/ld addline infos &7TPS : &a{tps}
/ld addline infos &7Heure : &e{time} &8· &7{date}
/ld addline infos &7Monde : &f{world} &8(&f{world_players}&8 joueurs)
/ld background infos #80000000

Alerte event au-dessus d'un point stratégique

/ld create alerte {event}
/ld scale alerte 2
/ld billboard alerte center
/ld shadow alerte on

Titre fixe façon panneau (ne pivote pas)

/ld create panneau &b&lARMURERIE
/ld billboard panneau fixed
/ld align panneau center

Un hologramme fixed garde l'orientation qu'il avait au spawn — place-toi face à l'endroit voulu avant le /ld create ou /ld movehere.

Interne Fonctionnement technique

Entités : chaque hologramme est une TextDisplay non-persistante, taguée lwdisplay:hologram (PDC). Elle disparaît avec son chunk et le plugin la respawne au rechargement — aucune entité fantôme dans les fichiers de région.

Nettoyage : au démarrage et à chaque chargement de chunk, toute TextDisplay taguée est supprimée avant respawn (reliquats de crash).

Rafraîchissement : une seule tâche (défaut 20 ticks) ne met à jour que les hologrammes dont une ligne contient {. Les statiques ne coûtent rien après le spawn.

Pont GTLW : lecture de fr.gtlw.api.GtlwApi par réflexion (aucune dépendance de compilation, softdepend: [GTLW]). GTLW y enregistre dernier airdrop et dernier gang event depuis GameEventManager. Si les méthodes de GtlwApi changent, mettre à jour GtlwBridge.

Projet : Maven dans GTLW/LWDisplay du repo gtalwplugin. Build : mvn packagetarget/lwdisplay-1.0.0.jar.