<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.redfactionwiki.com/w/index.php?action=history&amp;feed=atom&amp;title=Creating_AWP_Waypoint_Files</id>
	<title>Creating AWP Waypoint Files - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.redfactionwiki.com/w/index.php?action=history&amp;feed=atom&amp;title=Creating_AWP_Waypoint_Files"/>
	<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Creating_AWP_Waypoint_Files&amp;action=history"/>
	<updated>2026-05-02T18:20:10Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Creating_AWP_Waypoint_Files&amp;diff=15177&amp;oldid=prev</id>
		<title>Goober at 13:03, 2 May 2026</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Creating_AWP_Waypoint_Files&amp;diff=15177&amp;oldid=prev"/>
		<updated>2026-05-02T13:03:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:03, 2 May 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l32&quot;&gt;Line 32:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 32:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Step 2: Auto-generate a baseline &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;graph&lt;/del&gt;==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Step 2: Auto-generate a baseline &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;grid&lt;/ins&gt;==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Hand-placing every waypoint on a real multiplayer map is impractical. The editor includes an auto-generation pipeline that walks outward from the level's existing item, respawn, CTF flag, and teleporter objects, probes the geometry, and builds a connected waypoint &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;graph &lt;/del&gt;automatically. Start there and tweak by hand only where it gets things wrong.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Hand-placing every waypoint on a real multiplayer map is impractical. The editor includes an auto-generation pipeline that walks outward from the level's existing item, respawn, CTF flag, and teleporter objects, probes the geometry, and builds a connected waypoint &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;grid &lt;/ins&gt;automatically. Start there and tweak by hand only where it gets things wrong.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In the editor panel, click '''Generate waypoints (INTENSE)'''.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In the editor panel, click '''Generate waypoints (INTENSE)'''.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l51&quot;&gt;Line 51:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 51:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If the log says '''No seed waypoints found for generation''', the level has no item/respawn/CTF/teleporter objects the generator can use as anchors - you'll need to either add some in the level editor or hand-place starter waypoints (see Step 3).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If the log says '''No seed waypoints found for generation''', the level has no item/respawn/CTF/teleporter objects the generator can use as anchors - you'll need to either add some in the level editor or hand-place starter waypoints (see Step 3).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Step 3: Inspect and edit the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;graph&lt;/del&gt;==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Step 3: Inspect and edit the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;grid&lt;/ins&gt;==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The editor uses a dual mouse mode. By default, the mouse looks around like normal gameplay. '''Right-click''' toggles the '''UI cursor''' on and off:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The editor uses a dual mouse mode. By default, the mouse looks around like normal gameplay. '''Right-click''' toggles the '''UI cursor''' on and off:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*'''Mouse aim''' (right-click off): Look around with the mouse as in normal play. Crosshair selects the waypoint/zone/target you're looking at.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*'''Mouse aim''' (right-click off): Look around with the mouse as in normal play. Crosshair selects the waypoint/zone/target you're looking at.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l102&quot;&gt;Line 102:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 102:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Step 3e: Optional cleanup passes===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Step 3e: Optional cleanup passes===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*'''Clean''' (or '''waypoints_clean''') - removes invalid waypoints created by failed generation passes.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*'''Clean''' (or '''waypoints_clean''') - removes invalid waypoints created by failed generation passes.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*'''Reset to default grid''' (or '''waypoints_reset''') - clears everything and rebuilds the seed-only &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;graph &lt;/del&gt;(if you want to start over without exiting the editor).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*'''Reset to default grid''' (or '''waypoints_reset''') - clears everything and rebuilds the seed-only &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;grid &lt;/ins&gt;(if you want to start over without exiting the editor).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*'''Drop''' (or '''waypoints_drop''') - toggles auto-drop, which records a waypoint everywhere your player walks. Handy for filling in spots the auto-generator missed; '''remember to turn it off''' before you start sightseeing.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*'''Drop''' (or '''waypoints_drop''') - toggles auto-drop, which records a waypoint everywhere your player walks. Handy for filling in spots the auto-generator missed; '''remember to turn it off''' before you start sightseeing.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l113&quot;&gt;Line 113:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 113:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The editor log will print '''Waypoints saved''' on success or '''No waypoints to save''' if the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;graph &lt;/del&gt;is empty.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The editor log will print '''Waypoints saved''' on success or '''No waypoints to save''' if the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;grid &lt;/ins&gt;is empty.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To re-load a previously-saved AWP without restarting the level, click '''Load AWP file''' or run '''waypoints_load'''.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To re-load a previously-saved AWP without restarting the level, click '''Load AWP file''' or run '''waypoints_load'''.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Creating_AWP_Waypoint_Files&amp;diff=15175&amp;oldid=prev</id>
		<title>Goober: Created page with &quot;{{RF1Tutorial|Goober}} This step-by-step guide will walk you through creating an '''AWP file''' (Alpine Waypoint grid file) for a Red Faction 1 multiplayer level using the [https://alpinefaction.com Alpine Faction] v1.3 in-game '''waypoint editor'''. AWP files describe the navigation grid that Alpine Faction bots use to move, fight, and pursue objectives on the map - if a level has no AWP, bots cannot navigate it.  '''NOTE:''' If you also want to test the resulting AWP w...&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Creating_AWP_Waypoint_Files&amp;diff=15175&amp;oldid=prev"/>
		<updated>2026-05-02T13:00:50Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{RF1Tutorial|Goober}} This step-by-step guide will walk you through creating an &amp;#039;&amp;#039;&amp;#039;AWP file&amp;#039;&amp;#039;&amp;#039; (Alpine Waypoint grid file) for a Red Faction 1 multiplayer level using the [https://alpinefaction.com Alpine Faction] v1.3 in-game &amp;#039;&amp;#039;&amp;#039;waypoint editor&amp;#039;&amp;#039;&amp;#039;. AWP files describe the navigation grid that Alpine Faction bots use to move, fight, and pursue objectives on the map - if a level has no AWP, bots cannot navigate it.  &amp;#039;&amp;#039;&amp;#039;NOTE:&amp;#039;&amp;#039;&amp;#039; If you also want to test the resulting AWP w...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{RF1Tutorial|Goober}}&lt;br /&gt;
This step-by-step guide will walk you through creating an '''AWP file''' (Alpine Waypoint grid file) for a Red Faction 1 multiplayer level using the [https://alpinefaction.com Alpine Faction] v1.3 in-game '''waypoint editor'''. AWP files describe the navigation grid that Alpine Faction bots use to move, fight, and pursue objectives on the map - if a level has no AWP, bots cannot navigate it.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' If you also want to test the resulting AWP with bots, see:&lt;br /&gt;
*[[Launching Alpine Faction Bots]]&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
* An '''AWP file''' is a per-level text file describing waypoints, links between waypoints, navigation zones, and targets.&lt;br /&gt;
* AWP files live in '''user_maps\waypoints\&amp;lt;level&amp;gt;.awp''' inside your Red Faction install directory.&lt;br /&gt;
* The waypoint editor is a built-in mode of the normal Alpine Faction client - no separate tool needed. You enable it from the in-game console while a level is loaded in single-player or as a listen server host.&lt;br /&gt;
* The editor provides a GUI and auto-generation pipeline that builds a reasonable starting grid from the level's item, respawn point, CTF flag, and teleporter objects.&lt;br /&gt;
* For batch jobs, the launcher accepts '''-awpgen &amp;lt;level&amp;gt;''' which runs auto-generation headlessly and quits, writing the AWP automatically.&lt;br /&gt;
&lt;br /&gt;
==Step 1: Load the level and enter editor mode==&lt;br /&gt;
Launch Alpine Faction normally and load the level you want to author waypoints for. The easiest way to do this is to run the following console command from the main menu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mapm LEVEL_FILENAME&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Open the in-game console and enter:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
waypoints_edit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see the '''Waypoint Editor''' panel appear in the upper-right of the screen, with buttons for '''Reset to default grid''', '''Generate waypoints (INTENSE)''', '''Save AWP file''', '''Load AWP file''', and toggles for '''Debug''', '''Drop''', and '''Clean'''.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' '''waypoints_edit''' is rejected while you are connected as a multiplayer '''client''' to a remote server. You must be playing locally (either in single-player or as the listen server host) to use the editor.&lt;br /&gt;
&lt;br /&gt;
To leave editor mode at any time, run this command to toggle it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
waypoints_edit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Step 2: Auto-generate a baseline graph==&lt;br /&gt;
Hand-placing every waypoint on a real multiplayer map is impractical. The editor includes an auto-generation pipeline that walks outward from the level's existing item, respawn, CTF flag, and teleporter objects, probes the geometry, and builds a connected waypoint graph automatically. Start there and tweak by hand only where it gets things wrong.&lt;br /&gt;
&lt;br /&gt;
In the editor panel, click '''Generate waypoints (INTENSE)'''.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' Generation can take several seconds on small maps and several minutes on large ones. The most intensive generation operations will be on levels with many very expansive navigable areas. The game will appear to hang while it runs.&lt;br /&gt;
&lt;br /&gt;
When generation finishes, the editor log (bottom of the panel) will print a summary like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Generated 1842 waypoints from 23 ctf_flag/item/respawn/tele_exit seeds&lt;br /&gt;
Link pass added 4517 bidirectional links and 218 downward links&lt;br /&gt;
Jump pad trajectory pass added 6 destination links&lt;br /&gt;
Ledge drop pass added 41 downward links&lt;br /&gt;
Generated 12 explosion targets from blocked waypoint pairs&lt;br /&gt;
Generated 3 shatter targets from breakable-glass blocked waypoint pairs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the log says '''No seed waypoints found for generation''', the level has no item/respawn/CTF/teleporter objects the generator can use as anchors - you'll need to either add some in the level editor or hand-place starter waypoints (see Step 3).&lt;br /&gt;
&lt;br /&gt;
==Step 3: Inspect and edit the graph==&lt;br /&gt;
The editor uses a dual mouse mode. By default, the mouse looks around like normal gameplay. '''Right-click''' toggles the '''UI cursor''' on and off:&lt;br /&gt;
*'''Mouse aim''' (right-click off): Look around with the mouse as in normal play. Crosshair selects the waypoint/zone/target you're looking at.&lt;br /&gt;
*'''UI cursor''' (right-click on): Mouse becomes a cursor for clicking buttons in the editor panel and dragging gizmo handles. The view is locked while in this mode.&lt;br /&gt;
&lt;br /&gt;
Switch modes freely - the panel always shows '''Right click: UI cursor''' or '''Right click: Mouse aim''' at the top so you know which is active.&lt;br /&gt;
&lt;br /&gt;
===Step 3a: Turn on debug rendering===&lt;br /&gt;
You probably want to '''see''' the waypoints first. Click the '''Debug''' button in the panel to cycle through debug modes (or run '''waypoints_debug''' / '''waypoints_debug 0|1|2|3''' in the console):&lt;br /&gt;
*'''0''' - off&lt;br /&gt;
*'''1''' - links + zone bounds + target boxes&lt;br /&gt;
*'''2''' - adds waypoint spheres, zone arrows, and target arrows&lt;br /&gt;
*'''3''' - adds labels for waypoints, zones, and targets&lt;br /&gt;
&lt;br /&gt;
Mode '''3''' is the most informative for editing but the heaviest to render. Mode '''2''' is practical for most purposes.&lt;br /&gt;
&lt;br /&gt;
===Step 3b: Select something and edit it===&lt;br /&gt;
With debug rendering on, look at any waypoint, zone, or target in the world (you do not need to be in UI cursor mode for this). The selection box shows up around the closest valid object.&lt;br /&gt;
&lt;br /&gt;
The '''Selection''' section of the panel updates with action buttons:&lt;br /&gt;
&lt;br /&gt;
For a '''waypoint''':&lt;br /&gt;
*'''Edit inbound links''' / '''Edit outbound links''' - open a dialog to add/remove individual links by typing waypoint UIDs.&lt;br /&gt;
*'''Change type''' - re-classify the waypoint (e.g. '''std''', '''item''', '''respawn''', '''jump_pad''', '''ladder''', '''ctf_flag''', '''tele_entrance''', '''tele_exit''', '''water''', etc.).&lt;br /&gt;
*'''Cycle movement type''' - cycle the dropped-waypoint subtype ('''normal''', '''crouch_needed''', '''swimming''', '''falling''', '''unsafe_terrain''').&lt;br /&gt;
*'''Auto link''' - link this waypoint to nearby waypoints with line of sight.&lt;br /&gt;
*'''Send probe''' - run a localized version of the generator outward from this waypoint. Useful for filling in coverage gaps.&lt;br /&gt;
*'''Ledge calculate''' - add downward &amp;quot;ledge drop&amp;quot; links from this waypoint to lower waypoints.&lt;br /&gt;
*'''Delete waypoint''' - remove it.&lt;br /&gt;
&lt;br /&gt;
For a '''zone''':&lt;br /&gt;
*'''Change type''' - cycle through '''control_point''', '''damaging_liquid_room''', '''damage_zone''', '''instant_death_zone''', '''bridge_use''', '''bridge_prox''', '''high_power_zone'''.&lt;br /&gt;
*'''Edit gated''' (bridge zones only) - configure which waypoints the zone gates.&lt;br /&gt;
*'''Delete zone''' - remove it.&lt;br /&gt;
&lt;br /&gt;
For a '''target''':&lt;br /&gt;
*'''Change type''' - '''explosion''', '''shatter''', or '''jump'''.&lt;br /&gt;
*'''Auto link''' - link the target to all waypoints from which it is usable.&lt;br /&gt;
*'''Edit links''' - hand-edit the linked waypoint list.&lt;br /&gt;
*'''Delete target''' - remove it.&lt;br /&gt;
&lt;br /&gt;
===Step 3c: Drag waypoints to fix placement===&lt;br /&gt;
With a waypoint or zone selected, a '''gizmo''' (3-axis arrows for waypoints, corner handles for box-extents zones) appears at the selection in UI cursor mode. Click and drag a handle to move the selection. Releasing the mouse finalizes the new position.&lt;br /&gt;
&lt;br /&gt;
===Step 3d: Add new waypoints, zones, and targets===&lt;br /&gt;
*'''New WP''' - place a new '''std''' waypoint at the position you're looking at.&lt;br /&gt;
*'''New Zone''' - opens a dialog to define a new zone (by trigger UID, room UID, or world-space box). Zone types and sources are documented inline in the dialog.&lt;br /&gt;
*'''New Target''' - opens a dialog to add a target ('''explosion''', '''shatter''', or '''jump''') at the looked-at position. Shatter targets require you to be aiming at a breakable brush.&lt;br /&gt;
&lt;br /&gt;
===Step 3e: Optional cleanup passes===&lt;br /&gt;
*'''Clean''' (or '''waypoints_clean''') - removes invalid waypoints created by failed generation passes.&lt;br /&gt;
*'''Reset to default grid''' (or '''waypoints_reset''') - clears everything and rebuilds the seed-only graph (if you want to start over without exiting the editor).&lt;br /&gt;
*'''Drop''' (or '''waypoints_drop''') - toggles auto-drop, which records a waypoint everywhere your player walks. Handy for filling in spots the auto-generator missed; '''remember to turn it off''' before you start sightseeing.&lt;br /&gt;
&lt;br /&gt;
==Step 4: Save the AWP file==&lt;br /&gt;
Click '''Save AWP file''' in the panel (or run '''waypoints_save''' in the console).&lt;br /&gt;
&lt;br /&gt;
The file is written to:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
\user_maps\waypoints\&amp;lt;level_filename&amp;gt;.awp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The editor log will print '''Waypoints saved''' on success or '''No waypoints to save''' if the graph is empty.&lt;br /&gt;
&lt;br /&gt;
To re-load a previously-saved AWP without restarting the level, click '''Load AWP file''' or run '''waypoints_load'''.&lt;br /&gt;
&lt;br /&gt;
==Additional information==&lt;br /&gt;
===Headless AWP generation with -awpgen (Advanced)===&lt;br /&gt;
For batch jobs you can launch the client with '''-awpgen &amp;lt;level&amp;gt;''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AlpineFactionLauncher.exe -awpgen mylevel.rfl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This loads the level, runs '''waypoints_generate''', saves the AWP, and quits. It honors any existing AWP's revision number and increments it on save, so re-running '''-awpgen''' on a level that already has an AWP produces a new revision rather than overwriting at revision 1.&lt;br /&gt;
&lt;br /&gt;
'''-awpgen''' has a 60-minute hard timeout per level. If generation hasn't completed in that time, the process logs an error and quits.&lt;br /&gt;
&lt;br /&gt;
===FactionFiles===&lt;br /&gt;
Bots fetch AWP files from FactionFiles when loading a level. The first integer in a saved AWP is its revision. When FactionFiles has a newer revision than a client, the client will fetch an update.&lt;br /&gt;
&lt;br /&gt;
If you are uploading a new level, you should go through the AWP creation process as detailed above, and provide the AWP for your level when submitting it to FactionFiles for approval.&lt;br /&gt;
&lt;br /&gt;
===Validating bot navigation===&lt;br /&gt;
Once you've saved an AWP, the easiest way to verify it works is to launch a local Alpine Faction dedicated server with bots enabled, load your level, and watch the bots navigate. See:&lt;br /&gt;
*[[Launching Alpine Faction Bots]]&lt;br /&gt;
&lt;br /&gt;
===Still need help?===&lt;br /&gt;
* If you run into issues authoring AWP files or getting bots to navigate them, it's best to join the [https://discord.gg/factionfiles Red Faction Community Discord] for some assistance.&lt;br /&gt;
&lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: Tutorials]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
</feed>