Jump to content

  • Log in with Facebook Log in with Twitter Log In with Steam Log In with Google Sign In
  • Create Account

Tutorial info Visit support topic

  • Added on: May 03 2011 01:37 AM
  • Views: 2225

Waypointing Basics

How to easily create waypoints for ET bots.

Posted by Belo on May 03 2011 01:37 AM
First, this tutorial is only about Basics of Bots waypointing. I mean the ways that bots will follow. Actually, bots will move and as they know ojectives, they will try to get them. You can code a .gm file to help bots in doing objectives better but this is not what i'm gonna explain here.

So, what is waypointing?

Omni-bot, like every bot needs a data structure that it can use to find its way around the map. Nearly every bot requires waypointing of some sort, whether it be automatically calculated from looking at the map geometry or hand placed like the majority of 3rd party bots.

Waypoints are basically a graph representation of the map geometry. Waypoints are vertices, and paths between them are edges. When a bot wants to get from where he is to a destination, the waypoint graph is used to find the way.

Waypoints are stored in .way files in the nav directory.

:excl: Due to the special method of waypointing in ET, waypointing is only available in the omnibot mod, which is a modification of etmain. This means you cannot waypoint in etpub, jaymod, or NQ.

What do you need to start waypointing?
- ET of course
- Omni-bot (would be added on our download section soon, check it)
- the map(s) you want to waypoint
- (waypoints you want to improve)

Well, after you checked all of this let's start by clicking Omni-bot icon - Host a game - Choose single map objective - Choose the map you want to waypoint in the list - Start server.

When the map has been loaded, just wait the warmup is ended. Open your console (²) and type /bot waypoiting_view on.

If your omnibot already contains a waypoint for the map you have loaded you would see something like :

If that map has no waypoints in your folder, nothing will happen.

Let's say you have no waypoints loaded so you have to create it by yourself.

Determine where bots have to go and type in console /bot waypoint_add.

You should get this :

The vertical purple line is the actual waypoint, The red star shaped "beams" indicate the radius size of the waypoint.

Now move away from your 1st waypoint. Make sure that there are no objects or anything to block your path between your 1st waypoint and where your player is.

Now add your 2nd waypoint :
/bot waypoint_add

You should now have something like this :

The next step is to join the 2 waypoints. There are 2 ways you can join waypoints the 1st is a one-way connection (/bot waypoint_connect) and the 2nd is a two-way connection (/bot waypoint_biconnect).
The general rule is to always use the two-way connection unless it is only possible for the bot to go one-way i.e. when dropping down from a ledge.
Now lets join the 2 waypoints up.
To join up 2 waypoints you need to use the following command on each of the 2 waypoints you want to connect : /bot waypoint_biconnect.


You are not limited to adding 1 connection per waypoint just add a 3rd waypoint and connect the waypoints in the same way you have just learnt.


If you just want to remove the connections between 2 waypoints use the /bot waypoint_biconnect or /bot waypoint_connect (depending on the type of connection) on both the waypoints you want to remove connections from.

To move a waypoint because its in the wrong place you need to go to the waypoint and use this command : /bot waypoint_move.
Then move your player to where you want new waypoint to be and use the same command again. Any waypoints you have connected will stay connected this way

In some cases you will want to delete the waypoint & its connections to do that use this command : /bot waypoint_del.

Saving Your Waypoints

Save often. Although the bot is pretty stable, it is a good habit to save often.
To save you waypoints use this command :
/bot waypoint_save
Note If the time runs out on the map you will lose all your work when the maps restarts unless you have used the above command.

Waypoint Radius

A waypoint's radius is the tolerance for moving towards a waypoint. If you want the bots to get very close to a certain spot, use a smaller radius, if it doesn't matter much if a bot reaches this specific waypoint exactly, you use a large radius.
The default radius is 35 game units this will do in most cases, but some situations require some radius tweaking. In areas where there is plenty of space, a larger radius will make it easier for the bots to avoid running into each other when they meet on a waypoint, so a radius of 60, 80, or even 100 will be a better choice:
To Change a single waypoint's radius to 80 for example you would use this command
/bot waypoint_setradius 80
But i.e, a 20-25 radius size is better for climbs or small corridors.


Sometimes bots have to jump not to get stuck. Here is the command you have to use on your waypoint : /bot waypoint_addflag jump.

Same thing about prone or crouch (just replace "jump" by "prone" or "crouch").


There are 2 types of doors (normal or team only).

For normal doors, use that way :
Approach the door and place a waypoint where you would normally use the activate key to open it.
Now add the following command (flag) :
/bot waypoint_flag door
Now you need to do exactly the same on the other side of the door and connect up the 2 waypoints.

Team doors are waypointed in the same way as normal doors and still require the door flag.
Because it is a team only door a 2nd waypoint flag needs to be added.
There are 2 commands to choose from as there are 2 teams in ET axis (team1) & allies (team2).
Depending on which team the door belongs to add 1 of these commands
/bot waypoint_flag axis
/bot waypoint_flag allies
You can see in the picture below an example of a "team only" door :


For bots to be able to go up & down ladders you need to use the 'climb' flag. Before you can add the 'climb' flag you need to position the waypoints correctly. You should place 1 waypoint just before the base of the ladder and another at the top just after you have exited off the ladder.


Add the 'climb' flag to both waypoints using :
/bot waypoint_addflag climb
And then don't forget to change the radius size as explained previously.


On a lot of maps there are objectives to taken from 1 place to another. An example of this is the gold crates in Goldrush.
The bots know where objectives are located in the map but they don't know where to take them.
You should have a waypoint at the location the objective needs to be taken to, if not add one.
All you need to do now is add the cappoint flag using this command:
/bot waypoint_addflag cappoint

Walls, water, bridges

The old wall in the oasis map is an example of a blockable section that can be unblocked once the wall has been blown. Because bots do not see walls you need to add a flag that will detect if a bot can use the path between the 2 waypoints. The flag you need to add is the 'blockwall' flag, this need to be added to both waypoints.
/bot waypoint_addflag blockwall
Once you have added the 2 waypoints you will see a green line if the connection is not blocked & a red line if it is blocked.


Same thing about water pomps or bridges to build.
/bot waypoint_addflag blockwater
/bot waypoint_addflag blockbridge

You can find your waypoints you have made in your omnibot folder in et - nav. This is the nameofthemap.way files ;)

Well this tuto is over. It has been made with the official documentation of Omni-bot and from my little experience.

If you need to improve your waypoints, here are some links to look at :

Also, if you need help contact me on xfire or pm me.