🗺️ 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

  1. Interface NetRadiant
  2. Raccourcis clavier complets
  3. Brushes — créer et modifier
  4. Textures spéciales
  5. worldspawn — propriétés globales
  6. Lumières (light / dlight)
  7. Entités func_ complètes
  8. Entités trigger_ complètes
  9. Entités target_ complètes
  10. Entités info_ complètes
  11. Entités misc_ et props
  12. Entités script_ et path_
  13. Entités team_ et spawns
  14. Entités item_ et weapon_
  15. Créer une porte — guide complet
  16. Objectifs (dynamite / construction)
  17. Compiler et tester
  18. Conseils professionnels

🖥️ Interface NetRadiant

NetRadiant est divisé en 4 vues principales et plusieurs panneaux d'outils :

ZoneDescription
Vue 3DPré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 texturesListe 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'outilsAccès rapide aux modes de sélection, création, clipper, vertex editing.
💡 La vue active est encadrée en jaune. Cliquez dans une vue pour l'activer avant d'utiliser les raccourcis. En cas de doute, revenez toujours à la vue XY pour placer vos éléments.

⌨️ Raccourcis clavier complets

Navigation dans les vues 2D

Clic droit + drag
Se déplacer dans la vue 2D
Scroll
Zoomer / dézoomer
Ctrl + Tab
Changer de vue active (2D → 3D → 2D...)
F3
Vue XY (dessus)
F4
Vue XZ (face)
F5
Vue YZ (côté)
F6
Vue 3D active

Navigation dans la vue 3D

Clic droit + drag
Pivoter la caméra
W / S
Avancer / reculer
A / D
Strafe gauche / droite
D
Monter la caméra
C
Descendre la caméra
F2
Changer le mode de rendu 3D (solid / wire / texture)

Sélection

Clic gauche
Sélectionner un objet
Maj + clic
Ajouter à la sélection
Alt + clic
Sélectionner le brush suivant derrière (cycle)
Ctrl + A
Sélectionner tout
Échap
Désélectionner tout
Q
Mode sélection (outil flèche)

Création de brushes

Clic gauche + drag
Dessiner un nouveau brush dans une vue 2D
Entrée
Valider la création du brush
Espace
Dupliquer et déplacer la sélection
Ctrl + C / V
Copier / Coller à la même position
Ctrl + D
Dupliquer sur place (sans déplacer)
Suppr
Supprimer la sélection
Ctrl + Z
Annuler
Ctrl + Y
Rétablir

Manipulation des brushes

E
Mode redimensionnement — handles sur les faces
R
Mode rotation libre
Ctrl + R
Rotation 90° dans la vue active
V
Mode édition des vertices (sommets du brush)
X
Outil Clipper — couper un brush en deux avec un plan
Maj + X
Clipper — conserver l'autre moitié
Ctrl + X
Clipper — conserver les deux moitiés séparées
Ctrl + G
Grouper les brushes sélectionnés
Ctrl + Maj + G
Aligner la sélection sur la grille active
Ctrl + H
Cacher la sélection
Ctrl + Maj + H
Afficher tous les éléments cachés
Maj + Ctrl + D
Désélectionner les brushes déformés / non-planaires

Textures

T
Mode texture / sélection de face
S
Ouvrir l'éditeur de surface (scale, offset, rotation)
Maj + clic droit
Copier la texture du brush cliqué
Ctrl + Maj + clic droit
Appliquer la texture copiée à un brush

Grille et alignement

[
Réduire la taille de la grille (précision +)
]
Augmenter la taille de la grille (déplacement rapide)
X (sans brush sélectionné)
Activer / désactiver le snap sur la grille
Ctrl + Maj + G
Forcer l'alignement de la sélection sur la grille

Entités et fichier

N
Ouvrir / fermer l'inspecteur d'entité
Ctrl + S
Sauvegarder la map
Ctrl + O
Ouvrir une map
Ctrl + N
Nouvelle map
Ctrl + B
Compiler (BSP) et lancer la map
Clic droit (vue 2D)
Menu contextuel — créer une entité à cette position

🧱 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

Outil Clipper — couper un brush

⚠️ Règle fondamentale : Votre map doit être une sphère fermée autour du vide. Chaque mur, sol et plafond doit être complètement fermé. Un seul trou dans la géométrie = leak = la map ne compile pas.

🎨 Textures spéciales

Certaines textures ont des comportements spéciaux en jeu. Elles sont dans le dossier common/ :

TextureEffetUtilisation
common/nodrawFace invisible et non rendueFaces internes cachées — optimisation essentielle
common/caulkFace invisible optimiséeFaces non visibles par le joueur — réduit les drawcalls
common/clipBarrière invisible infranchissableBloquer les joueurs sans mur visible (falaise, limite de map)
common/triggerZone de déclenchement invisibleObligatoire sur les brushes trigger_
common/hintPlan d'optimisation BSPAide le compilateur à diviser la map efficacement
common/skipFace ignorée par le compilateurAssocié à hint pour ignorer certaines faces
common/areaportalPortail de zone — optimisationDans les embrasures de porte pour séparer les zones de rendu
common/botclipBarrière invisible pour les bots uniquementEmpêcher les bots d'entrer dans certaines zones
common/playerclipBarrière invisible pour les joueurs uniquementBloquer les joueurs sans affecter les projectiles
common/slickSurface glissantePentes glissantes, surfaces de glisse
common/ladderSurface d'escaladeAppliquer sur un brush pour créer une échelle
common/waterVolume d'eauZones 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 valeurDescription
messageMa Map ETNom de la map affiché en jeu
authorMonPseudoNom du créateur
skysky/tejasSkybox utilisée (dossier textures/sky/)
fog0.0003 0.5 0.5 0.5Brouillard : densité R G B
_fogdensity0.0003Densité du brouillard global
_fogcolor0.5 0.5 0.5Couleur du brouillard (R G B, valeurs 0 à 1)
ambient50Lumière ambiante globale (0-255) — éclaire toute la map uniformément
_ambient30Intensité de la lumière ambiante pour le compilateur q3map2
_lightmapscale1Résolution des lightmaps (0.5=haute qualité, 2=basse qualité)
_blocksize1024Taille des blocs BSP pour la division de la scène
gravity800Gravité (800 = normale ET)
musicmusic/ma_musiqueMusique de fond de la map
_noshadersun1Dé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.

STATIQUE

light

Lumière statique compilée dans les lightmaps. La plus courante. Éclaire les surfaces autour d'elle de manière permanente.

light — Intensité (défaut : 300. Plus la valeur est haute, plus c'est lumineux)
_color — Couleur RGB normalisée (ex: 1 0.8 0.5 pour jaune chaud)
radius — Rayon d'éclairage en unités (remplace light pour certains compilateurs)
target — Cible un point pour créer un spot directionnel
spawnflags 1 — Pas d'ombre (noShadow)
spawnflags 2 — Lumière linéaire (atténuation linéaire au lieu de quadratique)

💡 Utilisée partout : intérieur, extérieur, couloirs, zones de combat.

AMBIANCE

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.

light — Intensité de la lumière d'ambiance
_color — Couleur RGB normalisée

💡 Zones sombres où les joueurs doivent quand même être visibles. Complète les lumières statiques.

DYNAMIQUE

dlight

Lumière dynamique calculée en temps réel. Peut clignoter, changer de couleur, s'animer. Plus coûteuse en performance.

light — Intensité
_color — Couleur RGB
style — Style d'animation : 0=statique, 1=clignotant, 2=pulsation lente...
target — Peut être activée/désactivée par un trigger

💡 Explosions, feux, alarmes, effets visuels dynamiques.

💡 Conseil lumière : Placez une lumière tous les 256-512 unités dans les couloirs. Pour les extérieurs, une lumière soleil globale via le shader de la skybox suffit souvent. Testez avec une compilation BSP rapide avant la compilation complète.

⚙️ 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.

PORTE

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.

angle — Direction d'ouverture : 90=gauche, 270=droite, -1=haut, -2=bas
speed — Vitesse d'ouverture (défaut: 200 unités/sec)
wait — Secondes avant refermeture (-1 = reste ouverte)
lip — Distance résiduelle visible après ouverture (défaut: 8)
team — Synchronise plusieurs portes (même valeur = s'ouvrent ensemble)
targetname — Nom pour être activée par un trigger
spawnflags 1 — Commence ouverte
spawnflags 4 — Ne se referme pas
spawnflags 8 — Ne blesse pas les joueurs coincés dedans
noise — Son joué à l'ouverture

💡 Portes d'entrée, accès à sécuriser, barrières entre zones.

PORTE

func_door_rotating

Porte qui pivote sur un axe (charnières) au lieu de glisser. Donne un aspect plus réaliste aux grandes portes.

angles — Axe de rotation (pitch yaw roll, ex: 0 90 0)
speed — Vitesse de rotation (degrés/seconde)
distance — Angle d'ouverture en degrés (ex: 90 pour un quart de tour)
wait — Secondes avant refermeture (-1 = reste ouverte)
targetname — Activation par trigger
spawnflags 2 — Tourne dans le sens inverse

💡 Portes de bunker à charnières, portails, trappes, grilles tournantes.

OBJECTIF

func_constructible

Objet constructible par un ingénieur. Fondamental dans le gameplay ET — permet de créer des objectifs de construction.

constructible_team — 1=Axis, 2=Allies (qui peut construire)
constructible_class — Type : 1=pont léger, 2=pont lourd, 3=machine/générateur...
targetname — Nom pour les scripts
target — Entité activée une fois construit
spawnflags 1 — Commence construit

💡 Ponts, murs défensifs, générateurs, barrières à construire.

OBJECTIF

func_explosive

Objet destructible par dynamite ou satchel. Explose quand sa santé tombe à zéro. Cœur des objectifs d'attaque ET.

health — Points de vie (dynamite = 5, satchel = 8 par défaut)
target — Entité activée lors de la destruction
targetname — Nom pour être ciblé
spawnflags 1 — Visible avant destruction (matériau normal)
spawnflags 2 — Invisible après destruction

💡 Murs à détruire, générateurs, objectifs principaux d'attaque.

PHYSIQUE

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).

model — Chemin vers un modèle .md3 optionnel
targetname — Peut être caché/affiché par script

💡 Colonnes, rochers, éléments de décor scriptés, objets à faire apparaître/disparaître.

PHYSIQUE

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.

targetname — Nom de référence pour les autres entités

💡 Géométrie personnalisée attachée à des entités mobiles ou scriptées.

PHYSIQUE

func_rotating

Brush qui tourne en continu sur un axe défini. Fonctionne dès le spawn ou sur activation.

speed — Vitesse en degrés/seconde (ex: 100)
spawnflags 1 — Tourne sur l'axe X
spawnflags 2 — Tourne sur l'axe Y
spawnflags 4 — Tourne sur l'axe Z (le plus courant)
spawnflags 8 — Commence arrêté (nécessite activation)
targetname — Démarrer/arrêter via trigger

💡 Hélices, ventilateurs, radars, engrenages, obstacles rotatifs.

PHYSIQUE

func_pendulum

Brush qui oscille comme un pendule autour d'un axe. Mouvement de balancier automatique et continu.

speed — Vitesse d'oscillation
phase — Décalage de phase 0.0 à 1.0 (pour désynchroniser plusieurs pendules)
width — Amplitude angulaire en degrés

💡 Obstacles oscillants, pièges à pendule, cloches, éléments animés.

PHYSIQUE

func_plat

Plateforme mobile qui monte et descend automatiquement entre sa position initiale et une position haute définie.

height — Hauteur de déplacement vers le haut en unités
speed — Vitesse de déplacement
wait — Temps d'attente en haut et en bas
dmg — Dégâts infligés si un joueur est écrasé

💡 Ascenseurs, plateformes mobiles, ponts-levis, monte-charges.

DÉCOR

func_bobbing

Brush qui flotte de haut en bas en boucle avec un mouvement doux et continu.

height — Amplitude du mouvement vertical en unités
speed — Vitesse d'oscillation (défaut: 4)
phase — Décalage de phase pour désynchroniser

💡 Bateaux sur l'eau, bouées, objets flottants, plateformes animées.

DÉCOR

func_debris

Morceau de décombre généré lors d'une explosion. Apparaît et disparaît avec les effets de destruction.

target — Peut être activé par un func_explosive

💡 Débris visuels lors de l'explosion d'un objectif, morceaux de mur, effets de destruction.

LOGIQUE

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.

LOGIQUE

func_invisible_user

Zone invisible interactive — les joueurs peuvent appuyer sur la touche d'activation (F par défaut) pour déclencher une action.

target — Entité activée lors de l'interaction
targetname — Peut être activé/désactivé par script
wait — Délai de réactivation

💡 Boutons invisibles, interrupteurs, zones d'activation scriptées, commandes cachées.

LOGIQUE

func_timer

Déclencheur temporisé qui active une cible à intervalles réguliers en boucle.

wait — Intervalle entre chaque déclenchement en secondes
random — Variation aléatoire du délai (wait ± random/2)
target — Entité à activer à chaque intervalle
spawnflags 1 — Commence actif immédiatement

💡 Animations cycliques, portes automatiques, effets répétitifs, spawns périodiques.

DEBUG

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

trigger_multiple

Se déclenche à chaque fois qu'un joueur entre dans la zone. Peut se réactiver après un délai.

target — Entité à activer
wait — Délai de réactivation en secondes (défaut: 0.2)
targetname — Peut être activé/désactivé par un autre trigger

💡 Zones de détection, ouverture automatique de portes, zones d'événement répétables.

TRIGGER

trigger_once

Se déclenche une seule fois puis est automatiquement supprimé. Non réutilisable.

target — Entité à activer
targetname — Peut être pré-activé/désactivé par script

💡 Déclencheurs d'événements uniques, cinématiques, zones d'alarme une seule fois.

TRIGGER

trigger_hurt

Blesse les joueurs qui entrent dans la zone. Peut tuer instantanément ou infliger des dégâts continus.

dmg — Dégâts par seconde (défaut: 5)
spawnflags 1 — Dégâts une seule fois puis désactivé
spawnflags 8 — Mort instantanée (no team)
spawnflags 16 — Dégâts toutes les frames (très dangereux)

💡 Lave, acide, électricité, zones interdites, pièges mortels.

TRIGGER

trigger_push

Projette les joueurs dans une direction définie à la vitesse spécifiée.

target — Cible un info_notnull pour définir la direction de projection
speed — Vitesse de projection

💡 Trampolines, jets d'air, zones de saut forcé, catapultes.

TRIGGER

trigger_teleport

Téléporte les joueurs vers une entité info_teleport_destination définie.

target — Nom du info_teleport_destination cible
spawnflags 1 — Garde la vitesse du joueur après téléportation

💡 Téléporteurs, raccourcis secrets, respawn forcé sur zone.

TRIGGER

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.

target — func_explosive ou func_constructible ciblé
spawnflags — 1=détruire, 2=construire, 4=capturer...
shortname — Nom court affiché sur le HUD

💡 Obligatoire autour de chaque objectif ET pour que les joueurs voient les informations.

TRIGGER

trigger_spawn

Définit une zone de spawn dynamique qui peut être activée ou désactivée pendant la partie.

targetname — Nom pour être activé/désactivé par script
team — 1=Axis, 2=Allies

💡 Spawns avancés débloqués lors d'un événement (prise d'un objectif, etc.).

TRIGGER

trigger_victory

Zone qui déclenche la victoire d'une équipe quand elle est activée. Termine la partie.

target — Équipe victorieuse (allies ou axis)

💡 Zones d'objectif final — atteindre cette zone = victoire.

🎯 Entités target_ — Complètes

LOGIQUE

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.

targetname — Nom de référence dans le script
scriptname — Nom de la fonction à appeler dans le .script

💡 Liaison map ↔ script : déclencher des événements complexes, annonces, changements d'état.

LOGIQUE

target_delay

Retarde l'activation d'une cible d'un délai défini. Permet de créer des séquences temporisées.

wait — Délai en secondes avant d'activer la cible
random — Variation aléatoire du délai
target — Entité à activer après le délai
targetname — Nom pour être activé

💡 Séquences d'événements, animations décalées, ouvertures retardées.

LOGIQUE

target_kill

Tue instantanément tous les joueurs dans sa zone d'effet quand il est activé.

targetname — Activé par un trigger ou script

💡 Pièges mortels à déclenchement, zones de mort instantanée contrôlées.

LOGIQUE

target_print

Affiche un message texte à l'écran des joueurs quand il est activé.

message — Texte à afficher (supporte les codes couleur ET ^1 à ^9)
spawnflags 4 — Afficher à tous les joueurs
spawnflags 8 — Message en bas d'écran (center print)

💡 Annonces d'objectifs, messages d'alerte, indications narratives.

LOGIQUE

target_relay

Relais conditionnel — transmet une activation à sa cible uniquement si certaines conditions sont remplies.

target — Entité à activer si la condition est vraie
targetname — Nom pour être activé
spawnflags 1 — Alliés seulement
spawnflags 2 — Axis seulement

💡 Logique conditionnelle, événements réservés à une équipe.

LOGIQUE

target_activate / target_deactivate

Active ou désactive une entité ciblée. Permet de contrôler dynamiquement l'état des entités.

target — Entité à activer ou désactiver
targetname — Nom pour être déclenché

💡 Activer/désactiver des portes, triggers, objets selon l'état de la partie.

ℹ️ Entités info_ — Complètes

SPAWN

info_player_deathmatch

Point de spawn générique. Utilisé pour les spawns neutres ou comme spawn de fallback.

angle — Direction vers laquelle le joueur regarde en spawant

💡 Spawn de secours, spawn de test, spawn neutre.

SPAWN

info_player_start

Point de départ principal du joueur dans la map. Utilisé pour les maps solo ou comme référence.

angle — Direction de départ

💡 Position initiale du joueur, point de départ de séquences scriptées.

LOGIQUE

info_notnull

Point dans l'espace utilisé comme référence de position ou de direction. N'est pas visible en jeu.

targetname — Nom pour être ciblé par d'autres entités

💡 Cible pour trigger_push (direction de projection), cible pour spots lumineux, point de référence pour les scripts.

TÉLÉPORT

info_teleport_destination

Destination d'un trigger_teleport. Définit où les joueurs arrivent après téléportation.

targetname — Nom ciblé par le trigger_teleport
angle — Orientation du joueur à l'arrivée

💡 Destination de téléporteur, point d'arrivée de raccourci secret.

🎭 Entités misc_ et props

MODÈLE

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.

model — Chemin vers le fichier .md3 (ex: models/mapobjects/barrel/barrel.md3)
angles — Rotation du modèle (pitch yaw roll)
modelscale — Échelle du modèle (1.0 = taille normale)
_castShadows — 1 = projette des ombres

💡 Barils, caisses, mobilier, véhicules, éléments de décor statiques.

MODÈLE

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.

model — Chemin vers le fichier .md3 ou .mdc
angles — Rotation initiale
modelscale — Échelle
targetname — Peut être activé/désactivé par script
spawnflags 2 — Pas de collision (décor pur)

💡 Modèles animés, objets scriptés, décor interactif, véhicules mobiles.

EFFET

misc_particle

Génère un système de particules à la position définie. Feu, fumée, étincelles, effets atmosphériques.

scriptName — Nom du script de particule (fichier .particle)
targetname — Peut être activé/désactivé

💡 Feux de camp, fumée d'usine, étincelles électriques, effets de vent, brouillard localisé.

SON

misc_amb_sound

Source sonore ambiante positionnelle. Le volume diminue avec la distance.

noise — Chemin vers le fichier son (.wav ou .ogg)
volume — Volume (0 à 255)
wait — Intervalle de répétition

💡 Sons d'ambiance : eau qui coule, machines, oiseaux, bruit de fond localisé.

SON

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

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.

model — Modèle .md3 optionnel
scriptName — Nom de la fonction de contrôle dans le .script
targetname — Référence dans le script

💡 Entité la plus puissante pour les maps avancées — portes scriptées, véhicules, animations complexes.

SCRIPT

script_multiplayer

Gestionnaire de logique multiplayer scriptée. Gère les états de la partie, les conditions de victoire, les timers complexes.

scriptName — Nom dans le fichier .script

💡 Cerveau de la map — gère les objectifs, la victoire, les transitions d'état.

CHEMIN

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.

target — Prochain path_corner dans la séquence
targetname — Nom du nœud de chemin
speed — Vitesse de déplacement jusqu'au prochain nœud
wait — Pause à ce nœud avant de continuer

💡 Chemins de trains, séquences de caméra, routes de patrouille pour entités mobiles.

👥 Entités team_ et Spawns

SPAWN AXIS

team_CTF_redspawn

Point de spawn pour l'équipe Axis (rouge). Les joueurs Axis réapparaissent à ces positions.

angle — Direction vers laquelle le joueur regarde en spawant
nobots — 1 = les bots ne spawent pas ici
nohumans — 1 = réservé aux bots uniquement

💡 Placez au minimum 4 spawns Axis espacés dans votre map.

SPAWN ALLIES

team_CTF_bluespawn

Point de spawn pour l'équipe Allies (bleu). Les joueurs Allies réapparaissent à ces positions.

angle — Direction initiale
nobots — 1 = les bots ne spawent pas ici
nohumans — 1 = réservé aux bots

💡 Placez au minimum 4 spawns Allies espacés. Position stratégique importante.

OBJECTIF

team_WOLF_objective

Marqueur d'objectif de l'équipe. Indique une zone stratégique sur la minimap et le HUD.

target — Entité objectif associée
message — Description de l'objectif

💡 Marquage des points d'objectif sur la minimap ET.

FLAG

team_WOLF_checkpoint

Point de contrôle capturables par les deux équipes. Permet de déplacer la ligne de front.

targetname — Nom pour les scripts
target — Spawn associé qui change d'équipe à la capture

💡 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_smallPetit soin (10 PV)
item_healthSoin standard (25 PV)
item_health_largeGrand soin (50 PV)
item_health_megaSoin maximum (100 PV)
item_armorArmure
item_adrenalineAdrénaline — boost temporaire de vitesse et résistance
weapon_knifeCouteau
weapon_lugerPistolet Axis (Luger)
weapon_coltPistolet Allies (Colt 1911)
weapon_mp40Mitraillette Axis (MP40)
weapon_thompsonMitraillette Allies (Thompson)
weapon_stenPistolet-mitrailleur Sten (Covert Ops)
weapon_kar98Fusil Axis (Kar98)
weapon_garandFusil Allies (Garand)
weapon_fg42Fusil automatique FG42 (Axis)
weapon_panzerfaustLance-roquettes Axis
weapon_bazookaLance-roquettes Allies (Bazooka)
weapon_flamethrowerLance-flammes
weapon_mg42Mitrailleuse lourde MG42 (posable)
weapon_mortarMortier (Field Ops)
weapon_dynamiteDynamite (Engineer)
weapon_satchelSatchel charge (Covert Ops)
weapon_landmineMine antipersonnel
ammo_packPack de munitions (Field Ops)
item_mg42Tourelle MG42 fixe placée dans la map
💡 Pour toutes les entités item_ et weapon_, ajoutez la propriété 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)

PropriétéValeurEffet
angle90Glisse vers la gauche
angle270Glisse vers la droite
angle0 ou 360Glisse vers le bas (négatif)
angle-1Monte vers le haut
angle-2Descend vers le bas
speed150Vitesse d'ouverture (unités/sec)
wait3Refermeture après 3 secondes
wait-1Reste ouverte définitivement
lip44 unités restent visibles après ouverture
spawnflags1Commence ouverte dès le spawn
spawnflags4Ne se referme jamais
teamalliesAccessible uniquement aux Allies
teamaxisAccessible uniquement aux Axis

Porte déclenchée par un trigger

💡 Porte double synchronisée : Pour deux battants qui s'ouvrent ensemble, donnez la même valeur à la propriété 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)

Objectif à construire (func_constructible)

🔨 Compiler et Tester

ÉtapeCommande / ActionDescription
SauvegarderCtrl + SToujours sauvegarder avant de compiler
BSP seulBuild → BSPCompile uniquement la géométrie. Très rapide — pour tester la structure et déboguer les leaks.
BSP + VisBuild → BSP + VisAjoute le calcul de visibilité. Améliore les performances en jeu.
Full compileBuild → BSP + Vis + LightCompilation complète avec lightmaps. Long (plusieurs minutes) — pour les versions finales.
Tester en jeu+devmap nommapLance ET en mode développeur — donne accès à toutes les commandes de debug
Déboguer leakFile → Load PointfileAffiche la ligne rouge du leak dans NetRadiant. Suivez-la jusqu'au trou dans la géométrie.
Recharger la map/map nommapRecharge la map dans ET sans quitter le jeu
Debug entités/developer 1Active les messages de debug dans la console ET
Noclip/noclipVol libre pour inspecter toute la map
God mode/godInvincibilité pour tester sans mourir
⚠️ Leak : Si la compilation échoue avec "leaked", il y a un trou dans votre géométrie. Chargez le pointfile (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/.