🗺️ Guide NetRadiant — Référence Complète
Guide de référence exhaustif pour créer des maps Wolfenstein : Enemy Territory avec NetRadiant.
Tous les raccourcis clavier, toutes les entités, toutes les propriétés — documentés et expliqués en français pour faire revivre ET.
📋 Table des Matières
- Interface NetRadiant
- Raccourcis clavier complets
- Brushes — créer et modifier
- Textures spéciales
- worldspawn — propriétés globales
- Lumières (light / dlight)
- Entités func_ complètes
- Entités trigger_ complètes
- Entités target_ complètes
- Entités info_ complètes
- Entités misc_ et props
- Entités script_ et path_
- Entités team_ et spawns
- Entités item_ et weapon_
- Créer une porte — guide complet
- Objectifs (dynamite / construction)
- Compiler et tester
- Conseils professionnels
🖥️ Interface NetRadiant
NetRadiant est divisé en 4 vues principales et plusieurs panneaux d'outils :
| Zone | Description |
|---|---|
| Vue 3D | Prévisualisation 3D temps réel de votre map. Caméra libre pour inspecter la géométrie. |
| Vue XY (dessus) | Plan horizontal — vue de dessus. Vue principale pour placer les éléments. |
| Vue XZ (face) | Vue de face — visualise la hauteur des éléments. |
| Vue YZ (côté) | Vue de côté — visualise la profondeur des éléments. |
| Panneau textures | Liste toutes les textures disponibles pour les appliquer aux brushes. |
| Inspecteur d'entité | Fenêtre N — configure les propriétés (clé/valeur) de l'entité sélectionnée. |
| Barre d'outils | Accès rapide aux modes de sélection, création, clipper, vertex editing. |
⌨️ Raccourcis clavier complets
Navigation dans les vues 2D
Navigation dans la vue 3D
Sélection
Création de brushes
Manipulation des brushes
Textures
Grille et alignement
Entités et fichier
🧱 Brushes — Créer et Modifier
Un brush est le bloc géométrique de base. Tout ce qui est solide dans ET est composé de brushes convexes. Un brush ne peut pas être concave — utilisez plusieurs brushes pour les formes complexes.
Créer un brush
- 01Cliquez dans une vue 2D (XY recommandée)
- 02Maintenez le clic gauche et faites glisser pour définir la surface
- 03Relâchez — ajustez la hauteur dans la vue XZ si nécessaire
- 04Appuyez sur Entrée pour valider
- 05Appliquez une texture depuis le panneau de droite
Outil Clipper — couper un brush
- 01Sélectionnez le brush à couper
- 02Appuyez sur X pour activer le clipper
- 03Cliquez deux points dans une vue 2D pour définir le plan de coupe
- 04Entrée — conserve la moitié jaune / Maj+X pour l'autre moitié / Ctrl+X pour les deux
🎨 Textures spéciales
Certaines textures ont des comportements spéciaux en jeu. Elles sont dans le dossier common/ :
| Texture | Effet | Utilisation |
|---|---|---|
common/nodraw | Face invisible et non rendue | Faces internes cachées — optimisation essentielle |
common/caulk | Face invisible optimisée | Faces non visibles par le joueur — réduit les drawcalls |
common/clip | Barrière invisible infranchissable | Bloquer les joueurs sans mur visible (falaise, limite de map) |
common/trigger | Zone de déclenchement invisible | Obligatoire sur les brushes trigger_ |
common/hint | Plan d'optimisation BSP | Aide le compilateur à diviser la map efficacement |
common/skip | Face ignorée par le compilateur | Associé à hint pour ignorer certaines faces |
common/areaportal | Portail de zone — optimisation | Dans les embrasures de porte pour séparer les zones de rendu |
common/botclip | Barrière invisible pour les bots uniquement | Empêcher les bots d'entrer dans certaines zones |
common/playerclip | Barrière invisible pour les joueurs uniquement | Bloquer les joueurs sans affecter les projectiles |
common/slick | Surface glissante | Pentes glissantes, surfaces de glisse |
common/ladder | Surface d'escalade | Appliquer sur un brush pour créer une échelle |
common/water | Volume d'eau | Zones inondées, rivières, piscines |
🌍 worldspawn — Propriétés globales de la map
L'entité worldspawn est unique dans chaque map. Elle définit les propriétés globales : brouillard, skybox, ambiance sonore, gravité. Accédez-y via Map → Map Properties ou en sélectionnant la géométrie principale et en appuyant sur N.
| Propriété | Exemple de valeur | Description |
|---|---|---|
| message | Ma Map ET | Nom de la map affiché en jeu |
| author | MonPseudo | Nom du créateur |
| sky | sky/tejas | Skybox utilisée (dossier textures/sky/) |
| fog | 0.0003 0.5 0.5 0.5 | Brouillard : densité R G B |
| _fogdensity | 0.0003 | Densité du brouillard global |
| _fogcolor | 0.5 0.5 0.5 | Couleur du brouillard (R G B, valeurs 0 à 1) |
| ambient | 50 | Lumière ambiante globale (0-255) — éclaire toute la map uniformément |
| _ambient | 30 | Intensité de la lumière ambiante pour le compilateur q3map2 |
| _lightmapscale | 1 | Résolution des lightmaps (0.5=haute qualité, 2=basse qualité) |
| _blocksize | 1024 | Taille des blocs BSP pour la division de la scène |
| gravity | 800 | Gravité (800 = normale ET) |
| music | music/ma_musique | Musique de fond de la map |
| _noshadersun | 1 | Désactiver le soleil du shader du ciel |
💡 Lumières
Sans lumières, votre map sera noire après compilation. Placez des entités lumière dans chaque zone. Créez-les via clic droit → light dans une vue 2D.
light
Lumière statique compilée dans les lightmaps. La plus courante. Éclaire les surfaces autour d'elle de manière permanente.
💡 Utilisée partout : intérieur, extérieur, couloirs, zones de combat.
lightJunior
Lumière d'ambiance légère qui n'affecte que les entités dynamiques (joueurs, objets) mais pas les lightmaps statiques. Moins coûteuse que light.
💡 Zones sombres où les joueurs doivent quand même être visibles. Complète les lumières statiques.
dlight
Lumière dynamique calculée en temps réel. Peut clignoter, changer de couleur, s'animer. Plus coûteuse en performance.
💡 Explosions, feux, alarmes, effets visuels dynamiques.
⚙️ Entités func_ — Complètes
Les entités func_ donnent des comportements spéciaux aux brushes. Sélectionnez un brush → clic droit → func → choisissez le type.
func_door
Porte qui glisse dans une direction quand un joueur s'approche ou l'active via trigger. Entité de porte la plus utilisée dans ET.
💡 Portes d'entrée, accès à sécuriser, barrières entre zones.
func_door_rotating
Porte qui pivote sur un axe (charnières) au lieu de glisser. Donne un aspect plus réaliste aux grandes portes.
💡 Portes de bunker à charnières, portails, trappes, grilles tournantes.
func_constructible
Objet constructible par un ingénieur. Fondamental dans le gameplay ET — permet de créer des objectifs de construction.
💡 Ponts, murs défensifs, générateurs, barrières à construire.
func_explosive
Objet destructible par dynamite ou satchel. Explose quand sa santé tombe à zéro. Cœur des objectifs d'attaque ET.
💡 Murs à détruire, générateurs, objectifs principaux d'attaque.
func_static
Brush statique solide sans comportement particulier. Utilisé pour les éléments qui ne font pas partie du worldspawn mais nécessitent une entité (pour être référencés par des scripts).
💡 Colonnes, rochers, éléments de décor scriptés, objets à faire apparaître/disparaître.
func_brushmodel
Brush référençable comme un modèle par d'autres entités. Permet d'utiliser des brushes personnalisés là où un modèle est attendu.
💡 Géométrie personnalisée attachée à des entités mobiles ou scriptées.
func_rotating
Brush qui tourne en continu sur un axe défini. Fonctionne dès le spawn ou sur activation.
💡 Hélices, ventilateurs, radars, engrenages, obstacles rotatifs.
func_pendulum
Brush qui oscille comme un pendule autour d'un axe. Mouvement de balancier automatique et continu.
💡 Obstacles oscillants, pièges à pendule, cloches, éléments animés.
func_plat
Plateforme mobile qui monte et descend automatiquement entre sa position initiale et une position haute définie.
💡 Ascenseurs, plateformes mobiles, ponts-levis, monte-charges.
func_bobbing
Brush qui flotte de haut en bas en boucle avec un mouvement doux et continu.
💡 Bateaux sur l'eau, bouées, objets flottants, plateformes animées.
func_debris
Morceau de décombre généré lors d'une explosion. Apparaît et disparaît avec les effets de destruction.
💡 Débris visuels lors de l'explosion d'un objectif, morceaux de mur, effets de destruction.
func_group
Groupe des brushes ensemble dans l'éditeur uniquement. N'a aucun effet en jeu — sert exclusivement à l'organisation dans NetRadiant.
💡 Organisez votre map : groupez les éléments d'une zone pour les masquer/afficher avec Ctrl+H. Indispensable sur les grandes maps.
func_invisible_user
Zone invisible interactive — les joueurs peuvent appuyer sur la touche d'activation (F par défaut) pour déclencher une action.
💡 Boutons invisibles, interrupteurs, zones d'activation scriptées, commandes cachées.
func_timer
Déclencheur temporisé qui active une cible à intervalles réguliers en boucle.
💡 Animations cycliques, portes automatiques, effets répétitifs, spawns périodiques.
func_leaky
Brush de débogage pour identifier les fuites BSP (leaks). Aide à localiser les trous dans la géométrie lors de la compilation.
💡 Debug uniquement — à supprimer avant la version finale. Utilisez plutôt File → Load Pointfile pour visualiser les leaks.
⚡ Entités trigger_ — Complètes
Les triggers sont des zones invisibles (texture common/trigger) qui exécutent une action au contact d'un joueur ou d'un projectile.
trigger_multiple
Se déclenche à chaque fois qu'un joueur entre dans la zone. Peut se réactiver après un délai.
💡 Zones de détection, ouverture automatique de portes, zones d'événement répétables.
trigger_once
Se déclenche une seule fois puis est automatiquement supprimé. Non réutilisable.
💡 Déclencheurs d'événements uniques, cinématiques, zones d'alarme une seule fois.
trigger_hurt
Blesse les joueurs qui entrent dans la zone. Peut tuer instantanément ou infliger des dégâts continus.
💡 Lave, acide, électricité, zones interdites, pièges mortels.
trigger_push
Projette les joueurs dans une direction définie à la vitesse spécifiée.
💡 Trampolines, jets d'air, zones de saut forcé, catapultes.
trigger_teleport
Téléporte les joueurs vers une entité info_teleport_destination définie.
💡 Téléporteurs, raccourcis secrets, respawn forcé sur zone.
trigger_objective_info
Zone qui affiche les informations d'un objectif quand un joueur s'en approche. Génère le HUD d'objectif dans ET.
💡 Obligatoire autour de chaque objectif ET pour que les joueurs voient les informations.
trigger_spawn
Définit une zone de spawn dynamique qui peut être activée ou désactivée pendant la partie.
💡 Spawns avancés débloqués lors d'un événement (prise d'un objectif, etc.).
trigger_victory
Zone qui déclenche la victoire d'une équipe quand elle est activée. Termine la partie.
💡 Zones d'objectif final — atteindre cette zone = victoire.
🎯 Entités target_ — Complètes
target_script_trigger
Déclenche un événement dans le fichier .script de la map. Pont entre la géométrie et le script Lua/ET.
💡 Liaison map ↔ script : déclencher des événements complexes, annonces, changements d'état.
target_delay
Retarde l'activation d'une cible d'un délai défini. Permet de créer des séquences temporisées.
💡 Séquences d'événements, animations décalées, ouvertures retardées.
target_kill
Tue instantanément tous les joueurs dans sa zone d'effet quand il est activé.
💡 Pièges mortels à déclenchement, zones de mort instantanée contrôlées.
target_print
Affiche un message texte à l'écran des joueurs quand il est activé.
💡 Annonces d'objectifs, messages d'alerte, indications narratives.
target_relay
Relais conditionnel — transmet une activation à sa cible uniquement si certaines conditions sont remplies.
💡 Logique conditionnelle, événements réservés à une équipe.
target_activate / target_deactivate
Active ou désactive une entité ciblée. Permet de contrôler dynamiquement l'état des entités.
💡 Activer/désactiver des portes, triggers, objets selon l'état de la partie.
ℹ️ Entités info_ — Complètes
info_player_deathmatch
Point de spawn générique. Utilisé pour les spawns neutres ou comme spawn de fallback.
💡 Spawn de secours, spawn de test, spawn neutre.
info_player_start
Point de départ principal du joueur dans la map. Utilisé pour les maps solo ou comme référence.
💡 Position initiale du joueur, point de départ de séquences scriptées.
info_notnull
Point dans l'espace utilisé comme référence de position ou de direction. N'est pas visible en jeu.
💡 Cible pour trigger_push (direction de projection), cible pour spots lumineux, point de référence pour les scripts.
info_teleport_destination
Destination d'un trigger_teleport. Définit où les joueurs arrivent après téléportation.
💡 Destination de téléporteur, point d'arrivée de raccourci secret.
🎭 Entités misc_ et props
misc_model
Place un modèle 3D statique (.md3) dans la map. Le modèle est compilé dans la géométrie BSP — il fait partie du décor fixe.
💡 Barils, caisses, mobilier, véhicules, éléments de décor statiques.
misc_gamemodel
Place un modèle 3D dynamique dans la map. Contrairement à misc_model, il n'est pas compilé dans le BSP — il reste une entité séparée et peut être animé ou scriptée.
💡 Modèles animés, objets scriptés, décor interactif, véhicules mobiles.
misc_particle
Génère un système de particules à la position définie. Feu, fumée, étincelles, effets atmosphériques.
💡 Feux de camp, fumée d'usine, étincelles électriques, effets de vent, brouillard localisé.
misc_amb_sound
Source sonore ambiante positionnelle. Le volume diminue avec la distance.
💡 Sons d'ambiance : eau qui coule, machines, oiseaux, bruit de fond localisé.
misc_mp_body
Corps/cadavre placé dans la map comme élément de décor statique.
💡 Décor de champ de bataille, corps de soldats dans des scènes narratives.
📜 Entités script_ et path_
script_mover
Brush ou modèle contrôlé entièrement par le script .script de la map. Peut se déplacer, tourner, apparaître/disparaître selon les instructions du script.
💡 Entité la plus puissante pour les maps avancées — portes scriptées, véhicules, animations complexes.
script_multiplayer
Gestionnaire de logique multiplayer scriptée. Gère les états de la partie, les conditions de victoire, les timers complexes.
💡 Cerveau de la map — gère les objectifs, la victoire, les transitions d'état.
path_corner
Point de passage dans un chemin suivi par des entités mobiles (trains, caméras, patrouilles). Les entités se déplacent de path_corner en path_corner.
💡 Chemins de trains, séquences de caméra, routes de patrouille pour entités mobiles.
👥 Entités team_ et Spawns
team_CTF_redspawn
Point de spawn pour l'équipe Axis (rouge). Les joueurs Axis réapparaissent à ces positions.
💡 Placez au minimum 4 spawns Axis espacés dans votre map.
team_CTF_bluespawn
Point de spawn pour l'équipe Allies (bleu). Les joueurs Allies réapparaissent à ces positions.
💡 Placez au minimum 4 spawns Allies espacés. Position stratégique importante.
team_WOLF_objective
Marqueur d'objectif de l'équipe. Indique une zone stratégique sur la minimap et le HUD.
💡 Marquage des points d'objectif sur la minimap ET.
team_WOLF_checkpoint
Point de contrôle capturables par les deux équipes. Permet de déplacer la ligne de front.
💡 Maps avec lignes de front dynamiques, points stratégiques intermédiaires.
🎒 Entités item_ et weapon_
Ces entités placent des objets ramassables sur la map. Créées via clic droit → item ou weapon.
| Entité | Description |
|---|---|
item_health_small | Petit soin (10 PV) |
item_health | Soin standard (25 PV) |
item_health_large | Grand soin (50 PV) |
item_health_mega | Soin maximum (100 PV) |
item_armor | Armure |
item_adrenaline | Adrénaline — boost temporaire de vitesse et résistance |
weapon_knife | Couteau |
weapon_luger | Pistolet Axis (Luger) |
weapon_colt | Pistolet Allies (Colt 1911) |
weapon_mp40 | Mitraillette Axis (MP40) |
weapon_thompson | Mitraillette Allies (Thompson) |
weapon_sten | Pistolet-mitrailleur Sten (Covert Ops) |
weapon_kar98 | Fusil Axis (Kar98) |
weapon_garand | Fusil Allies (Garand) |
weapon_fg42 | Fusil automatique FG42 (Axis) |
weapon_panzerfaust | Lance-roquettes Axis |
weapon_bazooka | Lance-roquettes Allies (Bazooka) |
weapon_flamethrower | Lance-flammes |
weapon_mg42 | Mitrailleuse lourde MG42 (posable) |
weapon_mortar | Mortier (Field Ops) |
weapon_dynamite | Dynamite (Engineer) |
weapon_satchel | Satchel charge (Covert Ops) |
weapon_landmine | Mine antipersonnel |
ammo_pack | Pack de munitions (Field Ops) |
item_mg42 | Tourelle MG42 fixe placée dans la map |
count pour définir le nombre de munitions/soins fournis, et wait pour le délai de réapparition en secondes.🚪 Créer une porte — Guide complet
Porte coulissante simple (func_door)
- 01Dessinez un brush à l'emplacement de la porte. Respectez la largeur du passage et une hauteur de 128 unités minimum.
- 02Appliquez une texture de porte depuis le panneau de textures.
- 03Sélectionnez le brush → clic droit → func → func_door.
- 04Appuyez sur N pour ouvrir l'inspecteur d'entité.
- 05Ajoutez les propriétés nécessaires (voir tableau ci-dessous).
- 06Placez un brush
common/areaportaldans l'embrasure pour optimiser le rendu.
| Propriété | Valeur | Effet |
|---|---|---|
angle | 90 | Glisse vers la gauche |
angle | 270 | Glisse vers la droite |
angle | 0 ou 360 | Glisse vers le bas (négatif) |
angle | -1 | Monte vers le haut |
angle | -2 | Descend vers le bas |
speed | 150 | Vitesse d'ouverture (unités/sec) |
wait | 3 | Refermeture après 3 secondes |
wait | -1 | Reste ouverte définitivement |
lip | 4 | 4 unités restent visibles après ouverture |
spawnflags | 1 | Commence ouverte dès le spawn |
spawnflags | 4 | Ne se referme jamais |
team | allies | Accessible uniquement aux Allies |
team | axis | Accessible uniquement aux Axis |
Porte déclenchée par un trigger
- 01Créez la func_door et donnez-lui un
targetname(ex:porte_bunker) - 02Dessinez un brush trigger à l'endroit où vous voulez la zone de déclenchement
- 03Appliquez
common/triggersur ce brush - 04Clic droit → trigger → trigger_multiple
- 05Dans l'inspecteur, ajoutez
target=porte_bunker
team sur les deux func_door (ex: team = porte_double). Elles s'ouvriront en miroir simultanément.💣 Objectifs — Dynamite et Construction
Objectif à détruire (func_explosive)
- 01Créez le brush représentant l'objectif (générateur, mur, machine)
- 02Clic droit → func → func_explosive
- 03Donnez-lui un
targetname(ex:generateur) - 04Créez un brush trigger autour avec la texture
common/trigger→ trigger_objective_info - 05Sur le trigger_objective_info :
target=generateuretshortname=Générateur - 06Créez une entité
target_script_triggeravectargetname=generateur_script - 07Dans le fichier
.scriptde la map, gérez l'événement de destruction pour la victoire
Objectif à construire (func_constructible)
- 01Créez le brush de l'objet construit (pont, mur, barrière)
- 02Clic droit → func → func_constructible
- 03
constructible_team= 1 (Axis) ou 2 (Allies) - 04
constructible_class= type d'objectif - 05Placez un trigger_objective_info autour avec
spawnflags 2(construire) - 06Pour qu'il soit destructible après construction : liez-le à un func_explosive avec le même targetname
🔨 Compiler et Tester
| Étape | Commande / Action | Description |
|---|---|---|
| Sauvegarder | Ctrl + S | Toujours sauvegarder avant de compiler |
| BSP seul | Build → BSP | Compile uniquement la géométrie. Très rapide — pour tester la structure et déboguer les leaks. |
| BSP + Vis | Build → BSP + Vis | Ajoute le calcul de visibilité. Améliore les performances en jeu. |
| Full compile | Build → BSP + Vis + Light | Compilation complète avec lightmaps. Long (plusieurs minutes) — pour les versions finales. |
| Tester en jeu | +devmap nommap | Lance ET en mode développeur — donne accès à toutes les commandes de debug |
| Déboguer leak | File → Load Pointfile | Affiche la ligne rouge du leak dans NetRadiant. Suivez-la jusqu'au trou dans la géométrie. |
| Recharger la map | /map nommap | Recharge la map dans ET sans quitter le jeu |
| Debug entités | /developer 1 | Active les messages de debug dans la console ET |
| Noclip | /noclip | Vol libre pour inspecter toute la map |
| God mode | /god | Invincibilité pour tester sans mourir |
File → Load Pointfile) — une ligne rouge apparaît, partant du vide extérieur et entrant dans votre map par le trou. Trouvez et fermez ce trou.✅ Conseils professionnels
🧱 Géométrie propre
Commencez par une boîte fermée (4 murs + sol + plafond). Ajoutez la complexité progressivement. Compilez souvent en BSP rapide pour détecter les erreurs tôt. N'utilisez jamais de brushes non convexes.
🧹 Optimisation
Appliquez common/caulk sur toutes les faces non visibles par le joueur. Placez des brushes common/areaportal dans les embrasures de portes pour séparer les zones de rendu. Ça divise les temps de compilation et améliore les FPS.
💡 Lumières
Placez une lumière tous les 256-512 unités dans les couloirs. Utilisez des couleurs légèrement teintées pour l'ambiance. La propriété ambient dans worldspawn évite les zones complètement noires.
👥 Spawns équilibrés
Minimum 6 spawns par équipe, bien espacés. Placez-les dans des zones protégées, jamais en plein combat. Assurez-vous que les spawns font face à la direction de jeu.
🎯 Objectifs clairs
Chaque objectif doit avoir un trigger_objective_info autour pour que les joueurs voient les infos HUD. Liez toujours vos objectifs au fichier .script pour que le serveur reconnaisse la victoire.
📐 Dimensions ET
Hauteur joueur debout : 72 units. Accroupi : 36 units. Largeur passage minimum : 64 units. Hauteur porte standard : 128 units. Utilisez ces valeurs pour des proportions réalistes.
🗂️ Organisation
Utilisez func_group pour organiser votre map en sections. Nommez vos entités clairement (porte_bunker, generateur_principal). Sauvegardez souvent avec des noms versionnés (mamap_v01, mamap_v02).
🤖 Waypoints Omni-bot
Une fois la map compilée et testée, créez les fichiers .way et .gm avec Omni-bot pour que les bots puissent jouer dessus. Consultez le guide Waypoints dédié.
🗜️ Distribution
Packagée votre map dans un fichier .pk3 (renommez un .zip en .pk3). Incluez : le .bsp compilé, les textures custom, les sons custom, le .script, le .objdata et le levelshots/.