Configuration

Les réglages sont dans config.lua, où chaque option est expliquée. Les textes sont dans locales/fr.lua et locales/en.lua. Un restart kp_earthquake applique les changements.

Les réglages utiles

Réglage Pour
Config.Locale Langue des textes : 'fr' ou 'en'
Config.Framework 'auto', 'esx', 'qbcore', 'custom' ou 'none'
Config.Debug Lignes de diagnostic dans la console, désactivé par défaut
Config.VersionCheck Message en console quand une nouvelle version sort
Config.Commands Renommer /earthquake et /earthquakestop
Config.Permission Qui peut déclencher : permission ACE, groupes staff, identifiants
Config.Defaults Magnitude, durée et rayon quand la commande ne les donne pas
Config.Limits Durée max, rayon max, attente entre deux séismes
Config.Magnitudes Force de la caméra et volume pour chaque magnitude
Config.Shake Effet de caméra GTA, montée, retombée, perte de force vers le bord
Config.Sound, Config.PadShake Grondement et vibration des manettes
Config.Effects Ambiance : voitures, alarmes, passants, lumières
Config.Bikes Pilotes de deux-roues éjectés
Config.Ragdoll Chutes des joueurs à pied
Config.Alert Carte d'alerte aux joueurs touchés (désactivée par défaut)
Config.Notify Type, position, taille, style, thème, durée, son
Config.Discord Webhook et embed des logs

Le framework

Config.Framework ne sert qu'aux groupes staff et au nom RP dans les logs Discord :

  • 'auto' : ESX s'il est démarré, sinon QBCore, sinon permission ACE seule ;
  • 'esx' : groupe du joueur (xPlayer.getGroup()) comparé à Config.Permission.Groups ;
  • 'qbcore' : chaque groupe est testé comme principal ACE (qbcore.god, qbcore.admin...), comme QBCore le fait lui-même ;
  • 'custom' : ton framework, à brancher dans bridge/framework/custom.lua (voir Développeurs) ;
  • 'none' : aucun framework, la permission ACE et Config.Permission.Identifiers suffisent.

Si le framework choisi n'est pas démarré, la console l'indique et le script passe sur la permission ACE.

L'ambiance

Chaque effet se règle dans Config.Effects, ne tourne que pendant un séisme et seulement autour des joueurs touchés. MinMagnitude fixe la magnitude à partir de laquelle il s'active.

Effet Par défaut Ce qu'il fait
VehicleSway dès la magnitude 2 Poussées de côté sur la voiture que conduit un joueur, Force règle leur puissance
CarAlarms dès la magnitude 3 Les alarmes des voitures vides autour se déclenchent (Radius 40 m, Max 6)
PanicPeds dès la magnitude 3 Les passants fuient ou se protègent (Radius 60 m, Max 20)
Blackout dès la magnitude 4 Lampadaires et néons clignotent au pic du séisme

Blackout ne touche à rien si GlobalState.blackout est déjà actif (qb-weathersync, Renewed-Weathersync...) : une vraie coupure de courant ne se rallume jamais.

Les chutes

Config.Bikes est activé : à partir de la magnitude 3, un pilote de moto, de scooter ou de vélo a 12 % de chances par seconde d'être éjecté à pleine force.

Config.Ragdoll est désactivé. Avec Enabled = true, un joueur à pied peut perdre l'équilibre à partir de la magnitude 4 : 6 % de chances par seconde à pleine force. Jamais en voiture.

Les notifications

Par défaut, le séisme n'affiche rien : seuls les refus de commande (permission, séisme déjà en cours, délai) s'affichent au staff, et la carte d'alerte si tu l'actives. Config.Notify.Type choisit l'affichage :

  • 'medallion' : l'interface KAAPSULE, compacte, en haut à droite par défaut. Tout se règle : Position (six coins et bords), Offset, Scale, Style (carte ou pilule), Theme ('dark' ou 'light'), Max, Sound ;
  • 'ox_lib' : les notifications d'ox_lib (ox_lib doit être démarré) ;
  • 'esx' : les notifications d'ESX ;
  • 'qbcore' : les notifications de QBCore ;
  • 'native' : les notifications de GTA.

Pour le médaillon, dépose le logo de ton serveur en PNG sous html/img/logo.png : prends une image carrée. Sans logo, le médaillon affiche l'icône du séisme.

Les textes

Tous les textes sont dans locales/fr.lua et locales/en.lua. Change la phrase, garde les parties entre accolades ({magnitude}, {seconds}...) : le script les remplit. Une clé absente de ta langue reprend le texte anglais.

Tes logs Discord

Colle ton webhook dans Config.Discord.Webhook : chaque séisme déclenché, et chaque arrêt, envoie un message (magnitude, durée, zone, joueurs touchés, qui l'a déclenché). L'embed se modifie en entier dans Config.Discord.Embed.

Variables utiles : {action}, {magnitude}, {duration}, {area}, {players}, {staff_rp}, {staff_name}, {staff_id}, {staff_mention}, {staff_license}, {date}. Ajoute :upper pour écrire en majuscules, comme {staff_rp:upper}. Un log ne mentionne jamais personne.

Les images doivent être des liens publics (https://...) : Discord ne peut pas lire les fichiers de ton serveur.

La vérification au démarrage

Au démarrage, le script relit ta config. Une valeur fausse est signalée une fois en console et remplacée par sa valeur par défaut, sans rien bloquer :

[kp_earthquake] config: Config.Limits.Cooldown = -5 is not valid, 10 used instead