# NetRadiant/Introduction

| Interface →
NetRadiant is a 3d map editor for the id tech 3 or id tech 4 engines. With it, you can lay out new maps or edit existing maps.
NetRadiant's native format is .map. This is a plain-text, human-readable format that describes the objects in the map. However, the game engine that has to read the map doesn't have nearly enough processing power to calculate all of the lighting, shadows, and collision bounds at runtime; therefore, maps must be compiled with Q3Map2 before they can be used in-game.

## Game

Although the interface of NetRadiant does not change with different games (e.g. Xonotic vs Warsow vs Nexuiz), games use their own texture packs (which are not included with NetRadiant due to size constraints), weapon and item names, and more. NetRadiant uses game packs to describe each game's contents; by default, it comes with game packs for Darkplaces, Quake, Nexuiz, Xonotic, Warsow, and Project::OSiRiON. Many other games are supported, but their game packs are not released under a license that allows NetRadiant to redistribute them or they are not common enough to bundle. These game packs are usually available for download at the corresponding game's website.
You can select NetRadiant's game pack either during startup or in the preferences.

## Compiling

Q3Map2 has many command-line arguments that change its behavior; it can be told to only produce the .bsp file (the basic geometry of the map), the .srf file (lighting and shadows), and many more arguments that adjust the quality of the results. Compiling a detailed map at release quality often takes several hours.

## Final map files

Map files are generally saved with the lowercase name of the map without spaces, followed by either the version or the date. Map files can be zipped with any file zipper and saved with a .pk3 extension; when this is placed into a game include path, the map should appear in the map lists.

### Mapinfo (.mapinfo)

The mapinfo file contains the title of the map, the description, the author(s), the gametypes for which the map is suitable, and some other information used by the engine such as weapons and vehicle status.

### Geometry (.bsp)

The .bsp file contains all of the geometry and collision information for a level; this is the only file that a map requires. This is the fastest output for Q3Map2 to compile.

### Lightmaps (.srf)

The process of computing lightmaps (used for shadows and lighting) is very slow; even on a high-end computer, it can take hours to calculate all of the shadows for a map. When you just want to get a feel for the map in-game, you don't have to calculate lightmaps; the entire map will simply be lit evenly, and no lights will be taken into account.

### Botmaps (.waypoints)

Bots (used in single-player mode as well as when there are not enough players present in multiplayer mode) need bot waypoints to be able to navigate; unfortunately, since they're not documented well, many third-party maps lack these. Without a botmap, bots will not be able to move.
Use the following tutorial to get your Xonotic bots moving. (Tutorial originally posted to the Xonotic forums by user Karamel ) I would include a link to the original but Wikibooks is flagging it as spam. To find it go to Xonotic forums and search for bot waypoints.
When creating a map bots will most likely stay still. To make a map compatible with bots waypoints must be added.
Waypoints editing
Enable waypoints editor: Open the command console in Xonotic by pressing SHIFT + ESC and type "g_waypointeditor 1". Some colored balls will appear around the map, the editor is on.
Set some custom keyboard shortcuts to edit waypoints. On the bottom of the shortcut list are empty slot to edit. Choose the name you want and add a command on key press g_waypointeditor_spawn: add a waypoint where you are standing g_waypointeditor_remove: remove the currently active waypoint g_waypointeditor_relinkall: recompute all pathes (not always usefull) g_waypointeditor_saveall: save the waypoints in your home data/maps directory in a file named <map>.waypoints
How waypoint works
There are multiple kind of waypoints. Yellow and red balls are added automatically and cannot be removed. They are set on items and objectives like warp, jump pad and its target… White balls are added manually.
The editor doesn't work while being spectating. When you get close to a waypoints lightrays pops to link to nearby points and yourself if reachable. When adding points a network is created and bots will move from a point to an other.
How bots move
Bots wander around more or less randomly from a waypoint to an other linked one. Once it has reached a waypoint it start collecting nearby weapons and mega health/armor by going back and forth even if there is no waypoint on them. When there is nothing interesting around, it moves to an other waypoint, preferably in the approximate direction of the last "return to current waypoint".
If it sees an opponent, it will start fighting.
Tips and tricks
Load a map without any bot to make your edit quietly. To test it turn to spectator (f3 by default) and add a single bot (higher difficulties will make it move faster). Run after it to check if it is not going stuck in a corner. Remove the bot and join to fix things.
Do never add a point while jumping! You may not be able to select it and delete it if it is misplaced. It is also pain in the ass in water.
Currently when reloading a map with new waypoints only the white balls may appear, even if the links to other balls are shown. To make them appear again, delete the according .waypoints.cache in your data dir
Bots don't jump or at least not as you may expect. Zones with high steps may require a lot of attention to have a good network. Move away from the path and check if the balls are well connected. If not check from where the link breaks by following the path while watching the nearby waypoints until the lightray stops connecting you.
Bots don't bother with ammo, health and armor expect mega-size. I'd rather think it is a lack in AI that should be fixed in code (some day), not with artificial waypoints that can make strange things when the AI is modified.