Media
Description 🇬🇧 Description 🇫🇷

NRestrict: Advanced & Optimised GMod zone restriction addon (FR) - Script

Vidéo de Demonstration de NRestrict: Advanced & Optimised GMod zone restriction addon sur Youtube

NRestrict est un addon GMod de restriction de zones avancé, optimisé et modulaire. Définissez avec précision qui peut ou non entrer dans une zone selon son job, rang, niveau, rôle ou catégorie, via un système de whitelist/blacklist intelligent et minimal en utilisation de ressources serveurs. Intégration HUD native, interface centralisée, sans entité à poser, idéal pour un contrôle RP automatisé, même sans staff connecté.

zone-limiter warning limit-job-role limit-lvl-karma get-tool-to-build area-type tool-reload-menu management create-groups set-ejection lvl-karma set-zone-whitelist-blacklist options custom-hud how-reset examples out-map

Maximum image size
Description

Description de NRestrict: Advanced & Optimised GMod zone restriction addon

Sommaire:
  1. ⛔ Description de "NRestrict: Restriction avancée et optimisée d'accès par zone pour GMod"
  2. 💡 Pourquoi intégrer NRestrict à votre serveur ?
  3. ⚙️ Menu NRestrict: Gestion centralisée des restrictions par zone
  4. 🧰 SWEP intégré: création et configuration des zones de restriction sans entités
  5. 👁️ HUD de feedback: Affichage dynamique des motifs de restriction
  6. 📜 Configuration des conditions d’accès: groupes, rangs, jobs, niveaux
  7. 🔐 Whitelist, blacklist et gestion hiérarchique
  8. 🚧 Anti-abus & Sécurité comportementale
  9. ⚡ Performance & architecture client/serveur
  10. 🚀 Compatibilité avec l’écosystème OSGMod


📒 Description de "NRestrict: Restriction avancée et optimisée d'accès par zone pour GMod"

NRestrict est un système de restriction d'accès par zone pour Garry's Mod, pensé pour les environnements exigeants et modulaires. Basé sur une architecture intelligente client/serveur, il permet de contrôler précisément qui peut entrer dans une zone, selon des critères multiples : job, groupe de job, rôle, niveau, rang, catégorie, etc. Le tout, sans entité à poser en jeu, ni dépendance à un gamemode.

Conçu pour les serveurs RP, DarkRP, Helix, ou Sandbox, NRestrict agit comme un pare-feu logique: une zone peut être configurée pour refuser ou autoriser certaines entités en temps réel, avec une notification utilisateur clair via le HUD lorsqu'il est automatiquement refusé dans une zone.

Lorsqu’un joueur entre dans une zone, le système analyse dynamiquement son profil (job, rôle, niveau) et affiche une notification HUD en cas de refus, avec le motif exact de la restriction: non-respect du niveau requis, job non autorisé, etc. Le tout fonctionne sans synchronisation réseau continue ni boucle globale, assurant une empreinte système minimale.

Là où habituellement le staff doit intervenir manuellement pour empêcher certains joueurs d’accéder à des zones sensibles (quartier VIP, zone faction, salle de commandement, etc.), NRestrict s'impose comme un remplaçant automatisé et fiable. Comparable à des outils comme Area Restrictor 2, il offre toutefois une approche plus modulaire, optimisée et entièrement personnalisable.

En l'absence de modérateurs en ligne, ou dans des environnements RP exigeants, NRestrict permet de maintenir l'ordre, l'immersion et la hiérarchie des accès, sans intervention humaine. Que ce soit pour un accès réservé à la police, aux médecins, à une faction armée ou à un niveau spécifique, le système agit automatiquement, en toute transparence pour l’utilisateur et sans surcharge serveur.

NRestrict est-il la suite de Gmod Area Restrictor ?
Oui, NRestrict est l'évolution directe de Gmod Area Restrictor, un addon que j'ai créé il y a plus de 10 ans.
D'une certaine manière, c'est "Area Restrictor 2", redessiné depuis le début pour répondre aux besoins des serveurs GMod d'aujourd'hui.

🧠 Petite réalisation du jour : il s’est écoulé 1/10e de siècle (oui, 10 ans) entre mes deux générations d’addons.
Pendant ce temps, certains vous vendent un "remaster" 4 mois après le premier jet... Comme quoi, entre refaire vite et refaire bien, il y a une décennie d'écart. 😉



💡 Pourquoi intégrer NRestrict à votre serveur ?

✅ Zéro entité à placer sur la map.
✅ Zones sphériques ou cubiques.
✅ Whitelist & blacklist dans une même zone.
✅ Analyse dynamique: rôle, niveau, job, catégorie.
✅ Affichage HUD du motif de restriction.
✅ Menu de gestion centralisé.
✅ Compatible DarkRP, Sandbox, NJob, Helix.
✅ SWEP intégré pour création et édition rapide.
✅ Optimisé pour le multijoueur massif (128+ joueurs).
✅ Aucun hook global ni boucle intensive.
✅ Création possible en zones "hors map", idéale pour éviter les abus de noclip.
✅ Aucun rechargement de map requis.



⚙️ Menu NRestrict: Gestion centralisée des restrictions par zone

Depuis une interface ergonomique, configurez toutes vos zones de restriction avec une précision millimétrée. Le menu permet:
- La création de groupes de jobs, catégories ou rôles restreints.
- L’attribution de niveaux minimum ou maximum autorisés.
- La définition de zones ouvertes uniquement à certains rangs (ex: staff, faction, VIP).
- Le choix entre whitelist, blacklist, ou les deux combinées.
- La personnalisation des messages HUD affichés en cas de restriction.

Pensé pour les serveurs à gestion complexe, ce système permet un contrôle total sans interaction manuelle sur la map.



🧰 SWEP intégré: création et configuration des zones de restriction sans entités

Le SWEP intégré permet une création rapide et intuitive des zones:
- Reload: ouvrir l’interface du SWEP.
- Clic gauche: poser le point P1 (centre ou coin).
- Clic droit: poser le point P2 (rayon ou coin opposé).
- Clic gauche sur zone existante: la déplacer.
- Clic droit sur zone existante: la supprimer.
- Aucune entité physique n’est nécessaire. La configuration est 100% dynamique et instantanée.



👁️ HUD de feedback: Affichage dynamique des motifs de restriction

Lorsqu’un joueur tente d’entrer dans une zone à accès restreint:
- Une notification HUD s’affiche automatiquement.
- Le motif précis de l’interdiction est détaillé (ex: "Accès interdit: niveau 15 requis", "Job non autorisé: Police").
- Option de logo, texte, son, et couleur personnalisables.
- Messages de refus optionnels dans le chat.
- Cela permet une expérience utilisateur claire, évitant toute confusion en RP.



📜 Configuration des conditions d’accès: groupes, rangs, jobs, niveaux

Chaque zone peut être conditionnée selon:
- Une whitelist de jobs autorisés.
- Une blacklist de rôles, groupes ou jobs.
- Un niveau minimum ou maximum (intégration possible avec des addons de progression).
- Un rang spécifique (VIP, staff, faction, etc.).
- Une catégorie entière de jobs.

Tout est paramétrable individuellement par zone, avec possibilité de dupliquer les profils de restriction.



🔐 Whitelist, blacklist et gestion hiérarchique

Le cœur du système repose sur une gestion hiérarchique avancée:
- Une whitelist prioritaire peut autoriser certains joueurs même s’ils sont en conflit avec une blacklist.
- Les groupes hiérarchiques (staff, admin, superadmin) peuvent être définis comme override.
- Des profils d’accès prédéfinis peuvent être enregistrés pour réutilisation rapide (zones VIP, militaires, rebelles, etc.).
- Un système logique puissant pour gérer des dizaines de zones en toute simplicité.



🚧 Anti-abus & Sécurité comportementale

Afin d’éviter les tentatives de contournement:
- Blocage physique à l’entrée (optionnel): le joueur est repoussé.
- Blocage logique: entrée autorisée mais désactivation d’actions (tir, interaction, etc.).
- Notification automatique aux admins si tentative de contournement.
- Historique des tentatives d’accès interdit disponible dans les logs.
- Sécurité intégrée, aucune dépendance externe.



⚡ Performance & architecture client/serveur

Poids optimisé:
Client: ~41ko
Serveur: ~14ko
Workshop (icons): ~7ko

Architecture:
- Aucun hook global.
- Aucune boucle serveur continue.
- Aucune entité posée sur la map.
- Traitement localisé, avec triggers événementiels.

Supporte sans latence jusqu’à 128 joueurs simultanés, même avec plusieurs centaines de zones actives.



🚀 Compatibilité bonus avec l’écosystème OSGMod

NRestrict s’intègre naturellement avec ses addons qui ne sont pas obligatoire:
💪 Gmod Leveling System: Si vous n'avez pas de système de level et que vous souhaitez limiter les zones en fonction des niveaux minimum et maximum requis.
🎭 Gmod Karma + Reputation System: Si vous avez besoin d'ajouter des limites de zone en fonction de la réputation d'un joueur.
💼 NJob - Gmod Job Creator and Editor: Si vous ne voulez pas utiliser le DarkRP, NJob ajoute un système de job compatible sans DarkRP.
🛠️ Nor Admin Mod - GMod Administration System: Si vous souhaitez ajouter des roles spéciaux, VIP ou autre roles en Whitelist.

🔹 WIKI & F.A.Q 🇫🇷
Wiki 🇬🇧 Wiki 🇫🇷

Wiki de NRestrict: Advanced & Optimised GMod zone restriction addon

NRestrict: Advanced & Optimised GMod zone restriction addon


☰ 1. Installation de NRestrict: Advanced & Optimised GMod zone restriction addon
Installation : Téléchargez et décompressez le dossier norda_nrestrict.zip. Installez l'addon dans le fichier addons de votre serveur Gmod,
Chemin: garrysmod/addons/norda_nrestrict
☰ 2. Où trouver les ressources et les matérials? Quel est l'id Workshop de NRestrict: Advanced & Optimised GMod zone restriction addon?
Vous trouverez les ressources dans le workshop de Garry's Mod sur Steam. - Gmod Workshop ID des ressources de NRestrict: Advanced & Optimised GMod zone restriction addon: 3500785516
- La fonction AddWorkshop est automatiquement ajouté dans le fichier serveur du script il est désactivable depuis le fichier configuration : resource.AddWorkshop( 3500785516 )
- Pour ajouter les ressources du workshop de gmod à votre collection : NRestrict: Advanced & Optimised GMod zone restriction addon [Ressouces seulement] | Gmod Workshop
☰ 3. Comment ouvrir le menu d'administration de NRestrict?
Tu peux soit taper la commande console: norda_nrestrict
Utiliser le bouton raccourci via le système Nor Admin System (si vous l’avez installé).
☰ 4. Comment placer des zones restreinte sur la carte GMod ?
Deux méthodes :
Via le menu de gestion des zones, cliquez sur "Ajouter une zone de restriction".
Via le SWEP Tool intégré à l’addon NRestrict, passez en mode création et clique gauche. (voir section dédiée plus bas).
Get the Tool NRestrict
☰ 5. Peut-on placer des zones en dehors de la carte ?
Oui. Grâce au SWEP Tool, vous pouvez : Placer une zone où vous regardez. Ou placer une zone à partir de votre position actuelle.
Zones Outside of the source engine map
☰ 6. Comment obtenir l'outil NRestrict pour placer des zones restreintes sur ma map ?
Depuis le spawnmenu de Gmod en mode sandbox, ou depuis l'interface de gestion de NRestrict vous pouvez vous le give.
Get the Tool NRestrict
☰ 7. Comment placer une zone cubique avec le tool ?
Lorsque vous placez une zone via le tool SWEP :
Clic gauche : place le point P1, vous obtenez une sphère autour de se point.
Clic droit : place le point P2, la zone devient cubique.
2 Types of Zones
☰ 8. Comment fonctionne le bouton "Reload" dans le tool?
Une fois le tool en main appuyez sur la touche Reload pour ouvre le menu du tool, dans la partie gauche s'affichera les variables des zones que tu as sélectionné et la partie droite les options pour travailler avec.
Reload Menu - Tool NRestrict
☰ 9. Comment sélectionner une zone de restriction existante ?
Prenez l'outil en main, ouvrez le reload menu et sélectionnez le mode : Selection en haut à droite. Cliquez sur le point P1 ou P2 d'une zone pour la sélectionner. Quand une zone est sélectionné les points qui la compose deviennent blanc au lieu de rouge.
2 Types of Zones
☰ 10. Comment modifier les paramètres d'une zone sélectionnée ?
Selectionnez une zone, ses variables s'affichent dans la partie gauche du menu Reload. Ou depuis la liste des zones dans le menu de gestion.
Reload Menu - Tool NRestrict
☰ 11. Comment supprimer une zone de restriction déjà placée ?
Depuis le menu de gestion allez à la liste des zones, clique droit (comme sur l'exemple en dessous à la zone 11) Et l'option supprimer s'affiche. Vous pouvez aussi sortir le tool tout simplement et passer en mode suppression dans son menu Reload en haut à droite, cliquez une première fois sur une zone pour la sélectionner (les points deviennent blanc quand ils sont selectionné) et cliquez une seconde fois pour la supprimer, cette méthode évite les suppressions accidentel.
Delete Restricted Zone - NRestrict
☰ 12. Comment créer des groupes de jobs / rôles / catégories au lieu de les définir un par un sur chaque zone ?
Oui fini de courir à chaque zone pour ajouter ou retirer un nouveau job, vous créez des regroupements que vous pourrez assigner à la whitelist de job ou sa blacklist et si un jour vous devez ajouter un nouveau job ou role, il suffit de l'ajouter à ce regroupement ce qui permet de réduire drastiquement la taille des sauvegardes. Qui dit plus petit, dit aussi plus rapide à charger.
☰ 13. Comment créer un groupe personnalisé de jobs, rôles ou catégories à utiliser dans des zones ?
Dans le menu de gestion, allez dans Gestion des groupes.
Cliquez sur le bouton + Add new Group pour créer un nouveau groupe.
Sur la droite, choisissez les jobs, rôles ou catégories que vous souhaitez inclure dans ce groupe en les sélectionnant dans la liste.

Une fois le groupe créé, vous pourrez l'utiliser dans les whitelists ou blacklists des zones.
Create Groups of Jobs, Roles, Categories Job - Nrestrict
☰ 14. Comment assigner des jobs, des rôles ou des catégories à la whitelist ou blacklist des zones restreinte ?
Une fois que vous avez créé vos différents groupes, vous verrez les noms des groupes lorsque vous cliquerez sur le bouton whitelist ou blacklist pour définir le groupe à associer à la zone.
Assigner un groupe de jobs à la whitelist ou blacklist d'une zone limité
☰ 15. Les conditions de restrictions sont-elles cumulatives ?
Oui, vous pouvez cumuler un level minimal requis mais aussi en même temps un maximal + Un niveau de réputation requis + Une Blacklist + La whitelist.
☰ 16. Comment définir le point de téléportation du joueur lorsqu’il est expulsé d’une zone ?
Lors de la configuration d’une zone de restriction, vous avez deux options pour gérer l’expulsion :
-Pousser le joueur vers l’extérieur à partir du centre de la zone.
-Le téléporter vers un point précis, avec une position et une orientation définies.

Pour activer la téléportation, placez-vous à l’endroit voulu, en regardant dans la bonne direction, puis ouvrez le menu et validez en cliquant sur la coche verte. (Voir l’image ci-dessous pour illustration)
Push out of zone or tp to a poinr
☰ 17. Comment repousser automatiquement un joueur hors de la zone au lieu de le téléporter ?
Pour expulser un joueur en le repoussant hors de la zone, et non en le téléportant à un point fixe, vous devez désactiver l’option Ejection Point.

Assurez-vous que l’option Ejection Point est réglée sur OFF.
Dans ce mode, le joueur sera automatiquement poussé à l’extérieur, en suivant la direction opposée au centre de la zone. Qu'elle soit sphérique ou cubique. (Voir image ci-dessous pour illustration)
Push out of zone or tp to a poinr
☰ 18. Comment définir un niveau minimum ou maximum requis pour entrer dans une zone ?
Dans le menu de configuration de la zone, vous pouvez définir une restriction par niveau à l’aide des champs :
- Level Min : niveau minimum requis pour entrer dans la zone
- Level Max : niveau maximum autorisé

Tout joueur en dehors de cette plage sera automatiquement expulsé ou bloqué selon les paramètres choisis.
Limiter une zone en fonction de la réputation sur gmod
☰ 19. Comment restreindre l’accès à une zone en fonction de la réputation du joueur (karma) ?
Toujours dans le même menu, vous pouvez également définir une plage de réputation (karma) autorisée :
- Karma : réputation minimale nécessaire

Cela vous permet, par exemple, de limiter l’accès à certaines zones aux joueurs ayant une mauvaise conduite donc avec un faible karma.
Limiter une zone en fonction de la réputation sur gmod
☰ 20. Comment infliger des dégâts (perte de vie) lorsqu’un joueur est expulsé d’une zone ?
Comment infliger des dégâts (perte de vie) lorsqu’un joueur est expulsé d’une zone ?
Dans le menu de configuration de la zone, vous pouvez définir un montant de points de vie à retirer lorsqu’un joueur est expulsé.
Cela permet de simuler un choc, une alerte électrique ou tout autre effet punitif.

➡️ Champ : Health points lost
Indiquez ici le nombre de points de vie que le joueur perdra lors de l’expulsion.

Par exemple :
10 = le joueur perdra 10 HP
0 = aucun dégât infligé. OFF

Limiter une zone en fonction de la réputation sur gmod
☰ 21. Comment réinitialiser NRestrict ?
Pour réinitialiser NRestrict, cliquez sur le bouton bleu "Refresh" situé en haut à droite de l’interface.
Un menu s’ouvrira vous permettant de choisir précisément ce que vous souhaitez réinitialiser :
-Les zones
-Les groupes
-Les configurations

✅ Cela permet de faire un reset partiel ou complet sans devoir tout supprimer manuellement.
Bouton bleu de réinitialisation - NRestrictor
☰ 22. Comment désactiver le système NRestrict sans le désinstaller ?
Activez l’option [DISABLE] Entire System dans le menu Server Options. Cela met tout le système en pause sans désinstaller l’addon.
Server options menu - NRestrict
☰ 23. Comment activer uniquement une notification dans le chat lors d'une restriction ?
Cochez Chat Message Only dans Server Options. Cela désactive le HUD, les sons et n’affiche que le message texte dans le chat.
Server options menu - NRestrict
☰ 24. Comment ne pas afficher la raison de l'expulsion à l'utilisateur ?
Décochez Show Eject Reason to Player dans le menu Server Options. Le joueur sera expulsé sans indication de motif.
Server options menu - NRestrict
☰ 25. Comment afficher toutes les zones restreintes pour tous les joueurs ? (ESP)
Activez l’option [ESP] Show All Zones to All Players pour rendre visibles toutes les zones restreintes, peu importe le statut du joueur.
Server options menu - NRestrict
☰ 26. Comment jouer un son personnalisé quand un joueur est expulsé ?
Modifiez le champ Custom Sound on Eject pour y entrer le chemin du son souhaité (format .wav conseillé).
Server options menu - NRestrict
☰ 27. Comment modifier le délai avant qu’un joueur soit expulsé après l’avertissement ?
Ajustez la valeur Seconds Before Eject pour définir le temps (en secondes) entre l’avertissement et l’éjection.
Server options menu - NRestrict
☰ 28. Comment afficher un message de confirmation avec la raison de la restriction que le joueur doit valider (bouton OK) ?
Cochez Show Reason With OK Button. Le joueur devra cliquer sur “OK” pour fermer l’avertissement avec la raison affichée.
Server options menu - NRestrict
☰ 29. Comment désactiver la notification HUD de refus d’accès ?
Décochez Display Deny HUD Message dans HUD Customization. Cela supprime le texte "Access Denied" du coin supérieur.
HUD Options - NRestrict
☰ 30. Comment cacher le logo "Restricted Zone" sur l’écran ?
Décochez Display Restricted Zone Logo pour ne plus afficher l’icône d’avertissement à l’écran.
HUD Options - NRestrict
☰ 31. Comment personnaliser l’apparence du logo et du message d’avertissement à l’écran ?
Utilisez les options dans HUD Customization :
- HUD Color : couleur principale du logo et du message
- HUD Position : coin d’affichage
- HUD Size Scale : taille du logo
- Use Blur Background : flou derrière le texte
- Custom Warning Text : message personnalisé à afficher

HUD Options - NRestrict