Retour au blog
Scripts7 min de lecture

Agency-Seatbelt : pourquoi un script de 20kb a un impact majeur sur la conduite

Agency-Seatbelt est minuscule, mais son impact sur le jeu est énorme. Découvre pourquoi des ceintures réalistes comptent autant.

Agency Scripts

Fondateur et développeur principal chez Agency Scripts

Petits scripts, grand impact

Agency-Seatbelt est l’un des plus petits scripts que nous proposons, mais les retours le classent régulièrement parmi les plus appréciés. On peut en tirer une leçon : le RP se construit grâce à de petites mécaniques qui rendent le monde cohérent, pas avec des fonctionnalités monolithiques déversées en bloc.

Les retombées du réalisme

Quand les joueurs doivent mettre leur ceinture physiquement avant de conduire, trois choses changent. Les poursuites deviennent plus dangereuses, car boucler sa ceinture en pleine course-poursuite prend du temps. Les policiers ont une nouvelle infraction à verbaliser. Les passagers subissent réellement les conséquences de l’imprudence du conducteur. Chacun de ces éléments est un petit ressort de RP qui apporte de la profondeur sans alourdir l’expérience.

Les détails de l’animation et du son

Nous avons passé plus de temps sur l’animation pour boucler et déboucler la ceinture que sur la logique principale. Une animation de deux secondes, un léger clic et un indicateur de ceinture distinct sur le HUD : ce sont ces petits détails soignés qui montrent aux joueurs que « ce serveur prend son rôle au sérieux ». Quand tout le reste fonctionne discrètement, ces petits moments ressortent.

Intégration avec les scripts de véhicules

Agency-Seatbelt s’intègre facilement à n’importe quel script de dégâts des véhicules grâce à un événement client simple que nous exposons, `agency-seatbelt:isBuckled`, que les autres scripts peuvent interroger. Ton script de dépanneuse peut refuser les demandes de remorquage des joueurs qui viennent d’être éjectés à travers leur pare-brise. Ton script d’hôpital peut appliquer des modificateurs de blessures réalistes. Le script est suffisamment léger pour ne rien imposer, tout en étant assez flexible pour s’intégrer à d’autres systèmes.

Gratuit, parce que ça devrait l’être

Agency-Seatbelt restera toujours à 0 €. Une mécanique de sécurité de base ne devrait pas être derrière un paywall. Utilise-le, crée un fork, modifie-le, peu nous importe. Chaque serveur qui utilise nos scripts gratuits est un serveur susceptible d’acheter un jour nos scripts premium, et nous voyons les choses sur le long terme.

Installation & configuration

Agency-Seatbelt est gratuit et n’a aucune dépendance. Télécharge-le depuis GitHub ou l’offre gratuite de Tebex, place le dossier dans le répertoire de tes resources, puis ajoute ensure agency-seatbelt à server.cfg . La ressource fonctionne dès le prochain redémarrage du serveur. Pas de base de données, pas de framework, aucune configuration requise.

Si tu veux personnaliser la touche, l’intégration des contraventions ou le comportement de l’indicateur du HUD, ouvre config.lua . Les paramètres par défaut conviennent à la plupart des serveurs, et de nombreux propriétaires utilisent Agency-Seatbelt pendant des mois sans jamais toucher à la configuration.

Options de configuration

Le config.lua couvre les paramètres d’interaction et de conséquences :

  • Touche pour boucler la ceinture, la touche sur laquelle les joueurs appuient pour boucler et déboucler leur ceinture. Par défaut : B (comme dans de nombreux anciens scripts de ceinture, pour retrouver des automatismes familiers).
  • Seuil d’éjection, la vitesse du véhicule à partir de laquelle un joueur sans ceinture est éjecté en cas de collision. Par défaut : 50 km/h.
  • Force d’éjection, la distance à laquelle le joueur est projeté lors de l’éjection. Des valeurs plus élevées donnent un résultat plus spectaculaire, des valeurs plus faibles sont plus réalistes.
  • Dégâts liés à l’éjection, la quantité de santé et d’armure retirée lorsqu’un joueur est éjecté sans ceinture. Ce paramètre est réglable indépendamment de la force d’éjection.
  • Indicateur du HUD, indique si une petite icône de ceinture apparaît sur le HUD quand le joueur est dans un véhicule sans avoir bouclé sa ceinture. Nécessite Agency-Hud ou un événement d’export de position pour les HUD personnalisés.
  • Commande de police, activer /checkbelt pour que la police puisse vérifier si les occupants d’un véhicule à proximité ont mis leur ceinture.
  • Contrôle des passagers, indique si les passagers sont éjectés eux aussi, en plus des conducteurs, lorsqu’ils n’ont pas bouclé leur ceinture. Activé par défaut.

Compatibilité avec les frameworks

Agency-Seatbelt n’a aucune dépendance à un framework. La logique d’éjection et de dégâts repose sur des fonctions natives de manipulation des véhicules et des peds FiveM, qui fonctionnent de la même manière sur tous les serveurs. La commande de police facultative utilise une simple vérification des permissions, implémente Config.IsPolice(src) pour tout système de métier personnalisé, ou désactive complètement la commande si elle ne te sert pas.

Pourquoi c’est important pour le roleplay

La philosophie de conception derrière Agency-Seatbelt est que les petits détails mécaniques façonnent peu à peu l’identité d’un serveur. Un serveur avec des ceintures, la possibilité de s’asseoir, des notifications personnalisées et un HUD soigné offre une expérience fondamentalement différente, même si un joueur ne sait pas exactement expliquer pourquoi. Les ceintures sont l’un de ces petits signes discrets qui disent « ce serveur soigne les détails ».

C’est avec les forces de l’ordre que ce script génère le plus de valeur en RP actif. Sur les serveurs équipés d’Agency-Seatbelt, les policiers disposent d’un nouvel outil de contrôle routier discret. Un contrôle qui commence par « J’ai remarqué que votre passager n’avait pas bouclé sa ceinture » constitue une meilleure amorce de RP qu’un prétexte que tout le monde sait inventé. Ce petit détail donne aux policiers une raison réaliste d’interagir avec les civils, ce qui ouvre la voie à des scénarios qui n’auraient pas lieu autrement.

Les courses-poursuites prennent une autre dimension quand les conducteurs savent que les collisions à grande vitesse ont de vraies conséquences. La question « Est-ce que je prends le risque de provoquer un accident pour les semer ? » devient plus intéressante quand l’une des issues possibles est de passer à travers le pare-brise. C’est exactement ce genre de tension qui rend les poursuites plus intéressantes qu’une simple comparaison de vitesse entre deux véhicules.

Les passagers s’investissent davantage dans la conduite. S’il sait qu’il subira les conséquences des décisions imprudentes du conducteur, un passager lui demandera de ralentir, discutera de l’itinéraire ou préférera descendre plutôt que de prendre le risque. Ce sont de petits moments de RP qui n’existent tout simplement pas sans les conséquences introduites par les ceintures.

Questions fréquentes

L’éjection fonctionne-t-elle avec tous les types de véhicules ?

L’éjection fonctionne dans les voitures, les camions et les fourgonnettes. Les motos et les vélos utilisent une force d’éjection différente, réduite, car la physique se comporte autrement. Les vérifications de ceinture sont désactivées par défaut dans les hélicoptères et les avions, car l’éjection d’un aéronef entraîne plus de situations propices au grief que de valeur en RP. Tu peux activer les vérifications pour les aéronefs dans config.lua si ton serveur a des besoins particuliers en RP aérien.

Peut-on donner des amendes pour les infractions liées aux ceintures ?

Oui. Agency-Seatbelt déclenche un événement côté serveur agency-seatbelt:violation avec l’identifiant du joueur et le net ID du véhicule lorsqu’un contrôle de police révèle qu’un occupant n’a pas bouclé sa ceinture. Ton script de police ou d’amendes écoute cet événement et applique le système d’amendes utilisé par ton serveur. Le script de ceinture se charge de la détection, ton script d’amendes gère les conséquences économiques.

La mécanique d’éjection interagit-elle avec les scripts d’écran de mort ?

Agency-Seatbelt déclenche agency-seatbelt:onEjection l’événement avant d’infliger des dégâts. Les scripts d’écran de mort qui écoutent les changements de santé détectent naturellement ces dégâts. Pour une intégration plus étroite, avec des types de blessures personnalisés ou des données sur les crimes commis sur la scène, écoute directement l’événement d’éjection et ajoute ta logique à cet endroit.

Peut-on désactiver l’éjection dans certaines zones, comme les circuits de course ?

Oui. Utilise exports['agency-seatbelt']:DisableInZone(coords, radius) depuis n’importe quel script du serveur. L’éjection est désactivée pour tous les joueurs situés dans ce rayon. Appelle cette fonction au lancement d’un événement et supprime la zone ensuite. Cela évite que les mécaniques de ceinture interfèrent avec les courses ou d’autres scénarios où les accidents de véhicule sont prévus et sans conséquences.

Prérequis

  • Serveur FiveM (n’importe quel framework ou standalone)
  • Gratuit, aucune licence Tebex requise
  • Aucune dépendance à une base de données
  • Aucune dépendance à des ressources externes

Le script correspondant

Prêt pour ton serveur, mises à jour incluses.

Prêt à commencer ?

Procurez-vous les scripts dans notre boutique, ou rejoignez le Discord pour le support, les mises à jour et un aperçu de la suite.