<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.redfactionwiki.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Goober</id>
	<title>Red Faction Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.redfactionwiki.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Goober"/>
	<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/wiki/Special:Contributions/Goober"/>
	<updated>2026-05-04T04:29:08Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Creating_AWP_Waypoint_Files&amp;diff=15177</id>
		<title>Creating AWP Waypoint Files</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Creating_AWP_Waypoint_Files&amp;diff=15177"/>
		<updated>2026-05-02T13:03:20Z</updated>

		<summary type="html">&lt;p&gt;Goober: &lt;/p&gt;
&lt;hr /&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 grid==&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 grid 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 grid==&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 grid (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 grid 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>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Red_Faction_Modding_Tutorials&amp;diff=15176</id>
		<title>Red Faction Modding Tutorials</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Red_Faction_Modding_Tutorials&amp;diff=15176"/>
		<updated>2026-05-02T13:01:12Z</updated>

		<summary type="html">&lt;p&gt;Goober: /* Multiplayer Specific */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BubbleNav|RF1Modding}}&lt;br /&gt;
This page lists all available tutorials for map and mod development for '''Red Faction'''.&lt;br /&gt;
&lt;br /&gt;
==Beginner==&lt;br /&gt;
*[[The Beginner's Guide to Red Faction Mapping]]&lt;br /&gt;
*[[Hello Room]]&lt;br /&gt;
*[[Beginner Mapping (Daedalus)]]&lt;br /&gt;
*[[Lighting, Water, and Vertex Editing]]&lt;br /&gt;
*[[Basic Moving Doors]] (Video)&lt;br /&gt;
*[[Brush Mode Operators]] (Video)&lt;br /&gt;
*[[Basic Portals]]&lt;br /&gt;
==Brushwork, Environments, and Texturing==&lt;br /&gt;
*[[Outside Areas, Fog, Skyboxes]] (Video)&lt;br /&gt;
*[[Geometry Bending and Twisting]] (Video)&lt;br /&gt;
*[[Subtractive Geometry and Layering - Start/End of Time]] (Video)&lt;br /&gt;
*[[Importing Custom Textures]] (Video)&lt;br /&gt;
*[[Importing Heightmap Terrain]] (Video)&lt;br /&gt;
*[[Smoothing Groups|Lightmap Smoothing Groups]]&lt;br /&gt;
==AI and Entities==&lt;br /&gt;
*[[Basic AI Attack and Patrol]]&lt;br /&gt;
==Events and Scripting==&lt;br /&gt;
*[[Creating Security Monitors]]&lt;br /&gt;
*[[Realistic Explosions]]&lt;br /&gt;
*[[Modifying Gravity]] (Video)&lt;br /&gt;
*[[Toggling Emitters]]&lt;br /&gt;
*[[Custom Cutscenes|Cutscene Tutorial (Helios/GTA/Trigger)]]&lt;br /&gt;
*[[Cutscene Tutorial|Cutscene Tutorial (Beatonator)]]&lt;br /&gt;
*[[Using Variable Data via Goals|Working with Variable Data via Goals]] (Video)&lt;br /&gt;
*[[Switchable Bolt Emitters (Forcefields)]]&lt;br /&gt;
==Lighting==&lt;br /&gt;
*[[Fake Volumetric Lighting via Particle Emitters]]&lt;br /&gt;
&amp;lt;!---==Sound==---&amp;gt;&lt;br /&gt;
==Multiplayer Specific==&lt;br /&gt;
*[[Basic Multiplayer Map]]&lt;br /&gt;
*[[Creating a Keyframe Trick]]&lt;br /&gt;
*[[Dynamic Multiplayer Spawn Points]]&lt;br /&gt;
*[[Custom Static Meshes in Multiplayer Maps]] (Video)&lt;br /&gt;
*[[RF CTF Level Design]] (Video)&lt;br /&gt;
*[[Changing Liquid Depth in Multiplayer]]&lt;br /&gt;
*[[Lighting Trick for Fullbright Player Models]]&lt;br /&gt;
*[[Crash Course on Adding Custom Meshes to Multiplayer Maps]]&lt;br /&gt;
*[[Mapping for Arena Mod]]&lt;br /&gt;
*[[Low Gravity for Multiplayer]]&lt;br /&gt;
*[[Creating Control Points]] ([https://alpinefaction.com Alpine Faction] only)&lt;br /&gt;
*[[Creating AWP Waypoint Files]] ([https://alpinefaction.com Alpine Faction] only)&lt;br /&gt;
&lt;br /&gt;
==Miscellaneous==&lt;br /&gt;
*[[Door Rooms]] (Video)&lt;br /&gt;
*[[Ladders]] (Video)&lt;br /&gt;
*[[Basic Decals]]&lt;br /&gt;
*[[Basic Liquids]]&lt;br /&gt;
*[[Basic Skyboxes]]&lt;br /&gt;
*[[Adding a Moon to a Skybox]]&lt;br /&gt;
*[[Distributing User Made Levels]]&lt;br /&gt;
*[[Resetting a Player Start]]&lt;br /&gt;
==Mod Development==&lt;br /&gt;
*[[Using Blender for Red Faction Static Meshes]] (Video)&lt;br /&gt;
*[[Using Blender for Red Faction Skeletal Meshes &amp;amp; Animations]] (Video)&lt;br /&gt;
*[[Static Meshes from 3ds Max]] (Video)&lt;br /&gt;
*[[First Person Weapon Models and Animations from 3ds Max]] (Video)&lt;br /&gt;
*[[Custom First Person Weapons]]&lt;br /&gt;
*[[Beginner's Guide to Table Editing]]&lt;br /&gt;
*[[Importing a Level from a Mod to the Base Game]] (Video)&lt;br /&gt;
*[[Creating and Using Custom Debris]]&lt;br /&gt;
==Workshop Sessions==&lt;br /&gt;
*[[RF Mod Development Workshop: Custom Characters]] (Video)&lt;br /&gt;
*[[RF Level Design Workshop: Part 1]] (Video)&lt;br /&gt;
*[[RF Level Design Workshop: Part 2]] (Video)&lt;br /&gt;
==End User Guides==&lt;br /&gt;
*[[Installing Conversion Mods (RF1)]]&lt;br /&gt;
*[[Installing Clientside Mods (RF1)]]&lt;br /&gt;
*[[Installing Custom Levels (RF1)]]&lt;br /&gt;
*[[Launching Alpine Faction Bots]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: RF1 Editing]]&lt;/div&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</id>
		<title>Creating AWP Waypoint Files</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Creating_AWP_Waypoint_Files&amp;diff=15175"/>
		<updated>2026-05-02T13:00:50Z</updated>

		<summary type="html">&lt;p&gt;Goober: Created page with &amp;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...&amp;quot;&lt;/p&gt;
&lt;hr /&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>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Red_Faction_Modding_Tutorials&amp;diff=15174</id>
		<title>Red Faction Modding Tutorials</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Red_Faction_Modding_Tutorials&amp;diff=15174"/>
		<updated>2026-04-28T19:45:01Z</updated>

		<summary type="html">&lt;p&gt;Goober: /* End User Guides */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BubbleNav|RF1Modding}}&lt;br /&gt;
This page lists all available tutorials for map and mod development for '''Red Faction'''.&lt;br /&gt;
&lt;br /&gt;
==Beginner==&lt;br /&gt;
*[[The Beginner's Guide to Red Faction Mapping]]&lt;br /&gt;
*[[Hello Room]]&lt;br /&gt;
*[[Beginner Mapping (Daedalus)]]&lt;br /&gt;
*[[Lighting, Water, and Vertex Editing]]&lt;br /&gt;
*[[Basic Moving Doors]] (Video)&lt;br /&gt;
*[[Brush Mode Operators]] (Video)&lt;br /&gt;
*[[Basic Portals]]&lt;br /&gt;
==Brushwork, Environments, and Texturing==&lt;br /&gt;
*[[Outside Areas, Fog, Skyboxes]] (Video)&lt;br /&gt;
*[[Geometry Bending and Twisting]] (Video)&lt;br /&gt;
*[[Subtractive Geometry and Layering - Start/End of Time]] (Video)&lt;br /&gt;
*[[Importing Custom Textures]] (Video)&lt;br /&gt;
*[[Importing Heightmap Terrain]] (Video)&lt;br /&gt;
*[[Smoothing Groups|Lightmap Smoothing Groups]]&lt;br /&gt;
==AI and Entities==&lt;br /&gt;
*[[Basic AI Attack and Patrol]]&lt;br /&gt;
==Events and Scripting==&lt;br /&gt;
*[[Creating Security Monitors]]&lt;br /&gt;
*[[Realistic Explosions]]&lt;br /&gt;
*[[Modifying Gravity]] (Video)&lt;br /&gt;
*[[Toggling Emitters]]&lt;br /&gt;
*[[Custom Cutscenes|Cutscene Tutorial (Helios/GTA/Trigger)]]&lt;br /&gt;
*[[Cutscene Tutorial|Cutscene Tutorial (Beatonator)]]&lt;br /&gt;
*[[Using Variable Data via Goals|Working with Variable Data via Goals]] (Video)&lt;br /&gt;
*[[Switchable Bolt Emitters (Forcefields)]]&lt;br /&gt;
==Lighting==&lt;br /&gt;
*[[Fake Volumetric Lighting via Particle Emitters]]&lt;br /&gt;
&amp;lt;!---==Sound==---&amp;gt;&lt;br /&gt;
==Multiplayer Specific==&lt;br /&gt;
*[[Basic Multiplayer Map]]&lt;br /&gt;
*[[Creating a Keyframe Trick]]&lt;br /&gt;
*[[Dynamic Multiplayer Spawn Points]]&lt;br /&gt;
*[[Custom Static Meshes in Multiplayer Maps]] (Video)&lt;br /&gt;
*[[RF CTF Level Design]] (Video)&lt;br /&gt;
*[[Changing Liquid Depth in Multiplayer]]&lt;br /&gt;
*[[Lighting Trick for Fullbright Player Models]]&lt;br /&gt;
*[[Crash Course on Adding Custom Meshes to Multiplayer Maps]]&lt;br /&gt;
*[[Mapping for Arena Mod]]&lt;br /&gt;
*[[Low Gravity for Multiplayer]]&lt;br /&gt;
*[[Creating Control Points]] ([https://alpinefaction.com Alpine Faction] only)&lt;br /&gt;
&lt;br /&gt;
==Miscellaneous==&lt;br /&gt;
*[[Door Rooms]] (Video)&lt;br /&gt;
*[[Ladders]] (Video)&lt;br /&gt;
*[[Basic Decals]]&lt;br /&gt;
*[[Basic Liquids]]&lt;br /&gt;
*[[Basic Skyboxes]]&lt;br /&gt;
*[[Adding a Moon to a Skybox]]&lt;br /&gt;
*[[Distributing User Made Levels]]&lt;br /&gt;
*[[Resetting a Player Start]]&lt;br /&gt;
==Mod Development==&lt;br /&gt;
*[[Using Blender for Red Faction Static Meshes]] (Video)&lt;br /&gt;
*[[Using Blender for Red Faction Skeletal Meshes &amp;amp; Animations]] (Video)&lt;br /&gt;
*[[Static Meshes from 3ds Max]] (Video)&lt;br /&gt;
*[[First Person Weapon Models and Animations from 3ds Max]] (Video)&lt;br /&gt;
*[[Custom First Person Weapons]]&lt;br /&gt;
*[[Beginner's Guide to Table Editing]]&lt;br /&gt;
*[[Importing a Level from a Mod to the Base Game]] (Video)&lt;br /&gt;
*[[Creating and Using Custom Debris]]&lt;br /&gt;
==Workshop Sessions==&lt;br /&gt;
*[[RF Mod Development Workshop: Custom Characters]] (Video)&lt;br /&gt;
*[[RF Level Design Workshop: Part 1]] (Video)&lt;br /&gt;
*[[RF Level Design Workshop: Part 2]] (Video)&lt;br /&gt;
==End User Guides==&lt;br /&gt;
*[[Installing Conversion Mods (RF1)]]&lt;br /&gt;
*[[Installing Clientside Mods (RF1)]]&lt;br /&gt;
*[[Installing Custom Levels (RF1)]]&lt;br /&gt;
*[[Launching Alpine Faction Bots]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: RF1 Editing]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Launching_Alpine_Faction_Bots&amp;diff=15173</id>
		<title>Launching Alpine Faction Bots</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Launching_Alpine_Faction_Bots&amp;diff=15173"/>
		<updated>2026-04-28T19:44:30Z</updated>

		<summary type="html">&lt;p&gt;Goober: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{RF1Tutorial|Goober}}&lt;br /&gt;
This step-by-step guide will walk you through setting up '''headless bots''' on a '''Red Faction 1''' [https://alpinefaction.com Alpine Faction] v1.3 dedicated server. Headless bots are Alpine Faction clients running with no rendering or sound, controlled remotely by the dedicated server. Because they connect like real players, the server gets bots that move, fight, and use the network exactly as a human would - without the dedicated server having to simulate them locally.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' This guide assumes you have already set up an Alpine Faction dedicated server. If you have not, please see:&lt;br /&gt;
*[[Setting up an Alpine Faction Dedicated Server (RF1)]]&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
* The dedicated server does '''not''' run the bots locally. Instead, each bot is a separate Alpine Faction process running on a computer that can reach the server.&lt;br /&gt;
* Each bot client connects to the server using the normal multiplayer connection flow, but is identified as a bot via a '''shared secret''' it sends in its join request.&lt;br /&gt;
* The dedicated server controls each bot by sending it a profile (personality, skill, name, character) and steering its behaviour over the network.&lt;br /&gt;
* By default, headless bots run with no rendering and no sound, so resource usage per bot is low.&lt;br /&gt;
&lt;br /&gt;
To run any number of headless bots, you need:&lt;br /&gt;
# A dedicated server configured with a '''bot shared secret''' (and optionally one or more '''bot profiles''').&lt;br /&gt;
# One Alpine Faction client process per bot, launched with the matching secret and the server's address.&lt;br /&gt;
&lt;br /&gt;
==Step 1: Configure the dedicated server==&lt;br /&gt;
Open your dedicated server's ADS config file (the one you pass to '''AlpineFactionLauncher.exe''' with '''-ads''').&lt;br /&gt;
&lt;br /&gt;
Add a '''bot_shared_secret''' to the top-level (root) section. This is any 32-bit unsigned integer; treat it like a password - clients that don't send the matching secret will be rejected as bot clients.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bot_shared_secret = 1234567890&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' The shared secret value must be greater than 0. A value of 0 disables bot authentication entirely.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' The number of bots that will be filled in is capped by your server's '''ideal_player_count'''. If you want N bots, make sure '''ideal_player_count''' is at least N. Bots beyond that count will be rejected on join.&lt;br /&gt;
&lt;br /&gt;
==Step 2: (Optional) Create bot profiles==&lt;br /&gt;
You can leave the rest of the config alone - bots that connect with no profiles configured will use sensible defaults (the '''balanced''' personality and the '''average''' skill preset, with a randomized name and character).&lt;br /&gt;
&lt;br /&gt;
For more variety, you can define one or more bot profile ADS files and reference them from your server config. Each connecting bot is assigned a profile slot in round-robin fashion.&lt;br /&gt;
&lt;br /&gt;
===Step 2a: Write a profile file===&lt;br /&gt;
Create a new file, e.g. '''bots/aggressive_alice.toml''', next to your dedicated server config:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Identity (both optional - leave empty to randomize from the default identity pool)&lt;br /&gt;
player_name  = &amp;quot;Alice&amp;quot;&lt;br /&gt;
mp_character = &amp;quot;miner1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Behavioural preset (see &amp;quot;Available presets&amp;quot; below)&lt;br /&gt;
personality_preset = &amp;quot;aggressive&amp;quot;&lt;br /&gt;
skill_preset       = &amp;quot;hard&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Optional: tweak individual personality fields&lt;br /&gt;
[personality_overrides]&lt;br /&gt;
# Many fields are available. This guide will be expanded later to contain them.&lt;br /&gt;
&lt;br /&gt;
# Optional: tweak individual skill fields&lt;br /&gt;
[skill_overrides]&lt;br /&gt;
# Many fields are available. This guide will be expanded later to contain them.&lt;br /&gt;
&lt;br /&gt;
# Optional: enable specific quirks&lt;br /&gt;
[quirks]&lt;br /&gt;
# Many fields are available. This guide will be expanded later to contain them.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Step 2b: Reference profiles from the server config===&lt;br /&gt;
In your main ADS server config, add a '''bot_profiles''' array listing the relative paths to each profile file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bot_profiles = [&lt;br /&gt;
    &amp;quot;bots/aggressive_alice.toml&amp;quot;,&lt;br /&gt;
    &amp;quot;bots/sniper_bob.toml&amp;quot;,&lt;br /&gt;
    &amp;quot;bots/balanced_charlie.toml&amp;quot;,&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Paths are resolved relative to the directory containing your server's ADS config.&lt;br /&gt;
&lt;br /&gt;
===Available presets===&lt;br /&gt;
'''Personality presets:''' '''balanced''', '''aggressive''', '''defensive''', '''tactician''', '''berserker''', '''objective''', '''sniper''', '''guerrilla''', '''collector''', '''brawler''', '''destroyer'''&lt;br /&gt;
&lt;br /&gt;
'''Skill presets:''' '''beginner''', '''easy''', '''average''', '''hard''', '''expert''', '''nightmare'''&lt;br /&gt;
&lt;br /&gt;
If a profile omits '''personality_preset''' it defaults to '''balanced'''. If it omits '''skill_preset''' it defaults to '''average'''.&lt;br /&gt;
&lt;br /&gt;
==Step 3: Start the dedicated server==&lt;br /&gt;
Launch your dedicated server normally:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AlpineFactionLauncher.exe -ads my_server.toml -port PORT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Watch the server console output. You should see lines like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Bot shared secret:                     1234567890&lt;br /&gt;
  Loading bot profile: .../bots/aggressive_alice.toml&lt;br /&gt;
  Bot player name:                       Alice&lt;br /&gt;
  Bot personality preset:                aggressive&lt;br /&gt;
  Bot skill preset:                      hard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't see your bot configuration applied, double-check your ADS file for syntax errors and confirm the file paths in '''bot_profiles''' resolve correctly.&lt;br /&gt;
&lt;br /&gt;
==Step 4: Launch a headless bot client==&lt;br /&gt;
For each bot you want, start a separate '''AlpineFactionLauncher.exe''' process with these arguments:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AlpineFactionLauncher.exe -url rf://IP:PORT -bot 1234567890&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The arguments are:&lt;br /&gt;
*'''-url rf://IP:PORT''' - The address of your server. Use '''rf://127.0.0.1:7755''' if the bot is running on the same machine as the server (replace '''7755''' with whatever port your server uses).&lt;br /&gt;
*'''-bot &amp;lt;secret&amp;gt;''' - Enables headless bot mode. The number must match the '''bot_shared_secret''' from your server config exactly.&lt;br /&gt;
*'''-noquit''' (optional) - Prevents the bot process from quitting automatically when it disconnects.&lt;br /&gt;
&lt;br /&gt;
When the bot is accepted, you'll see it appear in the server's player list (with the name from its assigned profile, or a randomized default name if no profiles are configured).&lt;br /&gt;
&lt;br /&gt;
===Running multiple bots===&lt;br /&gt;
To run more than one bot, simply launch '''AlpineFactionLauncher.exe''' multiple times with the same '''-bot''' arguments. Each invocation creates a separate process.&lt;br /&gt;
&lt;br /&gt;
Each bot will be assigned the next available profile slot (round-robin), and bots beyond your server's '''ideal_player_count''' will be rejected.&lt;br /&gt;
&lt;br /&gt;
==Additional information==&lt;br /&gt;
===Debug rendering===&lt;br /&gt;
If you want to '''see''' what a bot is doing - for development, debugging, or just curiosity - replace '''-bot''' with '''-debugbot''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AlpineFactionLauncher.exe -url rf://127.0.0.1:7755 -debugbot 1234567890&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This launches a normal rendered Alpine Faction window controlled by the server, with bot debug overlays enabled. Use it sparingly - it's much heavier than a headless bot.&lt;br /&gt;
&lt;br /&gt;
===Without a shared secret===&lt;br /&gt;
If you don't set '''bot_shared_secret''' on your server, '''-bot'''/'''-debugbot''' clients will not be accepted as bots.&lt;br /&gt;
&lt;br /&gt;
===Bot count limit===&lt;br /&gt;
The server will reject incoming bots once the connected bot count reaches '''ideal_player_count'''. Bot slots also free up automatically when bots disconnect. To run a server with more bots, raise '''ideal_player_count''' in your server rules.&lt;br /&gt;
&lt;br /&gt;
===Still need help?===&lt;br /&gt;
* If you run into issues setting up headless bots, 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>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Launching_Alpine_Faction_Bots&amp;diff=15172</id>
		<title>Launching Alpine Faction Bots</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Launching_Alpine_Faction_Bots&amp;diff=15172"/>
		<updated>2026-04-28T19:44:21Z</updated>

		<summary type="html">&lt;p&gt;Goober: Created page with &amp;quot;{{RF1Tutorial|Goober}} This step-by-step guide will walk you through setting up '''headless bots''' on a '''Red Faction 1''' https://alpinefaction.com Alpine Faction v1.3 dedicated server. Headless bots are Alpine Faction clients running with no rendering or sound, controlled remotely by the dedicated server. Because they connect like real players, the server gets bots that move, fight, and use the network exactly as a human would - without the dedicated server havin...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{RF1Tutorial|Goober}}&lt;br /&gt;
This step-by-step guide will walk you through setting up '''headless bots''' on a '''Red Faction 1''' [[https://alpinefaction.com Alpine Faction]] v1.3 dedicated server. Headless bots are Alpine Faction clients running with no rendering or sound, controlled remotely by the dedicated server. Because they connect like real players, the server gets bots that move, fight, and use the network exactly as a human would - without the dedicated server having to simulate them locally.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' This guide assumes you have already set up an Alpine Faction dedicated server. If you have not, please see:&lt;br /&gt;
*[[Setting up an Alpine Faction Dedicated Server (RF1)]]&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
* The dedicated server does '''not''' run the bots locally. Instead, each bot is a separate Alpine Faction process running on a computer that can reach the server.&lt;br /&gt;
* Each bot client connects to the server using the normal multiplayer connection flow, but is identified as a bot via a '''shared secret''' it sends in its join request.&lt;br /&gt;
* The dedicated server controls each bot by sending it a profile (personality, skill, name, character) and steering its behaviour over the network.&lt;br /&gt;
* By default, headless bots run with no rendering and no sound, so resource usage per bot is low.&lt;br /&gt;
&lt;br /&gt;
To run any number of headless bots, you need:&lt;br /&gt;
# A dedicated server configured with a '''bot shared secret''' (and optionally one or more '''bot profiles''').&lt;br /&gt;
# One Alpine Faction client process per bot, launched with the matching secret and the server's address.&lt;br /&gt;
&lt;br /&gt;
==Step 1: Configure the dedicated server==&lt;br /&gt;
Open your dedicated server's ADS config file (the one you pass to '''AlpineFactionLauncher.exe''' with '''-ads''').&lt;br /&gt;
&lt;br /&gt;
Add a '''bot_shared_secret''' to the top-level (root) section. This is any 32-bit unsigned integer; treat it like a password - clients that don't send the matching secret will be rejected as bot clients.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bot_shared_secret = 1234567890&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' The shared secret value must be greater than 0. A value of 0 disables bot authentication entirely.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' The number of bots that will be filled in is capped by your server's '''ideal_player_count'''. If you want N bots, make sure '''ideal_player_count''' is at least N. Bots beyond that count will be rejected on join.&lt;br /&gt;
&lt;br /&gt;
==Step 2: (Optional) Create bot profiles==&lt;br /&gt;
You can leave the rest of the config alone - bots that connect with no profiles configured will use sensible defaults (the '''balanced''' personality and the '''average''' skill preset, with a randomized name and character).&lt;br /&gt;
&lt;br /&gt;
For more variety, you can define one or more bot profile ADS files and reference them from your server config. Each connecting bot is assigned a profile slot in round-robin fashion.&lt;br /&gt;
&lt;br /&gt;
===Step 2a: Write a profile file===&lt;br /&gt;
Create a new file, e.g. '''bots/aggressive_alice.toml''', next to your dedicated server config:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Identity (both optional - leave empty to randomize from the default identity pool)&lt;br /&gt;
player_name  = &amp;quot;Alice&amp;quot;&lt;br /&gt;
mp_character = &amp;quot;miner1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Behavioural preset (see &amp;quot;Available presets&amp;quot; below)&lt;br /&gt;
personality_preset = &amp;quot;aggressive&amp;quot;&lt;br /&gt;
skill_preset       = &amp;quot;hard&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Optional: tweak individual personality fields&lt;br /&gt;
[personality_overrides]&lt;br /&gt;
# Many fields are available. This guide will be expanded later to contain them.&lt;br /&gt;
&lt;br /&gt;
# Optional: tweak individual skill fields&lt;br /&gt;
[skill_overrides]&lt;br /&gt;
# Many fields are available. This guide will be expanded later to contain them.&lt;br /&gt;
&lt;br /&gt;
# Optional: enable specific quirks&lt;br /&gt;
[quirks]&lt;br /&gt;
# Many fields are available. This guide will be expanded later to contain them.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Step 2b: Reference profiles from the server config===&lt;br /&gt;
In your main ADS server config, add a '''bot_profiles''' array listing the relative paths to each profile file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bot_profiles = [&lt;br /&gt;
    &amp;quot;bots/aggressive_alice.toml&amp;quot;,&lt;br /&gt;
    &amp;quot;bots/sniper_bob.toml&amp;quot;,&lt;br /&gt;
    &amp;quot;bots/balanced_charlie.toml&amp;quot;,&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Paths are resolved relative to the directory containing your server's ADS config.&lt;br /&gt;
&lt;br /&gt;
===Available presets===&lt;br /&gt;
'''Personality presets:''' '''balanced''', '''aggressive''', '''defensive''', '''tactician''', '''berserker''', '''objective''', '''sniper''', '''guerrilla''', '''collector''', '''brawler''', '''destroyer'''&lt;br /&gt;
&lt;br /&gt;
'''Skill presets:''' '''beginner''', '''easy''', '''average''', '''hard''', '''expert''', '''nightmare'''&lt;br /&gt;
&lt;br /&gt;
If a profile omits '''personality_preset''' it defaults to '''balanced'''. If it omits '''skill_preset''' it defaults to '''average'''.&lt;br /&gt;
&lt;br /&gt;
==Step 3: Start the dedicated server==&lt;br /&gt;
Launch your dedicated server normally:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AlpineFactionLauncher.exe -ads my_server.toml -port PORT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Watch the server console output. You should see lines like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Bot shared secret:                     1234567890&lt;br /&gt;
  Loading bot profile: .../bots/aggressive_alice.toml&lt;br /&gt;
  Bot player name:                       Alice&lt;br /&gt;
  Bot personality preset:                aggressive&lt;br /&gt;
  Bot skill preset:                      hard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't see your bot configuration applied, double-check your ADS file for syntax errors and confirm the file paths in '''bot_profiles''' resolve correctly.&lt;br /&gt;
&lt;br /&gt;
==Step 4: Launch a headless bot client==&lt;br /&gt;
For each bot you want, start a separate '''AlpineFactionLauncher.exe''' process with these arguments:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AlpineFactionLauncher.exe -url rf://IP:PORT -bot 1234567890&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The arguments are:&lt;br /&gt;
*'''-url rf://IP:PORT''' - The address of your server. Use '''rf://127.0.0.1:7755''' if the bot is running on the same machine as the server (replace '''7755''' with whatever port your server uses).&lt;br /&gt;
*'''-bot &amp;lt;secret&amp;gt;''' - Enables headless bot mode. The number must match the '''bot_shared_secret''' from your server config exactly.&lt;br /&gt;
*'''-noquit''' (optional) - Prevents the bot process from quitting automatically when it disconnects.&lt;br /&gt;
&lt;br /&gt;
When the bot is accepted, you'll see it appear in the server's player list (with the name from its assigned profile, or a randomized default name if no profiles are configured).&lt;br /&gt;
&lt;br /&gt;
===Running multiple bots===&lt;br /&gt;
To run more than one bot, simply launch '''AlpineFactionLauncher.exe''' multiple times with the same '''-bot''' arguments. Each invocation creates a separate process.&lt;br /&gt;
&lt;br /&gt;
Each bot will be assigned the next available profile slot (round-robin), and bots beyond your server's '''ideal_player_count''' will be rejected.&lt;br /&gt;
&lt;br /&gt;
==Additional information==&lt;br /&gt;
===Debug rendering===&lt;br /&gt;
If you want to '''see''' what a bot is doing - for development, debugging, or just curiosity - replace '''-bot''' with '''-debugbot''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AlpineFactionLauncher.exe -url rf://127.0.0.1:7755 -debugbot 1234567890&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This launches a normal rendered Alpine Faction window controlled by the server, with bot debug overlays enabled. Use it sparingly - it's much heavier than a headless bot.&lt;br /&gt;
&lt;br /&gt;
===Without a shared secret===&lt;br /&gt;
If you don't set '''bot_shared_secret''' on your server, '''-bot'''/'''-debugbot''' clients will not be accepted as bots.&lt;br /&gt;
&lt;br /&gt;
===Bot count limit===&lt;br /&gt;
The server will reject incoming bots once the connected bot count reaches '''ideal_player_count'''. Bot slots also free up automatically when bots disconnect. To run a server with more bots, raise '''ideal_player_count''' in your server rules.&lt;br /&gt;
&lt;br /&gt;
===Still need help?===&lt;br /&gt;
* If you run into issues setting up headless bots, 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>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=RF_Client_Versions&amp;diff=15171</id>
		<title>RF Client Versions</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=RF_Client_Versions&amp;diff=15171"/>
		<updated>2026-04-22T12:41:26Z</updated>

		<summary type="html">&lt;p&gt;Goober: /* Community-Made Clients */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will list all known publicly-available Red Faction versions/clients, both official and community-made.&lt;br /&gt;
&amp;lt;!---==Feature Comparison of Commonly-Used Client Versions==&lt;br /&gt;
* [[RF Client Comparison]]---&amp;gt;&lt;br /&gt;
==Full Game==&lt;br /&gt;
===Official Clients===&lt;br /&gt;
====v1.00====&lt;br /&gt;
* Distributed as rf.exe in all retail versions of the game.&lt;br /&gt;
* Suffers from many known issues ranging from security vulnerabilities, to compatibility issues, to multiplayer cheating potential.&lt;br /&gt;
* 3 known variants available:&lt;br /&gt;
** v1.00 North America&lt;br /&gt;
** v1.00 French&lt;br /&gt;
** v1.00 German&lt;br /&gt;
&lt;br /&gt;
====v1.10====&lt;br /&gt;
* Created by using the corresponding officially-distributed patching utility on a v1.00 rf.exe.&lt;br /&gt;
* Small bug fix version. Ironically, at least one [[Red_Faction_FAQ#Character_reflection_in_mirrors_is_broken|known issue]] was introduced in this version.&lt;br /&gt;
* Still suffers from many known issues ranging from security vulnerabilities, to compatibility issues, to multiplayer cheating potential.&lt;br /&gt;
* 3 known variants available:&lt;br /&gt;
** v1.10 North America&lt;br /&gt;
** v1.10 French&lt;br /&gt;
** v1.10 German&lt;br /&gt;
&lt;br /&gt;
====v1.20====&lt;br /&gt;
* Created by using the corresponding officially-distributed patching utility on a v1.00 or v1.10 rf.exe.&lt;br /&gt;
* Latest officially released version for the retail game.&lt;br /&gt;
* Fixes some bugs, makes some balance changes.&lt;br /&gt;
* While some issues were fixed, still suffers from many known issues ranging from security vulnerabilities, to compatibility issues, to multiplayer cheating potential.&lt;br /&gt;
* 3 known variants available:&lt;br /&gt;
** v1.20 North America&lt;br /&gt;
** v1.20 French&lt;br /&gt;
** v1.20 German&lt;br /&gt;
&lt;br /&gt;
====v1.21====&lt;br /&gt;
* Distributed as rf.exe in all digital versions of the game.&lt;br /&gt;
* Recompiled version of v1.20 North America with a small number of bugs fixed. Ironically, at least one [[Red_Faction_FAQ#Game_crashes_when_I_pick_up_items|known issue]] was introduced in this version.&lt;br /&gt;
* Some major compatibility issues were fixed, and this version will launch on most modern systems.&lt;br /&gt;
* 2 known variants available:&lt;br /&gt;
** v1.21 Steam&lt;br /&gt;
** v1.21 GoG&lt;br /&gt;
&lt;br /&gt;
===Community-Made Clients===&lt;br /&gt;
====Alpine Faction====&lt;br /&gt;
[[File:Alpinelogo1.png]]&lt;br /&gt;
* [https://alpinefaction.com Alpine Faction Website]&lt;br /&gt;
* Created by Goober. Is an open source project, and a fork of [[#Dash Faction|Dash Faction]]&lt;br /&gt;
* Distributed as an installer.&lt;br /&gt;
* Consists of a custom launcher and 2 .dll files - AlpineFaction.dll and AlpineEditor.dll. When the game or editor is launched via the custom launcher, it injects the respective .dll into the v1.20 North America versions of rf.exe or RED.exe.&lt;br /&gt;
* In active development and support is provided.&lt;br /&gt;
* Includes everything offered by [[#Dash Faction|Dash Faction]] plus many additional modern features and bug fixes (see [https://alpinefaction.com Alpine Faction Website] for more information)&lt;br /&gt;
* Optionally [[Link_Alpine_Faction_to_a_FactionFiles_Account|integrates with a FactionFiles account]] to offer additional features, including achievements and in-game multiplayer map ratings.&lt;br /&gt;
* Major version releases (as of April 2026):&lt;br /&gt;
** v1.0.0 Maple (and previously v0.0.4_beta)&lt;br /&gt;
** v1.1.0 Tamarack (and previously v1.1.0_beta1 and v1.1.0_rc1)&lt;br /&gt;
** v1.2.0 Willow (and previously v1.2.0_beta1 and v1.2.0_rc1; subsequently v1.2.1 and v1.2.2)&lt;br /&gt;
** v1.3.0 Bakeapple (and previously v1.3.0_beta1, v1.3.0_beta2, and v1.3.0_beta3)&lt;br /&gt;
&lt;br /&gt;
====Dash Faction====&lt;br /&gt;
[[File:Dashlogo1.png]]&lt;br /&gt;
* [[Dash Faction Installation Guide]]&lt;br /&gt;
* Created by rafalh, and is an open source project&lt;br /&gt;
* Distributed as an installer since v1.50. Prior, was distributed as a .zip archive.&lt;br /&gt;
* Consists of a custom launcher and 2 .dll files - DashFaction.dll and DashEditor.dll. When the game or editor is launched via the custom launcher, it injects the respective .dll into the v1.20 North America versions of rf.exe or RED.exe.&lt;br /&gt;
* Fixes the vast majority of known issues (including security vulnerabilities and compatibility issues), provides the minimum playable base game experience on modern systems.&lt;br /&gt;
* Some limited support is still provided, but has been virtually completely feature eclipsed by [[RF Clients#Alpine Faction|Alpine Faction]].&lt;br /&gt;
* Major version releases (as of April 2025):&lt;br /&gt;
** v1.2.0&lt;br /&gt;
** v1.3.0&lt;br /&gt;
** v1.4.0 (and subsequently v1.4.1 and v1.4.2)&lt;br /&gt;
** v1.5.0 (and previously v1.5.0-rc1 and v1.5.0-rc2)&lt;br /&gt;
** v1.6.0 (and previously v1.6.0-beta and v1.6.0-rc1; subsequently v1.6.1-rc1 and v1.6.1)&lt;br /&gt;
** v1.7.0 (and previously v1.7.0-beta and v1.7.0-rc1)&lt;br /&gt;
** v1.8.0 (and previously v1.8.0-rc1)&lt;br /&gt;
** v1.9.0&lt;br /&gt;
&lt;br /&gt;
====Pure Faction====&lt;br /&gt;
[[Image:Purelogo.jpg|425px]]&lt;br /&gt;
* De facto standard RF client until roughly 2017, now considered deprecated&lt;br /&gt;
* [[Pure Faction Installation Guide]]&lt;br /&gt;
* Created by TrotSkie and digi, with contributions from S&lt;br /&gt;
* Distributed as an installer&lt;br /&gt;
* Consists of a custom launcher, custom modified version of rf.exe (named PF.exe), custom modified version of RED.exe (named REDPF.exe), and 2 .dll files - PF.dll and REDPF.dll&lt;br /&gt;
* Active development ceased roughly around 2016, last bugfix version (3.0e) released March 2018). Some limited support is still provided, but has been virtually completely feature eclipsed by [[RF Clients#Alpine Faction|Alpine Faction]].&lt;br /&gt;
* Fixes a number of known issues (including most security vulnerabilities and compatibility issues that existed as of cessation of active development), adds features such as custom resolutions, window modes, and automatic map downloader.&lt;br /&gt;
* Major version releases (as of March 2018):&lt;br /&gt;
** v1.0 (and previously b1)&lt;br /&gt;
** v2.1 (and subsequently v2.1qf1 and v2.1qf2)&lt;br /&gt;
** v3.0 (and subsequently v3.0c, v3.0d, v3.0du1, and v3.0e)&lt;br /&gt;
&lt;br /&gt;
====v1.30====&lt;br /&gt;
* Fan-made unofficial patch designed to stop cheating, now considered deprecated&lt;br /&gt;
* Created by harmLE$$, [JD]SubZ, and [JD]TrotSkie&lt;br /&gt;
* Distributed as an edited version of the [[RF Clients#v1.20|v1.20]] rf.exe file&lt;br /&gt;
* Active development ceased roughly around 2003.&lt;br /&gt;
* Fixes a few basic bugs and contains anticheat functionality that, while still rudimentary by modern standards, was enhanced when compared to the latest official retail version ([[RF Clients#v1.20|v1.20]])&lt;br /&gt;
* Still suffers from many known issues ranging from security vulnerabilities, to compatibility issues, to multiplayer cheating potential.&lt;br /&gt;
* 3 known variants available:&lt;br /&gt;
** (Unofficial) v1.30 North America&lt;br /&gt;
** (Unofficial) v1.30 French&lt;br /&gt;
** (Unofficial) v1.30 German&lt;br /&gt;
* Most recognizable feature was that to v1.3 clients, v1.3 servers would animate in the server list&lt;br /&gt;
&lt;br /&gt;
[[Image:1.3fade.gif|600px|left|thumb|A version 1.3 animated in the serverlist]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Spectator====&lt;br /&gt;
* SubZ&lt;br /&gt;
* Distributed as an edited version of the [[RF Clients#v1.20|v1.20]] rf.exe file (named spect.exe)&lt;br /&gt;
* One-time release with no known continued development&lt;br /&gt;
* When run on a server, allowed joining clients who were also running Spectator to free look spectate&lt;br /&gt;
* Still suffers from many known issues ranging from security vulnerabilities, to compatibility issues, to multiplayer cheating potential.&lt;br /&gt;
&lt;br /&gt;
[[Category:Red Faction]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=RF_Client_Versions&amp;diff=15170</id>
		<title>RF Client Versions</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=RF_Client_Versions&amp;diff=15170"/>
		<updated>2026-04-22T12:40:41Z</updated>

		<summary type="html">&lt;p&gt;Goober: /* Community-Made Clients */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will list all known publicly-available Red Faction versions/clients, both official and community-made.&lt;br /&gt;
&amp;lt;!---==Feature Comparison of Commonly-Used Client Versions==&lt;br /&gt;
* [[RF Client Comparison]]---&amp;gt;&lt;br /&gt;
==Full Game==&lt;br /&gt;
===Official Clients===&lt;br /&gt;
====v1.00====&lt;br /&gt;
* Distributed as rf.exe in all retail versions of the game.&lt;br /&gt;
* Suffers from many known issues ranging from security vulnerabilities, to compatibility issues, to multiplayer cheating potential.&lt;br /&gt;
* 3 known variants available:&lt;br /&gt;
** v1.00 North America&lt;br /&gt;
** v1.00 French&lt;br /&gt;
** v1.00 German&lt;br /&gt;
&lt;br /&gt;
====v1.10====&lt;br /&gt;
* Created by using the corresponding officially-distributed patching utility on a v1.00 rf.exe.&lt;br /&gt;
* Small bug fix version. Ironically, at least one [[Red_Faction_FAQ#Character_reflection_in_mirrors_is_broken|known issue]] was introduced in this version.&lt;br /&gt;
* Still suffers from many known issues ranging from security vulnerabilities, to compatibility issues, to multiplayer cheating potential.&lt;br /&gt;
* 3 known variants available:&lt;br /&gt;
** v1.10 North America&lt;br /&gt;
** v1.10 French&lt;br /&gt;
** v1.10 German&lt;br /&gt;
&lt;br /&gt;
====v1.20====&lt;br /&gt;
* Created by using the corresponding officially-distributed patching utility on a v1.00 or v1.10 rf.exe.&lt;br /&gt;
* Latest officially released version for the retail game.&lt;br /&gt;
* Fixes some bugs, makes some balance changes.&lt;br /&gt;
* While some issues were fixed, still suffers from many known issues ranging from security vulnerabilities, to compatibility issues, to multiplayer cheating potential.&lt;br /&gt;
* 3 known variants available:&lt;br /&gt;
** v1.20 North America&lt;br /&gt;
** v1.20 French&lt;br /&gt;
** v1.20 German&lt;br /&gt;
&lt;br /&gt;
====v1.21====&lt;br /&gt;
* Distributed as rf.exe in all digital versions of the game.&lt;br /&gt;
* Recompiled version of v1.20 North America with a small number of bugs fixed. Ironically, at least one [[Red_Faction_FAQ#Game_crashes_when_I_pick_up_items|known issue]] was introduced in this version.&lt;br /&gt;
* Some major compatibility issues were fixed, and this version will launch on most modern systems.&lt;br /&gt;
* 2 known variants available:&lt;br /&gt;
** v1.21 Steam&lt;br /&gt;
** v1.21 GoG&lt;br /&gt;
&lt;br /&gt;
===Community-Made Clients===&lt;br /&gt;
====Alpine Faction====&lt;br /&gt;
[[File:Alpinelogo1.png]]&lt;br /&gt;
* [https://alpinefaction.com Alpine Faction Website]&lt;br /&gt;
* Created by Goober. Is an open source project, and a fork of [[#Dash Faction|Dash Faction]]&lt;br /&gt;
* Distributed as an installer.&lt;br /&gt;
* Consists of a custom launcher and 2 .dll files - AlpineFaction.dll and AlpineEditor.dll. When the game or editor is launched via the custom launcher, it injects the respective .dll into the v1.20 North America versions of rf.exe or RED.exe.&lt;br /&gt;
* In active development and support is provided.&lt;br /&gt;
* Includes everything offered by [[#Dash Faction|Dash Faction]] plus many additional modern features and bug fixes (see [https://alpinefaction.com Alpine Faction Website] for more information)&lt;br /&gt;
* Optionally [[Link_Alpine_Faction_to_a_FactionFiles_Account|integrates with a FactionFiles account]] to offer additional features, including achievements and in-game multiplayer map ratings.&lt;br /&gt;
* Major version releases (as of April 2026):&lt;br /&gt;
** v1.0.0 Maple (and previously v0.0.4_beta)&lt;br /&gt;
** v1.1.0 Tamarack (and previously v1.1.0_beta1 and v1.1.0_rc1)&lt;br /&gt;
** v1.2.0 Willow (and previously v1.2.0_beta1 and v1.2.0_rc1)&lt;br /&gt;
** v1.3.0 Bakeapple (and previously v1.3.0_beta1, v1.3.0_beta2, and v1.3.0_beta3)&lt;br /&gt;
&lt;br /&gt;
====Dash Faction====&lt;br /&gt;
[[File:Dashlogo1.png]]&lt;br /&gt;
* [[Dash Faction Installation Guide]]&lt;br /&gt;
* Created by rafalh, and is an open source project&lt;br /&gt;
* Distributed as an installer since v1.50. Prior, was distributed as a .zip archive.&lt;br /&gt;
* Consists of a custom launcher and 2 .dll files - DashFaction.dll and DashEditor.dll. When the game or editor is launched via the custom launcher, it injects the respective .dll into the v1.20 North America versions of rf.exe or RED.exe.&lt;br /&gt;
* Fixes the vast majority of known issues (including security vulnerabilities and compatibility issues), provides the minimum playable base game experience on modern systems.&lt;br /&gt;
* Some limited support is still provided, but has been virtually completely feature eclipsed by [[RF Clients#Alpine Faction|Alpine Faction]].&lt;br /&gt;
* Major version releases (as of April 2025):&lt;br /&gt;
** v1.2.0&lt;br /&gt;
** v1.3.0&lt;br /&gt;
** v1.4.0 (and subsequently v1.4.1 and v1.4.2)&lt;br /&gt;
** v1.5.0 (and previously v1.5.0-rc1 and v1.5.0-rc2)&lt;br /&gt;
** v1.6.0 (and previously v1.6.0-beta and v1.6.0-rc1, subsequently v1.6.1-rc1 and v1.6.1)&lt;br /&gt;
** v1.7.0 (and previously v1.7.0-beta and v1.7.0-rc1)&lt;br /&gt;
** v1.8.0 (and previously v1.8.0-rc1)&lt;br /&gt;
** v1.9.0&lt;br /&gt;
&lt;br /&gt;
====Pure Faction====&lt;br /&gt;
[[Image:Purelogo.jpg|425px]]&lt;br /&gt;
* De facto standard RF client until roughly 2017, now considered deprecated&lt;br /&gt;
* [[Pure Faction Installation Guide]]&lt;br /&gt;
* Created by TrotSkie and digi, with contributions from S&lt;br /&gt;
* Distributed as an installer&lt;br /&gt;
* Consists of a custom launcher, custom modified version of rf.exe (named PF.exe), custom modified version of RED.exe (named REDPF.exe), and 2 .dll files - PF.dll and REDPF.dll&lt;br /&gt;
* Active development ceased roughly around 2016, last bugfix version (3.0e) released March 2018). Some limited support is still provided, but has been virtually completely feature eclipsed by [[RF Clients#Alpine Faction|Alpine Faction]].&lt;br /&gt;
* Fixes a number of known issues (including most security vulnerabilities and compatibility issues that existed as of cessation of active development), adds features such as custom resolutions, window modes, and automatic map downloader.&lt;br /&gt;
* Major version releases (as of March 2018):&lt;br /&gt;
** v1.0 (and previously b1)&lt;br /&gt;
** v2.1 (and subsequently v2.1qf1 and v2.1qf2)&lt;br /&gt;
** v3.0 (and subsequently v3.0c, v3.0d, v3.0du1, and v3.0e)&lt;br /&gt;
&lt;br /&gt;
====v1.30====&lt;br /&gt;
* Fan-made unofficial patch designed to stop cheating, now considered deprecated&lt;br /&gt;
* Created by harmLE$$, [JD]SubZ, and [JD]TrotSkie&lt;br /&gt;
* Distributed as an edited version of the [[RF Clients#v1.20|v1.20]] rf.exe file&lt;br /&gt;
* Active development ceased roughly around 2003.&lt;br /&gt;
* Fixes a few basic bugs and contains anticheat functionality that, while still rudimentary by modern standards, was enhanced when compared to the latest official retail version ([[RF Clients#v1.20|v1.20]])&lt;br /&gt;
* Still suffers from many known issues ranging from security vulnerabilities, to compatibility issues, to multiplayer cheating potential.&lt;br /&gt;
* 3 known variants available:&lt;br /&gt;
** (Unofficial) v1.30 North America&lt;br /&gt;
** (Unofficial) v1.30 French&lt;br /&gt;
** (Unofficial) v1.30 German&lt;br /&gt;
* Most recognizable feature was that to v1.3 clients, v1.3 servers would animate in the server list&lt;br /&gt;
&lt;br /&gt;
[[Image:1.3fade.gif|600px|left|thumb|A version 1.3 animated in the serverlist]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Spectator====&lt;br /&gt;
* SubZ&lt;br /&gt;
* Distributed as an edited version of the [[RF Clients#v1.20|v1.20]] rf.exe file (named spect.exe)&lt;br /&gt;
* One-time release with no known continued development&lt;br /&gt;
* When run on a server, allowed joining clients who were also running Spectator to free look spectate&lt;br /&gt;
* Still suffers from many known issues ranging from security vulnerabilities, to compatibility issues, to multiplayer cheating potential.&lt;br /&gt;
&lt;br /&gt;
[[Category:Red Faction]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_Release_Highlights&amp;diff=15169</id>
		<title>Alpine Faction Release Highlights</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_Release_Highlights&amp;diff=15169"/>
		<updated>2026-04-22T02:59:27Z</updated>

		<summary type="html">&lt;p&gt;Goober: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:Alpinelogo1.png|center]]&lt;br /&gt;
{|&lt;br /&gt;
|{{AlpineInstallDiscord|Click here to join the FactionFiles Community Discord|If you have any questions or concerns, please join the '''FactionFiles Community Discord''' for assistance. The FactionFiles Discord is also the place to go to participate in organized community game night events, and get help with anything else related to the Red Faction series.}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below are the most important highlights from each major [https://alpinefaction.com Alpine Faction] release. This page assumes you are already familiar with Red Faction, and prior versions of Alpine Faction, and is intended just as a &amp;quot;quick start guide&amp;quot; to summarize key features for each release.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT: This is not an exhaustive changelog!'''&lt;br /&gt;
&lt;br /&gt;
This page only has what I feel are the most important aspects of each release. For a full changelog at any given time, visit [https://github.com/GooberRF/alpinefaction/blob/master/docs/CHANGELOG.md CHANGELOG.md] on the Alpine Faction repository.&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.3.0==&lt;br /&gt;
* Released 22 Apr 2026&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer is now recommended. High level list of D3D11 renderer improvements:&lt;br /&gt;
** Add GPU accelerated realtime per-pixel lighting for meshes&lt;br /&gt;
** Add full mesh shadows for entities, corpses, and items&lt;br /&gt;
** Support for the gamma video setting&lt;br /&gt;
** Fix &amp;quot;P2T fix&amp;quot; not working properly&lt;br /&gt;
** Fix impact decals not rendering correctly at distance&lt;br /&gt;
** Fix hard cutoff lines on fullbright gradient alpha textures&lt;br /&gt;
** Fix mirror and security monitor textures not being properly self-illuminated&lt;br /&gt;
===General===&lt;br /&gt;
* Revamp FactionFiles link client functionality to be much more user friendly&lt;br /&gt;
* Add speedometer to HUD&lt;br /&gt;
* Add raw/modern (id Tech/Source-style) mouse input scaling&lt;br /&gt;
* Fix first person weapon running animations&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
* Add server-controlled advanced multiplayer bots&lt;br /&gt;
** Add in-game waypoint file editor&lt;br /&gt;
** Add FactionFiles autodownloader support for waypoint files in custom maps&lt;br /&gt;
* Revamp FactionFiles autodownloader user interface when downloading new maps&lt;br /&gt;
* Fix players being able to stand up into geometry when they should be forced to stay crouched&lt;br /&gt;
* Add player outlines (D3D11 only)&lt;br /&gt;
* Fix third person footsteps&lt;br /&gt;
* Show server client information on server list&lt;br /&gt;
* Split kill feed from chat box (enable with &amp;quot;ui_gamefeed&amp;quot; console command)&lt;br /&gt;
* Many spectator mode improvements&lt;br /&gt;
** Improved UX for toggling between spectator modes&lt;br /&gt;
** Powerup icons, damage flash, crouch state, rail scanner, and first person weapon animation support in first person spectate&lt;br /&gt;
** Hitsounds and kill feed in first person spectate now apply for the player being spectated&lt;br /&gt;
===Dedicated Servers===&lt;br /&gt;
* Add FactionFiles autodownloader support by default for all levels in server rotation (disable with &amp;quot;-nodl&amp;quot; switch)&lt;br /&gt;
* Support rcon profiles (ACLs)&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* Expanded destruction capabilities available to developers&lt;br /&gt;
** RF2-style (brush-based) geomod&lt;br /&gt;
** Support for non-glass material breakable detail brushes&lt;br /&gt;
** Dynamic debris generation from breakable detail brushes&lt;br /&gt;
** Support breakable detail brushes using ngons&lt;br /&gt;
* Add &amp;quot;Hold Open&amp;quot; setting to movers&lt;br /&gt;
* New object types: Mesh, Corona, Note&lt;br /&gt;
* Add support for Gas Regions (D3D11 only)&lt;br /&gt;
* Many new events&lt;br /&gt;
* Fix Decal alpha parameter (D3D11 only)&lt;br /&gt;
* Mirror functions to level editor for brushes and groups&lt;br /&gt;
* Convert brushes to meshes in-editor&lt;br /&gt;
* Several new face/vertex mode operators&lt;br /&gt;
* Support custom texture subcategories (subdirectories)&lt;br /&gt;
* Support loading new textures/meshes (via tools menu - &amp;quot;Reload Textures&amp;quot;, &amp;quot;Reload Meshes&amp;quot;)&lt;br /&gt;
* Fix UV Unwrap window breaking when launching a fullscreen D3D application&lt;br /&gt;
* Fix autosave sometimes making brushes/objects teleport during a rotation&lt;br /&gt;
* Do not fail to create level packfile (ie. 0KB vpp) when assets are missing&lt;br /&gt;
* Include textures, meshes, and animations used in level automatically when creating level packfile&lt;br /&gt;
* New Select Objects and Hide Objects windows with UX improvements&lt;br /&gt;
* &amp;quot;To Mesh Object&amp;quot; button (in Select Objects) to convert clutter to mesh/corona&lt;br /&gt;
* Fix mesh collision not properly updating when meshes are hidden/unhidden&lt;br /&gt;
* Fix modern (ie. non-Legacy) movers sometimes maintaining momentum even after stopping/pausing&lt;br /&gt;
* Raised stock limits&lt;br /&gt;
** Lights on a single face: 64 -&amp;gt; 1024&lt;br /&gt;
** Lights per level: 1100 -&amp;gt; 8192&lt;br /&gt;
** Detail rooms: 256 -&amp;gt; 8192&lt;br /&gt;
** Geo cache face list: 16384 -&amp;gt; 65536, batch count: 512 -&amp;gt; 1024, memory pool: 8MB -&amp;gt; 32MB&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.2.2==&lt;br /&gt;
* Released 04 Jan 2026&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer improvements&lt;br /&gt;
** Add dynamic light glows from explosions&lt;br /&gt;
** Add dynamic light glows from burning entities&lt;br /&gt;
** Fix crash when very complex levels are loaded&lt;br /&gt;
===Single Player===&lt;br /&gt;
* Fix crash when gibbing corpses&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* New &amp;lt;code&amp;gt;When_Round_Ends&amp;lt;/code&amp;gt; event&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.2.1==&lt;br /&gt;
* Released 30 Dec 2025&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
* Scoreboard is now split into sections as configured by the user. By default, spectators and browsers are split out from all other clients.&lt;br /&gt;
* Gibbing is now supported in multiplayer&lt;br /&gt;
* Reticles, damage notification numbers, and player labels can now be scaled using &amp;lt;code&amp;gt;ui_scale_&amp;lt;/code&amp;gt; console commands&lt;br /&gt;
* Reticles can now be colored using the &amp;lt;code&amp;gt;ui_color_reticle&amp;lt;/code&amp;gt; console command&lt;br /&gt;
* FPS/ping display is improved&lt;br /&gt;
* Free look spectate mode now persist through level loads&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer improvements&lt;br /&gt;
** Anti-aliasing can now be selected in the launcher options panel&lt;br /&gt;
** Max dynamic lights 8 -&amp;gt; 32 (now matches D3D9)&lt;br /&gt;
** Fixed multiple instances of a single static mesh sharing lighting data&lt;br /&gt;
** Rotating skyboxes now supported&lt;br /&gt;
** Ambient lighting of third person weapon models held by entities now supported&lt;br /&gt;
** Dynamic lights fixed (previously were far too dim)&lt;br /&gt;
** Rocket Launcher/Fusion IR scanner now renders properly&lt;br /&gt;
===Dedicated Servers===&lt;br /&gt;
* Legacy &amp;lt;code&amp;gt;dedicated_server.txt&amp;lt;/code&amp;gt; config method has now been removed, ADS TOML-based configs should be used instead&lt;br /&gt;
* Gibbing can be configured and customized by the server&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* Enlarged UV unwrap workspace&lt;br /&gt;
* &amp;lt;code&amp;gt;Ctrl + K&amp;lt;/code&amp;gt; can now be used to create links between selected objects in the opposite direction from the normal &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; hotkey&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.2==&lt;br /&gt;
* Released 06 Dec 2025&lt;br /&gt;
===General===&lt;br /&gt;
* Suppress autoswitch bind, &amp;lt;code&amp;gt;cl_autoswitchfirewait&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;cl_autoswitchempty&amp;lt;/code&amp;gt; can be used to customize autoswitch behaviour&lt;br /&gt;
* &amp;lt;code&amp;gt;sp_exposuredamage&amp;lt;/code&amp;gt; or the associated option in the advanced options menu can be used to turn off the &amp;quot;take damage when outside&amp;quot; mechanic in single player&lt;br /&gt;
* &amp;lt;code&amp;gt;-afs FILENAME&amp;lt;/code&amp;gt; can be used on the command line to specify a particular ini file to use instead of alpine_settings.ini. Allows players to manage multiple config files launched via different shortcuts&lt;br /&gt;
* You can now use the scroll wheel to scroll through lists in the menus&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
* New gametypes&lt;br /&gt;
** King of the Hill (KOTH)&lt;br /&gt;
** Damage Control (DC)&lt;br /&gt;
** Revolt (REV)&lt;br /&gt;
** Escalation (ESC)&lt;br /&gt;
** Run (RUN)&lt;br /&gt;
* Servers can now configure gametype and most other server settings on a per-level basis. Servers can run multiple gametypes in the same rotation seamlessly.&lt;br /&gt;
* Votes to start a match and change the level can now name rule presets (if configured by the server). This means players can vote for the ruleset they want when voting for a match/level.&lt;br /&gt;
* First-person spectate view now shows the spectated player's name with their team colour&lt;br /&gt;
* Chat menus now scale appropriately when &amp;lt;code&amp;gt;bighud&amp;lt;/code&amp;gt; is enabled&lt;br /&gt;
* The &amp;quot;Remote Server Config&amp;quot; bind can be used to display the server's current ruleset and map rotation&lt;br /&gt;
* &amp;lt;code&amp;gt;mp_handicap&amp;lt;/code&amp;gt; can be used to impose a damage reduction handicap on yourself&lt;br /&gt;
* You can now call gametype votes using &amp;lt;code&amp;gt;vote gametype TYPE MAP&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;vote gt TYPE MAP&amp;lt;/code&amp;gt;, where TYPE is a gametype abbreviation (i.e. CTF, KOTH, etc.) and MAP is a level filename.&lt;br /&gt;
* &amp;quot;One minute remaining&amp;quot; and other countdown sounds will now play a second time if the time is extended after they play (like due to overtime)&lt;br /&gt;
* &amp;quot;Winner&amp;quot; and &amp;quot;Game Over&amp;quot; at the end of the map fixed&lt;br /&gt;
* Scoreboard now identifies players as alive, dead, idle, bot, spectator, browser&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer improvements&lt;br /&gt;
** Colorblind mode rendering filter (&amp;lt;code&amp;gt;r_colorblind&amp;lt;/code&amp;gt;)&lt;br /&gt;
** Improved skybox rendering&lt;br /&gt;
** Picmip (&amp;lt;code&amp;gt;r_picmip&amp;lt;/code&amp;gt;)&lt;br /&gt;
** Vertex lighting for meshes&lt;br /&gt;
** Dynamic lighting for meshes and movers&lt;br /&gt;
** Support &amp;lt;code&amp;gt;r_fullbright&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;r_lightmaps&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;r_nearest&amp;lt;/code&amp;gt;&lt;br /&gt;
===Dedicated Servers===&lt;br /&gt;
* Dedicated servers should now be configured using one or more TOML files - web-based config builder is available [https://dedi.alpinefaction.com here]&lt;br /&gt;
* Framerates are now far more consistent, improving the overall play experience&lt;br /&gt;
* You can now configure gameplay rules (including gametype) on a per-level basis&lt;br /&gt;
* You can use the &amp;lt;code&amp;gt;sv_gametype TYPE MAP&amp;lt;/code&amp;gt; command to change the gametype on your server at any time. TYPE is a gametype abbreviation (i.e. CTF, KOTH, etc.) and MAP is a level filename.&lt;br /&gt;
* Much more useful information is now displayed when new players join your server, and when you run the &amp;lt;code&amp;gt;info&amp;lt;/code&amp;gt; command&lt;br /&gt;
* You can now use the &amp;lt;code&amp;gt;sv_restrict_status&amp;lt;/code&amp;gt; command to display the current client restriction status on the current level, with the current ruleset&lt;br /&gt;
* Clients are now restricted from voting if they are not able to play in your server.&lt;br /&gt;
* Server console now displays attempted joins that were rejected, and the reason for the rejection (e.g. &amp;quot;between levels&amp;quot;, &amp;quot;data incompatible&amp;quot;, etc.)&lt;br /&gt;
* Server console now alerts on failed &amp;lt;code&amp;gt;rcon_request&amp;lt;/code&amp;gt; attempts&lt;br /&gt;
* Vote config now supports &amp;quot;Ignore nonvoters&amp;quot; as an option&lt;br /&gt;
* &amp;lt;code&amp;gt;sv_loadconfig&amp;lt;/code&amp;gt; can be used to reload your server config (after you made changes to the files) without needing a server restart&lt;br /&gt;
* &amp;lt;code&amp;gt;sv_printconfig&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;sv_printrules&amp;lt;/code&amp;gt; can be used to display server information at any time&lt;br /&gt;
* &amp;lt;code&amp;gt;-min&amp;lt;/code&amp;gt; can be used on the command line to have your server console display only the minimum amount of information required&lt;br /&gt;
* &amp;lt;code&amp;gt;-log&amp;lt;/code&amp;gt; can be used to log all server console output to a log file in &amp;lt;code&amp;gt;RedFaction/logs&amp;lt;/code&amp;gt;&lt;br /&gt;
* If you run bots in your server, you can use &amp;lt;code&amp;gt;bot_shared_secret&amp;lt;/code&amp;gt; to ensure your bots are properly handled by your server (no spawning after ideal player count reached, exclude from votes, etc.)&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* You can now make maps for all of the new gametypes. For info on how to create control points (for KOTH, DC, REV, and ESC), see [[Mapping with Control Points]]&lt;br /&gt;
* &amp;quot;Play in multi (camera)&amp;quot; added to top toolbar&lt;br /&gt;
* F9 (Play in multi) and F10 (Play in multi (camera)) hotkeys added&lt;br /&gt;
* Playing in multi from RED will now launch on the correct gametype (based on map filename prefix)&lt;br /&gt;
* You can now link to multiple objects at once. When you select multiple objects and press &amp;quot;K&amp;quot;, the first object you selected will be linked to all other object you have selected.&lt;br /&gt;
* Respawn points can now be toggled on/off with the Respawn_Point_State event, and the associated team changed with the Modify_Respawn_Point event&lt;br /&gt;
* New settings in Level Properties&lt;br /&gt;
** &amp;quot;Legacy Cyclic_Timers&amp;quot; - If false, Cyclic_Timer events no longer double trigger on their first activation&lt;br /&gt;
** &amp;quot;Legacy movers&amp;quot; - If false, use new Alpine Faction mover functionality: fixed low velocity movers not working, fixed travel and ramp time calculations, fixed &amp;quot;Force Orient&amp;quot;, fixed &amp;quot;Lift&amp;quot; movement type, fixed &amp;quot;Ping Pong Infinite&amp;quot;/&amp;quot;Loop Once&amp;quot;/&amp;quot;Loop Infinite&amp;quot; movement types for rotating movers&lt;br /&gt;
** &amp;quot;Player starts with headlamp&amp;quot; - If false, do not allow the player to use the headlamp (until allowed via Set_Gameplay_Rule event)&lt;br /&gt;
** &amp;quot;Override static mesh ambient light scale&amp;quot; - If true, use the specified scale value. If false, use stock game behaviour (2.0 for SP, 3.2 for MP).&lt;br /&gt;
* New events&lt;br /&gt;
** Capture_Point_Handler&lt;br /&gt;
** Respawn_Point_State&lt;br /&gt;
** Modify_Respawn_Point&lt;br /&gt;
** When_Captured&lt;br /&gt;
** Set_Capture_Point_Owner&lt;br /&gt;
** Owner_Gate&lt;br /&gt;
** Set_Gameplay_Rule&lt;br /&gt;
&lt;br /&gt;
==[https://www.factionfiles.com/ff.php?action=file&amp;amp;id=8155&amp;amp;viewoldrev=1 Alpine Faction 1.1]==&lt;br /&gt;
* Released 19 Apr 2025&lt;br /&gt;
&lt;br /&gt;
==[https://www.factionfiles.com/ff.php?action=file&amp;amp;id=8085&amp;amp;viewoldrev=1 Alpine Faction 1.0]==&lt;br /&gt;
* Released 25 Jan 2025&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
* [[Alpine Faction Information]]&lt;br /&gt;
* [[Link Alpine Faction to a FactionFiles Account|How to Link Alpine Faction to your FactionFiles Account]]&lt;br /&gt;
* [[Red_Faction_Console_Commands#Alpine_Faction|Alpine Faction Console Commands]]&lt;br /&gt;
* [[Alpine Faction Level Design|Alpine Faction Level Design Information]]&lt;br /&gt;
* [[Alpine Faction Mod Development|Alpine Faction Mod Development Information]]&lt;br /&gt;
* [[Alpine Faction Dedicated Server Config]]&lt;br /&gt;
* [[Red_Faction_Command_Line_Parameters#Alpine_Faction|Alpine Faction Command Line Parameters]]&lt;br /&gt;
 &lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: Alpine Faction]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_News_Feed&amp;diff=15168</id>
		<title>Alpine Faction News Feed</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_News_Feed&amp;diff=15168"/>
		<updated>2026-04-22T02:30:38Z</updated>

		<summary type="html">&lt;p&gt;Goober: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;- Alpine Faction 1.3.0 released: Apr 22, '26&lt;br /&gt;
- RF Game Night 183: Apr 25, '26&lt;br /&gt;
- RF Game Night 184: May 9, '26&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_Release_Highlights&amp;diff=15166</id>
		<title>Alpine Faction Release Highlights</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_Release_Highlights&amp;diff=15166"/>
		<updated>2026-04-17T14:31:11Z</updated>

		<summary type="html">&lt;p&gt;Goober: /* Mod / Map Development */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:Alpinelogo1.png|center]]&lt;br /&gt;
{|&lt;br /&gt;
|{{AlpineInstallDiscord|Click here to join the FactionFiles Community Discord|If you have any questions or concerns, please join the '''FactionFiles Community Discord''' for assistance. The FactionFiles Discord is also the place to go to participate in organized community game night events, and get help with anything else related to the Red Faction series.}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below are the most important highlights from each major [https://alpinefaction.com Alpine Faction] release. This page assumes you are already familiar with Red Faction, and prior versions of Alpine Faction, and is intended just as a &amp;quot;quick start guide&amp;quot; to summarize key features for each release.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT: This is not an exhaustive changelog!'''&lt;br /&gt;
&lt;br /&gt;
This page only has what I feel are the most important aspects of each release. For a full changelog at any given time, visit [https://github.com/GooberRF/alpinefaction/blob/master/docs/CHANGELOG.md CHANGELOG.md] on the Alpine Faction repository.&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.3.0==&lt;br /&gt;
* Release coming soon&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer is now recommended. High level list of D3D11 renderer improvements:&lt;br /&gt;
** Add GPU accelerated realtime per-pixel lighting for meshes&lt;br /&gt;
** Add full mesh shadows for entities, corpses, and items&lt;br /&gt;
** Support for the gamma video setting&lt;br /&gt;
** Fix &amp;quot;P2T fix&amp;quot; not working properly&lt;br /&gt;
** Fix impact decals not rendering correctly at distance&lt;br /&gt;
** Fix hard cutoff lines on fullbright gradient alpha textures&lt;br /&gt;
** Fix mirror and security monitor textures not being properly self-illuminated&lt;br /&gt;
===General===&lt;br /&gt;
* Revamp FactionFiles link client functionality to be much more user friendly&lt;br /&gt;
* Add speedometer to HUD&lt;br /&gt;
* Add raw/modern (id Tech/Source-style) mouse input scaling&lt;br /&gt;
* Fix first person weapon running animations&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
* Add server-controlled advanced multiplayer bots&lt;br /&gt;
** Add in-game waypoint file editor&lt;br /&gt;
** Add FactionFiles autodownloader support for waypoint files in custom maps&lt;br /&gt;
* Revamp FactionFiles autodownloader user interface when downloading new maps&lt;br /&gt;
* Fix players being able to stand up into geometry when they should be forced to stay crouched&lt;br /&gt;
* Add player outlines (D3D11 only)&lt;br /&gt;
* Fix third person footsteps&lt;br /&gt;
* Show server client information on server list&lt;br /&gt;
* Split kill feed from chat box (enable with &amp;quot;ui_gamefeed&amp;quot; console command)&lt;br /&gt;
* Many spectator mode improvements&lt;br /&gt;
** Improved UX for toggling between spectator modes&lt;br /&gt;
** Powerup icons, damage flash, crouch state, rail scanner, and first person weapon animation support in first person spectate&lt;br /&gt;
** Hitsounds and kill feed in first person spectate now apply for the player being spectated&lt;br /&gt;
===Dedicated Servers===&lt;br /&gt;
* Add FactionFiles autodownloader support by default for all levels in server rotation (disable with &amp;quot;-nodl&amp;quot; switch)&lt;br /&gt;
* Support rcon profiles (ACLs)&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* Expanded destruction capabilities available to developers&lt;br /&gt;
** RF2-style (brush-based) geomod&lt;br /&gt;
** Support for non-glass material breakable detail brushes&lt;br /&gt;
** Dynamic debris generation from breakable detail brushes&lt;br /&gt;
** Support breakable detail brushes using ngons&lt;br /&gt;
* Add &amp;quot;Hold Open&amp;quot; setting to movers&lt;br /&gt;
* New object types: Mesh, Corona, Note&lt;br /&gt;
* Add support for Gas Regions (D3D11 only)&lt;br /&gt;
* Many new events&lt;br /&gt;
* Fix Decal alpha parameter (D3D11 only)&lt;br /&gt;
* Mirror functions to level editor for brushes and groups&lt;br /&gt;
* Convert brushes to meshes in-editor&lt;br /&gt;
* Several new face/vertex mode operators&lt;br /&gt;
* Support custom texture subcategories (subdirectories)&lt;br /&gt;
* Support loading new textures/meshes (via tools menu - &amp;quot;Reload Textures&amp;quot;, &amp;quot;Reload Meshes&amp;quot;)&lt;br /&gt;
* Fix UV Unwrap window breaking when launching a fullscreen D3D application&lt;br /&gt;
* Fix autosave sometimes making brushes/objects teleport during a rotation&lt;br /&gt;
* Do not fail to create level packfile (ie. 0KB vpp) when assets are missing&lt;br /&gt;
* Include textures, meshes, and animations used in level automatically when creating level packfile&lt;br /&gt;
* New Select Objects and Hide Objects windows with UX improvements&lt;br /&gt;
* &amp;quot;To Mesh Object&amp;quot; button (in Select Objects) to convert clutter to mesh/corona&lt;br /&gt;
* Fix mesh collision not properly updating when meshes are hidden/unhidden&lt;br /&gt;
* Fix modern (ie. non-Legacy) movers sometimes maintaining momentum even after stopping/pausing&lt;br /&gt;
* Raised stock limits&lt;br /&gt;
** Lights on a single face: 64 -&amp;gt; 1024&lt;br /&gt;
** Lights per level: 1100 -&amp;gt; 8192&lt;br /&gt;
** Detail rooms: 256 -&amp;gt; 8192&lt;br /&gt;
** Geo cache face list: 16384 -&amp;gt; 65536, batch count: 512 -&amp;gt; 1024, memory pool: 8MB -&amp;gt; 32MB&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.2.2==&lt;br /&gt;
* Released 04 Jan 2026&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer improvements&lt;br /&gt;
** Add dynamic light glows from explosions&lt;br /&gt;
** Add dynamic light glows from burning entities&lt;br /&gt;
** Fix crash when very complex levels are loaded&lt;br /&gt;
===Single Player===&lt;br /&gt;
* Fix crash when gibbing corpses&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* New &amp;lt;code&amp;gt;When_Round_Ends&amp;lt;/code&amp;gt; event&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.2.1==&lt;br /&gt;
* Released 30 Dec 2025&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
* Scoreboard is now split into sections as configured by the user. By default, spectators and browsers are split out from all other clients.&lt;br /&gt;
* Gibbing is now supported in multiplayer&lt;br /&gt;
* Reticles, damage notification numbers, and player labels can now be scaled using &amp;lt;code&amp;gt;ui_scale_&amp;lt;/code&amp;gt; console commands&lt;br /&gt;
* Reticles can now be colored using the &amp;lt;code&amp;gt;ui_color_reticle&amp;lt;/code&amp;gt; console command&lt;br /&gt;
* FPS/ping display is improved&lt;br /&gt;
* Free look spectate mode now persist through level loads&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer improvements&lt;br /&gt;
** Anti-aliasing can now be selected in the launcher options panel&lt;br /&gt;
** Max dynamic lights 8 -&amp;gt; 32 (now matches D3D9)&lt;br /&gt;
** Fixed multiple instances of a single static mesh sharing lighting data&lt;br /&gt;
** Rotating skyboxes now supported&lt;br /&gt;
** Ambient lighting of third person weapon models held by entities now supported&lt;br /&gt;
** Dynamic lights fixed (previously were far too dim)&lt;br /&gt;
** Rocket Launcher/Fusion IR scanner now renders properly&lt;br /&gt;
===Dedicated Servers===&lt;br /&gt;
* Legacy &amp;lt;code&amp;gt;dedicated_server.txt&amp;lt;/code&amp;gt; config method has now been removed, ADS TOML-based configs should be used instead&lt;br /&gt;
* Gibbing can be configured and customized by the server&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* Enlarged UV unwrap workspace&lt;br /&gt;
* &amp;lt;code&amp;gt;Ctrl + K&amp;lt;/code&amp;gt; can now be used to create links between selected objects in the opposite direction from the normal &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; hotkey&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.2==&lt;br /&gt;
* Released 06 Dec 2025&lt;br /&gt;
===General===&lt;br /&gt;
* Suppress autoswitch bind, &amp;lt;code&amp;gt;cl_autoswitchfirewait&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;cl_autoswitchempty&amp;lt;/code&amp;gt; can be used to customize autoswitch behaviour&lt;br /&gt;
* &amp;lt;code&amp;gt;sp_exposuredamage&amp;lt;/code&amp;gt; or the associated option in the advanced options menu can be used to turn off the &amp;quot;take damage when outside&amp;quot; mechanic in single player&lt;br /&gt;
* &amp;lt;code&amp;gt;-afs FILENAME&amp;lt;/code&amp;gt; can be used on the command line to specify a particular ini file to use instead of alpine_settings.ini. Allows players to manage multiple config files launched via different shortcuts&lt;br /&gt;
* You can now use the scroll wheel to scroll through lists in the menus&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
* New gametypes&lt;br /&gt;
** King of the Hill (KOTH)&lt;br /&gt;
** Damage Control (DC)&lt;br /&gt;
** Revolt (REV)&lt;br /&gt;
** Escalation (ESC)&lt;br /&gt;
** Run (RUN)&lt;br /&gt;
* Servers can now configure gametype and most other server settings on a per-level basis. Servers can run multiple gametypes in the same rotation seamlessly.&lt;br /&gt;
* Votes to start a match and change the level can now name rule presets (if configured by the server). This means players can vote for the ruleset they want when voting for a match/level.&lt;br /&gt;
* First-person spectate view now shows the spectated player's name with their team colour&lt;br /&gt;
* Chat menus now scale appropriately when &amp;lt;code&amp;gt;bighud&amp;lt;/code&amp;gt; is enabled&lt;br /&gt;
* The &amp;quot;Remote Server Config&amp;quot; bind can be used to display the server's current ruleset and map rotation&lt;br /&gt;
* &amp;lt;code&amp;gt;mp_handicap&amp;lt;/code&amp;gt; can be used to impose a damage reduction handicap on yourself&lt;br /&gt;
* You can now call gametype votes using &amp;lt;code&amp;gt;vote gametype TYPE MAP&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;vote gt TYPE MAP&amp;lt;/code&amp;gt;, where TYPE is a gametype abbreviation (i.e. CTF, KOTH, etc.) and MAP is a level filename.&lt;br /&gt;
* &amp;quot;One minute remaining&amp;quot; and other countdown sounds will now play a second time if the time is extended after they play (like due to overtime)&lt;br /&gt;
* &amp;quot;Winner&amp;quot; and &amp;quot;Game Over&amp;quot; at the end of the map fixed&lt;br /&gt;
* Scoreboard now identifies players as alive, dead, idle, bot, spectator, browser&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer improvements&lt;br /&gt;
** Colorblind mode rendering filter (&amp;lt;code&amp;gt;r_colorblind&amp;lt;/code&amp;gt;)&lt;br /&gt;
** Improved skybox rendering&lt;br /&gt;
** Picmip (&amp;lt;code&amp;gt;r_picmip&amp;lt;/code&amp;gt;)&lt;br /&gt;
** Vertex lighting for meshes&lt;br /&gt;
** Dynamic lighting for meshes and movers&lt;br /&gt;
** Support &amp;lt;code&amp;gt;r_fullbright&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;r_lightmaps&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;r_nearest&amp;lt;/code&amp;gt;&lt;br /&gt;
===Dedicated Servers===&lt;br /&gt;
* Dedicated servers should now be configured using one or more TOML files - web-based config builder is available [https://dedi.alpinefaction.com here]&lt;br /&gt;
* Framerates are now far more consistent, improving the overall play experience&lt;br /&gt;
* You can now configure gameplay rules (including gametype) on a per-level basis&lt;br /&gt;
* You can use the &amp;lt;code&amp;gt;sv_gametype TYPE MAP&amp;lt;/code&amp;gt; command to change the gametype on your server at any time. TYPE is a gametype abbreviation (i.e. CTF, KOTH, etc.) and MAP is a level filename.&lt;br /&gt;
* Much more useful information is now displayed when new players join your server, and when you run the &amp;lt;code&amp;gt;info&amp;lt;/code&amp;gt; command&lt;br /&gt;
* You can now use the &amp;lt;code&amp;gt;sv_restrict_status&amp;lt;/code&amp;gt; command to display the current client restriction status on the current level, with the current ruleset&lt;br /&gt;
* Clients are now restricted from voting if they are not able to play in your server.&lt;br /&gt;
* Server console now displays attempted joins that were rejected, and the reason for the rejection (e.g. &amp;quot;between levels&amp;quot;, &amp;quot;data incompatible&amp;quot;, etc.)&lt;br /&gt;
* Server console now alerts on failed &amp;lt;code&amp;gt;rcon_request&amp;lt;/code&amp;gt; attempts&lt;br /&gt;
* Vote config now supports &amp;quot;Ignore nonvoters&amp;quot; as an option&lt;br /&gt;
* &amp;lt;code&amp;gt;sv_loadconfig&amp;lt;/code&amp;gt; can be used to reload your server config (after you made changes to the files) without needing a server restart&lt;br /&gt;
* &amp;lt;code&amp;gt;sv_printconfig&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;sv_printrules&amp;lt;/code&amp;gt; can be used to display server information at any time&lt;br /&gt;
* &amp;lt;code&amp;gt;-min&amp;lt;/code&amp;gt; can be used on the command line to have your server console display only the minimum amount of information required&lt;br /&gt;
* &amp;lt;code&amp;gt;-log&amp;lt;/code&amp;gt; can be used to log all server console output to a log file in &amp;lt;code&amp;gt;RedFaction/logs&amp;lt;/code&amp;gt;&lt;br /&gt;
* If you run bots in your server, you can use &amp;lt;code&amp;gt;bot_shared_secret&amp;lt;/code&amp;gt; to ensure your bots are properly handled by your server (no spawning after ideal player count reached, exclude from votes, etc.)&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* You can now make maps for all of the new gametypes. For info on how to create control points (for KOTH, DC, REV, and ESC), see [[Mapping with Control Points]]&lt;br /&gt;
* &amp;quot;Play in multi (camera)&amp;quot; added to top toolbar&lt;br /&gt;
* F9 (Play in multi) and F10 (Play in multi (camera)) hotkeys added&lt;br /&gt;
* Playing in multi from RED will now launch on the correct gametype (based on map filename prefix)&lt;br /&gt;
* You can now link to multiple objects at once. When you select multiple objects and press &amp;quot;K&amp;quot;, the first object you selected will be linked to all other object you have selected.&lt;br /&gt;
* Respawn points can now be toggled on/off with the Respawn_Point_State event, and the associated team changed with the Modify_Respawn_Point event&lt;br /&gt;
* New settings in Level Properties&lt;br /&gt;
** &amp;quot;Legacy Cyclic_Timers&amp;quot; - If false, Cyclic_Timer events no longer double trigger on their first activation&lt;br /&gt;
** &amp;quot;Legacy movers&amp;quot; - If false, use new Alpine Faction mover functionality: fixed low velocity movers not working, fixed travel and ramp time calculations, fixed &amp;quot;Force Orient&amp;quot;, fixed &amp;quot;Lift&amp;quot; movement type, fixed &amp;quot;Ping Pong Infinite&amp;quot;/&amp;quot;Loop Once&amp;quot;/&amp;quot;Loop Infinite&amp;quot; movement types for rotating movers&lt;br /&gt;
** &amp;quot;Player starts with headlamp&amp;quot; - If false, do not allow the player to use the headlamp (until allowed via Set_Gameplay_Rule event)&lt;br /&gt;
** &amp;quot;Override static mesh ambient light scale&amp;quot; - If true, use the specified scale value. If false, use stock game behaviour (2.0 for SP, 3.2 for MP).&lt;br /&gt;
* New events&lt;br /&gt;
** Capture_Point_Handler&lt;br /&gt;
** Respawn_Point_State&lt;br /&gt;
** Modify_Respawn_Point&lt;br /&gt;
** When_Captured&lt;br /&gt;
** Set_Capture_Point_Owner&lt;br /&gt;
** Owner_Gate&lt;br /&gt;
** Set_Gameplay_Rule&lt;br /&gt;
&lt;br /&gt;
==[https://www.factionfiles.com/ff.php?action=file&amp;amp;id=8155&amp;amp;viewoldrev=1 Alpine Faction 1.1]==&lt;br /&gt;
* Released 19 Apr 2025&lt;br /&gt;
&lt;br /&gt;
==[https://www.factionfiles.com/ff.php?action=file&amp;amp;id=8085&amp;amp;viewoldrev=1 Alpine Faction 1.0]==&lt;br /&gt;
* Released 25 Jan 2025&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
* [[Alpine Faction Information]]&lt;br /&gt;
* [[Link Alpine Faction to a FactionFiles Account|How to Link Alpine Faction to your FactionFiles Account]]&lt;br /&gt;
* [[Red_Faction_Console_Commands#Alpine_Faction|Alpine Faction Console Commands]]&lt;br /&gt;
* [[Alpine Faction Level Design|Alpine Faction Level Design Information]]&lt;br /&gt;
* [[Alpine Faction Mod Development|Alpine Faction Mod Development Information]]&lt;br /&gt;
* [[Alpine Faction Dedicated Server Config]]&lt;br /&gt;
* [[Red_Faction_Command_Line_Parameters#Alpine_Faction|Alpine Faction Command Line Parameters]]&lt;br /&gt;
 &lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: Alpine Faction]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_Release_Highlights&amp;diff=15165</id>
		<title>Alpine Faction Release Highlights</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_Release_Highlights&amp;diff=15165"/>
		<updated>2026-04-17T14:30:21Z</updated>

		<summary type="html">&lt;p&gt;Goober: /* Mod / Map Development */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:Alpinelogo1.png|center]]&lt;br /&gt;
{|&lt;br /&gt;
|{{AlpineInstallDiscord|Click here to join the FactionFiles Community Discord|If you have any questions or concerns, please join the '''FactionFiles Community Discord''' for assistance. The FactionFiles Discord is also the place to go to participate in organized community game night events, and get help with anything else related to the Red Faction series.}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below are the most important highlights from each major [https://alpinefaction.com Alpine Faction] release. This page assumes you are already familiar with Red Faction, and prior versions of Alpine Faction, and is intended just as a &amp;quot;quick start guide&amp;quot; to summarize key features for each release.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT: This is not an exhaustive changelog!'''&lt;br /&gt;
&lt;br /&gt;
This page only has what I feel are the most important aspects of each release. For a full changelog at any given time, visit [https://github.com/GooberRF/alpinefaction/blob/master/docs/CHANGELOG.md CHANGELOG.md] on the Alpine Faction repository.&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.3.0==&lt;br /&gt;
* Release coming soon&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer is now recommended. High level list of D3D11 renderer improvements:&lt;br /&gt;
** Add GPU accelerated realtime per-pixel lighting for meshes&lt;br /&gt;
** Add full mesh shadows for entities, corpses, and items&lt;br /&gt;
** Support for the gamma video setting&lt;br /&gt;
** Fix &amp;quot;P2T fix&amp;quot; not working properly&lt;br /&gt;
** Fix impact decals not rendering correctly at distance&lt;br /&gt;
** Fix hard cutoff lines on fullbright gradient alpha textures&lt;br /&gt;
** Fix mirror and security monitor textures not being properly self-illuminated&lt;br /&gt;
===General===&lt;br /&gt;
* Revamp FactionFiles link client functionality to be much more user friendly&lt;br /&gt;
* Add speedometer to HUD&lt;br /&gt;
* Add raw/modern (id Tech/Source-style) mouse input scaling&lt;br /&gt;
* Fix first person weapon running animations&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
* Add server-controlled advanced multiplayer bots&lt;br /&gt;
** Add in-game waypoint file editor&lt;br /&gt;
** Add FactionFiles autodownloader support for waypoint files in custom maps&lt;br /&gt;
* Revamp FactionFiles autodownloader user interface when downloading new maps&lt;br /&gt;
* Fix players being able to stand up into geometry when they should be forced to stay crouched&lt;br /&gt;
* Add player outlines (D3D11 only)&lt;br /&gt;
* Fix third person footsteps&lt;br /&gt;
* Show server client information on server list&lt;br /&gt;
* Split kill feed from chat box (enable with &amp;quot;ui_gamefeed&amp;quot; console command)&lt;br /&gt;
* Many spectator mode improvements&lt;br /&gt;
** Improved UX for toggling between spectator modes&lt;br /&gt;
** Powerup icons, damage flash, crouch state, rail scanner, and first person weapon animation support in first person spectate&lt;br /&gt;
** Hitsounds and kill feed in first person spectate now apply for the player being spectated&lt;br /&gt;
===Dedicated Servers===&lt;br /&gt;
* Add FactionFiles autodownloader support by default for all levels in server rotation (disable with &amp;quot;-nodl&amp;quot; switch)&lt;br /&gt;
* Support rcon profiles (ACLs)&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* Expanded destruction capabilities available to developers&lt;br /&gt;
** RF2-style (brush-based) geomod&lt;br /&gt;
** Support for non-glass material breakable detail brushes&lt;br /&gt;
** Dynamic debris generation from breakable detail brushes&lt;br /&gt;
** Support breakable detail brushes using ngons&lt;br /&gt;
* New object types: Mesh, Corona, Note&lt;br /&gt;
* Add support for Gas Regions (D3D11 only)&lt;br /&gt;
* Many new events&lt;br /&gt;
* Fix Decal alpha parameter (D3D11 only)&lt;br /&gt;
* Mirror functions to level editor for brushes and groups&lt;br /&gt;
* Convert brushes to meshes in-editor&lt;br /&gt;
* Several new face/vertex mode operators&lt;br /&gt;
* Support custom texture subcategories (subdirectories)&lt;br /&gt;
* Support loading new textures/meshes (via tools menu - &amp;quot;Reload Textures&amp;quot;, &amp;quot;Reload Meshes&amp;quot;)&lt;br /&gt;
* Fix UV Unwrap window breaking when launching a fullscreen D3D application&lt;br /&gt;
* Fix autosave sometimes making brushes/objects teleport during a rotation&lt;br /&gt;
* Do not fail to create level packfile (ie. 0KB vpp) when assets are missing&lt;br /&gt;
* Include textures, meshes, and animations used in level automatically when creating level packfile&lt;br /&gt;
* New Select Objects and Hide Objects windows with UX improvements&lt;br /&gt;
* &amp;quot;To Mesh Object&amp;quot; button (in Select Objects) to convert clutter to mesh/corona&lt;br /&gt;
* Fix mesh collision not properly updating when meshes are hidden/unhidden&lt;br /&gt;
* Raised stock limits&lt;br /&gt;
** Lights on a single face: 64 -&amp;gt; 1024&lt;br /&gt;
** Lights per level: 1100 -&amp;gt; 8192&lt;br /&gt;
** Detail rooms: 256 -&amp;gt; 8192&lt;br /&gt;
** Geo cache face list: 16384 -&amp;gt; 65536, batch count: 512 -&amp;gt; 1024, memory pool: 8MB -&amp;gt; 32MB&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.2.2==&lt;br /&gt;
* Released 04 Jan 2026&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer improvements&lt;br /&gt;
** Add dynamic light glows from explosions&lt;br /&gt;
** Add dynamic light glows from burning entities&lt;br /&gt;
** Fix crash when very complex levels are loaded&lt;br /&gt;
===Single Player===&lt;br /&gt;
* Fix crash when gibbing corpses&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* New &amp;lt;code&amp;gt;When_Round_Ends&amp;lt;/code&amp;gt; event&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.2.1==&lt;br /&gt;
* Released 30 Dec 2025&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
* Scoreboard is now split into sections as configured by the user. By default, spectators and browsers are split out from all other clients.&lt;br /&gt;
* Gibbing is now supported in multiplayer&lt;br /&gt;
* Reticles, damage notification numbers, and player labels can now be scaled using &amp;lt;code&amp;gt;ui_scale_&amp;lt;/code&amp;gt; console commands&lt;br /&gt;
* Reticles can now be colored using the &amp;lt;code&amp;gt;ui_color_reticle&amp;lt;/code&amp;gt; console command&lt;br /&gt;
* FPS/ping display is improved&lt;br /&gt;
* Free look spectate mode now persist through level loads&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer improvements&lt;br /&gt;
** Anti-aliasing can now be selected in the launcher options panel&lt;br /&gt;
** Max dynamic lights 8 -&amp;gt; 32 (now matches D3D9)&lt;br /&gt;
** Fixed multiple instances of a single static mesh sharing lighting data&lt;br /&gt;
** Rotating skyboxes now supported&lt;br /&gt;
** Ambient lighting of third person weapon models held by entities now supported&lt;br /&gt;
** Dynamic lights fixed (previously were far too dim)&lt;br /&gt;
** Rocket Launcher/Fusion IR scanner now renders properly&lt;br /&gt;
===Dedicated Servers===&lt;br /&gt;
* Legacy &amp;lt;code&amp;gt;dedicated_server.txt&amp;lt;/code&amp;gt; config method has now been removed, ADS TOML-based configs should be used instead&lt;br /&gt;
* Gibbing can be configured and customized by the server&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* Enlarged UV unwrap workspace&lt;br /&gt;
* &amp;lt;code&amp;gt;Ctrl + K&amp;lt;/code&amp;gt; can now be used to create links between selected objects in the opposite direction from the normal &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; hotkey&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.2==&lt;br /&gt;
* Released 06 Dec 2025&lt;br /&gt;
===General===&lt;br /&gt;
* Suppress autoswitch bind, &amp;lt;code&amp;gt;cl_autoswitchfirewait&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;cl_autoswitchempty&amp;lt;/code&amp;gt; can be used to customize autoswitch behaviour&lt;br /&gt;
* &amp;lt;code&amp;gt;sp_exposuredamage&amp;lt;/code&amp;gt; or the associated option in the advanced options menu can be used to turn off the &amp;quot;take damage when outside&amp;quot; mechanic in single player&lt;br /&gt;
* &amp;lt;code&amp;gt;-afs FILENAME&amp;lt;/code&amp;gt; can be used on the command line to specify a particular ini file to use instead of alpine_settings.ini. Allows players to manage multiple config files launched via different shortcuts&lt;br /&gt;
* You can now use the scroll wheel to scroll through lists in the menus&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
* New gametypes&lt;br /&gt;
** King of the Hill (KOTH)&lt;br /&gt;
** Damage Control (DC)&lt;br /&gt;
** Revolt (REV)&lt;br /&gt;
** Escalation (ESC)&lt;br /&gt;
** Run (RUN)&lt;br /&gt;
* Servers can now configure gametype and most other server settings on a per-level basis. Servers can run multiple gametypes in the same rotation seamlessly.&lt;br /&gt;
* Votes to start a match and change the level can now name rule presets (if configured by the server). This means players can vote for the ruleset they want when voting for a match/level.&lt;br /&gt;
* First-person spectate view now shows the spectated player's name with their team colour&lt;br /&gt;
* Chat menus now scale appropriately when &amp;lt;code&amp;gt;bighud&amp;lt;/code&amp;gt; is enabled&lt;br /&gt;
* The &amp;quot;Remote Server Config&amp;quot; bind can be used to display the server's current ruleset and map rotation&lt;br /&gt;
* &amp;lt;code&amp;gt;mp_handicap&amp;lt;/code&amp;gt; can be used to impose a damage reduction handicap on yourself&lt;br /&gt;
* You can now call gametype votes using &amp;lt;code&amp;gt;vote gametype TYPE MAP&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;vote gt TYPE MAP&amp;lt;/code&amp;gt;, where TYPE is a gametype abbreviation (i.e. CTF, KOTH, etc.) and MAP is a level filename.&lt;br /&gt;
* &amp;quot;One minute remaining&amp;quot; and other countdown sounds will now play a second time if the time is extended after they play (like due to overtime)&lt;br /&gt;
* &amp;quot;Winner&amp;quot; and &amp;quot;Game Over&amp;quot; at the end of the map fixed&lt;br /&gt;
* Scoreboard now identifies players as alive, dead, idle, bot, spectator, browser&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer improvements&lt;br /&gt;
** Colorblind mode rendering filter (&amp;lt;code&amp;gt;r_colorblind&amp;lt;/code&amp;gt;)&lt;br /&gt;
** Improved skybox rendering&lt;br /&gt;
** Picmip (&amp;lt;code&amp;gt;r_picmip&amp;lt;/code&amp;gt;)&lt;br /&gt;
** Vertex lighting for meshes&lt;br /&gt;
** Dynamic lighting for meshes and movers&lt;br /&gt;
** Support &amp;lt;code&amp;gt;r_fullbright&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;r_lightmaps&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;r_nearest&amp;lt;/code&amp;gt;&lt;br /&gt;
===Dedicated Servers===&lt;br /&gt;
* Dedicated servers should now be configured using one or more TOML files - web-based config builder is available [https://dedi.alpinefaction.com here]&lt;br /&gt;
* Framerates are now far more consistent, improving the overall play experience&lt;br /&gt;
* You can now configure gameplay rules (including gametype) on a per-level basis&lt;br /&gt;
* You can use the &amp;lt;code&amp;gt;sv_gametype TYPE MAP&amp;lt;/code&amp;gt; command to change the gametype on your server at any time. TYPE is a gametype abbreviation (i.e. CTF, KOTH, etc.) and MAP is a level filename.&lt;br /&gt;
* Much more useful information is now displayed when new players join your server, and when you run the &amp;lt;code&amp;gt;info&amp;lt;/code&amp;gt; command&lt;br /&gt;
* You can now use the &amp;lt;code&amp;gt;sv_restrict_status&amp;lt;/code&amp;gt; command to display the current client restriction status on the current level, with the current ruleset&lt;br /&gt;
* Clients are now restricted from voting if they are not able to play in your server.&lt;br /&gt;
* Server console now displays attempted joins that were rejected, and the reason for the rejection (e.g. &amp;quot;between levels&amp;quot;, &amp;quot;data incompatible&amp;quot;, etc.)&lt;br /&gt;
* Server console now alerts on failed &amp;lt;code&amp;gt;rcon_request&amp;lt;/code&amp;gt; attempts&lt;br /&gt;
* Vote config now supports &amp;quot;Ignore nonvoters&amp;quot; as an option&lt;br /&gt;
* &amp;lt;code&amp;gt;sv_loadconfig&amp;lt;/code&amp;gt; can be used to reload your server config (after you made changes to the files) without needing a server restart&lt;br /&gt;
* &amp;lt;code&amp;gt;sv_printconfig&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;sv_printrules&amp;lt;/code&amp;gt; can be used to display server information at any time&lt;br /&gt;
* &amp;lt;code&amp;gt;-min&amp;lt;/code&amp;gt; can be used on the command line to have your server console display only the minimum amount of information required&lt;br /&gt;
* &amp;lt;code&amp;gt;-log&amp;lt;/code&amp;gt; can be used to log all server console output to a log file in &amp;lt;code&amp;gt;RedFaction/logs&amp;lt;/code&amp;gt;&lt;br /&gt;
* If you run bots in your server, you can use &amp;lt;code&amp;gt;bot_shared_secret&amp;lt;/code&amp;gt; to ensure your bots are properly handled by your server (no spawning after ideal player count reached, exclude from votes, etc.)&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* You can now make maps for all of the new gametypes. For info on how to create control points (for KOTH, DC, REV, and ESC), see [[Mapping with Control Points]]&lt;br /&gt;
* &amp;quot;Play in multi (camera)&amp;quot; added to top toolbar&lt;br /&gt;
* F9 (Play in multi) and F10 (Play in multi (camera)) hotkeys added&lt;br /&gt;
* Playing in multi from RED will now launch on the correct gametype (based on map filename prefix)&lt;br /&gt;
* You can now link to multiple objects at once. When you select multiple objects and press &amp;quot;K&amp;quot;, the first object you selected will be linked to all other object you have selected.&lt;br /&gt;
* Respawn points can now be toggled on/off with the Respawn_Point_State event, and the associated team changed with the Modify_Respawn_Point event&lt;br /&gt;
* New settings in Level Properties&lt;br /&gt;
** &amp;quot;Legacy Cyclic_Timers&amp;quot; - If false, Cyclic_Timer events no longer double trigger on their first activation&lt;br /&gt;
** &amp;quot;Legacy movers&amp;quot; - If false, use new Alpine Faction mover functionality: fixed low velocity movers not working, fixed travel and ramp time calculations, fixed &amp;quot;Force Orient&amp;quot;, fixed &amp;quot;Lift&amp;quot; movement type, fixed &amp;quot;Ping Pong Infinite&amp;quot;/&amp;quot;Loop Once&amp;quot;/&amp;quot;Loop Infinite&amp;quot; movement types for rotating movers&lt;br /&gt;
** &amp;quot;Player starts with headlamp&amp;quot; - If false, do not allow the player to use the headlamp (until allowed via Set_Gameplay_Rule event)&lt;br /&gt;
** &amp;quot;Override static mesh ambient light scale&amp;quot; - If true, use the specified scale value. If false, use stock game behaviour (2.0 for SP, 3.2 for MP).&lt;br /&gt;
* New events&lt;br /&gt;
** Capture_Point_Handler&lt;br /&gt;
** Respawn_Point_State&lt;br /&gt;
** Modify_Respawn_Point&lt;br /&gt;
** When_Captured&lt;br /&gt;
** Set_Capture_Point_Owner&lt;br /&gt;
** Owner_Gate&lt;br /&gt;
** Set_Gameplay_Rule&lt;br /&gt;
&lt;br /&gt;
==[https://www.factionfiles.com/ff.php?action=file&amp;amp;id=8155&amp;amp;viewoldrev=1 Alpine Faction 1.1]==&lt;br /&gt;
* Released 19 Apr 2025&lt;br /&gt;
&lt;br /&gt;
==[https://www.factionfiles.com/ff.php?action=file&amp;amp;id=8085&amp;amp;viewoldrev=1 Alpine Faction 1.0]==&lt;br /&gt;
* Released 25 Jan 2025&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
* [[Alpine Faction Information]]&lt;br /&gt;
* [[Link Alpine Faction to a FactionFiles Account|How to Link Alpine Faction to your FactionFiles Account]]&lt;br /&gt;
* [[Red_Faction_Console_Commands#Alpine_Faction|Alpine Faction Console Commands]]&lt;br /&gt;
* [[Alpine Faction Level Design|Alpine Faction Level Design Information]]&lt;br /&gt;
* [[Alpine Faction Mod Development|Alpine Faction Mod Development Information]]&lt;br /&gt;
* [[Alpine Faction Dedicated Server Config]]&lt;br /&gt;
* [[Red_Faction_Command_Line_Parameters#Alpine_Faction|Alpine Faction Command Line Parameters]]&lt;br /&gt;
 &lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: Alpine Faction]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_Release_Highlights&amp;diff=15164</id>
		<title>Alpine Faction Release Highlights</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_Release_Highlights&amp;diff=15164"/>
		<updated>2026-04-17T14:29:27Z</updated>

		<summary type="html">&lt;p&gt;Goober: /* Alpine Faction 1.3.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:Alpinelogo1.png|center]]&lt;br /&gt;
{|&lt;br /&gt;
|{{AlpineInstallDiscord|Click here to join the FactionFiles Community Discord|If you have any questions or concerns, please join the '''FactionFiles Community Discord''' for assistance. The FactionFiles Discord is also the place to go to participate in organized community game night events, and get help with anything else related to the Red Faction series.}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below are the most important highlights from each major [https://alpinefaction.com Alpine Faction] release. This page assumes you are already familiar with Red Faction, and prior versions of Alpine Faction, and is intended just as a &amp;quot;quick start guide&amp;quot; to summarize key features for each release.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT: This is not an exhaustive changelog!'''&lt;br /&gt;
&lt;br /&gt;
This page only has what I feel are the most important aspects of each release. For a full changelog at any given time, visit [https://github.com/GooberRF/alpinefaction/blob/master/docs/CHANGELOG.md CHANGELOG.md] on the Alpine Faction repository.&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.3.0==&lt;br /&gt;
* Release coming soon&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer is now recommended. High level list of D3D11 renderer improvements:&lt;br /&gt;
** Add GPU accelerated realtime per-pixel lighting for meshes&lt;br /&gt;
** Add full mesh shadows for entities, corpses, and items&lt;br /&gt;
** Support for the gamma video setting&lt;br /&gt;
** Fix &amp;quot;P2T fix&amp;quot; not working properly&lt;br /&gt;
** Fix impact decals not rendering correctly at distance&lt;br /&gt;
** Fix hard cutoff lines on fullbright gradient alpha textures&lt;br /&gt;
** Fix mirror and security monitor textures not being properly self-illuminated&lt;br /&gt;
===General===&lt;br /&gt;
* Revamp FactionFiles link client functionality to be much more user friendly&lt;br /&gt;
* Add speedometer to HUD&lt;br /&gt;
* Add raw/modern (id Tech/Source-style) mouse input scaling&lt;br /&gt;
* Fix first person weapon running animations&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
* Add server-controlled advanced multiplayer bots&lt;br /&gt;
** Add in-game waypoint file editor&lt;br /&gt;
** Add FactionFiles autodownloader support for waypoint files in custom maps&lt;br /&gt;
* Revamp FactionFiles autodownloader user interface when downloading new maps&lt;br /&gt;
* Fix players being able to stand up into geometry when they should be forced to stay crouched&lt;br /&gt;
* Add player outlines (D3D11 only)&lt;br /&gt;
* Fix third person footsteps&lt;br /&gt;
* Show server client information on server list&lt;br /&gt;
* Split kill feed from chat box (enable with &amp;quot;ui_gamefeed&amp;quot; console command)&lt;br /&gt;
* Many spectator mode improvements&lt;br /&gt;
** Improved UX for toggling between spectator modes&lt;br /&gt;
** Powerup icons, damage flash, crouch state, rail scanner, and first person weapon animation support in first person spectate&lt;br /&gt;
** Hitsounds and kill feed in first person spectate now apply for the player being spectated&lt;br /&gt;
===Dedicated Servers===&lt;br /&gt;
* Add FactionFiles autodownloader support by default for all levels in server rotation (disable with &amp;quot;-nodl&amp;quot; switch)&lt;br /&gt;
* Support rcon profiles (ACLs)&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* Expanded destruction capabilities available to developers&lt;br /&gt;
** RF2-style (brush-based) geomod&lt;br /&gt;
** Support for non-glass material breakable detail brushes&lt;br /&gt;
** Dynamic debris generation from breakable detail brushes&lt;br /&gt;
** Support breakable detail brushes using ngons&lt;br /&gt;
* New object types: Mesh, Corona, Note&lt;br /&gt;
* Add support for Gas Regions (D3D11 only)&lt;br /&gt;
* Many new events&lt;br /&gt;
* Fix Decal alpha parameter (D3D11 only)&lt;br /&gt;
* Mirror functions to level editor for brushes and groups&lt;br /&gt;
* Convert brushes to meshes in-editor&lt;br /&gt;
* Several new face/vertex mode operators&lt;br /&gt;
* Support custom texture subcategories (subdirectories)&lt;br /&gt;
* Support loading new textures/meshes (via tools menu - &amp;quot;Reload Textures&amp;quot;, &amp;quot;Reload Meshes&amp;quot;)&lt;br /&gt;
* Fix UV Unwrap window breaking when launching a fullscreen D3D application&lt;br /&gt;
* Fix autosave sometimes making brushes/objects teleport during a rotation&lt;br /&gt;
* Do not fail to create level packfile (ie. 0KB vpp) when assets are missing&lt;br /&gt;
* Include textures, meshes, and animations used in level automatically when creating level packfile&lt;br /&gt;
* New Select Objects and Hide Objects windows with UX improvements&lt;br /&gt;
* &amp;quot;To Mesh Object&amp;quot; button (in Select Objects) to convert clutter to mesh/corona&lt;br /&gt;
* Raised stock limits&lt;br /&gt;
** Lights on a single face: 64 -&amp;gt; 1024&lt;br /&gt;
** Lights per level: 1100 -&amp;gt; 8192&lt;br /&gt;
** Detail rooms: 256 -&amp;gt; 8192&lt;br /&gt;
** Geo cache face list: 16384 -&amp;gt; 65536, batch count: 512 -&amp;gt; 1024, memory pool: 8MB -&amp;gt; 32MB&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.2.2==&lt;br /&gt;
* Released 04 Jan 2026&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer improvements&lt;br /&gt;
** Add dynamic light glows from explosions&lt;br /&gt;
** Add dynamic light glows from burning entities&lt;br /&gt;
** Fix crash when very complex levels are loaded&lt;br /&gt;
===Single Player===&lt;br /&gt;
* Fix crash when gibbing corpses&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* New &amp;lt;code&amp;gt;When_Round_Ends&amp;lt;/code&amp;gt; event&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.2.1==&lt;br /&gt;
* Released 30 Dec 2025&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
* Scoreboard is now split into sections as configured by the user. By default, spectators and browsers are split out from all other clients.&lt;br /&gt;
* Gibbing is now supported in multiplayer&lt;br /&gt;
* Reticles, damage notification numbers, and player labels can now be scaled using &amp;lt;code&amp;gt;ui_scale_&amp;lt;/code&amp;gt; console commands&lt;br /&gt;
* Reticles can now be colored using the &amp;lt;code&amp;gt;ui_color_reticle&amp;lt;/code&amp;gt; console command&lt;br /&gt;
* FPS/ping display is improved&lt;br /&gt;
* Free look spectate mode now persist through level loads&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer improvements&lt;br /&gt;
** Anti-aliasing can now be selected in the launcher options panel&lt;br /&gt;
** Max dynamic lights 8 -&amp;gt; 32 (now matches D3D9)&lt;br /&gt;
** Fixed multiple instances of a single static mesh sharing lighting data&lt;br /&gt;
** Rotating skyboxes now supported&lt;br /&gt;
** Ambient lighting of third person weapon models held by entities now supported&lt;br /&gt;
** Dynamic lights fixed (previously were far too dim)&lt;br /&gt;
** Rocket Launcher/Fusion IR scanner now renders properly&lt;br /&gt;
===Dedicated Servers===&lt;br /&gt;
* Legacy &amp;lt;code&amp;gt;dedicated_server.txt&amp;lt;/code&amp;gt; config method has now been removed, ADS TOML-based configs should be used instead&lt;br /&gt;
* Gibbing can be configured and customized by the server&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* Enlarged UV unwrap workspace&lt;br /&gt;
* &amp;lt;code&amp;gt;Ctrl + K&amp;lt;/code&amp;gt; can now be used to create links between selected objects in the opposite direction from the normal &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; hotkey&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.2==&lt;br /&gt;
* Released 06 Dec 2025&lt;br /&gt;
===General===&lt;br /&gt;
* Suppress autoswitch bind, &amp;lt;code&amp;gt;cl_autoswitchfirewait&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;cl_autoswitchempty&amp;lt;/code&amp;gt; can be used to customize autoswitch behaviour&lt;br /&gt;
* &amp;lt;code&amp;gt;sp_exposuredamage&amp;lt;/code&amp;gt; or the associated option in the advanced options menu can be used to turn off the &amp;quot;take damage when outside&amp;quot; mechanic in single player&lt;br /&gt;
* &amp;lt;code&amp;gt;-afs FILENAME&amp;lt;/code&amp;gt; can be used on the command line to specify a particular ini file to use instead of alpine_settings.ini. Allows players to manage multiple config files launched via different shortcuts&lt;br /&gt;
* You can now use the scroll wheel to scroll through lists in the menus&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
* New gametypes&lt;br /&gt;
** King of the Hill (KOTH)&lt;br /&gt;
** Damage Control (DC)&lt;br /&gt;
** Revolt (REV)&lt;br /&gt;
** Escalation (ESC)&lt;br /&gt;
** Run (RUN)&lt;br /&gt;
* Servers can now configure gametype and most other server settings on a per-level basis. Servers can run multiple gametypes in the same rotation seamlessly.&lt;br /&gt;
* Votes to start a match and change the level can now name rule presets (if configured by the server). This means players can vote for the ruleset they want when voting for a match/level.&lt;br /&gt;
* First-person spectate view now shows the spectated player's name with their team colour&lt;br /&gt;
* Chat menus now scale appropriately when &amp;lt;code&amp;gt;bighud&amp;lt;/code&amp;gt; is enabled&lt;br /&gt;
* The &amp;quot;Remote Server Config&amp;quot; bind can be used to display the server's current ruleset and map rotation&lt;br /&gt;
* &amp;lt;code&amp;gt;mp_handicap&amp;lt;/code&amp;gt; can be used to impose a damage reduction handicap on yourself&lt;br /&gt;
* You can now call gametype votes using &amp;lt;code&amp;gt;vote gametype TYPE MAP&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;vote gt TYPE MAP&amp;lt;/code&amp;gt;, where TYPE is a gametype abbreviation (i.e. CTF, KOTH, etc.) and MAP is a level filename.&lt;br /&gt;
* &amp;quot;One minute remaining&amp;quot; and other countdown sounds will now play a second time if the time is extended after they play (like due to overtime)&lt;br /&gt;
* &amp;quot;Winner&amp;quot; and &amp;quot;Game Over&amp;quot; at the end of the map fixed&lt;br /&gt;
* Scoreboard now identifies players as alive, dead, idle, bot, spectator, browser&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer improvements&lt;br /&gt;
** Colorblind mode rendering filter (&amp;lt;code&amp;gt;r_colorblind&amp;lt;/code&amp;gt;)&lt;br /&gt;
** Improved skybox rendering&lt;br /&gt;
** Picmip (&amp;lt;code&amp;gt;r_picmip&amp;lt;/code&amp;gt;)&lt;br /&gt;
** Vertex lighting for meshes&lt;br /&gt;
** Dynamic lighting for meshes and movers&lt;br /&gt;
** Support &amp;lt;code&amp;gt;r_fullbright&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;r_lightmaps&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;r_nearest&amp;lt;/code&amp;gt;&lt;br /&gt;
===Dedicated Servers===&lt;br /&gt;
* Dedicated servers should now be configured using one or more TOML files - web-based config builder is available [https://dedi.alpinefaction.com here]&lt;br /&gt;
* Framerates are now far more consistent, improving the overall play experience&lt;br /&gt;
* You can now configure gameplay rules (including gametype) on a per-level basis&lt;br /&gt;
* You can use the &amp;lt;code&amp;gt;sv_gametype TYPE MAP&amp;lt;/code&amp;gt; command to change the gametype on your server at any time. TYPE is a gametype abbreviation (i.e. CTF, KOTH, etc.) and MAP is a level filename.&lt;br /&gt;
* Much more useful information is now displayed when new players join your server, and when you run the &amp;lt;code&amp;gt;info&amp;lt;/code&amp;gt; command&lt;br /&gt;
* You can now use the &amp;lt;code&amp;gt;sv_restrict_status&amp;lt;/code&amp;gt; command to display the current client restriction status on the current level, with the current ruleset&lt;br /&gt;
* Clients are now restricted from voting if they are not able to play in your server.&lt;br /&gt;
* Server console now displays attempted joins that were rejected, and the reason for the rejection (e.g. &amp;quot;between levels&amp;quot;, &amp;quot;data incompatible&amp;quot;, etc.)&lt;br /&gt;
* Server console now alerts on failed &amp;lt;code&amp;gt;rcon_request&amp;lt;/code&amp;gt; attempts&lt;br /&gt;
* Vote config now supports &amp;quot;Ignore nonvoters&amp;quot; as an option&lt;br /&gt;
* &amp;lt;code&amp;gt;sv_loadconfig&amp;lt;/code&amp;gt; can be used to reload your server config (after you made changes to the files) without needing a server restart&lt;br /&gt;
* &amp;lt;code&amp;gt;sv_printconfig&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;sv_printrules&amp;lt;/code&amp;gt; can be used to display server information at any time&lt;br /&gt;
* &amp;lt;code&amp;gt;-min&amp;lt;/code&amp;gt; can be used on the command line to have your server console display only the minimum amount of information required&lt;br /&gt;
* &amp;lt;code&amp;gt;-log&amp;lt;/code&amp;gt; can be used to log all server console output to a log file in &amp;lt;code&amp;gt;RedFaction/logs&amp;lt;/code&amp;gt;&lt;br /&gt;
* If you run bots in your server, you can use &amp;lt;code&amp;gt;bot_shared_secret&amp;lt;/code&amp;gt; to ensure your bots are properly handled by your server (no spawning after ideal player count reached, exclude from votes, etc.)&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* You can now make maps for all of the new gametypes. For info on how to create control points (for KOTH, DC, REV, and ESC), see [[Mapping with Control Points]]&lt;br /&gt;
* &amp;quot;Play in multi (camera)&amp;quot; added to top toolbar&lt;br /&gt;
* F9 (Play in multi) and F10 (Play in multi (camera)) hotkeys added&lt;br /&gt;
* Playing in multi from RED will now launch on the correct gametype (based on map filename prefix)&lt;br /&gt;
* You can now link to multiple objects at once. When you select multiple objects and press &amp;quot;K&amp;quot;, the first object you selected will be linked to all other object you have selected.&lt;br /&gt;
* Respawn points can now be toggled on/off with the Respawn_Point_State event, and the associated team changed with the Modify_Respawn_Point event&lt;br /&gt;
* New settings in Level Properties&lt;br /&gt;
** &amp;quot;Legacy Cyclic_Timers&amp;quot; - If false, Cyclic_Timer events no longer double trigger on their first activation&lt;br /&gt;
** &amp;quot;Legacy movers&amp;quot; - If false, use new Alpine Faction mover functionality: fixed low velocity movers not working, fixed travel and ramp time calculations, fixed &amp;quot;Force Orient&amp;quot;, fixed &amp;quot;Lift&amp;quot; movement type, fixed &amp;quot;Ping Pong Infinite&amp;quot;/&amp;quot;Loop Once&amp;quot;/&amp;quot;Loop Infinite&amp;quot; movement types for rotating movers&lt;br /&gt;
** &amp;quot;Player starts with headlamp&amp;quot; - If false, do not allow the player to use the headlamp (until allowed via Set_Gameplay_Rule event)&lt;br /&gt;
** &amp;quot;Override static mesh ambient light scale&amp;quot; - If true, use the specified scale value. If false, use stock game behaviour (2.0 for SP, 3.2 for MP).&lt;br /&gt;
* New events&lt;br /&gt;
** Capture_Point_Handler&lt;br /&gt;
** Respawn_Point_State&lt;br /&gt;
** Modify_Respawn_Point&lt;br /&gt;
** When_Captured&lt;br /&gt;
** Set_Capture_Point_Owner&lt;br /&gt;
** Owner_Gate&lt;br /&gt;
** Set_Gameplay_Rule&lt;br /&gt;
&lt;br /&gt;
==[https://www.factionfiles.com/ff.php?action=file&amp;amp;id=8155&amp;amp;viewoldrev=1 Alpine Faction 1.1]==&lt;br /&gt;
* Released 19 Apr 2025&lt;br /&gt;
&lt;br /&gt;
==[https://www.factionfiles.com/ff.php?action=file&amp;amp;id=8085&amp;amp;viewoldrev=1 Alpine Faction 1.0]==&lt;br /&gt;
* Released 25 Jan 2025&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
* [[Alpine Faction Information]]&lt;br /&gt;
* [[Link Alpine Faction to a FactionFiles Account|How to Link Alpine Faction to your FactionFiles Account]]&lt;br /&gt;
* [[Red_Faction_Console_Commands#Alpine_Faction|Alpine Faction Console Commands]]&lt;br /&gt;
* [[Alpine Faction Level Design|Alpine Faction Level Design Information]]&lt;br /&gt;
* [[Alpine Faction Mod Development|Alpine Faction Mod Development Information]]&lt;br /&gt;
* [[Alpine Faction Dedicated Server Config]]&lt;br /&gt;
* [[Red_Faction_Command_Line_Parameters#Alpine_Faction|Alpine Faction Command Line Parameters]]&lt;br /&gt;
 &lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: Alpine Faction]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_Release_Highlights&amp;diff=15163</id>
		<title>Alpine Faction Release Highlights</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_Release_Highlights&amp;diff=15163"/>
		<updated>2026-04-17T14:09:55Z</updated>

		<summary type="html">&lt;p&gt;Goober: /* Alpine Faction 1.3.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:Alpinelogo1.png|center]]&lt;br /&gt;
{|&lt;br /&gt;
|{{AlpineInstallDiscord|Click here to join the FactionFiles Community Discord|If you have any questions or concerns, please join the '''FactionFiles Community Discord''' for assistance. The FactionFiles Discord is also the place to go to participate in organized community game night events, and get help with anything else related to the Red Faction series.}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below are the most important highlights from each major [https://alpinefaction.com Alpine Faction] release. This page assumes you are already familiar with Red Faction, and prior versions of Alpine Faction, and is intended just as a &amp;quot;quick start guide&amp;quot; to summarize key features for each release.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT: This is not an exhaustive changelog!'''&lt;br /&gt;
&lt;br /&gt;
This page only has what I feel are the most important aspects of each release. For a full changelog at any given time, visit [https://github.com/GooberRF/alpinefaction/blob/master/docs/CHANGELOG.md CHANGELOG.md] on the Alpine Faction repository.&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.3.0==&lt;br /&gt;
* Release coming soon&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer is now recommended. High level list of D3D11 renderer improvements:&lt;br /&gt;
** Add GPU accelerated realtime per-pixel lighting for meshes&lt;br /&gt;
** Add full mesh shadows for entities, corpses, and items&lt;br /&gt;
** Support for the gamma video setting&lt;br /&gt;
** Fix &amp;quot;P2T fix&amp;quot; not working properly&lt;br /&gt;
** Fix impact decals not rendering correctly at distance&lt;br /&gt;
** Fix hard cutoff lines on fullbright gradient alpha textures&lt;br /&gt;
** Fix mirror and security monitor textures not being properly self-illuminated&lt;br /&gt;
===General===&lt;br /&gt;
* Revamp FactionFiles link client functionality to be much more user friendly&lt;br /&gt;
* Add speedometer to HUD&lt;br /&gt;
* Add raw/modern (id Tech/Source-style) mouse input scaling&lt;br /&gt;
* Fix first person weapon running animations&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
* Add server-controlled advanced multiplayer bots&lt;br /&gt;
** Add in-game waypoint file editor&lt;br /&gt;
** Add FactionFiles autodownloader support for waypoint files in custom maps&lt;br /&gt;
* Revamp FactionFiles autodownloader user interface when downloading new maps&lt;br /&gt;
* Add player outlines (D3D11 only)&lt;br /&gt;
* Fix third person footsteps&lt;br /&gt;
* Show server client information on server list&lt;br /&gt;
* Split kill feed from chat box (enable with &amp;quot;ui_gamefeed&amp;quot; console command)&lt;br /&gt;
* Many spectator mode improvements&lt;br /&gt;
** Improved UX for toggling between spectator modes&lt;br /&gt;
** Powerup icons, damage flash, crouch state, rail scanner, and first person weapon animation support in first person spectate&lt;br /&gt;
** Hitsounds and kill feed in first person spectate now apply for the player being spectated&lt;br /&gt;
===Dedicated Servers===&lt;br /&gt;
* Add FactionFiles autodownloader support by default for all levels in server rotation (disable with &amp;quot;-nodl&amp;quot; switch)&lt;br /&gt;
* Support rcon profiles (ACLs)&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* Expanded destruction capabilities available to developers&lt;br /&gt;
** RF2-style (brush-based) geomod&lt;br /&gt;
** Support for non-glass material breakable detail brushes&lt;br /&gt;
** Dynamic debris generation from breakable detail brushes&lt;br /&gt;
** Support breakable detail brushes using ngons&lt;br /&gt;
* New object types: Mesh, Corona, Note&lt;br /&gt;
* Add support for Gas Regions (D3D11 only)&lt;br /&gt;
* Many new events&lt;br /&gt;
* Fix Decal alpha parameter (D3D11 only)&lt;br /&gt;
* Mirror functions to level editor for brushes and groups&lt;br /&gt;
* Convert brushes to meshes in-editor&lt;br /&gt;
* Several new face/vertex mode operators&lt;br /&gt;
* Support custom texture subcategories (subdirectories)&lt;br /&gt;
* Support loading new textures/meshes (via tools menu - &amp;quot;Reload Textures&amp;quot;, &amp;quot;Reload Meshes&amp;quot;)&lt;br /&gt;
* Fix UV Unwrap window breaking when launching a fullscreen D3D application&lt;br /&gt;
* Fix autosave sometimes making brushes/objects teleport during a rotation&lt;br /&gt;
* Do not fail to create level packfile (ie. 0KB vpp) when assets are missing&lt;br /&gt;
* Include textures, meshes, and animations used in level automatically when creating level packfile&lt;br /&gt;
* New Select Objects and Hide Objects windows with UX improvements&lt;br /&gt;
* &amp;quot;To Mesh Object&amp;quot; button (in Select Objects) to convert clutter to mesh/corona&lt;br /&gt;
* Raised stock limits&lt;br /&gt;
** Lights on a single face: 64 -&amp;gt; 1024&lt;br /&gt;
** Lights per level: 1100 -&amp;gt; 8192&lt;br /&gt;
** Detail rooms: 256 -&amp;gt; 8192&lt;br /&gt;
** Geo cache face list: 16384 -&amp;gt; 65536, batch count: 512 -&amp;gt; 1024, memory pool: 8MB -&amp;gt; 32MB&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.2.2==&lt;br /&gt;
* Released 04 Jan 2026&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer improvements&lt;br /&gt;
** Add dynamic light glows from explosions&lt;br /&gt;
** Add dynamic light glows from burning entities&lt;br /&gt;
** Fix crash when very complex levels are loaded&lt;br /&gt;
===Single Player===&lt;br /&gt;
* Fix crash when gibbing corpses&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* New &amp;lt;code&amp;gt;When_Round_Ends&amp;lt;/code&amp;gt; event&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.2.1==&lt;br /&gt;
* Released 30 Dec 2025&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
* Scoreboard is now split into sections as configured by the user. By default, spectators and browsers are split out from all other clients.&lt;br /&gt;
* Gibbing is now supported in multiplayer&lt;br /&gt;
* Reticles, damage notification numbers, and player labels can now be scaled using &amp;lt;code&amp;gt;ui_scale_&amp;lt;/code&amp;gt; console commands&lt;br /&gt;
* Reticles can now be colored using the &amp;lt;code&amp;gt;ui_color_reticle&amp;lt;/code&amp;gt; console command&lt;br /&gt;
* FPS/ping display is improved&lt;br /&gt;
* Free look spectate mode now persist through level loads&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer improvements&lt;br /&gt;
** Anti-aliasing can now be selected in the launcher options panel&lt;br /&gt;
** Max dynamic lights 8 -&amp;gt; 32 (now matches D3D9)&lt;br /&gt;
** Fixed multiple instances of a single static mesh sharing lighting data&lt;br /&gt;
** Rotating skyboxes now supported&lt;br /&gt;
** Ambient lighting of third person weapon models held by entities now supported&lt;br /&gt;
** Dynamic lights fixed (previously were far too dim)&lt;br /&gt;
** Rocket Launcher/Fusion IR scanner now renders properly&lt;br /&gt;
===Dedicated Servers===&lt;br /&gt;
* Legacy &amp;lt;code&amp;gt;dedicated_server.txt&amp;lt;/code&amp;gt; config method has now been removed, ADS TOML-based configs should be used instead&lt;br /&gt;
* Gibbing can be configured and customized by the server&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* Enlarged UV unwrap workspace&lt;br /&gt;
* &amp;lt;code&amp;gt;Ctrl + K&amp;lt;/code&amp;gt; can now be used to create links between selected objects in the opposite direction from the normal &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; hotkey&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.2==&lt;br /&gt;
* Released 06 Dec 2025&lt;br /&gt;
===General===&lt;br /&gt;
* Suppress autoswitch bind, &amp;lt;code&amp;gt;cl_autoswitchfirewait&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;cl_autoswitchempty&amp;lt;/code&amp;gt; can be used to customize autoswitch behaviour&lt;br /&gt;
* &amp;lt;code&amp;gt;sp_exposuredamage&amp;lt;/code&amp;gt; or the associated option in the advanced options menu can be used to turn off the &amp;quot;take damage when outside&amp;quot; mechanic in single player&lt;br /&gt;
* &amp;lt;code&amp;gt;-afs FILENAME&amp;lt;/code&amp;gt; can be used on the command line to specify a particular ini file to use instead of alpine_settings.ini. Allows players to manage multiple config files launched via different shortcuts&lt;br /&gt;
* You can now use the scroll wheel to scroll through lists in the menus&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
* New gametypes&lt;br /&gt;
** King of the Hill (KOTH)&lt;br /&gt;
** Damage Control (DC)&lt;br /&gt;
** Revolt (REV)&lt;br /&gt;
** Escalation (ESC)&lt;br /&gt;
** Run (RUN)&lt;br /&gt;
* Servers can now configure gametype and most other server settings on a per-level basis. Servers can run multiple gametypes in the same rotation seamlessly.&lt;br /&gt;
* Votes to start a match and change the level can now name rule presets (if configured by the server). This means players can vote for the ruleset they want when voting for a match/level.&lt;br /&gt;
* First-person spectate view now shows the spectated player's name with their team colour&lt;br /&gt;
* Chat menus now scale appropriately when &amp;lt;code&amp;gt;bighud&amp;lt;/code&amp;gt; is enabled&lt;br /&gt;
* The &amp;quot;Remote Server Config&amp;quot; bind can be used to display the server's current ruleset and map rotation&lt;br /&gt;
* &amp;lt;code&amp;gt;mp_handicap&amp;lt;/code&amp;gt; can be used to impose a damage reduction handicap on yourself&lt;br /&gt;
* You can now call gametype votes using &amp;lt;code&amp;gt;vote gametype TYPE MAP&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;vote gt TYPE MAP&amp;lt;/code&amp;gt;, where TYPE is a gametype abbreviation (i.e. CTF, KOTH, etc.) and MAP is a level filename.&lt;br /&gt;
* &amp;quot;One minute remaining&amp;quot; and other countdown sounds will now play a second time if the time is extended after they play (like due to overtime)&lt;br /&gt;
* &amp;quot;Winner&amp;quot; and &amp;quot;Game Over&amp;quot; at the end of the map fixed&lt;br /&gt;
* Scoreboard now identifies players as alive, dead, idle, bot, spectator, browser&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer improvements&lt;br /&gt;
** Colorblind mode rendering filter (&amp;lt;code&amp;gt;r_colorblind&amp;lt;/code&amp;gt;)&lt;br /&gt;
** Improved skybox rendering&lt;br /&gt;
** Picmip (&amp;lt;code&amp;gt;r_picmip&amp;lt;/code&amp;gt;)&lt;br /&gt;
** Vertex lighting for meshes&lt;br /&gt;
** Dynamic lighting for meshes and movers&lt;br /&gt;
** Support &amp;lt;code&amp;gt;r_fullbright&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;r_lightmaps&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;r_nearest&amp;lt;/code&amp;gt;&lt;br /&gt;
===Dedicated Servers===&lt;br /&gt;
* Dedicated servers should now be configured using one or more TOML files - web-based config builder is available [https://dedi.alpinefaction.com here]&lt;br /&gt;
* Framerates are now far more consistent, improving the overall play experience&lt;br /&gt;
* You can now configure gameplay rules (including gametype) on a per-level basis&lt;br /&gt;
* You can use the &amp;lt;code&amp;gt;sv_gametype TYPE MAP&amp;lt;/code&amp;gt; command to change the gametype on your server at any time. TYPE is a gametype abbreviation (i.e. CTF, KOTH, etc.) and MAP is a level filename.&lt;br /&gt;
* Much more useful information is now displayed when new players join your server, and when you run the &amp;lt;code&amp;gt;info&amp;lt;/code&amp;gt; command&lt;br /&gt;
* You can now use the &amp;lt;code&amp;gt;sv_restrict_status&amp;lt;/code&amp;gt; command to display the current client restriction status on the current level, with the current ruleset&lt;br /&gt;
* Clients are now restricted from voting if they are not able to play in your server.&lt;br /&gt;
* Server console now displays attempted joins that were rejected, and the reason for the rejection (e.g. &amp;quot;between levels&amp;quot;, &amp;quot;data incompatible&amp;quot;, etc.)&lt;br /&gt;
* Server console now alerts on failed &amp;lt;code&amp;gt;rcon_request&amp;lt;/code&amp;gt; attempts&lt;br /&gt;
* Vote config now supports &amp;quot;Ignore nonvoters&amp;quot; as an option&lt;br /&gt;
* &amp;lt;code&amp;gt;sv_loadconfig&amp;lt;/code&amp;gt; can be used to reload your server config (after you made changes to the files) without needing a server restart&lt;br /&gt;
* &amp;lt;code&amp;gt;sv_printconfig&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;sv_printrules&amp;lt;/code&amp;gt; can be used to display server information at any time&lt;br /&gt;
* &amp;lt;code&amp;gt;-min&amp;lt;/code&amp;gt; can be used on the command line to have your server console display only the minimum amount of information required&lt;br /&gt;
* &amp;lt;code&amp;gt;-log&amp;lt;/code&amp;gt; can be used to log all server console output to a log file in &amp;lt;code&amp;gt;RedFaction/logs&amp;lt;/code&amp;gt;&lt;br /&gt;
* If you run bots in your server, you can use &amp;lt;code&amp;gt;bot_shared_secret&amp;lt;/code&amp;gt; to ensure your bots are properly handled by your server (no spawning after ideal player count reached, exclude from votes, etc.)&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* You can now make maps for all of the new gametypes. For info on how to create control points (for KOTH, DC, REV, and ESC), see [[Mapping with Control Points]]&lt;br /&gt;
* &amp;quot;Play in multi (camera)&amp;quot; added to top toolbar&lt;br /&gt;
* F9 (Play in multi) and F10 (Play in multi (camera)) hotkeys added&lt;br /&gt;
* Playing in multi from RED will now launch on the correct gametype (based on map filename prefix)&lt;br /&gt;
* You can now link to multiple objects at once. When you select multiple objects and press &amp;quot;K&amp;quot;, the first object you selected will be linked to all other object you have selected.&lt;br /&gt;
* Respawn points can now be toggled on/off with the Respawn_Point_State event, and the associated team changed with the Modify_Respawn_Point event&lt;br /&gt;
* New settings in Level Properties&lt;br /&gt;
** &amp;quot;Legacy Cyclic_Timers&amp;quot; - If false, Cyclic_Timer events no longer double trigger on their first activation&lt;br /&gt;
** &amp;quot;Legacy movers&amp;quot; - If false, use new Alpine Faction mover functionality: fixed low velocity movers not working, fixed travel and ramp time calculations, fixed &amp;quot;Force Orient&amp;quot;, fixed &amp;quot;Lift&amp;quot; movement type, fixed &amp;quot;Ping Pong Infinite&amp;quot;/&amp;quot;Loop Once&amp;quot;/&amp;quot;Loop Infinite&amp;quot; movement types for rotating movers&lt;br /&gt;
** &amp;quot;Player starts with headlamp&amp;quot; - If false, do not allow the player to use the headlamp (until allowed via Set_Gameplay_Rule event)&lt;br /&gt;
** &amp;quot;Override static mesh ambient light scale&amp;quot; - If true, use the specified scale value. If false, use stock game behaviour (2.0 for SP, 3.2 for MP).&lt;br /&gt;
* New events&lt;br /&gt;
** Capture_Point_Handler&lt;br /&gt;
** Respawn_Point_State&lt;br /&gt;
** Modify_Respawn_Point&lt;br /&gt;
** When_Captured&lt;br /&gt;
** Set_Capture_Point_Owner&lt;br /&gt;
** Owner_Gate&lt;br /&gt;
** Set_Gameplay_Rule&lt;br /&gt;
&lt;br /&gt;
==[https://www.factionfiles.com/ff.php?action=file&amp;amp;id=8155&amp;amp;viewoldrev=1 Alpine Faction 1.1]==&lt;br /&gt;
* Released 19 Apr 2025&lt;br /&gt;
&lt;br /&gt;
==[https://www.factionfiles.com/ff.php?action=file&amp;amp;id=8085&amp;amp;viewoldrev=1 Alpine Faction 1.0]==&lt;br /&gt;
* Released 25 Jan 2025&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
* [[Alpine Faction Information]]&lt;br /&gt;
* [[Link Alpine Faction to a FactionFiles Account|How to Link Alpine Faction to your FactionFiles Account]]&lt;br /&gt;
* [[Red_Faction_Console_Commands#Alpine_Faction|Alpine Faction Console Commands]]&lt;br /&gt;
* [[Alpine Faction Level Design|Alpine Faction Level Design Information]]&lt;br /&gt;
* [[Alpine Faction Mod Development|Alpine Faction Mod Development Information]]&lt;br /&gt;
* [[Alpine Faction Dedicated Server Config]]&lt;br /&gt;
* [[Red_Faction_Command_Line_Parameters#Alpine_Faction|Alpine Faction Command Line Parameters]]&lt;br /&gt;
 &lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: Alpine Faction]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_Release_Highlights&amp;diff=15162</id>
		<title>Alpine Faction Release Highlights</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_Release_Highlights&amp;diff=15162"/>
		<updated>2026-04-17T14:08:43Z</updated>

		<summary type="html">&lt;p&gt;Goober: add 1.3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:Alpinelogo1.png|center]]&lt;br /&gt;
{|&lt;br /&gt;
|{{AlpineInstallDiscord|Click here to join the FactionFiles Community Discord|If you have any questions or concerns, please join the '''FactionFiles Community Discord''' for assistance. The FactionFiles Discord is also the place to go to participate in organized community game night events, and get help with anything else related to the Red Faction series.}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below are the most important highlights from each major [https://alpinefaction.com Alpine Faction] release. This page assumes you are already familiar with Red Faction, and prior versions of Alpine Faction, and is intended just as a &amp;quot;quick start guide&amp;quot; to summarize key features for each release.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT: This is not an exhaustive changelog!'''&lt;br /&gt;
&lt;br /&gt;
This page only has what I feel are the most important aspects of each release. For a full changelog at any given time, visit [https://github.com/GooberRF/alpinefaction/blob/master/docs/CHANGELOG.md CHANGELOG.md] on the Alpine Faction repository.&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.3.0==&lt;br /&gt;
* Release coming soon&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer is now recommended. High level list of D3D11 renderer improvements:&lt;br /&gt;
** Add GPU accelerated realtime per-pixel lighting for meshes&lt;br /&gt;
** Add full mesh shadows for entities, corpses, and items&lt;br /&gt;
** Support for the gamma video setting&lt;br /&gt;
** Fix &amp;quot;P2T fix&amp;quot; not working properly&lt;br /&gt;
** Fix impact decals not rendering correctly at distance&lt;br /&gt;
** Fix hard cutoff lines on fullbright gradient alpha textures&lt;br /&gt;
** Fix mirror and security monitor textures not being properly self-illuminated&lt;br /&gt;
===General===&lt;br /&gt;
* Revamp FactionFiles link client functionality to be much more user friendly&lt;br /&gt;
* Add speedometer to HUD&lt;br /&gt;
* Add raw/modern (id Tech/Source-style) mouse input scaling&lt;br /&gt;
* Fix first person weapon running animations&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
* Add server-controlled advanced multiplayer bots&lt;br /&gt;
** Add in-game waypoint file editor&lt;br /&gt;
** Add FactionFiles autodownloader support for waypoint files in custom maps&lt;br /&gt;
* Revamp FactionFiles autodownloader user interface when downloading new maps&lt;br /&gt;
* Add player outlines (D3D11 only)&lt;br /&gt;
* Fix third person footsteps&lt;br /&gt;
* Show server client information on server list&lt;br /&gt;
* Split kill feed from chat box (enable with &amp;quot;ui_gamefeed&amp;quot; console command)&lt;br /&gt;
* Many spectator mode improvements&lt;br /&gt;
** Improved UX for toggling between spectator modes&lt;br /&gt;
** Powerup icons, damage flash, crouch state, rail scanner, and first person weapon animation support in first person spectate&lt;br /&gt;
** Hitsounds and kill feed in first person spectate now apply for the player being spectated&lt;br /&gt;
===Dedicated Servers===&lt;br /&gt;
* Add FactionFiles autodownloader support by default for all levels in server rotation (disable with &amp;quot;-nodl&amp;quot; switch)&lt;br /&gt;
* Support rcon profiles (ACLs)&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* Expanded destruction capabilities available to developers&lt;br /&gt;
** RF2-style (brush-based) geomod&lt;br /&gt;
** Support for non-glass material breakable detail brushes&lt;br /&gt;
** Dynamic debris generation from breakable detail brushes&lt;br /&gt;
** Support breakable detail brushes using ngons&lt;br /&gt;
* New object types: Mesh, Corona, Note&lt;br /&gt;
* Add support for Gas Regions (D3D11 only)&lt;br /&gt;
* Many new events&lt;br /&gt;
* Mirror functions to level editor for brushes and groups&lt;br /&gt;
* Convert brushes to meshes in-editor&lt;br /&gt;
* Several new face/vertex mode operators&lt;br /&gt;
* Support custom texture subcategories (subdirectories)&lt;br /&gt;
* Support loading new textures/meshes (via tools menu - &amp;quot;Reload Textures&amp;quot;, &amp;quot;Reload Meshes&amp;quot;)&lt;br /&gt;
* Fix UV Unwrap window breaking when launching a fullscreen D3D application&lt;br /&gt;
* Fix autosave sometimes making brushes/objects teleport during a rotation&lt;br /&gt;
* Do not fail to create level packfile (ie. 0KB vpp) when assets are missing&lt;br /&gt;
* Include textures, meshes, and animations used in level automatically when creating level packfile&lt;br /&gt;
* New Select Objects and Hide Objects windows with UX improvements&lt;br /&gt;
* &amp;quot;To Mesh Object&amp;quot; button (in Select Objects) to convert clutter to mesh/corona&lt;br /&gt;
* Raised stock limits&lt;br /&gt;
** Lights on a single face: 64 -&amp;gt; 1024&lt;br /&gt;
** Lights per level: 1100 -&amp;gt; 8192&lt;br /&gt;
** Detail rooms: 256 -&amp;gt; 8192&lt;br /&gt;
** Geo cache face list: 16384 -&amp;gt; 65536, batch count: 512 -&amp;gt; 1024, memory pool: 8MB -&amp;gt; 32MB&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.2.2==&lt;br /&gt;
* Released 04 Jan 2026&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer improvements&lt;br /&gt;
** Add dynamic light glows from explosions&lt;br /&gt;
** Add dynamic light glows from burning entities&lt;br /&gt;
** Fix crash when very complex levels are loaded&lt;br /&gt;
===Single Player===&lt;br /&gt;
* Fix crash when gibbing corpses&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* New &amp;lt;code&amp;gt;When_Round_Ends&amp;lt;/code&amp;gt; event&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.2.1==&lt;br /&gt;
* Released 30 Dec 2025&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
* Scoreboard is now split into sections as configured by the user. By default, spectators and browsers are split out from all other clients.&lt;br /&gt;
* Gibbing is now supported in multiplayer&lt;br /&gt;
* Reticles, damage notification numbers, and player labels can now be scaled using &amp;lt;code&amp;gt;ui_scale_&amp;lt;/code&amp;gt; console commands&lt;br /&gt;
* Reticles can now be colored using the &amp;lt;code&amp;gt;ui_color_reticle&amp;lt;/code&amp;gt; console command&lt;br /&gt;
* FPS/ping display is improved&lt;br /&gt;
* Free look spectate mode now persist through level loads&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer improvements&lt;br /&gt;
** Anti-aliasing can now be selected in the launcher options panel&lt;br /&gt;
** Max dynamic lights 8 -&amp;gt; 32 (now matches D3D9)&lt;br /&gt;
** Fixed multiple instances of a single static mesh sharing lighting data&lt;br /&gt;
** Rotating skyboxes now supported&lt;br /&gt;
** Ambient lighting of third person weapon models held by entities now supported&lt;br /&gt;
** Dynamic lights fixed (previously were far too dim)&lt;br /&gt;
** Rocket Launcher/Fusion IR scanner now renders properly&lt;br /&gt;
===Dedicated Servers===&lt;br /&gt;
* Legacy &amp;lt;code&amp;gt;dedicated_server.txt&amp;lt;/code&amp;gt; config method has now been removed, ADS TOML-based configs should be used instead&lt;br /&gt;
* Gibbing can be configured and customized by the server&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* Enlarged UV unwrap workspace&lt;br /&gt;
* &amp;lt;code&amp;gt;Ctrl + K&amp;lt;/code&amp;gt; can now be used to create links between selected objects in the opposite direction from the normal &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; hotkey&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.2==&lt;br /&gt;
* Released 06 Dec 2025&lt;br /&gt;
===General===&lt;br /&gt;
* Suppress autoswitch bind, &amp;lt;code&amp;gt;cl_autoswitchfirewait&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;cl_autoswitchempty&amp;lt;/code&amp;gt; can be used to customize autoswitch behaviour&lt;br /&gt;
* &amp;lt;code&amp;gt;sp_exposuredamage&amp;lt;/code&amp;gt; or the associated option in the advanced options menu can be used to turn off the &amp;quot;take damage when outside&amp;quot; mechanic in single player&lt;br /&gt;
* &amp;lt;code&amp;gt;-afs FILENAME&amp;lt;/code&amp;gt; can be used on the command line to specify a particular ini file to use instead of alpine_settings.ini. Allows players to manage multiple config files launched via different shortcuts&lt;br /&gt;
* You can now use the scroll wheel to scroll through lists in the menus&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
* New gametypes&lt;br /&gt;
** King of the Hill (KOTH)&lt;br /&gt;
** Damage Control (DC)&lt;br /&gt;
** Revolt (REV)&lt;br /&gt;
** Escalation (ESC)&lt;br /&gt;
** Run (RUN)&lt;br /&gt;
* Servers can now configure gametype and most other server settings on a per-level basis. Servers can run multiple gametypes in the same rotation seamlessly.&lt;br /&gt;
* Votes to start a match and change the level can now name rule presets (if configured by the server). This means players can vote for the ruleset they want when voting for a match/level.&lt;br /&gt;
* First-person spectate view now shows the spectated player's name with their team colour&lt;br /&gt;
* Chat menus now scale appropriately when &amp;lt;code&amp;gt;bighud&amp;lt;/code&amp;gt; is enabled&lt;br /&gt;
* The &amp;quot;Remote Server Config&amp;quot; bind can be used to display the server's current ruleset and map rotation&lt;br /&gt;
* &amp;lt;code&amp;gt;mp_handicap&amp;lt;/code&amp;gt; can be used to impose a damage reduction handicap on yourself&lt;br /&gt;
* You can now call gametype votes using &amp;lt;code&amp;gt;vote gametype TYPE MAP&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;vote gt TYPE MAP&amp;lt;/code&amp;gt;, where TYPE is a gametype abbreviation (i.e. CTF, KOTH, etc.) and MAP is a level filename.&lt;br /&gt;
* &amp;quot;One minute remaining&amp;quot; and other countdown sounds will now play a second time if the time is extended after they play (like due to overtime)&lt;br /&gt;
* &amp;quot;Winner&amp;quot; and &amp;quot;Game Over&amp;quot; at the end of the map fixed&lt;br /&gt;
* Scoreboard now identifies players as alive, dead, idle, bot, spectator, browser&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer improvements&lt;br /&gt;
** Colorblind mode rendering filter (&amp;lt;code&amp;gt;r_colorblind&amp;lt;/code&amp;gt;)&lt;br /&gt;
** Improved skybox rendering&lt;br /&gt;
** Picmip (&amp;lt;code&amp;gt;r_picmip&amp;lt;/code&amp;gt;)&lt;br /&gt;
** Vertex lighting for meshes&lt;br /&gt;
** Dynamic lighting for meshes and movers&lt;br /&gt;
** Support &amp;lt;code&amp;gt;r_fullbright&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;r_lightmaps&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;r_nearest&amp;lt;/code&amp;gt;&lt;br /&gt;
===Dedicated Servers===&lt;br /&gt;
* Dedicated servers should now be configured using one or more TOML files - web-based config builder is available [https://dedi.alpinefaction.com here]&lt;br /&gt;
* Framerates are now far more consistent, improving the overall play experience&lt;br /&gt;
* You can now configure gameplay rules (including gametype) on a per-level basis&lt;br /&gt;
* You can use the &amp;lt;code&amp;gt;sv_gametype TYPE MAP&amp;lt;/code&amp;gt; command to change the gametype on your server at any time. TYPE is a gametype abbreviation (i.e. CTF, KOTH, etc.) and MAP is a level filename.&lt;br /&gt;
* Much more useful information is now displayed when new players join your server, and when you run the &amp;lt;code&amp;gt;info&amp;lt;/code&amp;gt; command&lt;br /&gt;
* You can now use the &amp;lt;code&amp;gt;sv_restrict_status&amp;lt;/code&amp;gt; command to display the current client restriction status on the current level, with the current ruleset&lt;br /&gt;
* Clients are now restricted from voting if they are not able to play in your server.&lt;br /&gt;
* Server console now displays attempted joins that were rejected, and the reason for the rejection (e.g. &amp;quot;between levels&amp;quot;, &amp;quot;data incompatible&amp;quot;, etc.)&lt;br /&gt;
* Server console now alerts on failed &amp;lt;code&amp;gt;rcon_request&amp;lt;/code&amp;gt; attempts&lt;br /&gt;
* Vote config now supports &amp;quot;Ignore nonvoters&amp;quot; as an option&lt;br /&gt;
* &amp;lt;code&amp;gt;sv_loadconfig&amp;lt;/code&amp;gt; can be used to reload your server config (after you made changes to the files) without needing a server restart&lt;br /&gt;
* &amp;lt;code&amp;gt;sv_printconfig&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;sv_printrules&amp;lt;/code&amp;gt; can be used to display server information at any time&lt;br /&gt;
* &amp;lt;code&amp;gt;-min&amp;lt;/code&amp;gt; can be used on the command line to have your server console display only the minimum amount of information required&lt;br /&gt;
* &amp;lt;code&amp;gt;-log&amp;lt;/code&amp;gt; can be used to log all server console output to a log file in &amp;lt;code&amp;gt;RedFaction/logs&amp;lt;/code&amp;gt;&lt;br /&gt;
* If you run bots in your server, you can use &amp;lt;code&amp;gt;bot_shared_secret&amp;lt;/code&amp;gt; to ensure your bots are properly handled by your server (no spawning after ideal player count reached, exclude from votes, etc.)&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* You can now make maps for all of the new gametypes. For info on how to create control points (for KOTH, DC, REV, and ESC), see [[Mapping with Control Points]]&lt;br /&gt;
* &amp;quot;Play in multi (camera)&amp;quot; added to top toolbar&lt;br /&gt;
* F9 (Play in multi) and F10 (Play in multi (camera)) hotkeys added&lt;br /&gt;
* Playing in multi from RED will now launch on the correct gametype (based on map filename prefix)&lt;br /&gt;
* You can now link to multiple objects at once. When you select multiple objects and press &amp;quot;K&amp;quot;, the first object you selected will be linked to all other object you have selected.&lt;br /&gt;
* Respawn points can now be toggled on/off with the Respawn_Point_State event, and the associated team changed with the Modify_Respawn_Point event&lt;br /&gt;
* New settings in Level Properties&lt;br /&gt;
** &amp;quot;Legacy Cyclic_Timers&amp;quot; - If false, Cyclic_Timer events no longer double trigger on their first activation&lt;br /&gt;
** &amp;quot;Legacy movers&amp;quot; - If false, use new Alpine Faction mover functionality: fixed low velocity movers not working, fixed travel and ramp time calculations, fixed &amp;quot;Force Orient&amp;quot;, fixed &amp;quot;Lift&amp;quot; movement type, fixed &amp;quot;Ping Pong Infinite&amp;quot;/&amp;quot;Loop Once&amp;quot;/&amp;quot;Loop Infinite&amp;quot; movement types for rotating movers&lt;br /&gt;
** &amp;quot;Player starts with headlamp&amp;quot; - If false, do not allow the player to use the headlamp (until allowed via Set_Gameplay_Rule event)&lt;br /&gt;
** &amp;quot;Override static mesh ambient light scale&amp;quot; - If true, use the specified scale value. If false, use stock game behaviour (2.0 for SP, 3.2 for MP).&lt;br /&gt;
* New events&lt;br /&gt;
** Capture_Point_Handler&lt;br /&gt;
** Respawn_Point_State&lt;br /&gt;
** Modify_Respawn_Point&lt;br /&gt;
** When_Captured&lt;br /&gt;
** Set_Capture_Point_Owner&lt;br /&gt;
** Owner_Gate&lt;br /&gt;
** Set_Gameplay_Rule&lt;br /&gt;
&lt;br /&gt;
==[https://www.factionfiles.com/ff.php?action=file&amp;amp;id=8155&amp;amp;viewoldrev=1 Alpine Faction 1.1]==&lt;br /&gt;
* Released 19 Apr 2025&lt;br /&gt;
&lt;br /&gt;
==[https://www.factionfiles.com/ff.php?action=file&amp;amp;id=8085&amp;amp;viewoldrev=1 Alpine Faction 1.0]==&lt;br /&gt;
* Released 25 Jan 2025&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
* [[Alpine Faction Information]]&lt;br /&gt;
* [[Link Alpine Faction to a FactionFiles Account|How to Link Alpine Faction to your FactionFiles Account]]&lt;br /&gt;
* [[Red_Faction_Console_Commands#Alpine_Faction|Alpine Faction Console Commands]]&lt;br /&gt;
* [[Alpine Faction Level Design|Alpine Faction Level Design Information]]&lt;br /&gt;
* [[Alpine Faction Mod Development|Alpine Faction Mod Development Information]]&lt;br /&gt;
* [[Alpine Faction Dedicated Server Config]]&lt;br /&gt;
* [[Red_Faction_Command_Line_Parameters#Alpine_Faction|Alpine Faction Command Line Parameters]]&lt;br /&gt;
 &lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: Alpine Faction]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_News_Feed&amp;diff=15161</id>
		<title>Alpine Faction News Feed</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_News_Feed&amp;diff=15161"/>
		<updated>2026-04-17T13:39:53Z</updated>

		<summary type="html">&lt;p&gt;Goober: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;- Alpine Faction 1.2.2 released: Jan 4, '26&lt;br /&gt;
- RF Game Night 183: Apr 25, '26&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=RF1_Engine_and_Level_Editor_Limits&amp;diff=15160</id>
		<title>RF1 Engine and Level Editor Limits</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=RF1_Engine_and_Level_Editor_Limits&amp;diff=15160"/>
		<updated>2026-04-14T18:21:30Z</updated>

		<summary type="html">&lt;p&gt;Goober: /* Map Limits */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BubbleNav|RF1Modding}}&lt;br /&gt;
This page lists all known limitations of the GeoMod engine and maps built using [[RED]] level editor.&lt;br /&gt;
&lt;br /&gt;
==Map Limits==&lt;br /&gt;
* This table lists all known limits that you need to keep in mind when making any type of level.&lt;br /&gt;
* There's no guarantee that your map won't perform poorly or crash for other reasons, even if these limits have not been explicitly exceeded.&lt;br /&gt;
* Please note that only a few of these limits were officially documented by Volition, the rest were discovered through experimentation. It's possible additional limits exist that should be added to this list, we just haven't found them yet.&lt;br /&gt;
* The de facto standard RF server and client version [[Alpine Faction]] removes or increases a number of these limits.&lt;br /&gt;
** In cases where [[Alpine Faction]] and/or [[Dash Faction]] has removed or increased a limit, the default limit is indicated with (RF), and the Alpine and Dash Faction limits are indicated with (AF) and (DF) respectively.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! '''Element'''&lt;br /&gt;
! '''Limit'''&lt;br /&gt;
! '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| [[RED Objects|Objects]]&lt;br /&gt;
| 1024 (RF), 65536 (AF/DF)&lt;br /&gt;
| General limit on total objects - note though that not all object types count toward this limit. Entities, corpses, clutter, items, triggers, events, keyframes, targets, and possibly more, all do.&lt;br /&gt;
|-&lt;br /&gt;
| Corpses&lt;br /&gt;
| 30 (RF), Unlimited (AF/DF)&lt;br /&gt;
| Dead entities in corpse pose. Counts both pre-placed corpses and corpses created by entities dying during gameplay.&lt;br /&gt;
|-&lt;br /&gt;
| Ambient sounds&lt;br /&gt;
| 25&lt;br /&gt;
| Maximum number of ambient sounds that can play simultaneously. Includes both [[RED Objects#Ambient Sound|Ambient Sound objects]] and entity fly sounds as specified by &amp;quot;$FlySnd&amp;quot; in [[entity.tbl]]. When limit is reached, newly created ambient sounds will not play.&lt;br /&gt;
|-&lt;br /&gt;
| Faces/Polygons&lt;br /&gt;
| 10500&lt;br /&gt;
| Counts all polygons on geometry (brushes) in a level. Note that this is a &amp;quot;soft limit&amp;quot;, and nothing bad will necessarily happen simply as a result of exceeding this limit. (the RED console will turn red in color, though)&lt;br /&gt;
|-&lt;br /&gt;
| Face Vertices&lt;br /&gt;
| 50400&lt;br /&gt;
| Note that this is a &amp;quot;soft limit&amp;quot;, and nothing bad will necessarily happen simply as a result of exceeding this limit. (the RED console will turn red in color, though)&lt;br /&gt;
|-&lt;br /&gt;
| Vertices&lt;br /&gt;
| 13650&lt;br /&gt;
| Counts all vertices on geometry (brushes) in a level. Note that this is a &amp;quot;soft limit&amp;quot;, and nothing bad will necessarily happen simply as a result of exceeding this limit. (the RED console will turn red in color, though)&lt;br /&gt;
|-&lt;br /&gt;
| [[RED Objects#Light|Lights]]&lt;br /&gt;
| 1100&lt;br /&gt;
| RED will crash if this limit is exceeded.&lt;br /&gt;
|-&lt;br /&gt;
| Lights on a surface&lt;br /&gt;
| 64&lt;br /&gt;
| If more than 64 lights are attempting to illuminate a single surface, that surface will turn pink. You can fix this by reducing the number of lights affecting the surface, or breaking up the surface so it's more than a single lightmap. Note that coplanar faces are merged together at build time to form a single surface, so if you're attempting to break it up for this reason, you must either use portals, or create a minor change in elevation. Also note that the true area of effect for a spotlight is based up on the range being used to determine the diameter (diameter = range X 2).&lt;br /&gt;
|-&lt;br /&gt;
| [[RED Objects#Item|Items]]&lt;br /&gt;
| 200&lt;br /&gt;
| Includes pickups, CTF flags/bases, CTF banners, etc. If you exceed 200 items, the game will stop creating them after the 200th. Dropped items by killed players/AI also count as objects, but don't count toward the 200 item limit.&lt;br /&gt;
|-&lt;br /&gt;
| [[RED Objects#Multiplayer Respawn Point|Multiplayer Respawn Points]]&lt;br /&gt;
| 32&lt;br /&gt;
| If you exceed 32 multiplayer respawn points, the game will ignore any beyond the 32nd.&lt;br /&gt;
|-&lt;br /&gt;
| [[RED Objects#Particle Emitter|Particle Emitters]]&lt;br /&gt;
| 128&lt;br /&gt;
| If you exceed 128 particle emitters, your level file will become corrupt.&lt;br /&gt;
|-&lt;br /&gt;
| Green/red boxes around switches&lt;br /&gt;
| 32&lt;br /&gt;
| If you have more than 32 switches in your map that should have green/red boxes, the box will only appear for 32 of them (the others will continue to function properly, just without the visible box).&lt;br /&gt;
|-&lt;br /&gt;
| Total [[RED Objects#Decal|Decals]] in a level&lt;br /&gt;
| 96/128 (RF), 384/512 (AF/DF)&lt;br /&gt;
| *Hard limit is absolute maximum number of decals. Soft limit is the limit after which decals begin to fade away. For decal objects placed in the editor, decals will stop being created after soft limit, and you risk level file corruption if you exceed hard limit.&amp;lt;br /&amp;gt;*For total number of decals, stock game has 96 soft limit, 128 hard limit. AF and DF have 384 soft limit, 512 hard limit.&amp;lt;br /&amp;gt;*Additional limits:&amp;lt;br /&amp;gt;**Total decals in a single room: 40/48 (RF), 96/127 (AF/DF)&amp;lt;br /&amp;gt;**Total weapon impact decals: 14/16 (RF), 48/64 (AF/DF)&amp;lt;br /&amp;gt;**Total GeoMod decals: 30/32 (RF), 96/127 (AF/DF)&amp;lt;br /&amp;gt;**Total decals on solids: 40/48 (RF), 96/127 (AF/DF)&amp;lt;br /&amp;gt;*In the default [[RED]] editor (non-Alpine), you'll get a pop-up warning when saving your level if it contains &amp;gt;64 decal objects. This was a hard limit for PS2 maps.&lt;br /&gt;
|-&lt;br /&gt;
| Killable objects&lt;br /&gt;
| 3200&lt;br /&gt;
| Includes all destructible clutter and mesh objects. Only applies in multiplayer.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Savegame Format Limits==&lt;br /&gt;
* This table lists all limits specific to the savegame file format.&lt;br /&gt;
* If you exceed these limits, your map may still initially load correctly, but players will experience issues when using the savegame system (including quicksaves and autosaves). For this reason, you should ensure any single player maps you create do not exceed these limits.&lt;br /&gt;
* For multiplayer maps, you can effectively ignore this table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! '''Element'''&lt;br /&gt;
! '''Limit'''&lt;br /&gt;
! '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| Goal_Create events&lt;br /&gt;
| 8&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Alarm_Siren events&lt;br /&gt;
| 8&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| When_Dead events&lt;br /&gt;
| 20&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Cyclic_Timer events&lt;br /&gt;
| 12&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Make_Invulnerable events&lt;br /&gt;
| 8&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| All other events with pending resolution&lt;br /&gt;
| 32&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Bolt Emitters&lt;br /&gt;
| 16&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Decals&lt;br /&gt;
| 64&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Entities&lt;br /&gt;
| 64&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Items&lt;br /&gt;
| 64&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Clutter&lt;br /&gt;
| 512&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Triggers&lt;br /&gt;
| 96&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Movers&lt;br /&gt;
| 128&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Push regions&lt;br /&gt;
| 32&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Persistent goals&lt;br /&gt;
| 10&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Weapons&lt;br /&gt;
| 8&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Blood pools&lt;br /&gt;
| 16&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Corpses&lt;br /&gt;
| 32&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Geomod craters&lt;br /&gt;
| 128&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Killed rooms&lt;br /&gt;
| 128&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Deleted events&lt;br /&gt;
| 32&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General Engine Limits==&lt;br /&gt;
* This table lists game and engine limits that aren't specific to any of the other limit categories above.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! '''Element'''&lt;br /&gt;
! '''Limit'''&lt;br /&gt;
! '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| Bullets/Projectiles&lt;br /&gt;
| Unknown (RF), Unlimited (AF/DF)&lt;br /&gt;
| Produced by weapon fire (players and AI). Exists until the $Lifetime value is exceeded, the bullet impacts something, or the projectile explodes.&lt;br /&gt;
|-&lt;br /&gt;
| Loaded Packfiles&lt;br /&gt;
| 256 (RF), Unlimited (AF/DF)&lt;br /&gt;
| Includes all .vpp packfiles loaded by the game. These are used to store custom maps, clientside mods, etc. Without AF or DF, the game will ignore any .vpp packfiles after the 256th.&lt;br /&gt;
|-&lt;br /&gt;
| Files within Packfiles&lt;br /&gt;
| 13500 (RF), Unlimited (AF/DF)&lt;br /&gt;
| Includes all files within all .vpp packfiles loaded by the game. Without AF or DF, the game will stop loading files in packfiles after the 13500th.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''Element'''&lt;br /&gt;
|'''Object'''&lt;br /&gt;
|'''Specific Limit'''&lt;br /&gt;
|'''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects|Objects]]&lt;br /&gt;
| ---&lt;br /&gt;
|1024 (RF), 65536 (AF/DF)&lt;br /&gt;
|Elements with &amp;quot;Yes&amp;quot; in the &amp;quot;Object&amp;quot; column all count toward this limit. Some objects also have their own specific limits.&lt;br /&gt;
|-&lt;br /&gt;
|Bullets/Projectiles&lt;br /&gt;
|Yes&lt;br /&gt;
|Unknown (RF), Unlimited (AF/DF)&lt;br /&gt;
|Produced by weapon fire (players and AI). Exists until the $Lifetime value is exceeded, the bullet impacts something, or the projectile explodes.&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Entity|Entities]]&lt;br /&gt;
|Yes&lt;br /&gt;
|64*&lt;br /&gt;
|Includes all players (multiplayer), vehicles, AI, cameras, and turrets. *Limit is not on the number of entities, but rather the number of entities that can be saved in savegame files. If you're mapping for multiplayer, this isn't a concern.&lt;br /&gt;
|-&lt;br /&gt;
|Corpses&lt;br /&gt;
|Yes&lt;br /&gt;
|30 (RF), Unlimited (AF/DF)&lt;br /&gt;
|Dead entities in corpse pose. Counts both pre-placed corpses and corpses created by entities dying during gameplay.&lt;br /&gt;
|-&lt;br /&gt;
|Faces/Polygons&lt;br /&gt;
|No&lt;br /&gt;
|10500&lt;br /&gt;
|Counts all polygons on geometry (brushes) in a level. Note that this is a &amp;quot;soft limit&amp;quot;, and nothing bad will necessarily happen simply as a result of exceeding this limit. (the RED console will turn red in color, though)&lt;br /&gt;
|-&lt;br /&gt;
|Face Vertices&lt;br /&gt;
|No&lt;br /&gt;
|50400&lt;br /&gt;
|Note that this is a &amp;quot;soft limit&amp;quot;, and nothing bad will necessarily happen simply as a result of exceeding this limit. (the RED console will turn red in color, though)&lt;br /&gt;
|-&lt;br /&gt;
|Vertices&lt;br /&gt;
|No&lt;br /&gt;
|13650&lt;br /&gt;
|Counts all vertices on geometry (brushes) in a level. Note that this is a &amp;quot;soft limit&amp;quot;, and nothing bad will necessarily happen simply as a result of exceeding this limit. (the RED console will turn red in color, though)&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Light|Lights]]&lt;br /&gt;
|No&lt;br /&gt;
|1100&lt;br /&gt;
|RED will crash if this limit is exceeded.&lt;br /&gt;
|-&lt;br /&gt;
|Lights on a face&lt;br /&gt;
|No&lt;br /&gt;
|64&lt;br /&gt;
|If more than 64 lights are attempting to illuminate a single face, that face will turn pink. You can fix this by reducing the number of lights affecting the face, or breaking up the face so it's more than a single lightmap. Note that coplanar faces are merged together at build time, so if you're attempting to break up a face for this reason, you must either use portals, or create a minor change in elevation. Also note that the true area of effect for a spotlight is based up on the range being used to determine the diameter (diameter = range X 2). &lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Clutter|Clutter]]&lt;br /&gt;
|Yes&lt;br /&gt;
|512*&lt;br /&gt;
|Includes light fixtures, furniture, etc. *Limit is not on the number of clutter objects, but rather the number of them that can be saved in savegame files. If you're mapping for multiplayer, this isn't a concern.&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Item|Items]]&lt;br /&gt;
|Yes&lt;br /&gt;
|200&lt;br /&gt;
|Includes pickups, CTF flags/bases, CTF banners, etc. If you exceed 200 items, the game will stop creating them after the 200th. Dropped items by killed players/AI also count as objects, but don't count toward the 200 item limit.&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Multiplayer Respawn Point|Multiplayer Respawn Points]]&lt;br /&gt;
|No&lt;br /&gt;
|32&lt;br /&gt;
|If you exceed 32 multiplayer respawn points, the game will ignore any beyond the 32nd.&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Particle Emitter|Particle Emitters]]&lt;br /&gt;
|No&lt;br /&gt;
|128&lt;br /&gt;
|If you exceed 128 particle emitters, your level file will become corrupt.&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Triggers|Triggers]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Unknown&lt;br /&gt;
|Includes Trigger Door, Trigger Auto, and Trigger Event.&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Events|Events]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Unknown&lt;br /&gt;
|Includes all types of events.&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Keyframe|Keyframes]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Unknown&lt;br /&gt;
|Includes each keyframe object, silver and gold alike.&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Target|Targets]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Unknown&lt;br /&gt;
|Target objects - primarily used for cutscene cameras and bolt emitters.&lt;br /&gt;
|-&lt;br /&gt;
|Loaded Packfiles&lt;br /&gt;
|No&lt;br /&gt;
|256 (RF), Unlimited (AF/DF)&lt;br /&gt;
|Includes all .vpp packfiles loaded by the game. These are used to store custom maps, clientside mods, etc. Without AF or DF, the game will ignore any .vpp packfiles after the 256th.&lt;br /&gt;
|-&lt;br /&gt;
|Files within Packfiles&lt;br /&gt;
|No&lt;br /&gt;
|13500 (RF), Unlimited (AF/DF)&lt;br /&gt;
|Includes all files within all .vpp packfiles loaded by the game. Without AF or DF, the game will stop loading files in packfiles after the 13500th.&lt;br /&gt;
|-&lt;br /&gt;
|Total [[RED Objects#Decal|Decals]] in a level&lt;br /&gt;
|No&lt;br /&gt;
|96/128 (RF), 384/512 (AF/DF)&lt;br /&gt;
|&lt;br /&gt;
*Hard limit is absolute maximum number of decals. Soft limit is the limit after which decals begin to fade away. For decal objects placed in the editor, decals will stop being created after soft limit, and you risk level file corruption if you exceed hard limit.&lt;br /&gt;
*For total number of decals, stock game has 96 soft limit, 128 hard limit. AF and DF have 384 soft limit, 512 hard limit.&lt;br /&gt;
*Additional limits:&lt;br /&gt;
**Total decals in a single room: 40/48 (RF), 96/127 (AF/DF)&lt;br /&gt;
**Total weapon impact decals: 14/16 (RF), 48/64 (AF/DF)&lt;br /&gt;
**Total GeoMod decals: 30/32 (RF), 96/127 (AF/DF)&lt;br /&gt;
**Total decals on solids: 40/48 (RF), 96/127 (AF/DF)&lt;br /&gt;
*In the default [[RED]] editor (non-Alpine), you'll get a pop-up warning when saving your level if it contains &amp;gt;64 decal objects. This was a hard limit for PS2 maps.&lt;br /&gt;
|-&lt;br /&gt;
|}---&amp;gt;&lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: RF1 Editing]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=RF1_Engine_and_Level_Editor_Limits&amp;diff=15159</id>
		<title>RF1 Engine and Level Editor Limits</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=RF1_Engine_and_Level_Editor_Limits&amp;diff=15159"/>
		<updated>2026-04-14T18:21:14Z</updated>

		<summary type="html">&lt;p&gt;Goober: /* Map Limits */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BubbleNav|RF1Modding}}&lt;br /&gt;
This page lists all known limitations of the GeoMod engine and maps built using [[RED]] level editor.&lt;br /&gt;
&lt;br /&gt;
==Map Limits==&lt;br /&gt;
* This table lists all known limits that you need to keep in mind when making any type of level.&lt;br /&gt;
* There's no guarantee that your map won't perform poorly or crash for other reasons, even if these limits have not been explicitly exceeded.&lt;br /&gt;
* Please note that only a few of these limits were officially documented by Volition, the rest were discovered through experimentation. It's possible additional limits exist that should be added to this list, we just haven't found them yet.&lt;br /&gt;
* The de facto standard RF server and client version [[Alpine Faction]] removes or increases a number of these limits.&lt;br /&gt;
** In cases where [[Alpine Faction]] and/or [[Dash Faction]] has removed or increased a limit, the default limit is indicated with (RF), and the Alpine and Dash Faction limits are indicated with (AF) and (DF) respectively.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! '''Element'''&lt;br /&gt;
! '''Limit'''&lt;br /&gt;
! '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| [[RED Objects|Objects]]&lt;br /&gt;
| 1024 (RF), 65536 (AF/DF)&lt;br /&gt;
| General limit on total objects - note though that not all object types count toward this limit. Entities, corpses, clutter, items, triggers, events, keyframes, targets, and possibly more, all do.&lt;br /&gt;
|-&lt;br /&gt;
| Corpses&lt;br /&gt;
| 30 (RF), Unlimited (AF/DF)&lt;br /&gt;
| Dead entities in corpse pose. Counts both pre-placed corpses and corpses created by entities dying during gameplay.&lt;br /&gt;
|-&lt;br /&gt;
| Ambient sounds&lt;br /&gt;
| 25&lt;br /&gt;
| Maximum number of ambient sounds that can play simultaneously. Includes both [[RED Objects#Ambient Sound|Ambient Sound objects]] and entity fly sounds as specified by &amp;quot;$FlySnd&amp;quot; in [[entity.tbl]]. When limit is reached, newly created ambient sounds will not play.&lt;br /&gt;
|-&lt;br /&gt;
| Faces/Polygons&lt;br /&gt;
| 10500&lt;br /&gt;
| Counts all polygons on geometry (brushes) in a level. Note that this is a &amp;quot;soft limit&amp;quot;, and nothing bad will necessarily happen simply as a result of exceeding this limit. (the RED console will turn red in color, though)&lt;br /&gt;
|-&lt;br /&gt;
| Face Vertices&lt;br /&gt;
| 50400&lt;br /&gt;
| Note that this is a &amp;quot;soft limit&amp;quot;, and nothing bad will necessarily happen simply as a result of exceeding this limit. (the RED console will turn red in color, though)&lt;br /&gt;
|-&lt;br /&gt;
| Vertices&lt;br /&gt;
| 13650&lt;br /&gt;
| Counts all vertices on geometry (brushes) in a level. Note that this is a &amp;quot;soft limit&amp;quot;, and nothing bad will necessarily happen simply as a result of exceeding this limit. (the RED console will turn red in color, though)&lt;br /&gt;
|-&lt;br /&gt;
| [[RED Objects#Light|Lights]]&lt;br /&gt;
| 1100&lt;br /&gt;
| RED will crash if this limit is exceeded.&lt;br /&gt;
|-&lt;br /&gt;
| Lights on a surface&lt;br /&gt;
| 64&lt;br /&gt;
| If more than 64 lights are attempting to illuminate a single surface, that surface will turn pink. You can fix this by reducing the number of lights affecting the surface, or breaking up the surface so it's more than a single lightmap. Note that coplanar faces are merged together at build time to form a single surface, so if you're attempting to break it up for this reason, you must either use portals, or create a minor change in elevation. Also note that the true area of effect for a spotlight is based up on the range being used to determine the diameter (diameter = range X 2).&lt;br /&gt;
|-&lt;br /&gt;
| [[RED Objects#Item|Items]]&lt;br /&gt;
| 200&lt;br /&gt;
| Includes pickups, CTF flags/bases, CTF banners, etc. If you exceed 200 items, the game will stop creating them after the 200th. Dropped items by killed players/AI also count as objects, but don't count toward the 200 item limit.&lt;br /&gt;
|-&lt;br /&gt;
| [[RED Objects#Multiplayer Respawn Point|Multiplayer Respawn Points]]&lt;br /&gt;
| 32&lt;br /&gt;
| If you exceed 32 multiplayer respawn points, the game will ignore any beyond the 32nd.&lt;br /&gt;
|-&lt;br /&gt;
| [[RED Objects#Particle Emitter|Particle Emitters]]&lt;br /&gt;
| 128&lt;br /&gt;
| If you exceed 128 particle emitters, your level file will become corrupt.&lt;br /&gt;
|-&lt;br /&gt;
| Green/red boxes around switches&lt;br /&gt;
| 32&lt;br /&gt;
| If you have more than 32 switches in your map that should have green/red boxes, the box will only appear for 32 of them (the others will continue to function properly, just without the visible box).&lt;br /&gt;
|-&lt;br /&gt;
| Total [[RED Objects#Decal|Decals]] in a level&lt;br /&gt;
| 96/128 (RF), 384/512 (AF/DF)&lt;br /&gt;
| *Hard limit is absolute maximum number of decals. Soft limit is the limit after which decals begin to fade away. For decal objects placed in the editor, decals will stop being created after soft limit, and you risk level file corruption if you exceed hard limit.&amp;lt;br /&amp;gt;*For total number of decals, stock game has 96 soft limit, 128 hard limit. AF and DF have 384 soft limit, 512 hard limit.&amp;lt;br /&amp;gt;*Additional limits:&amp;lt;br /&amp;gt;**Total decals in a single room: 40/48 (RF), 96/127 (AF/DF)&amp;lt;br /&amp;gt;**Total weapon impact decals: 14/16 (RF), 48/64 (AF/DF)&amp;lt;br /&amp;gt;**Total GeoMod decals: 30/32 (RF), 96/127 (AF/DF)&amp;lt;br /&amp;gt;**Total decals on solids: 40/48 (RF), 96/127 (AF/DF)&amp;lt;br /&amp;gt;*In the default [[RED]] editor (non-Alpine), you'll get a pop-up warning when saving your level if it contains &amp;gt;64 decal objects. This was a hard limit for PS2 maps.&lt;br /&gt;
| Killable objects&lt;br /&gt;
| 3200&lt;br /&gt;
| Includes all destructible clutter and mesh objects. Only applies in multiplayer.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Savegame Format Limits==&lt;br /&gt;
* This table lists all limits specific to the savegame file format.&lt;br /&gt;
* If you exceed these limits, your map may still initially load correctly, but players will experience issues when using the savegame system (including quicksaves and autosaves). For this reason, you should ensure any single player maps you create do not exceed these limits.&lt;br /&gt;
* For multiplayer maps, you can effectively ignore this table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! '''Element'''&lt;br /&gt;
! '''Limit'''&lt;br /&gt;
! '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| Goal_Create events&lt;br /&gt;
| 8&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Alarm_Siren events&lt;br /&gt;
| 8&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| When_Dead events&lt;br /&gt;
| 20&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Cyclic_Timer events&lt;br /&gt;
| 12&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Make_Invulnerable events&lt;br /&gt;
| 8&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| All other events with pending resolution&lt;br /&gt;
| 32&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Bolt Emitters&lt;br /&gt;
| 16&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Decals&lt;br /&gt;
| 64&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Entities&lt;br /&gt;
| 64&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Items&lt;br /&gt;
| 64&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Clutter&lt;br /&gt;
| 512&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Triggers&lt;br /&gt;
| 96&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Movers&lt;br /&gt;
| 128&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Push regions&lt;br /&gt;
| 32&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Persistent goals&lt;br /&gt;
| 10&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Weapons&lt;br /&gt;
| 8&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Blood pools&lt;br /&gt;
| 16&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Corpses&lt;br /&gt;
| 32&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Geomod craters&lt;br /&gt;
| 128&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Killed rooms&lt;br /&gt;
| 128&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Deleted events&lt;br /&gt;
| 32&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General Engine Limits==&lt;br /&gt;
* This table lists game and engine limits that aren't specific to any of the other limit categories above.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! '''Element'''&lt;br /&gt;
! '''Limit'''&lt;br /&gt;
! '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| Bullets/Projectiles&lt;br /&gt;
| Unknown (RF), Unlimited (AF/DF)&lt;br /&gt;
| Produced by weapon fire (players and AI). Exists until the $Lifetime value is exceeded, the bullet impacts something, or the projectile explodes.&lt;br /&gt;
|-&lt;br /&gt;
| Loaded Packfiles&lt;br /&gt;
| 256 (RF), Unlimited (AF/DF)&lt;br /&gt;
| Includes all .vpp packfiles loaded by the game. These are used to store custom maps, clientside mods, etc. Without AF or DF, the game will ignore any .vpp packfiles after the 256th.&lt;br /&gt;
|-&lt;br /&gt;
| Files within Packfiles&lt;br /&gt;
| 13500 (RF), Unlimited (AF/DF)&lt;br /&gt;
| Includes all files within all .vpp packfiles loaded by the game. Without AF or DF, the game will stop loading files in packfiles after the 13500th.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''Element'''&lt;br /&gt;
|'''Object'''&lt;br /&gt;
|'''Specific Limit'''&lt;br /&gt;
|'''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects|Objects]]&lt;br /&gt;
| ---&lt;br /&gt;
|1024 (RF), 65536 (AF/DF)&lt;br /&gt;
|Elements with &amp;quot;Yes&amp;quot; in the &amp;quot;Object&amp;quot; column all count toward this limit. Some objects also have their own specific limits.&lt;br /&gt;
|-&lt;br /&gt;
|Bullets/Projectiles&lt;br /&gt;
|Yes&lt;br /&gt;
|Unknown (RF), Unlimited (AF/DF)&lt;br /&gt;
|Produced by weapon fire (players and AI). Exists until the $Lifetime value is exceeded, the bullet impacts something, or the projectile explodes.&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Entity|Entities]]&lt;br /&gt;
|Yes&lt;br /&gt;
|64*&lt;br /&gt;
|Includes all players (multiplayer), vehicles, AI, cameras, and turrets. *Limit is not on the number of entities, but rather the number of entities that can be saved in savegame files. If you're mapping for multiplayer, this isn't a concern.&lt;br /&gt;
|-&lt;br /&gt;
|Corpses&lt;br /&gt;
|Yes&lt;br /&gt;
|30 (RF), Unlimited (AF/DF)&lt;br /&gt;
|Dead entities in corpse pose. Counts both pre-placed corpses and corpses created by entities dying during gameplay.&lt;br /&gt;
|-&lt;br /&gt;
|Faces/Polygons&lt;br /&gt;
|No&lt;br /&gt;
|10500&lt;br /&gt;
|Counts all polygons on geometry (brushes) in a level. Note that this is a &amp;quot;soft limit&amp;quot;, and nothing bad will necessarily happen simply as a result of exceeding this limit. (the RED console will turn red in color, though)&lt;br /&gt;
|-&lt;br /&gt;
|Face Vertices&lt;br /&gt;
|No&lt;br /&gt;
|50400&lt;br /&gt;
|Note that this is a &amp;quot;soft limit&amp;quot;, and nothing bad will necessarily happen simply as a result of exceeding this limit. (the RED console will turn red in color, though)&lt;br /&gt;
|-&lt;br /&gt;
|Vertices&lt;br /&gt;
|No&lt;br /&gt;
|13650&lt;br /&gt;
|Counts all vertices on geometry (brushes) in a level. Note that this is a &amp;quot;soft limit&amp;quot;, and nothing bad will necessarily happen simply as a result of exceeding this limit. (the RED console will turn red in color, though)&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Light|Lights]]&lt;br /&gt;
|No&lt;br /&gt;
|1100&lt;br /&gt;
|RED will crash if this limit is exceeded.&lt;br /&gt;
|-&lt;br /&gt;
|Lights on a face&lt;br /&gt;
|No&lt;br /&gt;
|64&lt;br /&gt;
|If more than 64 lights are attempting to illuminate a single face, that face will turn pink. You can fix this by reducing the number of lights affecting the face, or breaking up the face so it's more than a single lightmap. Note that coplanar faces are merged together at build time, so if you're attempting to break up a face for this reason, you must either use portals, or create a minor change in elevation. Also note that the true area of effect for a spotlight is based up on the range being used to determine the diameter (diameter = range X 2). &lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Clutter|Clutter]]&lt;br /&gt;
|Yes&lt;br /&gt;
|512*&lt;br /&gt;
|Includes light fixtures, furniture, etc. *Limit is not on the number of clutter objects, but rather the number of them that can be saved in savegame files. If you're mapping for multiplayer, this isn't a concern.&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Item|Items]]&lt;br /&gt;
|Yes&lt;br /&gt;
|200&lt;br /&gt;
|Includes pickups, CTF flags/bases, CTF banners, etc. If you exceed 200 items, the game will stop creating them after the 200th. Dropped items by killed players/AI also count as objects, but don't count toward the 200 item limit.&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Multiplayer Respawn Point|Multiplayer Respawn Points]]&lt;br /&gt;
|No&lt;br /&gt;
|32&lt;br /&gt;
|If you exceed 32 multiplayer respawn points, the game will ignore any beyond the 32nd.&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Particle Emitter|Particle Emitters]]&lt;br /&gt;
|No&lt;br /&gt;
|128&lt;br /&gt;
|If you exceed 128 particle emitters, your level file will become corrupt.&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Triggers|Triggers]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Unknown&lt;br /&gt;
|Includes Trigger Door, Trigger Auto, and Trigger Event.&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Events|Events]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Unknown&lt;br /&gt;
|Includes all types of events.&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Keyframe|Keyframes]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Unknown&lt;br /&gt;
|Includes each keyframe object, silver and gold alike.&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Target|Targets]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Unknown&lt;br /&gt;
|Target objects - primarily used for cutscene cameras and bolt emitters.&lt;br /&gt;
|-&lt;br /&gt;
|Loaded Packfiles&lt;br /&gt;
|No&lt;br /&gt;
|256 (RF), Unlimited (AF/DF)&lt;br /&gt;
|Includes all .vpp packfiles loaded by the game. These are used to store custom maps, clientside mods, etc. Without AF or DF, the game will ignore any .vpp packfiles after the 256th.&lt;br /&gt;
|-&lt;br /&gt;
|Files within Packfiles&lt;br /&gt;
|No&lt;br /&gt;
|13500 (RF), Unlimited (AF/DF)&lt;br /&gt;
|Includes all files within all .vpp packfiles loaded by the game. Without AF or DF, the game will stop loading files in packfiles after the 13500th.&lt;br /&gt;
|-&lt;br /&gt;
|Total [[RED Objects#Decal|Decals]] in a level&lt;br /&gt;
|No&lt;br /&gt;
|96/128 (RF), 384/512 (AF/DF)&lt;br /&gt;
|&lt;br /&gt;
*Hard limit is absolute maximum number of decals. Soft limit is the limit after which decals begin to fade away. For decal objects placed in the editor, decals will stop being created after soft limit, and you risk level file corruption if you exceed hard limit.&lt;br /&gt;
*For total number of decals, stock game has 96 soft limit, 128 hard limit. AF and DF have 384 soft limit, 512 hard limit.&lt;br /&gt;
*Additional limits:&lt;br /&gt;
**Total decals in a single room: 40/48 (RF), 96/127 (AF/DF)&lt;br /&gt;
**Total weapon impact decals: 14/16 (RF), 48/64 (AF/DF)&lt;br /&gt;
**Total GeoMod decals: 30/32 (RF), 96/127 (AF/DF)&lt;br /&gt;
**Total decals on solids: 40/48 (RF), 96/127 (AF/DF)&lt;br /&gt;
*In the default [[RED]] editor (non-Alpine), you'll get a pop-up warning when saving your level if it contains &amp;gt;64 decal objects. This was a hard limit for PS2 maps.&lt;br /&gt;
|-&lt;br /&gt;
|}---&amp;gt;&lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: RF1 Editing]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_News_Feed&amp;diff=15158</id>
		<title>Alpine Faction News Feed</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_News_Feed&amp;diff=15158"/>
		<updated>2026-03-30T02:57:45Z</updated>

		<summary type="html">&lt;p&gt;Goober: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;- Alpine Faction 1.2.2 released: Jan 4, '26&lt;br /&gt;
- RF Game Night 182: Apr 11, '26&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_News_Feed&amp;diff=15157</id>
		<title>Alpine Faction News Feed</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_News_Feed&amp;diff=15157"/>
		<updated>2026-03-28T03:57:12Z</updated>

		<summary type="html">&lt;p&gt;Goober: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;- Alpine Faction 1.2.2 released: Jan 4, '26&lt;br /&gt;
- RF Game Night 181: Mar 28, '26&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_News_Feed&amp;diff=15153</id>
		<title>Alpine Faction News Feed</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_News_Feed&amp;diff=15153"/>
		<updated>2026-02-01T16:17:55Z</updated>

		<summary type="html">&lt;p&gt;Goober: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;- Alpine Faction 1.2.2 released: Jan 4, '26&lt;br /&gt;
- RF Game Night 178: Feb 14, '26&lt;br /&gt;
- RF Game Night 179: Feb 28, '26&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=RF1_Engine_and_Level_Editor_Limits&amp;diff=15151</id>
		<title>RF1 Engine and Level Editor Limits</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=RF1_Engine_and_Level_Editor_Limits&amp;diff=15151"/>
		<updated>2026-01-18T14:10:33Z</updated>

		<summary type="html">&lt;p&gt;Goober: /* Savegame Format Limits */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BubbleNav|RF1Modding}}&lt;br /&gt;
This page lists all known limitations of the GeoMod engine and maps built using [[RED]] level editor.&lt;br /&gt;
&lt;br /&gt;
==Map Limits==&lt;br /&gt;
* This table lists all known limits that you need to keep in mind when making any type of level.&lt;br /&gt;
* There's no guarantee that your map won't perform poorly or crash for other reasons, even if these limits have not been explicitly exceeded.&lt;br /&gt;
* Please note that only a few of these limits were officially documented by Volition, the rest were discovered through experimentation. It's possible additional limits exist that should be added to this list, we just haven't found them yet.&lt;br /&gt;
* The de facto standard RF server and client version [[Alpine Faction]] removes or increases a number of these limits.&lt;br /&gt;
** In cases where [[Alpine Faction]] and/or [[Dash Faction]] has removed or increased a limit, the default limit is indicated with (RF), and the Alpine and Dash Faction limits are indicated with (AF) and (DF) respectively.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! '''Element'''&lt;br /&gt;
! '''Limit'''&lt;br /&gt;
! '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| [[RED Objects|Objects]]&lt;br /&gt;
| 1024 (RF), 65536 (AF/DF)&lt;br /&gt;
| General limit on total objects - note though that not all object types count toward this limit. Entities, corpses, clutter, items, triggers, events, keyframes, targets, and possibly more, all do.&lt;br /&gt;
|-&lt;br /&gt;
| Corpses&lt;br /&gt;
| 30 (RF), Unlimited (AF/DF)&lt;br /&gt;
| Dead entities in corpse pose. Counts both pre-placed corpses and corpses created by entities dying during gameplay.&lt;br /&gt;
|-&lt;br /&gt;
| Ambient sounds&lt;br /&gt;
| 25&lt;br /&gt;
| Maximum number of ambient sounds that can play simultaneously. Includes both [[RED Objects#Ambient Sound|Ambient Sound objects]] and entity fly sounds as specified by &amp;quot;$FlySnd&amp;quot; in [[entity.tbl]]. When limit is reached, newly created ambient sounds will not play.&lt;br /&gt;
|-&lt;br /&gt;
| Faces/Polygons&lt;br /&gt;
| 10500&lt;br /&gt;
| Counts all polygons on geometry (brushes) in a level. Note that this is a &amp;quot;soft limit&amp;quot;, and nothing bad will necessarily happen simply as a result of exceeding this limit. (the RED console will turn red in color, though)&lt;br /&gt;
|-&lt;br /&gt;
| Face Vertices&lt;br /&gt;
| 50400&lt;br /&gt;
| Note that this is a &amp;quot;soft limit&amp;quot;, and nothing bad will necessarily happen simply as a result of exceeding this limit. (the RED console will turn red in color, though)&lt;br /&gt;
|-&lt;br /&gt;
| Vertices&lt;br /&gt;
| 13650&lt;br /&gt;
| Counts all vertices on geometry (brushes) in a level. Note that this is a &amp;quot;soft limit&amp;quot;, and nothing bad will necessarily happen simply as a result of exceeding this limit. (the RED console will turn red in color, though)&lt;br /&gt;
|-&lt;br /&gt;
| [[RED Objects#Light|Lights]]&lt;br /&gt;
| 1100&lt;br /&gt;
| RED will crash if this limit is exceeded.&lt;br /&gt;
|-&lt;br /&gt;
| Lights on a surface&lt;br /&gt;
| 64&lt;br /&gt;
| If more than 64 lights are attempting to illuminate a single surface, that surface will turn pink. You can fix this by reducing the number of lights affecting the surface, or breaking up the surface so it's more than a single lightmap. Note that coplanar faces are merged together at build time to form a single surface, so if you're attempting to break it up for this reason, you must either use portals, or create a minor change in elevation. Also note that the true area of effect for a spotlight is based up on the range being used to determine the diameter (diameter = range X 2).&lt;br /&gt;
|-&lt;br /&gt;
| [[RED Objects#Item|Items]]&lt;br /&gt;
| 200&lt;br /&gt;
| Includes pickups, CTF flags/bases, CTF banners, etc. If you exceed 200 items, the game will stop creating them after the 200th. Dropped items by killed players/AI also count as objects, but don't count toward the 200 item limit.&lt;br /&gt;
|-&lt;br /&gt;
| [[RED Objects#Multiplayer Respawn Point|Multiplayer Respawn Points]]&lt;br /&gt;
| 32&lt;br /&gt;
| If you exceed 32 multiplayer respawn points, the game will ignore any beyond the 32nd.&lt;br /&gt;
|-&lt;br /&gt;
| [[RED Objects#Particle Emitter|Particle Emitters]]&lt;br /&gt;
| 128&lt;br /&gt;
| If you exceed 128 particle emitters, your level file will become corrupt.&lt;br /&gt;
|-&lt;br /&gt;
| Green/red boxes around switches&lt;br /&gt;
| 32&lt;br /&gt;
| If you have more than 32 switches in your map that should have green/red boxes, the box will only appear for 32 of them (the others will continue to function properly, just without the visible box).&lt;br /&gt;
|-&lt;br /&gt;
| Total [[RED Objects#Decal|Decals]] in a level&lt;br /&gt;
| 96/128 (RF), 384/512 (AF/DF)&lt;br /&gt;
| *Hard limit is absolute maximum number of decals. Soft limit is the limit after which decals begin to fade away. For decal objects placed in the editor, decals will stop being created after soft limit, and you risk level file corruption if you exceed hard limit.&amp;lt;br /&amp;gt;*For total number of decals, stock game has 96 soft limit, 128 hard limit. AF and DF have 384 soft limit, 512 hard limit.&amp;lt;br /&amp;gt;*Additional limits:&amp;lt;br /&amp;gt;**Total decals in a single room: 40/48 (RF), 96/127 (AF/DF)&amp;lt;br /&amp;gt;**Total weapon impact decals: 14/16 (RF), 48/64 (AF/DF)&amp;lt;br /&amp;gt;**Total GeoMod decals: 30/32 (RF), 96/127 (AF/DF)&amp;lt;br /&amp;gt;**Total decals on solids: 40/48 (RF), 96/127 (AF/DF)&amp;lt;br /&amp;gt;*In the default [[RED]] editor (non-Alpine), you'll get a pop-up warning when saving your level if it contains &amp;gt;64 decal objects. This was a hard limit for PS2 maps.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Savegame Format Limits==&lt;br /&gt;
* This table lists all limits specific to the savegame file format.&lt;br /&gt;
* If you exceed these limits, your map may still initially load correctly, but players will experience issues when using the savegame system (including quicksaves and autosaves). For this reason, you should ensure any single player maps you create do not exceed these limits.&lt;br /&gt;
* For multiplayer maps, you can effectively ignore this table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! '''Element'''&lt;br /&gt;
! '''Limit'''&lt;br /&gt;
! '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| Goal_Create events&lt;br /&gt;
| 8&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Alarm_Siren events&lt;br /&gt;
| 8&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| When_Dead events&lt;br /&gt;
| 20&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Cyclic_Timer events&lt;br /&gt;
| 12&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Make_Invulnerable events&lt;br /&gt;
| 8&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| All other events with pending resolution&lt;br /&gt;
| 32&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Bolt Emitters&lt;br /&gt;
| 16&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Decals&lt;br /&gt;
| 64&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Entities&lt;br /&gt;
| 64&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Items&lt;br /&gt;
| 64&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Clutter&lt;br /&gt;
| 512&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Triggers&lt;br /&gt;
| 96&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Movers&lt;br /&gt;
| 128&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Push regions&lt;br /&gt;
| 32&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Persistent goals&lt;br /&gt;
| 10&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Weapons&lt;br /&gt;
| 8&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Blood pools&lt;br /&gt;
| 16&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Corpses&lt;br /&gt;
| 32&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Geomod craters&lt;br /&gt;
| 128&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Killed rooms&lt;br /&gt;
| 128&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Deleted events&lt;br /&gt;
| 32&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General Engine Limits==&lt;br /&gt;
* This table lists game and engine limits that aren't specific to any of the other limit categories above.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! '''Element'''&lt;br /&gt;
! '''Limit'''&lt;br /&gt;
! '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| Bullets/Projectiles&lt;br /&gt;
| Unknown (RF), Unlimited (AF/DF)&lt;br /&gt;
| Produced by weapon fire (players and AI). Exists until the $Lifetime value is exceeded, the bullet impacts something, or the projectile explodes.&lt;br /&gt;
|-&lt;br /&gt;
| Loaded Packfiles&lt;br /&gt;
| 256 (RF), Unlimited (AF/DF)&lt;br /&gt;
| Includes all .vpp packfiles loaded by the game. These are used to store custom maps, clientside mods, etc. Without AF or DF, the game will ignore any .vpp packfiles after the 256th.&lt;br /&gt;
|-&lt;br /&gt;
| Files within Packfiles&lt;br /&gt;
| 13500 (RF), Unlimited (AF/DF)&lt;br /&gt;
| Includes all files within all .vpp packfiles loaded by the game. Without AF or DF, the game will stop loading files in packfiles after the 13500th.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''Element'''&lt;br /&gt;
|'''Object'''&lt;br /&gt;
|'''Specific Limit'''&lt;br /&gt;
|'''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects|Objects]]&lt;br /&gt;
| ---&lt;br /&gt;
|1024 (RF), 65536 (AF/DF)&lt;br /&gt;
|Elements with &amp;quot;Yes&amp;quot; in the &amp;quot;Object&amp;quot; column all count toward this limit. Some objects also have their own specific limits.&lt;br /&gt;
|-&lt;br /&gt;
|Bullets/Projectiles&lt;br /&gt;
|Yes&lt;br /&gt;
|Unknown (RF), Unlimited (AF/DF)&lt;br /&gt;
|Produced by weapon fire (players and AI). Exists until the $Lifetime value is exceeded, the bullet impacts something, or the projectile explodes.&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Entity|Entities]]&lt;br /&gt;
|Yes&lt;br /&gt;
|64*&lt;br /&gt;
|Includes all players (multiplayer), vehicles, AI, cameras, and turrets. *Limit is not on the number of entities, but rather the number of entities that can be saved in savegame files. If you're mapping for multiplayer, this isn't a concern.&lt;br /&gt;
|-&lt;br /&gt;
|Corpses&lt;br /&gt;
|Yes&lt;br /&gt;
|30 (RF), Unlimited (AF/DF)&lt;br /&gt;
|Dead entities in corpse pose. Counts both pre-placed corpses and corpses created by entities dying during gameplay.&lt;br /&gt;
|-&lt;br /&gt;
|Faces/Polygons&lt;br /&gt;
|No&lt;br /&gt;
|10500&lt;br /&gt;
|Counts all polygons on geometry (brushes) in a level. Note that this is a &amp;quot;soft limit&amp;quot;, and nothing bad will necessarily happen simply as a result of exceeding this limit. (the RED console will turn red in color, though)&lt;br /&gt;
|-&lt;br /&gt;
|Face Vertices&lt;br /&gt;
|No&lt;br /&gt;
|50400&lt;br /&gt;
|Note that this is a &amp;quot;soft limit&amp;quot;, and nothing bad will necessarily happen simply as a result of exceeding this limit. (the RED console will turn red in color, though)&lt;br /&gt;
|-&lt;br /&gt;
|Vertices&lt;br /&gt;
|No&lt;br /&gt;
|13650&lt;br /&gt;
|Counts all vertices on geometry (brushes) in a level. Note that this is a &amp;quot;soft limit&amp;quot;, and nothing bad will necessarily happen simply as a result of exceeding this limit. (the RED console will turn red in color, though)&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Light|Lights]]&lt;br /&gt;
|No&lt;br /&gt;
|1100&lt;br /&gt;
|RED will crash if this limit is exceeded.&lt;br /&gt;
|-&lt;br /&gt;
|Lights on a face&lt;br /&gt;
|No&lt;br /&gt;
|64&lt;br /&gt;
|If more than 64 lights are attempting to illuminate a single face, that face will turn pink. You can fix this by reducing the number of lights affecting the face, or breaking up the face so it's more than a single lightmap. Note that coplanar faces are merged together at build time, so if you're attempting to break up a face for this reason, you must either use portals, or create a minor change in elevation. Also note that the true area of effect for a spotlight is based up on the range being used to determine the diameter (diameter = range X 2). &lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Clutter|Clutter]]&lt;br /&gt;
|Yes&lt;br /&gt;
|512*&lt;br /&gt;
|Includes light fixtures, furniture, etc. *Limit is not on the number of clutter objects, but rather the number of them that can be saved in savegame files. If you're mapping for multiplayer, this isn't a concern.&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Item|Items]]&lt;br /&gt;
|Yes&lt;br /&gt;
|200&lt;br /&gt;
|Includes pickups, CTF flags/bases, CTF banners, etc. If you exceed 200 items, the game will stop creating them after the 200th. Dropped items by killed players/AI also count as objects, but don't count toward the 200 item limit.&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Multiplayer Respawn Point|Multiplayer Respawn Points]]&lt;br /&gt;
|No&lt;br /&gt;
|32&lt;br /&gt;
|If you exceed 32 multiplayer respawn points, the game will ignore any beyond the 32nd.&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Particle Emitter|Particle Emitters]]&lt;br /&gt;
|No&lt;br /&gt;
|128&lt;br /&gt;
|If you exceed 128 particle emitters, your level file will become corrupt.&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Triggers|Triggers]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Unknown&lt;br /&gt;
|Includes Trigger Door, Trigger Auto, and Trigger Event.&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Events|Events]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Unknown&lt;br /&gt;
|Includes all types of events.&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Keyframe|Keyframes]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Unknown&lt;br /&gt;
|Includes each keyframe object, silver and gold alike.&lt;br /&gt;
|-&lt;br /&gt;
|[[RED Objects#Target|Targets]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Unknown&lt;br /&gt;
|Target objects - primarily used for cutscene cameras and bolt emitters.&lt;br /&gt;
|-&lt;br /&gt;
|Loaded Packfiles&lt;br /&gt;
|No&lt;br /&gt;
|256 (RF), Unlimited (AF/DF)&lt;br /&gt;
|Includes all .vpp packfiles loaded by the game. These are used to store custom maps, clientside mods, etc. Without AF or DF, the game will ignore any .vpp packfiles after the 256th.&lt;br /&gt;
|-&lt;br /&gt;
|Files within Packfiles&lt;br /&gt;
|No&lt;br /&gt;
|13500 (RF), Unlimited (AF/DF)&lt;br /&gt;
|Includes all files within all .vpp packfiles loaded by the game. Without AF or DF, the game will stop loading files in packfiles after the 13500th.&lt;br /&gt;
|-&lt;br /&gt;
|Total [[RED Objects#Decal|Decals]] in a level&lt;br /&gt;
|No&lt;br /&gt;
|96/128 (RF), 384/512 (AF/DF)&lt;br /&gt;
|&lt;br /&gt;
*Hard limit is absolute maximum number of decals. Soft limit is the limit after which decals begin to fade away. For decal objects placed in the editor, decals will stop being created after soft limit, and you risk level file corruption if you exceed hard limit.&lt;br /&gt;
*For total number of decals, stock game has 96 soft limit, 128 hard limit. AF and DF have 384 soft limit, 512 hard limit.&lt;br /&gt;
*Additional limits:&lt;br /&gt;
**Total decals in a single room: 40/48 (RF), 96/127 (AF/DF)&lt;br /&gt;
**Total weapon impact decals: 14/16 (RF), 48/64 (AF/DF)&lt;br /&gt;
**Total GeoMod decals: 30/32 (RF), 96/127 (AF/DF)&lt;br /&gt;
**Total decals on solids: 40/48 (RF), 96/127 (AF/DF)&lt;br /&gt;
*In the default [[RED]] editor (non-Alpine), you'll get a pop-up warning when saving your level if it contains &amp;gt;64 decal objects. This was a hard limit for PS2 maps.&lt;br /&gt;
|-&lt;br /&gt;
|}---&amp;gt;&lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: RF1 Editing]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=The_Beginner%27s_Guide_to_Red_Faction_Mapping&amp;diff=15150</id>
		<title>The Beginner's Guide to Red Faction Mapping</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=The_Beginner%27s_Guide_to_Red_Faction_Mapping&amp;diff=15150"/>
		<updated>2026-01-16T12:21:13Z</updated>

		<summary type="html">&lt;p&gt;Goober: fix typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{RF1Tutorial|Goober}}&lt;br /&gt;
==Overview==&lt;br /&gt;
===Goal===&lt;br /&gt;
The goal of this Beginner's Guide is to show you how to build a very simple Red Faction map, entirely from scratch. We'll cover basic geometry, texturing, lighting, pickups, nav points, and enemies. You'll also learn the basics of how to navigate in the level editor, and the small number of hotkeys you'll need to use.&lt;br /&gt;
&lt;br /&gt;
===Audience===&lt;br /&gt;
This Beginner's Guide is just that - a guide for beginners. If you've used RED before, you probably know most of this stuff. There's no harm in skimming down through it to see if there's a tip or two for you to pick up, but in general if you're an experienced RED user, you'll probably get more from some of the more advanced tutorials listed on the [[RF1 Editing Main Page]].&lt;br /&gt;
&lt;br /&gt;
===Assumptions===&lt;br /&gt;
If you're reading this tutorial, I'm assuming you've played Red Faction at least a few times and have a basic understanding of how to use software on a computer - that's it! Other than that, we'll take it from the ground floor and build up.&lt;br /&gt;
&lt;br /&gt;
==The Basics==&lt;br /&gt;
===Before we begin===&lt;br /&gt;
[[File:REDBG_AlpineLauncher.jpg|thumb|300px|Click the Level Editor button in the [[Alpine Faction]] launcher to start [[RED]].]]&lt;br /&gt;
Red Faction is the game, Geo-Mod is the engine on which the game runs, and RED is the level editing tool used to create maps for the game.&lt;br /&gt;
&lt;br /&gt;
Red Faction was originally released for the PlayStation 2, then later for the PC - both in 2001. As you can probably imagine, there are a number of issues that can come up when trying to run software written over 20 years ago on a modern computer, not to mention the fact that the game hasn't received an official update since a few months after the initial release. Thankfully, the community stepped in to remedy that situation - Alpine Faction is a community-made patch, which is basically essential for anyone planning to play or develop for the game these days. It adds tons of new modern features to the game and the level editor, fixes all of the most relevant problems the game has, and lets you play the game without issue on modern computers.&lt;br /&gt;
&lt;br /&gt;
If you don't already have Alpine Faction installed, you should go do that before proceeding with this tutorial - it's very simple to install and only take a minute. You can find more information and the download at the [https://alpinefaction.com Alpine Faction website].&lt;br /&gt;
&lt;br /&gt;
===Launching RED===&lt;br /&gt;
Open the Alpine Faction launcher, then click the &amp;quot;Level Editor&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
The RED window will appear, and it should look virtually identical to the screenshot below - a confusing mess of buttons, text, and 4 black panels. Not to worry, it'll start to make sense soon!&lt;br /&gt;
[[File:REDBG_Viewports.jpg|left|thumb|600px|The main window of [[RED]] on first launch.]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Viewports===&lt;br /&gt;
Those 4 black panels in front of you are called viewports. Viewports offer a view into what your map is going to look like once you load it in-game. RED supports two different types of viewports:&lt;br /&gt;
- 3D (perspective - ie. Free Look)&lt;br /&gt;
- 2D (orthographic - ie. Top, Right, Front, etc.)&lt;br /&gt;
&lt;br /&gt;
The active viewport at any given time is the viewport outlined with a red border. You can change the active viewport simply by hovering over a viewport with your cursor. Some hotkeys and other RED functions behave differently depending on which viewport is active, such as the movement and rotation of objects.&lt;br /&gt;
&lt;br /&gt;
====Moving around in the viewports====&lt;br /&gt;
When looking at a viewport, you are viewing through a camera that you can control. RED offers the ability to move the camera around using the keyboard or the mouse. Generally, the keyboard camera controls are more user-friendly than the mouse controls. That said, most keyboard controls do require a numpad, so if your keyboard doesn't have a numpad, you'll need to use the mouse controls.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Keyboard camera controls&lt;br /&gt;
|-&lt;br /&gt;
!Hotkey&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|A&lt;br /&gt;
|Zoom in&lt;br /&gt;
|-&lt;br /&gt;
|Z&lt;br /&gt;
|Zoom out&lt;br /&gt;
|-&lt;br /&gt;
|Numpad &amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|Slide up&lt;br /&gt;
|-&lt;br /&gt;
|Numpad Enter&lt;br /&gt;
|Slide down&lt;br /&gt;
|-&lt;br /&gt;
|Numpad 1&lt;br /&gt;
|Slide left&lt;br /&gt;
|-&lt;br /&gt;
|Numpad 3&lt;br /&gt;
|Slide right&lt;br /&gt;
|-&lt;br /&gt;
|Numpad 2&lt;br /&gt;
|Turn down&lt;br /&gt;
|-&lt;br /&gt;
|Numpad 4&lt;br /&gt;
|Turn left&lt;br /&gt;
|-&lt;br /&gt;
|Numpad 6&lt;br /&gt;
|Turn right&lt;br /&gt;
|-&lt;br /&gt;
|Numpad 8&lt;br /&gt;
|Turn up&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' If you hold '''Shift''' while holding down a keyboard camera control, the camera will move quicker.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Mouse camera controls&lt;br /&gt;
|-&lt;br /&gt;
!Hotkey&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Left Mouse Button + Shift&lt;br /&gt;
|Slide camera up, down, left, right&lt;br /&gt;
|-&lt;br /&gt;
|Right Mouse Button + Shift&lt;br /&gt;
|In 3D viewport, adjusts heading and pitch. &amp;lt;/br&amp;gt; In 2D viewports, same as left mouse button + shift&lt;br /&gt;
|-&lt;br /&gt;
|Left and Right Mouse Buttons + Shift&lt;br /&gt;
|Zoom in and out (freelook only)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===The rest of the UI===&lt;br /&gt;
Rather than explain what every button and panel does right now, let's dive right into creating your first map and I'll explain the functions that you'll need to use along the way.&lt;br /&gt;
&lt;br /&gt;
*'''NOTE''': I'm only going to explain the functions you need to use within the scope of this tutorial. If you're wondering what a function does, and it's not covered in this tutorial, the [[RED User Guide]] has a full and detailed explanation you can reference for each and every button, panel, toolbar option, etc. within RED.&lt;br /&gt;
&lt;br /&gt;
==Enough of that, I want to make a map!==&lt;br /&gt;
===How geometry works===&lt;br /&gt;
In the middle of the free look viewport, you should see a cyan colored wireframe cube. The same cube is represented as a square in the 2D viewports. This is called the Cookie Cutter, and it represents the shape of the geometry you're about to add to your map. You can edit the shape and dimensions of the Cookie Cutter in order to customize the geometry you're adding.&lt;br /&gt;
[[File:REDBG_CookieCutter.jpg|none|frame|The Cookie Cutter is displayed with a cyan wireframe.]]&lt;br /&gt;
&lt;br /&gt;
To get some terms out of the way before we start using them:&lt;br /&gt;
*'''Brush''': a unique piece of geometry. When we refer to &amp;quot;geometry&amp;quot; or &amp;quot;brushwork&amp;quot; in the GeoMod engine, we're talking about the brushes that combine to form the structure of a map. All brushes are one of two unique types: air or solid.&lt;br /&gt;
*'''Air Brush''': these brushes subtract from the world and create usable/walkable space in your map.&lt;br /&gt;
*'''Solid Brush''': these brushes add to the world, creating occupied space.&lt;br /&gt;
&lt;br /&gt;
An easy way to think of air and solid brushes is to imagine a cave in the side of a mountain. The mountain is a solid brush, while the cave is an air brush. You can walk around in the cave - it's cutting out of the space that would otherwise be part of the solid mountain if the cave didn't exist. When you walk through the cave, you find a large boulder on the ground. That boulder is a solid brush, because it (like the mountain) is adding to the world. &lt;br /&gt;
&lt;br /&gt;
One aspect of geometry in the GeoMod engine that frequently causes confusion is the concept of a completely solid world. In Red Faction's GeoMod engine, the entirety of the game world is solid - occupied space - until it is first carved out of by air brushes. Considering an example that relates a little more to Red Faction than our mountain/cave example - consider a case where you want to create a room, and within that room, you want to have a support column as well as a shipping crate. Because the entire world is solid, you must first carve out of the world by creating an air brush (ie. the room), then add to the world by creating two solid brushes (ie. the column and the crate).&lt;br /&gt;
&amp;lt;gallery heights=275px widths=400px mode=&amp;quot;traditional&amp;quot;&amp;gt;&lt;br /&gt;
File:REDBG_AirSolid1.jpg|Mountain (solid brush) cut into by cave (air brush)&lt;br /&gt;
File:REDBG_AirSolid2.jpg|Column and crate (solid brushes) inside room (air brush)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Your first room===&lt;br /&gt;
Now, let's make a room! In the brush properties panel on the left side of the screen, let's edit the dimensions of our Cookie Cutter. Let's set the height to 3.00, width to 10.00, and depth to 10.00 as well. Be sure the &amp;quot;Type&amp;quot; field is set to Air, and leave the other settings at their default values as shown in the screenshot below.&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_1BrushProperties.jpg|none|frame|The Brush Properties panel.]]&lt;br /&gt;
&lt;br /&gt;
You may have noticed as you were setting the values, the size of the Cookie Cutter updated accordingly in each viewport - the values we just set will be used to specify the shape of our new brush once we create it.&lt;br /&gt;
&lt;br /&gt;
Click the &amp;quot;Create Brush&amp;quot; button. You'll notice that where before your Cookie Cutter was displayed as a wireframe cyan cube, now you have a wireframe red cube - this is your new brush! When selected, brushes have a red wireframe outline, and when deselected, the outline is white.&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_CreateBrush1.jpg|none|frame|When selected, brushes are represented by a red wireframe.]]&lt;br /&gt;
&lt;br /&gt;
If you're wondering why you're only seeing the outline rather than a room, it's because we haven't yet told RED to &amp;quot;build&amp;quot; our geometry. Yay! New term!&lt;br /&gt;
&lt;br /&gt;
*'''Build''': an operation that constructs your map using the brushes you've created. After you change the brushwork (geometry) of your map in any way - creating, deleting, or editing brushes - you must build before those changes will be reflected in the game world. &lt;br /&gt;
&lt;br /&gt;
For any programmers out there, you can think of building essentially as commiting your changes to the world. &lt;br /&gt;
&lt;br /&gt;
So how do we build? Simple - either press the &amp;quot;Build&amp;quot; button on the left side panel, or just hit the spacebar. So far, we've only been working within Brush Mode - we'll get to some of the other modes later, but just know that the spacebar hotkey for building geometry can be used in all modes.&lt;br /&gt;
&lt;br /&gt;
When you build, you should see the walls, floor, and ceiling that comprise your room! Next, in any one of the viewports, click the black space outside of your room to deselect your new brush. Now you should see your Cookie Cutter once again. &lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_CreateBrush2.jpg|none|frame|After building and deselecting the brush, you'll see textured surfaces and the Cookie Cutter once again.]]&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT NOTE:''' While you can use the brush properties panel on the left to customize your Cookie Cutter, once you create a brush, those options no longer apply to it. If you edit the values in Brush Properties on the left side now, you'll notice the changes are reflected in the Cookie Cutter, but the room you've already created is unchanged. Of course, there are methods that you'll learn later for editing brushes after they've already been created, but for now just understand that changing the settings for the Cookie Cutter after you've already created a brush will have no impact on the brush that was already created. &lt;br /&gt;
&lt;br /&gt;
===Your first hallway===&lt;br /&gt;
Ok, now we've got a room and we can fly around in it. If we wanted to, we could walk around in our room now - but that wouldn't be much fun. Let's make our map a little more complex and then we'll give it a try! Before we make a second room, let's create a small hallway to take us there. In the Brush Properties panel to the left (still in Brush mode), set the height to 2.50, width to 3.00, and depth to 8.00. Confirm that &amp;quot;Type&amp;quot; is still set to Air, and leave the other settings at their defaults as shown below.&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_BrushProperties2.jpg|none|frame|Brush Properties window for our new hallway.]]&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' We're going to be moving the Cookie Cutter before we create our brush. Your Cookie Cutter should at the moment still be where it began - in the center of your existing room. If you've already moved the Cookie Cutter on your own, hit the following two hotkeys in sequence to reset the Cookie Cutter to the right place.&lt;br /&gt;
*'''Home''': The Home key (in any mode) resets the camera to the position of the Player Start.  By default, this is the center of your map.&lt;br /&gt;
*'''B''': The B key (in Brush mode) sets the Cookie Cutter to the current position of the camera.&lt;br /&gt;
&lt;br /&gt;
Now, let's move our Cookie Cutter to where we want our hallway. Make the top view active by hovering your cursor over it (the active viewport will always have a red outline) and click somewhere in the black space outside of your room to ensure nothing is currently selected. Then, while holding the M key, hit the Up arrow key on your keyboard 9 times - the Cookie Cutter should now be flush with the top edge of your existing room as shown below.&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_CookieCutter2.jpg|none|frame|Cookie Cutter flush with the upper edge of the room in top view.]]&lt;br /&gt;
&lt;br /&gt;
*'''M''': The move (M) key (in any mode) lets you move whatever you have selected. To use the move function in RED, hold M and use the arrow keys on your keyboard to move your selection. Note that the movement is relative to the currently active viewport - ie. holding M and using the Up arrow key with the top viewport active will move your selection in that direction in top view (Z axis). Doing the same with the front viewport active however, will move your selection in that direction in front view (Y axis). You should avoid moving with the free look viewport active as doing so can often result in a selection becoming unaligned to the world grid.&lt;br /&gt;
&lt;br /&gt;
Next, we need to move our Cookie Cutter down slightly so that when we create our hallway, it'll be flush with the floor rather than centered vertically in the wall. To do so, we'll use the M key yet again to move it, this time in the front viewport. However, before we can do so, we need to adjust our grid size. When you first launch RED, the grid size will always be set to 1.00m, but in this case, we need to set it to 0.250m so we can properly align the Cookie Cutter for our hallway with the floor of our room. To do this, we'll use the bracket keys ([ and ]). Specifically, hit the [ key twice - when you do so, you'll notice the Grid Size setting on the top bar of the RED window now displays our desired grid size of 0.250m.&lt;br /&gt;
&lt;br /&gt;
*'''[ and ]''': The bracket keys are a quick way to control the current grid size for movement. When you use the move (M) key, each time you press an arrow key, the selection moves in the direction you desire, one increment of your current grid size. If your grid size is 1.00m, holding M and hitting the Up key will move your selection 1m up in the active viewport. If however your grid size is set to 0.250m, doing the same thing will move your selection 0.250m (1/4 of a meter) instead.&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_GridSizes.jpg|none|frame|Grid sizes can be selected from the Grid Size dropdown or by using the hotkeys.]]&lt;br /&gt;
&lt;br /&gt;
Hold your cursor over the front viewport to set it as active, then, with your grid size set to 0.250m, hold the move (M) key and press the down arrow once - your Cookie Cutter should now be flush with the bottom of your room as shown below.&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_CookieCutter3.jpg|none|frame|The Cookie Cutter flush with the bottom of the room in front view]]&lt;br /&gt;
&lt;br /&gt;
Hit Create Brush to create your hallway, then press the spacebar to build your geometry. You should now see your room and hallway displayed as below.&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_RoomHallway1.jpg|none|frame|After creating the hallway brush and building, the room and hallway are displayed with textures.]]&lt;br /&gt;
&lt;br /&gt;
We've learned how to move brushes, but before we can say we're done with our geometry, let's learn how to duplicate and rotate them as well. First, ensure your hallway is still selected (click it in the top viewport if it's not). Next, hold the Ctrl key, and hit C to copy the hallway, then while still holding the Ctrl key, hit V to paste. It may not be immediately obvious since they're both in the same position right now, but we've just duplicated our hallway! Keep your new hallway selected, make the front viewport active, hold the R key, then press the left arrow key 6 times. The new hallway should now have been rotated 90 degrees, and form a cross with the other hallway as shown in the screenshot below.&lt;br /&gt;
&lt;br /&gt;
*'''Ctrl + C''': Copies the current selection to your clipboard (brushes and objects).&lt;br /&gt;
*'''Ctrl + V''': Pastes the clipboard contents into the world. Any brushes and/or objects you had previously copied will be duplicated (and placed in the same position as they were when you copied them).&lt;br /&gt;
*'''R''': The rotate (R) key (in any mode) lets you move whatever you have selected. To use the rotate function in RED, hold R and use the arrow keys on your keyboard to move your selection. Note that, like the move function, the rotate function applies relative to the currently active viewport. As with the move function, you should avoid rotating things with the free look viewport active as doing so can often result in a selection becoming unaligned to the world grid.&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_RotateHallway1.jpg|none|frame|Hover over the front viewport and rotate the duplicated hallway 90 degrees.]]&lt;br /&gt;
&lt;br /&gt;
Now that we've got a duplicate of our hallway, let's move it into position - we're going to create a 90 degree turn in our hallway and then make it lead to a second room. First, ensure the new hallway is still selected (if it's not, click it in the top viewport - be sure you don't click the center of the new hallway where it's overlapping the old hallway, as that would select the old hallway instead). Next, set your grid size to 0.5m by hitting ] once. Then, hold the M key, and with the top viewport active, press the up arrow key 11 times and (still holding M), the right arrow key 5 times. Your hallway should now be aligned with the top edge of the old hallway as shown below. &lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_RotateHallway2.jpg|none|frame|The new hallway should be aligned with the top edge of the old hallway as shown.]]&lt;br /&gt;
&lt;br /&gt;
Next we need to make our new hallway a little longer, so let's learn how to resize brushes! With the new hallway still selected, open the Stretch dialog by either pressing the Stretch button in the Brush Operators panel to the left, or with the '''D''' hotkey. In the Stretch properties dialog, leave the height and depth values as-is, but set the width from 8.00 to 11.00 as shown below, then hit OK to apply the change.&lt;br /&gt;
&lt;br /&gt;
*'''D''': Open the Stretch dialog box for resizing brushes.&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_StretchWindow1.jpg|none|frame|The stretch dialog.]]&lt;br /&gt;
&lt;br /&gt;
Hit the spacebar to rebuild geometry, and you'll see our room and two hallways in position as shown below.&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_TexturedHallway2.jpg|none|frame|The room plus both hallways in position after building.]]&lt;br /&gt;
&lt;br /&gt;
Great work! One last step for our geometry before we start applying textures - let's create a second room! The room will be at the end of our new hallway, but I'll leave the specifics for this room up to you - you can either create a new brush by moving and resizing your Cookie Cutter as I've shown you before, or simply duplicate the existing room and move the duplicate.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For my demonstration, I duplicated the existing room and moved it into position (same process as we used for the second hallway). Once you're happy with how your second room looks, hit the spacebar key one last time to build your geometry, then let's test out our map before we head to texture mode.&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_TexturedHallway3.jpg|none|frame|Both rooms and hallways - ready for texturing!]]&lt;br /&gt;
&lt;br /&gt;
===Saving, packaging, and testing your map===&lt;br /&gt;
To save your map, either use the Ctrl + S hotkey, or hit the &amp;quot;Save&amp;quot; button on the top bar of the RED window. When the Save dialog appears, navigate to the user_maps directory within your Red Faction folder, then go to the single directory as shown in the screenshot below. The filename is up to you, but you should try to make it fairly unique to avoid conflicts with other maps, and avoid using special characters or spaces. When you've decided on a filename, and navigated to the single folder, hit the Save button to save your map.&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_SaveDialog1.jpg|none|frame|The Save dialog - be sure to save your map in the &amp;quot;single&amp;quot; directory within &amp;quot;user_maps&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
*'''IMPORTANT''': Red Faction '''cannot''' load map files (.rfl) directly. First, you need to package your map into a packfile (.vpp) in order for the game to load it.&lt;br /&gt;
&lt;br /&gt;
To package your map, simply hit the &amp;quot;Pack&amp;quot; button on the top bar of the RED window (right next to the &amp;quot;Save&amp;quot; button). That's it - just remember for the future that hitting the pack button doesn't save your map before packaging it, so you need to remember to save your map before you hit the pack button.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once your map is saved and packed, let's give it a try! Hit the &amp;quot;Play&amp;quot; button on the top bar of the RED window to load your map. &lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_TopBarRed.jpg|none|frame|The top bar in [[RED]], showing the Save, Pack, and Play buttons]]&lt;br /&gt;
&lt;br /&gt;
Well done! You can now move around in a world you created yourself - that must feel great! Granted, maps without any textures, lights, or anything to do (or shoot) would get boring pretty quickly - so let's fix that! When you're done running around your map, quit out of the game, come back to RED, and let's learn how to texture our geometry!&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_Test1.jpg|none|thumb|Testing your map in-game]]&lt;br /&gt;
&lt;br /&gt;
===Texturing your geometry===&lt;br /&gt;
First, let's swap to texture mode. You can do this either by clicking the &amp;quot;Mode&amp;quot; dropdown menu in the left corner of the window, or by using the Shift + T hotkey. In brush mode, when you click geometry in a viewport, you select the brushes. In texture mode however, clicking in the viewport selects the individual faces of your geometry so you can apply and edit the textures applies to them. Let's start easy - in free look, click the bottom face in your room, then hold the Ctrl key and click the bottom face in the other room. Holding the Ctrl key allows you to select multiple faces to apply textures to them at the same time!&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_SelectedFaces1.jpg|none|frame|Using Ctrl + Click, select the floors in both rooms.]]&lt;br /&gt;
&lt;br /&gt;
Once you've got the floor in both rooms selected, let's focus on the left side panel - this is where we apply textures to geometry and control how that texture is mapped to your geometry (ie. how it's stretched, positioned, etc.). Now, you could use the second dropdown to select a texture category, then select the filename of the texture you want from the first dropdown - but honestly, it's way easier to just view the thumbnails and select the texture you want that way. To do so, click the Browse button and you'll be presented with the window shown below. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=275px widths=400px mode=&amp;quot;traditional&amp;quot;&amp;gt;&lt;br /&gt;
File:REDBG_TexturePanel1.jpg|The Texture Mode left side panel.&lt;br /&gt;
File:REDBG_TextureBrowser1.jpg|Texture browser.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This window lets you browse through thumbnails for all the default textures available to you - as well as any custom textures you may have imported - and select the one you want to use. Click the Folder dropdown on the left (where &amp;quot;Root&amp;quot; is currently selected), and click &amp;quot;Floor - Metal&amp;quot; to view all the default metal floor textures in the game (you may need to scroll up to find it). Look through the available textures and when you find one you like, double click on it to select it, then hit OK to exit the browse window. From the panel on the left, hit &amp;quot;Apply&amp;quot; to apply the selected texture to the selected faces, then &amp;quot;Apply Map&amp;quot; to apply box UV mapping to the faces. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=275px widths=400px mode=&amp;quot;traditional&amp;quot;&amp;gt;&lt;br /&gt;
File:REDBG_TextureBrowser2.jpg|Select the metal floor texture you wish to use.&lt;br /&gt;
File:REDBG_AppliedFloor1.jpg|Hit Apply, then Apply Map to map your chosen texture to the floor in each room.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, repeat the process for the ceilings in both rooms as well as the floors and ceilings in the hallways. When you've textured all your floors and ceilings, you should have something that looks similar to the screenshot below.&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_AppliedFloorCeil1.jpg|none|frame|Apply chosen textures to the floors and ceilings in both rooms and the hallways.]]&lt;br /&gt;
&lt;br /&gt;
Now you may be wondering why we haven't textured our walls yet - I know I would be. The answer is efficiency. Because we're going to give all the walls in our map the same texture, let's take advantage of that to make our lives a little easier. First, select one of the wall faces (it should still have the grey grid texture applied). Next, hit the &amp;quot;Pick Texture&amp;quot; button on the left panel to set your selected texture to the texture already applied to the selected face (Rck_Default.tga). Then, hit the &amp;quot;Select Faces&amp;quot; button to select all faces in your map that have the selected texture applied to them. When you do so, every wall in your map will be selected at once, and when you browse for and apply a wall texture of your choice, it'll be applied to every wall without you needing to go through and click on each one individually. Pretty cool, huh?&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_TexturePanel2.jpg|none|frame|Use Pick Texture, then Select Faces to select all textures in your map that still have the default grid texture applied.]]&lt;br /&gt;
&lt;br /&gt;
Here are some additional hotkeys you can use make your life easier when texturing. I won't go through a use case for each here, but feel free to experiment with and get used to them.&lt;br /&gt;
*'''Shift + S''': If you have one or more faces currently selected, the Shift + S hotkey selects all faces on each brush for which you have at least one face selected.&lt;br /&gt;
*'''Shift + D''': If you have one or more faces currently selected, the Shift + D hotkey selects all faces on each brush for which you have at least one face selected, that have the same texture as one of the faces you have selected.&lt;br /&gt;
*'''I''': If you have one or more faces currently selected, the I hotkey inverts which faces you have selected within each brush for which you have at least one face selected. For example, if you have the top and right faces of a box brush selected and you hit I, those faces become unselected but the other 4 faces on that brush become selected.&lt;br /&gt;
&lt;br /&gt;
Go ahead and follow the same method you just did to apply a texture from the &amp;quot;Wall - Metal&amp;quot; category to the selected wall faces in your map. Note that the scroll wheel won't work when in the browse dialog, but you can use the scroll bar on the right of the window to scroll down through the textures in the category. Once you've apply a texture to your walls (and hit &amp;quot;Apply Map&amp;quot; to apply box UV mapping), you should have something similar to the below screenshot.&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_FullyTextured.jpg|none|frame|Apply the metal wall texture of your choice to all the walls in your map.]]&lt;br /&gt;
&lt;br /&gt;
*'''NOTE''': I won't cover UV unwrapping in this tutorial as it's a little outside the scope, but please feel free to check out the [[Basic UV Unwrapping]] tutorial if you want to further refine how the textures are displayed on faces in your map.&lt;br /&gt;
&lt;br /&gt;
===Lighting your map===&lt;br /&gt;
Alright, now we've got a basic map layout with textures applied, let's add some lighting! While lighting can get more complex as you learn more about the engine and the editor, the basics are very, very simple. To start, let's shift over to Object mode by using the Mode dropdown in the top left corner, or the hotkey Shift + O. &lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_ObjectList.jpg|none|frame|Object mode left side panel, showing all available objects.]]&lt;br /&gt;
&lt;br /&gt;
In RED, there are only two types of &amp;quot;things&amp;quot; you can manipulate: brushes and objects. Brushes are geometry as you already know, objects are basically everything else - pickups, enemies, allies, vehicles, triggers, regions, lighting, etc. Once you switch to object mode, you'll see all of the objects that are available to you listed in the panel on the left side of your screen. Light is the one we're looking for right now, but later in this guide, we'll come back here and add some others.&lt;br /&gt;
&lt;br /&gt;
*'''NOTE''': As this is a beginner's guide, we're only going to cover basic usage of a few essential object types. If you're ever wondering what any object does though, the [[RED Objects]] page has a full and detailed explanation you can reference for each object within RED, and a full breakdown of all settings available for them.&lt;br /&gt;
&lt;br /&gt;
To add an object to your world, you simply double-click the object type in the panel on the left. When you do, the object will be added to your world '''at your camera location'''. In our case, we obviously want our light to be inside our map, so either position the camera inside the room using the camera movement keys, or hit the Home key to reset your camera to the Player Start, then double-click on the Light object in the panel on the left. Back up the camera slightly and you'll see your new light object represented by a sprite of a lightbulb with a yellow sphere around it as shown in the below screenshot. This sphere represents the range of the light.&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_Light1.jpg|none|frame|Double-click Light in the object list to place a new light object at the current camera position.]]&lt;br /&gt;
&lt;br /&gt;
Let's customize our light a little - to edit the properties of the light, right click in the viewport and select Properties, or use the Ctrl + P hotkey.&lt;br /&gt;
&lt;br /&gt;
*'''Ctrl + P''': Open the properties of the selection. In most cases, you can edit the properties of multiple objects at once, but they must be the same type of object. (ie. you can edit the properties of multiple lights at the same time, but you cannot edit the properties of a light and weapon pickup at the same time)&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_Light2.jpg|none|frame|Light object properties.]]&lt;br /&gt;
&lt;br /&gt;
When the light properties dialog comes up you will see a lot of different options - not to worry though, we're only concentrating on one for the purposes of this guide: the range. Go and set the range to 6.00 as shown below and hit OK to accept the changes. When you do, you should see the yellow sphere around your light grow to reflect the new range of the light.&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_Light3.jpg|none|frame|The yellow wireframe sphere representing the light range updates when you set a new range value.]]&lt;br /&gt;
&lt;br /&gt;
To see what your light looks like, click the &amp;quot;Lighting&amp;quot; button on the top bar of the RED window (in between Save/Pack and Play).&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_TopBarRed2.jpg|none|frame|The top bar in [[RED]] showing the Lighting button.]]&lt;br /&gt;
&lt;br /&gt;
Your room should look similar to the screenshot below - yay!&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_Light4.jpg|none|frame|After hitting the Lighting button, you will see your light applied to your geometry.]]&lt;br /&gt;
&lt;br /&gt;
Now, go ahead and use this same method to add lights to the other room and your hallway, with a range that seems to make sense. Remember to hit the &amp;quot;Lighting&amp;quot; button again once you're done in order to see your changes reflected in the world. Once you're happy with how your lighting looks, let's move on to nav points!&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_Light5.jpg|none|frame|Add more lights to the other room and hallway as they make sense. When you hit the Lighting button, you'll see how your lighting changes are affecting your geometry.]]&lt;br /&gt;
&lt;br /&gt;
===AI navigation===&lt;br /&gt;
Now that we've got a presentable basic map, let's get some enemies for us to shoot. Before we add enemies though, we need to be sure they know how to navigate in the world. In the GeoMod engine, AI navigation is controlled by nav points that are placed throughout the environment and linked together. Nav points are essentially regions within which the AI knows it can move around without obstacles or obstruction. Nav points are linked together to form a nav mesh. Some more advanced navigation principles come into play when your maps get more complex, but for the purposes of this tutorial, you just need to understand that anywhere within a nav point or the link region is walkable space for our guards.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Firstly, hit the Home key to reset your camera to the player start. Like any other object, nav points are placed by double-clicking on the nav point label in the left panel while in object mode. Go ahead and place a nav point now. When you back up the camera a little, you should see a nav point that looks like the one in the screenshot below.&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_NavPoint1.jpg|none|frame|Newly created Nav Point object.]]&lt;br /&gt;
&lt;br /&gt;
*'''IMPORTANT''': Before we go any further, click the View menu in the bar at the top of the screen (or hit Alt + V to open it), then click the option at the bottom of the list, labeled '''Show Path Node Connections'''. When you do, you'll notice that the cylinder representing the region of your nav point changes from grey to green. This setting must be enabled for you to view connections between path nodes. The option exists because when you have more complex nav meshes in larger maps, the lines representing all nav points and links can get pretty confusing, so unless you're actively working on your nav mesh for your map, you really don't want to be seeing them. &lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_ShowPathNodes.jpg|none|frame|Be sure to select the &amp;quot;Show Path Node Connections&amp;quot; option to properly display your nav mesh.]]&lt;br /&gt;
&lt;br /&gt;
Next, let's open up the properties of our nav point. Ensure the nav point is selected (click on the sprite in the center of it), then open its properties. Again, don't get overwhelmed with all the options in here - we only care about the radius right now. Go ahead and set that value to 5.00 and hit OK. When you do, you'll see that the cylinder representing the range of your nav point has expanded and now fills the entire room as shown below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=275px widths=400px mode=&amp;quot;traditional&amp;quot;&amp;gt;&lt;br /&gt;
File:REDBG_NavPoint2.jpg|Nav Point properties dialog.&lt;br /&gt;
File:REDBG_NavPoint3.jpg|The green cylinder representing the range of the nav point expands as you change the radius value in its properties.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If we had a guard in here, he'd be able to move around within the room to find us, but he wouldn't be able to chase you into the hallway or the other room if you went there. Let's fix that. First hit the Home button to reset your camera to the Player Start, then move forward until your camera is positioned in the corner formed by the two joining hallways, then double-click nav point again to place a second point. Back the camera up and you'll see a new green cylinder representing the range of this new nav point as shown below.&lt;br /&gt;
&lt;br /&gt;
*'''NOTE''': If the nav point isn't quite in the corner that joins the two hallways, use the move (M + arrow keys) function in the top viewport to adjust its position until it's roughly in the same place as shown in the screenshot below. You may need to reduce the grid size ([) to be able to move it into the right place.&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_NavPoint4.jpg|none|frame|Put a second nav point in the corner that joins both hallways.]]&lt;br /&gt;
&lt;br /&gt;
Well done, we now have a second nav point! There's only one problem - while a guard could walk around within either of our nav points, he won't know that he can walk between them, so let's fix that by creating a link. To do so, select one of your nav points, hold Ctrl, and select the other one. Then hit the J key to create a link. &lt;br /&gt;
&lt;br /&gt;
*'''J''': The J key (in object mode) is used to create a link between exactly two nav points. The width of the link will reflect the lesser diameter of the two nav points in the link. While we won't be using any type other than basic bidirectional links in this tutorial, you should be aware that if you continue hitting the J key after creating a link, you'll be changing the type of the link. If you see a green arrow inside the link, continue hitting J until the link disappears, then hit it once more to once again form a basic bidirectional link.&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_NavPoint5.jpg|none|frame|The two nav points are now connected with a bidirectional link, allowing AI to walk freely between them.]]&lt;br /&gt;
&lt;br /&gt;
Almost done with our nav mesh! Lastly, put a nav point in your second room (either by duplicating the first one and moving it into the other room, or creating a new one by positioning the camera in the second room and double-clicking nav point from the objects panel). Ensure that the radius you set for this nav point allows it to fit within the second room without overlapping the walls of the room. Once you're happy with your nav point, select it, hold Ctrl, select the nav point in the hallway, then hit J to form a link between them. You should now have a nav mesh consisting of 3 nav points joined by links, as shown in the screenshot below.&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_NavPoint6.jpg|none|frame|All nav points are connected together, allowing AI to walk all throughout your map.]]&lt;br /&gt;
&lt;br /&gt;
===Adding enemies and weapon pickups===&lt;br /&gt;
Now that we've got a nav mesh for AI to move around in, let's add some AI! The level of control RED gives level designers over AI and their behaviour is pretty extensive for such an old engine to be honest, but equally it's incredibly simple to set up some basic enemies to shoot. First, position your camera inside your second room, then click the + icon next to Entity on the left panel while in Object mode to expand the entity list, then click the + icon next to Ultor to expand the list of Ultor entities. Double-click &amp;quot;guard2&amp;quot; to add a guard to your room. If you back up your camera, you should see a guard in your room. Next, move your camera to the other side of the second room and double-click &amp;quot;guard1&amp;quot; to add a second guard.&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_SelectGuard.jpg|none|frame|Place two entities in the second room - guard1 and guard2.]]&lt;br /&gt;
&lt;br /&gt;
Your room should now look something like the screenshot below - two guards ready to shoot us on sight!&lt;br /&gt;
&lt;br /&gt;
*'''NOTE''': Entity is an object type that includes enemies, allies, and vehicles. Entities are very useful for in single player maps but have no function in multiplayer maps. &lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_Guards1.jpg|none|frame|Both guards in position, ready to fight!]]&lt;br /&gt;
&lt;br /&gt;
Before we test our map, let's add some extra firepower for our player who is about to go to battle against these guards - we're outnumbered, after all. To add a weapon pickup, first position your camera in the first room. Next, scroll down the object list until you see Item, and click the + sign next to it to expand the item list. Scroll down the item list until you see &amp;quot;rocket launcher&amp;quot;, and double-click it. If you back your camera up now, you should see a rocket launcher pickup!&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_Rocket1.jpg|none|frame|The rocket launcher pickup.]]&lt;br /&gt;
&lt;br /&gt;
Just in case your pickup is turned in a weird direction (like in the screenshot above) because of how your camera was positioned, let's take this opportunity to learn two new hotkeys that will serve you well in the future as you continue exploring and learning RED.&lt;br /&gt;
&lt;br /&gt;
*'''Ctrl + G''': Aligns selected objects and/or brushes to the current world grid. It's not generally important for objects to be grid aligned, but brushes should virtually always be grid aligned.&lt;br /&gt;
*'''O''': Reorients selection to the default rotation direction. If your camera is askew when you place an object and you don't want it to look that way in-game, it's often very useful to just hit the O key to reorient the item and make it look more presentable. You can then use the rotate (R + arrow keys) function to give it the rotation you desire.&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_Rocket2.jpg|none|frame|The properly oriented rocket launcher pickup positioned on the floor.]]&lt;br /&gt;
&lt;br /&gt;
===Finishing up and playing your map===&lt;br /&gt;
&lt;br /&gt;
Once your rocket launcher and enemies are placed, let's give our new map a try! Click the Lighting button on the top bar to ensure our lights are properly calculated, then click Save to save your level, then Pack to package it. Once the level is packaged, click Play to try it out!&lt;br /&gt;
&lt;br /&gt;
[[File:REDBG_Test2.jpg|none|thumb|Fighting the guards in the finished map.]]&lt;br /&gt;
&lt;br /&gt;
I hope this tutorial has helped to show you how powerful yet simple RED is to learn. Be sure to check out the [[RF1 Editing Main Page]] for additional reference materials, tutorials, and the link to join the [https://discord.gg/factionfiles Faction Files Community Discord] - which is the largest Red Faction community anywhere, and the best place to ask for help with RED or to show off your creations! It's a welcoming and approachable community, and we'd be more than happy to help you as much as possible in learning the editor. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additionally, please do be sure to upload your created maps to the community database at [https://factionfiles.com FactionFiles.com]! Everyone loves playing new maps, and giving others the chance to play and review your maps can be an incredible learning tool.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: RF1 Editing]]&lt;br /&gt;
[[Category: Tutorials]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Alpine_Level_Design&amp;diff=15149</id>
		<title>Alpine Level Design</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Alpine_Level_Design&amp;diff=15149"/>
		<updated>2026-01-14T03:57:36Z</updated>

		<summary type="html">&lt;p&gt;Goober: /* HUD Messages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BubbleNav|RF1Modding}}&lt;br /&gt;
[[File:Alpinelogo1.png|center]]&lt;br /&gt;
&lt;br /&gt;
This page lists all major differences between normal Red Faction level design and level design for Alpine Levels, as featured in Alpine Faction.&lt;br /&gt;
&lt;br /&gt;
*This page is current as of the release of Alpine Faction v1.2.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
===Versioning===&lt;br /&gt;
'''Alpine Levels are playable only using Alpine Faction.'''&lt;br /&gt;
&lt;br /&gt;
Due to features unavailable in those clients, Alpine Levels are '''not''' playable while using other client versions such as any version of Red Faction (official builds), Pure Faction, or Dash Faction.&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
* '''Troubleshooting goals''' - You can use the &amp;lt;tt&amp;gt;[ dbg_goal GOALNAME ]&amp;lt;/tt&amp;gt; console command at any time to query a goal by name and print its current and initial values.&lt;br /&gt;
* '''Troubleshooting event and trigger links''' - You can use the &amp;lt;tt&amp;gt;[ debug trigger ]&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;[ debug event ]&amp;lt;/tt&amp;gt; console commands at any time (SP only) to draw events and triggers and their links as arrows in the game world. Links from triggers are blue, links from events are purple.&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
* '''Multiplayer playtesting''' - In addition to the '''Play''' and '''Play from Camera''' features that have always been available, the Alpine level editor adds a feature to allow you to playtest multiplayer maps in multiplayer. If you click the '''Play in multi''' or '''Play in multi (camera)''' buttons on the top toolbar, the game will launch you into a listen (local) server running your level.&lt;br /&gt;
* '''Hotkeys''' - The F9 hotkey now maps to '''Play in multi''' and F10 maps to '''Play in multi (camera)'''&lt;br /&gt;
* '''Object links''' - You can now link to multiple objects at once. When you select multiple objects and press &amp;quot;K&amp;quot;, the first object you selected will be linked to all other object you have selected.&lt;br /&gt;
* '''Pixels/meter tiling''' - The maximum configurable value in Preference-&amp;gt;Texture has been raised to 8192.&lt;br /&gt;
&lt;br /&gt;
===Level Properties===&lt;br /&gt;
* '''RFL version''' - Is now displayed in the Level Properties window.&lt;br /&gt;
* '''Fog''' - Default fog colour for newly created levels is now (0, 0, 0) full black instead of the stock game default of (40, 40, 40).&lt;br /&gt;
====Advanced options====&lt;br /&gt;
These options allow level designers to access new functionality available only in Alpine Faction. The default values for existing levels ensure functionality continues as it always has (legacy compatible), while the default values for new levels enable the new features. You can control them yourself in the Level Properties window.&lt;br /&gt;
* '''Legacy Cyclic_Timer events''' - Disable Cyclic_Timer fix, see [[#Fixed Cyclic_Timer|Fixed Cyclic_Timer]] for more information. Defaults to true for existing levels, false for new levels.&lt;br /&gt;
* '''Legacy movers''' - Disable new Alpine mover logic, see [[Alpine Level Design#Movers|Movers]] for more information. Defaults to true for existing levels, false for new levels.&lt;br /&gt;
* '''Player starts with headlamp''' - If true, players of this level can use their headlamp immediately when the level loads (SP only). If false, the player must first be given a headlamp with [[RED Event List#Set_Gameplay_Rule|Set_Gameplay_Rule]] before they can use their headlamp. Defaults to true for existing and new levels.&lt;br /&gt;
* '''Override static mesh ambient light scale''' - If true, use the specified '''New scale value''' as scalar for ambient light applied to static meshes. If false, use the stock game's behaviour, which is a scale of 2.0 when loaded in SP and 3.2 when loaded in MP. Defaults to false for existing and new levels.&lt;br /&gt;
&lt;br /&gt;
==Geometry==&lt;br /&gt;
When constructing non-Alpine levels, faces are added to &amp;quot;fix ps2 tiling&amp;quot; when building geometry, if the texture applied to a given surface tiles many times. This does not occur when constructing Alpine Levels - you can safely tile textures as much as you like without it resulting in additional unnecessary faces being added.&lt;br /&gt;
&lt;br /&gt;
Similarly, when adding brushes to moving groups during construction of non-Alpine levels, if those brushes have surfaces with textures that tile many times, the brush will be split. This also does not occur when constructing Alpine Levels - you can safely tile textures as much as you like on brushes that either are, or will eventually be, members of moving groups, without it resulting in additional unnecessary faces being added.&lt;br /&gt;
&lt;br /&gt;
==Movers==&lt;br /&gt;
Alpine Faction fixes several issues present in the stock game with movers, and adds some new functionality for mappers. All functionality described in this section is subject to the [[#Advanced options|Legacy movers]] option.&lt;br /&gt;
&lt;br /&gt;
===Translating Movers===&lt;br /&gt;
In the stock game, translating movers were never able to move slower than 0.4m/sec. This is now resolved, and movers can move very slow if configured as such. A hard minimum velocity of 0.001m/sec is imposed to handle some obscure framerate-related issues, but in a practical sense this will never be a limiting factor.&lt;br /&gt;
&lt;br /&gt;
In the stock game, travel time is calculated without taking acceleration/deceleration into account, which results in a drift in travel time equal to 50% of the combined acceleration + deceleration time. This is now resolved, and the travel time configured for the keyframe is respected. Note that if the combined acceleration + deceleration time is greater than the configured travel time, the travel time will be increased by Alpine Faction in order to accommodate the provided values.&lt;br /&gt;
&lt;br /&gt;
In the stock game, the way values were applied along the mover path was not always intuitive. In Alpine Faction, the travel, acceleration, and deceleration times for a movement segment are always as configured on the starting keyframe for that segment.&lt;br /&gt;
* For example, if a mover is moving forward from Keyframe A -&amp;gt; B -&amp;gt; C, and is set to &amp;quot;Ping Pong Once&amp;quot;:&lt;br /&gt;
** Time values configured on Keyframe A are used for the movement from A -&amp;gt; B (moving forward, uses &amp;quot;Departing Travel Time&amp;quot;)&lt;br /&gt;
** Time values configured on Keyframe B are used for the movement from B -&amp;gt; C (moving forward, uses &amp;quot;Departing Travel Time&amp;quot;)&lt;br /&gt;
** The mover hits Keyframe C, and because it's set to &amp;quot;Ping Pong Once&amp;quot;, it reverses direction and begins moving backwards&lt;br /&gt;
** Time values configured on Keyframe C are used for the movement from C -&amp;gt; B (moving backward, uses &amp;quot;Returning Travel Time&amp;quot;)&lt;br /&gt;
** Time values configured on Keyframe B are used for the movement from B -&amp;gt; A (moving backward, uses &amp;quot;Returning Travel Time&amp;quot;)&lt;br /&gt;
** The mover hits Keyframe A, and because it's set to &amp;quot;Ping Pong Once&amp;quot; and has now reached its starting position, it stops. The next time it is activated, it begins moving forward from Keyframe A -&amp;gt; B again.&lt;br /&gt;
&lt;br /&gt;
===Rotating Movers===&lt;br /&gt;
In the stock game, &amp;quot;Loop Once&amp;quot; and &amp;quot;Loop Infinite&amp;quot; on rotating movers with rotation degrees &amp;lt; 360 just continued looping 360 degrees regardless. This is now resolved, so the mover works as expected - i.e. with rotation degrees 90 and type &amp;quot;Loop Once&amp;quot;, the mover rotates 90 degrees and then snaps back to its starting position.&lt;br /&gt;
&lt;br /&gt;
In the stock game, &amp;quot;Ping Pong Infinite&amp;quot; on rotating movers did not work properly - the behaviour was different than &amp;quot;Ping Pong Once&amp;quot;. This is now resolved, and &amp;quot;Ping Pong Infinite&amp;quot; functions identically to &amp;quot;Ping Pong Once&amp;quot;, just continues going until forcefully stopped.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;Lift&amp;quot; Movement Type===&lt;br /&gt;
This option has always been available in [[RED_Objects#Keyframe|Keyframe]] properties, but has functioned the same as the &amp;quot;One Way&amp;quot; type. This has been resolved - &amp;quot;Lift&amp;quot; now works similarly to &amp;quot;One Way&amp;quot;, however whereas &amp;quot;One Way&amp;quot; ensures a one way movement from the starting keyframe to the last keyframe, &amp;quot;Lift&amp;quot; moves just one segment per activation, and then stops and waits to be activated again.&lt;br /&gt;
&lt;br /&gt;
===Force Orient===&lt;br /&gt;
This option has always been available in [[RED_Objects#Keyframe|Keyframe]] properties, but using it would make levels crash when loading. In Alpine Faction, this option now works properly:&lt;br /&gt;
* For translating movers, it ensures the mover faces the direction of movement while moving (resets to base orientation when stopped)&lt;br /&gt;
* For rotating movers, it ensures the mover maintains its base orientation when moving.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' While the Force Orient functionality is restricted to Alpine levels (and subject to the &amp;quot;Legacy Movers&amp;quot; option), Alpine Faction fixes the crash issue across all levels. Older levels will no longer crash when this option is used, but they also won't be able to use the functionality (they will act as though this option was simply not enabled).&lt;br /&gt;
&lt;br /&gt;
==Lighting==&lt;br /&gt;
===Lightmaps===&lt;br /&gt;
In Alpine Levels, the game does not apply lightmap clamping. This means that the full range of available colors is available - including fully unlit (black) areas. Put another way, the way your lightmaps look when you calculate them in the level editor is how they will look in game.&lt;br /&gt;
&lt;br /&gt;
Additionally, the stock editor applies similar lightmap clamping when opening saved levels. This has also been removed in Alpine RED - levels loaded in Alpine RED will look as they did when they were saved.&lt;br /&gt;
===Dynamic Lights===&lt;br /&gt;
Alpine Levels can utilize dynamic lights - configured via the &amp;quot;Dynamic&amp;quot; checkbox in light properties. Using the ''Anchor_Marker'' event (described below), you can also move dynamic lights using moving groups. &lt;br /&gt;
&lt;br /&gt;
Note: Dynamic lights are far more taxing on game performance than normal (static) lights. You should keep this in mind when designing, and use dynamic lights only where necessary to achieve your desired effect.&lt;br /&gt;
&lt;br /&gt;
==Skyboxes==&lt;br /&gt;
In Alpine Levels, while you can still make static skyboxes as you always could before if you wish, through the ''Set_Skybox'' event (described below) you can enhance your skyboxes. The key differences are listed below.&lt;br /&gt;
&lt;br /&gt;
Note: When making an enhanced skybox, while you still do need to place a ''Room Effect'' in the room that is to be your sky room, you should '''not''' select the &amp;quot;Sky Room&amp;quot; type on the ''Room Effect'' - instead, leave &amp;quot;type&amp;quot; set to &amp;quot;None&amp;quot;. The UID of the ''Room Effect'' is the skybox room UID you will specify in the properties of the ''Set_Skybox'' event.&lt;br /&gt;
&lt;br /&gt;
===Base Functionality===&lt;br /&gt;
Enhanced skyboxes retain all functionality seen in normal skyboxes, but add:&lt;br /&gt;
* '''Lighting''' - Lightmaps are rendered in surfaces in enhanced skyboxes (Direct3D 11 renderer only). If you do not want lightmaps on your skybox faces, you can set them to fullbright in texture properties.&lt;br /&gt;
* '''Liquid''' - You can set the ''Room Effect'' that designates your enhanced skybox room to type &amp;quot;Liquid Room&amp;quot; if you wish to have a liquid surface in your sky room.&lt;br /&gt;
&lt;br /&gt;
===Eye Anchor===&lt;br /&gt;
When setting an enhanced skybox via the ''Set_Skybox'' event, you can specify an &amp;quot;eye anchor&amp;quot; UID. This must be the UID of an ''Anchor_Marker'' event that is inside the skybox room you are using. If you specify a valid &amp;quot;eye anchor&amp;quot; UID, this will be the position from which the sky room will be visible when projected as your skybox. You can also place the ''Anchor_Marker'' in a moving group and move it with keyframes if you wish.&lt;br /&gt;
&lt;br /&gt;
Caution: Moving the &amp;quot;eye anchor&amp;quot; with keyframes can be very disorienting and take away from your level if you are not careful. In general, you should avoid quick movements.&lt;br /&gt;
&lt;br /&gt;
===Relative Position===&lt;br /&gt;
When setting an enhanced skybox via the ''Set_Skybox'' event, you can turn on &amp;quot;use relative position&amp;quot; and specify a &amp;quot;relative position scale&amp;quot;. If you do, players can move around &amp;quot;inside the sky room&amp;quot; as they play your map. The position of your camera in relation to the world origin (position 0,0,0) is mapped to the &amp;quot;eye&amp;quot; position in the skybox, relative to the &amp;quot;eye anchor&amp;quot; position in the sky room. The position is scaled using the scale.&lt;br /&gt;
&lt;br /&gt;
* A &amp;quot;relative position scale&amp;quot; of 1.0 maps camera position relative to world origin to eye position relative to eye anchor position at a ratio of 1:1 - every 1m moved in the world is 1m moved in the skybox.&lt;br /&gt;
* A &amp;quot;relative position scale&amp;quot; of 0.25 however, means every 1m moved in the world is 0.25m moved in the skybox. Using this, you can make your skybox much smaller than your actual level.&lt;br /&gt;
&lt;br /&gt;
Note: Relative position '''requires''' you specify a scale and an eye anchor (and of course a skyboox room UID). If you do not specify each of these, ticking the &amp;quot;use relative position&amp;quot; option will have no effect.&lt;br /&gt;
&lt;br /&gt;
==Multiplayer Respawn Points==&lt;br /&gt;
The stock game recognized only the first 32 [[RED Objects#Multiplayer Respawn Point|Multiplayer Respawn Points]] placed in a level. Alpine Faction recognizes the first 2048.&lt;br /&gt;
&lt;br /&gt;
In the new KOTH, DC, REV, and ESC gametypes, Multiplayer Respawn Points can be associated with control points. This behaviour is further described in [[Mapping with Control Points#Advanced Mechanics|Mapping with Control Points]].&lt;br /&gt;
&lt;br /&gt;
Multiplayer Respawn Points can now be toggled on/off with [[RED Event List#AF_Utility|Respawn_Point_State]], and the associated team(s) changed with [[RED Event List#AF_General|Modify_Respawn_Point]].&lt;br /&gt;
&lt;br /&gt;
==Triggers==&lt;br /&gt;
In multiplayer, unlike levels made for other versions of the game, triggers in Alpine Levels can activate events directly. This includes stock game events and Alpine Events (described below).&lt;br /&gt;
&lt;br /&gt;
The following events are not supported in multiplayer and will not function if triggered:&lt;br /&gt;
* Load_Level&lt;br /&gt;
* Endgame&lt;br /&gt;
* Defuse_Nuke&lt;br /&gt;
* Drop_Point_Marker&lt;br /&gt;
* Go_Undercover&lt;br /&gt;
* Win_PS2_Demo&lt;br /&gt;
* Play_Video&lt;br /&gt;
* When_Picked_Up&lt;br /&gt;
&lt;br /&gt;
==Items==&lt;br /&gt;
In single player, unlike levels made for other versions of the game, Alpine Levels allow the player to pick up the ''Multi Super Health'' and ''Multi Super Armor'' items.&lt;br /&gt;
&lt;br /&gt;
==HUD Messages==&lt;br /&gt;
Magic words can be used in HUD message display (via the ''HUD_Message'' event, and any other reason HUD messages would be rendered) to display dynamic values to the player. The stock game supported the use of magic words in HUD messages for a subset of the controls in the stock game (used in the training mission), but Alpine Faction expands this capability substantially. To use these magic words, simply include their text exactly as written below in the string for your HUD message.&lt;br /&gt;
&lt;br /&gt;
The following is a list of magic words that are available for use by level designers and mod developers in Alpine Faction, as well as what they are translated to when displayed as a HUD message&lt;br /&gt;
* '''$FIRE$''' - Name of the key or mouse button assigned to the primary fire control&lt;br /&gt;
* '''$ALT_FIRE$''' - Name of the key or mouse button assigned to the alternate fire control&lt;br /&gt;
* '''$USE$''' - Name of the key or mouse button assigned to the use control&lt;br /&gt;
* '''$JUMP$''' - Name of the key or mouse button assigned to the jump control&lt;br /&gt;
* '''$CROUCH$''' - Name of the key or mouse button assigned to the crouch control&lt;br /&gt;
* '''$HOLSTER$''' - Name of the key or mouse button assigned to the holster weapon control&lt;br /&gt;
* '''$RELOAD$''' - Name of the key or mouse button assigned to the reload weapon control&lt;br /&gt;
* '''$NEXT_WEAPON$''' - Name of the key or mouse button assigned to the next weapon control&lt;br /&gt;
* '''$PREV_WEAPON$''' - Name of the key or mouse button assigned to the previous weapon control&lt;br /&gt;
* '''$MESSAGE_LOG$''' - Name of the key or mouse button assigned to the message log control&lt;br /&gt;
* '''$QUICK_SAVE$''' - Name of the key or mouse button assigned to the quick save control&lt;br /&gt;
* '''$QUICK_LOAD$''' - Name of the key or mouse button assigned to the quick load control&lt;br /&gt;
* '''$HEADLAMP$''' - Name of the key or mouse button assigned to the toggle headlamp control&lt;br /&gt;
* '''$SKIP_CUTSCENE$''' - Name of the key or mouse button assigned to the skip cutscene control&lt;br /&gt;
* '''$goal_GOALNAME$''' - Value of the goal with name equal to GOALNAME, if such a goal exists in the current map&lt;br /&gt;
&lt;br /&gt;
==Events==&lt;br /&gt;
===Fixed Delay Parameter===&lt;br /&gt;
Outside of Alpine Levels, using the delay parameter with the following stock game events leads to that event breaking - the effect will never apply. In Alpine Levels, the delay parameter can be used on these events without issue - just like any other event.&lt;br /&gt;
* '''Play_Sound'''&lt;br /&gt;
* '''Cyclic_Timer'''&lt;br /&gt;
* '''Make_Invulnerable'''&lt;br /&gt;
* '''Alarm_Siren'''&lt;br /&gt;
* '''Unhide'''&lt;br /&gt;
&lt;br /&gt;
===Fixed Cyclic_Timer===&lt;br /&gt;
Normally, the [[RED Event List#Cyclic_Timer|Cyclic_Timer]] fires twice on its first activation. In Alpine levels, this is fixed so the first activation (like every other activation_ fires only once. (Subject to [[#Advanced options|Legacy Cyclic_Timer events]] option)&lt;br /&gt;
&lt;br /&gt;
===Enhanced Functionality===&lt;br /&gt;
In Alpine Levels, some stock game events have been improved in various ways:&lt;br /&gt;
* '''Headlamp_State''' - If not linked to any specific entities, applies to the player. Can be used to toggle the player flashlight.&lt;br /&gt;
* '''Holster_Weapon''' - Could always be turned on to holster the weapon of linked entities. In Alpine Levels, can also be turned off to force those entities to unholster their weapons.&lt;br /&gt;
* '''Holster_Player_Weapon''' - Could always be turned on to holster the player's weapon. In Alpine Levels, can also be turned off to unholster the player's weapon.&lt;br /&gt;
&lt;br /&gt;
====Dash Faction====&lt;br /&gt;
The following events had functionality added in Dash Faction 1.5.0. This functionality is not specific to Alpine Levels - it is available on any levels when using Dash Faction 1.5.0+ or any version of Alpine Faction. On other client versions (including all official client versions), although levels that rely on this functionality can be loaded, the functionality of these events will be restricted to only their stock game behaviour, which could lead to undesirable behaviour.&lt;br /&gt;
* '''Set_Liquid_Depth''' - Had no effect in the stock game. Can now be used to smoothly change the depth of a liquid room.&lt;br /&gt;
* '''Switch_Model''' - Used to swap the mesh used by linked clutter objects to a specified file. Could be used in stock game as long as the specified mesh file was a stock game file. Can now be used to specify custom meshes distributed with levels.&lt;br /&gt;
&lt;br /&gt;
===Directional Events===&lt;br /&gt;
3D arrows in the Alpine level editor are drawn from directional events - that is, events that save their orientation and use it for some purpose. (most events are not directional). The following events are directional:&lt;br /&gt;
* '''Play_VClip''' - (did not display a 3D arrow in stock level editor, does in Alpine level editor)&lt;br /&gt;
* '''Teleport''' - (did not display a 3D arrow in stock level editor, does in Alpine level editor)&lt;br /&gt;
* '''Teleport_Player'''&lt;br /&gt;
* '''Clone_Entity'''&lt;br /&gt;
* '''AF_Teleport_Player'''&lt;br /&gt;
* '''Anchor_Marker_Orient'''&lt;br /&gt;
&lt;br /&gt;
===Alpine Events===&lt;br /&gt;
* Alpine Faction adds many brand new event objects for use by level designers. For a full list of the new Alpine events, and a breakdown of the functionality of each, see [[RED_Event_List#Alpine_Faction|Alpine Faction Event List]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: RF1 Editing]]&lt;br /&gt;
[[Category: Alpine Faction]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_News_Feed&amp;diff=15148</id>
		<title>Alpine Faction News Feed</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_News_Feed&amp;diff=15148"/>
		<updated>2026-01-04T13:58:34Z</updated>

		<summary type="html">&lt;p&gt;Goober: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;- Alpine Faction 1.2.2 released: Jan 4, '26&lt;br /&gt;
- RF Game Night 176: Jan 17, '26&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_Release_Highlights&amp;diff=15147</id>
		<title>Alpine Faction Release Highlights</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_Release_Highlights&amp;diff=15147"/>
		<updated>2026-01-04T13:58:16Z</updated>

		<summary type="html">&lt;p&gt;Goober: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:Alpinelogo1.png|center]]&lt;br /&gt;
{|&lt;br /&gt;
|{{AlpineInstallDiscord|Click here to join the FactionFiles Community Discord|If you have any questions or concerns, please join the '''FactionFiles Community Discord''' for assistance. The FactionFiles Discord is also the place to go to participate in organized community game night events, and get help with anything else related to the Red Faction series.}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below are the most important highlights from each major [https://alpinefaction.com Alpine Faction] release. This page assumes you are already familiar with Red Faction, and prior versions of Alpine Faction, and is intended just as a &amp;quot;quick start guide&amp;quot; to summarize key features for each release.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT: This is not an exhaustive changelog!'''&lt;br /&gt;
&lt;br /&gt;
This page only has what I feel are the most important aspects of each release. For a full changelog at any given time, visit [https://github.com/GooberRF/alpinefaction/blob/master/docs/CHANGELOG.md CHANGELOG.md] on the Alpine Faction repository.&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.2.2==&lt;br /&gt;
* Released 04 Jan 2026&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer improvements&lt;br /&gt;
** Add dynamic light glows from explosions&lt;br /&gt;
** Add dynamic light glows from burning entities&lt;br /&gt;
** Fix crash when very complex levels are loaded&lt;br /&gt;
===Single Player===&lt;br /&gt;
* Fix crash when gibbing corpses&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* New &amp;lt;code&amp;gt;When_Round_Ends&amp;lt;/code&amp;gt; event&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.2.1==&lt;br /&gt;
* Released 30 Dec 2025&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
* Scoreboard is now split into sections as configured by the user. By default, spectators and browsers are split out from all other clients.&lt;br /&gt;
* Gibbing is now supported in multiplayer&lt;br /&gt;
* Reticles, damage notification numbers, and player labels can now be scaled using &amp;lt;code&amp;gt;ui_scale_&amp;lt;/code&amp;gt; console commands&lt;br /&gt;
* Reticles can now be colored using the &amp;lt;code&amp;gt;ui_color_reticle&amp;lt;/code&amp;gt; console command&lt;br /&gt;
* FPS/ping display is improved&lt;br /&gt;
* Free look spectate mode now persist through level loads&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer improvements&lt;br /&gt;
** Anti-aliasing can now be selected in the launcher options panel&lt;br /&gt;
** Max dynamic lights 8 -&amp;gt; 32 (now matches D3D9)&lt;br /&gt;
** Fixed multiple instances of a single static mesh sharing lighting data&lt;br /&gt;
** Rotating skyboxes now supported&lt;br /&gt;
** Ambient lighting of third person weapon models held by entities now supported&lt;br /&gt;
** Dynamic lights fixed (previously were far too dim)&lt;br /&gt;
** Rocket Launcher/Fusion IR scanner now renders properly&lt;br /&gt;
===Dedicated Servers===&lt;br /&gt;
* Legacy &amp;lt;code&amp;gt;dedicated_server.txt&amp;lt;/code&amp;gt; config method has now been removed, ADS TOML-based configs should be used instead&lt;br /&gt;
* Gibbing can be configured and customized by the server&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* Enlarged UV unwrap workspace&lt;br /&gt;
* &amp;lt;code&amp;gt;Ctrl + K&amp;lt;/code&amp;gt; can now be used to create links between selected objects in the opposite direction from the normal &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; hotkey&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.2==&lt;br /&gt;
* Released 06 Dec 2025&lt;br /&gt;
===General===&lt;br /&gt;
* Suppress autoswitch bind, &amp;lt;code&amp;gt;cl_autoswitchfirewait&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;cl_autoswitchempty&amp;lt;/code&amp;gt; can be used to customize autoswitch behaviour&lt;br /&gt;
* &amp;lt;code&amp;gt;sp_exposuredamage&amp;lt;/code&amp;gt; or the associated option in the advanced options menu can be used to turn off the &amp;quot;take damage when outside&amp;quot; mechanic in single player&lt;br /&gt;
* &amp;lt;code&amp;gt;-afs FILENAME&amp;lt;/code&amp;gt; can be used on the command line to specify a particular ini file to use instead of alpine_settings.ini. Allows players to manage multiple config files launched via different shortcuts&lt;br /&gt;
* You can now use the scroll wheel to scroll through lists in the menus&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
* New gametypes&lt;br /&gt;
** King of the Hill (KOTH)&lt;br /&gt;
** Damage Control (DC)&lt;br /&gt;
** Revolt (REV)&lt;br /&gt;
** Escalation (ESC)&lt;br /&gt;
** Run (RUN)&lt;br /&gt;
* Servers can now configure gametype and most other server settings on a per-level basis. Servers can run multiple gametypes in the same rotation seamlessly.&lt;br /&gt;
* Votes to start a match and change the level can now name rule presets (if configured by the server). This means players can vote for the ruleset they want when voting for a match/level.&lt;br /&gt;
* First-person spectate view now shows the spectated player's name with their team colour&lt;br /&gt;
* Chat menus now scale appropriately when &amp;lt;code&amp;gt;bighud&amp;lt;/code&amp;gt; is enabled&lt;br /&gt;
* The &amp;quot;Remote Server Config&amp;quot; bind can be used to display the server's current ruleset and map rotation&lt;br /&gt;
* &amp;lt;code&amp;gt;mp_handicap&amp;lt;/code&amp;gt; can be used to impose a damage reduction handicap on yourself&lt;br /&gt;
* You can now call gametype votes using &amp;lt;code&amp;gt;vote gametype TYPE MAP&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;vote gt TYPE MAP&amp;lt;/code&amp;gt;, where TYPE is a gametype abbreviation (i.e. CTF, KOTH, etc.) and MAP is a level filename.&lt;br /&gt;
* &amp;quot;One minute remaining&amp;quot; and other countdown sounds will now play a second time if the time is extended after they play (like due to overtime)&lt;br /&gt;
* &amp;quot;Winner&amp;quot; and &amp;quot;Game Over&amp;quot; at the end of the map fixed&lt;br /&gt;
* Scoreboard now identifies players as alive, dead, idle, bot, spectator, browser&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer improvements&lt;br /&gt;
** Colorblind mode rendering filter (&amp;lt;code&amp;gt;r_colorblind&amp;lt;/code&amp;gt;)&lt;br /&gt;
** Improved skybox rendering&lt;br /&gt;
** Picmip (&amp;lt;code&amp;gt;r_picmip&amp;lt;/code&amp;gt;)&lt;br /&gt;
** Vertex lighting for meshes&lt;br /&gt;
** Dynamic lighting for meshes and movers&lt;br /&gt;
** Support &amp;lt;code&amp;gt;r_fullbright&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;r_lightmaps&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;r_nearest&amp;lt;/code&amp;gt;&lt;br /&gt;
===Dedicated Servers===&lt;br /&gt;
* Dedicated servers should now be configured using one or more TOML files - web-based config builder is available [https://dedi.alpinefaction.com here]&lt;br /&gt;
* Framerates are now far more consistent, improving the overall play experience&lt;br /&gt;
* You can now configure gameplay rules (including gametype) on a per-level basis&lt;br /&gt;
* You can use the &amp;lt;code&amp;gt;sv_gametype TYPE MAP&amp;lt;/code&amp;gt; command to change the gametype on your server at any time. TYPE is a gametype abbreviation (i.e. CTF, KOTH, etc.) and MAP is a level filename.&lt;br /&gt;
* Much more useful information is now displayed when new players join your server, and when you run the &amp;lt;code&amp;gt;info&amp;lt;/code&amp;gt; command&lt;br /&gt;
* You can now use the &amp;lt;code&amp;gt;sv_restrict_status&amp;lt;/code&amp;gt; command to display the current client restriction status on the current level, with the current ruleset&lt;br /&gt;
* Clients are now restricted from voting if they are not able to play in your server.&lt;br /&gt;
* Server console now displays attempted joins that were rejected, and the reason for the rejection (e.g. &amp;quot;between levels&amp;quot;, &amp;quot;data incompatible&amp;quot;, etc.)&lt;br /&gt;
* Server console now alerts on failed &amp;lt;code&amp;gt;rcon_request&amp;lt;/code&amp;gt; attempts&lt;br /&gt;
* Vote config now supports &amp;quot;Ignore nonvoters&amp;quot; as an option&lt;br /&gt;
* &amp;lt;code&amp;gt;sv_loadconfig&amp;lt;/code&amp;gt; can be used to reload your server config (after you made changes to the files) without needing a server restart&lt;br /&gt;
* &amp;lt;code&amp;gt;sv_printconfig&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;sv_printrules&amp;lt;/code&amp;gt; can be used to display server information at any time&lt;br /&gt;
* &amp;lt;code&amp;gt;-min&amp;lt;/code&amp;gt; can be used on the command line to have your server console display only the minimum amount of information required&lt;br /&gt;
* &amp;lt;code&amp;gt;-log&amp;lt;/code&amp;gt; can be used to log all server console output to a log file in &amp;lt;code&amp;gt;RedFaction/logs&amp;lt;/code&amp;gt;&lt;br /&gt;
* If you run bots in your server, you can use &amp;lt;code&amp;gt;bot_shared_secret&amp;lt;/code&amp;gt; to ensure your bots are properly handled by your server (no spawning after ideal player count reached, exclude from votes, etc.)&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* You can now make maps for all of the new gametypes. For info on how to create control points (for KOTH, DC, REV, and ESC), see [[Mapping with Control Points]]&lt;br /&gt;
* &amp;quot;Play in multi (camera)&amp;quot; added to top toolbar&lt;br /&gt;
* F9 (Play in multi) and F10 (Play in multi (camera)) hotkeys added&lt;br /&gt;
* Playing in multi from RED will now launch on the correct gametype (based on map filename prefix)&lt;br /&gt;
* You can now link to multiple objects at once. When you select multiple objects and press &amp;quot;K&amp;quot;, the first object you selected will be linked to all other object you have selected.&lt;br /&gt;
* Respawn points can now be toggled on/off with the Respawn_Point_State event, and the associated team changed with the Modify_Respawn_Point event&lt;br /&gt;
* New settings in Level Properties&lt;br /&gt;
** &amp;quot;Legacy Cyclic_Timers&amp;quot; - If false, Cyclic_Timer events no longer double trigger on their first activation&lt;br /&gt;
** &amp;quot;Legacy movers&amp;quot; - If false, use new Alpine Faction mover functionality: fixed low velocity movers not working, fixed travel and ramp time calculations, fixed &amp;quot;Force Orient&amp;quot;, fixed &amp;quot;Lift&amp;quot; movement type, fixed &amp;quot;Ping Pong Infinite&amp;quot;/&amp;quot;Loop Once&amp;quot;/&amp;quot;Loop Infinite&amp;quot; movement types for rotating movers&lt;br /&gt;
** &amp;quot;Player starts with headlamp&amp;quot; - If false, do not allow the player to use the headlamp (until allowed via Set_Gameplay_Rule event)&lt;br /&gt;
** &amp;quot;Override static mesh ambient light scale&amp;quot; - If true, use the specified scale value. If false, use stock game behaviour (2.0 for SP, 3.2 for MP).&lt;br /&gt;
* New events&lt;br /&gt;
** Capture_Point_Handler&lt;br /&gt;
** Respawn_Point_State&lt;br /&gt;
** Modify_Respawn_Point&lt;br /&gt;
** When_Captured&lt;br /&gt;
** Set_Capture_Point_Owner&lt;br /&gt;
** Owner_Gate&lt;br /&gt;
** Set_Gameplay_Rule&lt;br /&gt;
&lt;br /&gt;
==[https://www.factionfiles.com/ff.php?action=file&amp;amp;id=8155&amp;amp;viewoldrev=1 Alpine Faction 1.1]==&lt;br /&gt;
* Released 19 Apr 2025&lt;br /&gt;
&lt;br /&gt;
==[https://www.factionfiles.com/ff.php?action=file&amp;amp;id=8085&amp;amp;viewoldrev=1 Alpine Faction 1.0]==&lt;br /&gt;
* Released 25 Jan 2025&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
* [[Alpine Faction Information]]&lt;br /&gt;
* [[Link Alpine Faction to a FactionFiles Account|How to Link Alpine Faction to your FactionFiles Account]]&lt;br /&gt;
* [[Red_Faction_Console_Commands#Alpine_Faction|Alpine Faction Console Commands]]&lt;br /&gt;
* [[Alpine Faction Level Design|Alpine Faction Level Design Information]]&lt;br /&gt;
* [[Alpine Faction Mod Development|Alpine Faction Mod Development Information]]&lt;br /&gt;
* [[Alpine Faction Dedicated Server Config]]&lt;br /&gt;
* [[Red_Faction_Command_Line_Parameters#Alpine_Faction|Alpine Faction Command Line Parameters]]&lt;br /&gt;
 &lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: Alpine Faction]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_Dedicated_Server_Config&amp;diff=15138</id>
		<title>Alpine Faction Dedicated Server Config</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_Dedicated_Server_Config&amp;diff=15138"/>
		<updated>2025-12-31T16:02:30Z</updated>

		<summary type="html">&lt;p&gt;Goober: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Alpinelogo1.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This page lists information you may need when hosting an Alpine Faction dedicated server. If you're running into issues customizing your server to your liking, join the [https://discord.gg/factionfiles Red Faction Community Discord] and we'll help you out.&lt;br /&gt;
&lt;br /&gt;
==Config Builder==&lt;br /&gt;
Please visit the [https://dedi.alpinefaction.com Alpine Faction Dedicated Server Config Builder] to build your config.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' All settings are optional. Defaults will be applied for any setting you do not explicitly configure.&lt;br /&gt;
==Descriptions==&lt;br /&gt;
WIP&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
* [[Alpine Faction Help|Alpine Faction FAQ]]&lt;br /&gt;
* [[Red_Faction_Console_Commands#Alpine_Faction|Alpine Faction Console Commands]]&lt;br /&gt;
* [[Alpine Faction Level Design|Alpine Faction Level Design Information]]&lt;br /&gt;
* [[Alpine Faction Mod Development|Alpine Faction Mod Development Information]]&lt;br /&gt;
* [[Alpine Faction Dedicated Server Config]]&lt;br /&gt;
* [[Red_Faction_Command_Line_Parameters#Alpine_Faction|Alpine Faction Command Line Parameters]]&lt;br /&gt;
 &lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: Alpine Faction]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_Release_Highlights&amp;diff=15137</id>
		<title>Alpine Faction Release Highlights</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_Release_Highlights&amp;diff=15137"/>
		<updated>2025-12-31T03:07:50Z</updated>

		<summary type="html">&lt;p&gt;Goober: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:Alpinelogo1.png|center]]&lt;br /&gt;
{|&lt;br /&gt;
|{{AlpineInstallDiscord|Click here to join the FactionFiles Community Discord|If you have any questions or concerns, please join the '''FactionFiles Community Discord''' for assistance. The FactionFiles Discord is also the place to go to participate in organized community game night events, and get help with anything else related to the Red Faction series.}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below are the most important highlights from each major [https://alpinefaction.com Alpine Faction] release. This page assumes you are already familiar with Red Faction, and prior versions of Alpine Faction, and is intended just as a &amp;quot;quick start guide&amp;quot; to summarize key features for each release.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT: This is not an exhaustive changelog!'''&lt;br /&gt;
&lt;br /&gt;
This page only has what I feel are the most important aspects of each release. For a full changelog at any given time, visit [https://github.com/GooberRF/alpinefaction/blob/master/docs/CHANGELOG.md CHANGELOG.md] on the Alpine Faction repository.&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.2.1==&lt;br /&gt;
* Released 30 Dec 2025&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
* Scoreboard is now split into sections as configured by the user. By default, spectators and browsers are split out from all other clients.&lt;br /&gt;
* Gibbing is now supported in multiplayer&lt;br /&gt;
* Reticles, damage notification numbers, and player labels can now be scaled using &amp;lt;code&amp;gt;ui_scale_&amp;lt;/code&amp;gt; console commands&lt;br /&gt;
* Reticles can now be colored using the &amp;lt;code&amp;gt;ui_color_reticle&amp;lt;/code&amp;gt; console command&lt;br /&gt;
* FPS/ping display is improved&lt;br /&gt;
* Free look spectate mode now persist through level loads&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer improvements&lt;br /&gt;
** Anti-aliasing can now be selected in the launcher options panel&lt;br /&gt;
** Max dynamic lights 8 -&amp;gt; 32 (now matches D3D9)&lt;br /&gt;
** Fixed multiple instances of a single static mesh sharing lighting data&lt;br /&gt;
** Rotating skyboxes now supported&lt;br /&gt;
** Ambient lighting of third person weapon models held by entities now supported&lt;br /&gt;
** Dynamic lights fixed (previously were far too dim)&lt;br /&gt;
** Rocket Launcher/Fusion IR scanner now renders properly&lt;br /&gt;
===Dedicated Servers===&lt;br /&gt;
* Legacy &amp;lt;code&amp;gt;dedicated_server.txt&amp;lt;/code&amp;gt; config method has now been removed, ADS TOML-based configs should be used instead&lt;br /&gt;
* Gibbing can be configured and customized by the server&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* Enlarged UV unwrap workspace&lt;br /&gt;
* &amp;lt;code&amp;gt;Ctrl + K&amp;lt;/code&amp;gt; can now be used to create links between selected objects in the opposite direction from the normal &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; hotkey&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.2==&lt;br /&gt;
* Released 06 Dec 2025&lt;br /&gt;
===General===&lt;br /&gt;
* Suppress autoswitch bind, &amp;lt;code&amp;gt;cl_autoswitchfirewait&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;cl_autoswitchempty&amp;lt;/code&amp;gt; can be used to customize autoswitch behaviour&lt;br /&gt;
* &amp;lt;code&amp;gt;sp_exposuredamage&amp;lt;/code&amp;gt; or the associated option in the advanced options menu can be used to turn off the &amp;quot;take damage when outside&amp;quot; mechanic in single player&lt;br /&gt;
* &amp;lt;code&amp;gt;-afs FILENAME&amp;lt;/code&amp;gt; can be used on the command line to specify a particular ini file to use instead of alpine_settings.ini. Allows players to manage multiple config files launched via different shortcuts&lt;br /&gt;
* You can now use the scroll wheel to scroll through lists in the menus&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
* New gametypes&lt;br /&gt;
** King of the Hill (KOTH)&lt;br /&gt;
** Damage Control (DC)&lt;br /&gt;
** Revolt (REV)&lt;br /&gt;
** Escalation (ESC)&lt;br /&gt;
** Run (RUN)&lt;br /&gt;
* Servers can now configure gametype and most other server settings on a per-level basis. Servers can run multiple gametypes in the same rotation seamlessly.&lt;br /&gt;
* Votes to start a match and change the level can now name rule presets (if configured by the server). This means players can vote for the ruleset they want when voting for a match/level.&lt;br /&gt;
* First-person spectate view now shows the spectated player's name with their team colour&lt;br /&gt;
* Chat menus now scale appropriately when &amp;lt;code&amp;gt;bighud&amp;lt;/code&amp;gt; is enabled&lt;br /&gt;
* The &amp;quot;Remote Server Config&amp;quot; bind can be used to display the server's current ruleset and map rotation&lt;br /&gt;
* &amp;lt;code&amp;gt;mp_handicap&amp;lt;/code&amp;gt; can be used to impose a damage reduction handicap on yourself&lt;br /&gt;
* You can now call gametype votes using &amp;lt;code&amp;gt;vote gametype TYPE MAP&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;vote gt TYPE MAP&amp;lt;/code&amp;gt;, where TYPE is a gametype abbreviation (i.e. CTF, KOTH, etc.) and MAP is a level filename.&lt;br /&gt;
* &amp;quot;One minute remaining&amp;quot; and other countdown sounds will now play a second time if the time is extended after they play (like due to overtime)&lt;br /&gt;
* &amp;quot;Winner&amp;quot; and &amp;quot;Game Over&amp;quot; at the end of the map fixed&lt;br /&gt;
* Scoreboard now identifies players as alive, dead, idle, bot, spectator, browser&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer improvements&lt;br /&gt;
** Colorblind mode rendering filter (&amp;lt;code&amp;gt;r_colorblind&amp;lt;/code&amp;gt;)&lt;br /&gt;
** Improved skybox rendering&lt;br /&gt;
** Picmip (&amp;lt;code&amp;gt;r_picmip&amp;lt;/code&amp;gt;)&lt;br /&gt;
** Vertex lighting for meshes&lt;br /&gt;
** Dynamic lighting for meshes and movers&lt;br /&gt;
** Support &amp;lt;code&amp;gt;r_fullbright&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;r_lightmaps&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;r_nearest&amp;lt;/code&amp;gt;&lt;br /&gt;
===Dedicated Servers===&lt;br /&gt;
* Dedicated servers should now be configured using one or more TOML files - web-based config builder is available [https://dedi.alpinefaction.com here]&lt;br /&gt;
* Framerates are now far more consistent, improving the overall play experience&lt;br /&gt;
* You can now configure gameplay rules (including gametype) on a per-level basis&lt;br /&gt;
* You can use the &amp;lt;code&amp;gt;sv_gametype TYPE MAP&amp;lt;/code&amp;gt; command to change the gametype on your server at any time. TYPE is a gametype abbreviation (i.e. CTF, KOTH, etc.) and MAP is a level filename.&lt;br /&gt;
* Much more useful information is now displayed when new players join your server, and when you run the &amp;lt;code&amp;gt;info&amp;lt;/code&amp;gt; command&lt;br /&gt;
* You can now use the &amp;lt;code&amp;gt;sv_restrict_status&amp;lt;/code&amp;gt; command to display the current client restriction status on the current level, with the current ruleset&lt;br /&gt;
* Clients are now restricted from voting if they are not able to play in your server.&lt;br /&gt;
* Server console now displays attempted joins that were rejected, and the reason for the rejection (e.g. &amp;quot;between levels&amp;quot;, &amp;quot;data incompatible&amp;quot;, etc.)&lt;br /&gt;
* Server console now alerts on failed &amp;lt;code&amp;gt;rcon_request&amp;lt;/code&amp;gt; attempts&lt;br /&gt;
* Vote config now supports &amp;quot;Ignore nonvoters&amp;quot; as an option&lt;br /&gt;
* &amp;lt;code&amp;gt;sv_loadconfig&amp;lt;/code&amp;gt; can be used to reload your server config (after you made changes to the files) without needing a server restart&lt;br /&gt;
* &amp;lt;code&amp;gt;sv_printconfig&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;sv_printrules&amp;lt;/code&amp;gt; can be used to display server information at any time&lt;br /&gt;
* &amp;lt;code&amp;gt;-min&amp;lt;/code&amp;gt; can be used on the command line to have your server console display only the minimum amount of information required&lt;br /&gt;
* &amp;lt;code&amp;gt;-log&amp;lt;/code&amp;gt; can be used to log all server console output to a log file in &amp;lt;code&amp;gt;RedFaction/logs&amp;lt;/code&amp;gt;&lt;br /&gt;
* If you run bots in your server, you can use &amp;lt;code&amp;gt;bot_shared_secret&amp;lt;/code&amp;gt; to ensure your bots are properly handled by your server (no spawning after ideal player count reached, exclude from votes, etc.)&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* You can now make maps for all of the new gametypes. For info on how to create control points (for KOTH, DC, REV, and ESC), see [[Mapping with Control Points]]&lt;br /&gt;
* &amp;quot;Play in multi (camera)&amp;quot; added to top toolbar&lt;br /&gt;
* F9 (Play in multi) and F10 (Play in multi (camera)) hotkeys added&lt;br /&gt;
* Playing in multi from RED will now launch on the correct gametype (based on map filename prefix)&lt;br /&gt;
* You can now link to multiple objects at once. When you select multiple objects and press &amp;quot;K&amp;quot;, the first object you selected will be linked to all other object you have selected.&lt;br /&gt;
* Respawn points can now be toggled on/off with the Respawn_Point_State event, and the associated team changed with the Modify_Respawn_Point event&lt;br /&gt;
* New settings in Level Properties&lt;br /&gt;
** &amp;quot;Legacy Cyclic_Timers&amp;quot; - If false, Cyclic_Timer events no longer double trigger on their first activation&lt;br /&gt;
** &amp;quot;Legacy movers&amp;quot; - If false, use new Alpine Faction mover functionality: fixed low velocity movers not working, fixed travel and ramp time calculations, fixed &amp;quot;Force Orient&amp;quot;, fixed &amp;quot;Lift&amp;quot; movement type, fixed &amp;quot;Ping Pong Infinite&amp;quot;/&amp;quot;Loop Once&amp;quot;/&amp;quot;Loop Infinite&amp;quot; movement types for rotating movers&lt;br /&gt;
** &amp;quot;Player starts with headlamp&amp;quot; - If false, do not allow the player to use the headlamp (until allowed via Set_Gameplay_Rule event)&lt;br /&gt;
** &amp;quot;Override static mesh ambient light scale&amp;quot; - If true, use the specified scale value. If false, use stock game behaviour (2.0 for SP, 3.2 for MP).&lt;br /&gt;
* New events&lt;br /&gt;
** Capture_Point_Handler&lt;br /&gt;
** Respawn_Point_State&lt;br /&gt;
** Modify_Respawn_Point&lt;br /&gt;
** When_Captured&lt;br /&gt;
** Set_Capture_Point_Owner&lt;br /&gt;
** Owner_Gate&lt;br /&gt;
** Set_Gameplay_Rule&lt;br /&gt;
&lt;br /&gt;
==[https://www.factionfiles.com/ff.php?action=file&amp;amp;id=8155&amp;amp;viewoldrev=1 Alpine Faction 1.1]==&lt;br /&gt;
* Released 19 Apr 2025&lt;br /&gt;
&lt;br /&gt;
==[https://www.factionfiles.com/ff.php?action=file&amp;amp;id=8085&amp;amp;viewoldrev=1 Alpine Faction 1.0]==&lt;br /&gt;
* Released 25 Jan 2025&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
* [[Alpine Faction Information]]&lt;br /&gt;
* [[Link Alpine Faction to a FactionFiles Account|How to Link Alpine Faction to your FactionFiles Account]]&lt;br /&gt;
* [[Red_Faction_Console_Commands#Alpine_Faction|Alpine Faction Console Commands]]&lt;br /&gt;
* [[Alpine Faction Level Design|Alpine Faction Level Design Information]]&lt;br /&gt;
* [[Alpine Faction Mod Development|Alpine Faction Mod Development Information]]&lt;br /&gt;
* [[Alpine Faction Dedicated Server Config]]&lt;br /&gt;
* [[Red_Faction_Command_Line_Parameters#Alpine_Faction|Alpine Faction Command Line Parameters]]&lt;br /&gt;
 &lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: Alpine Faction]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_News_Feed&amp;diff=15136</id>
		<title>Alpine Faction News Feed</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_News_Feed&amp;diff=15136"/>
		<updated>2025-12-31T02:17:06Z</updated>

		<summary type="html">&lt;p&gt;Goober: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;- Alpine Faction 1.2.1 released: Dec 30, '25&lt;br /&gt;
- RF Game Night 175: Jan 3, '26&lt;br /&gt;
- RF Game Night 176: Jan 17, '26&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_News_Feed&amp;diff=15123</id>
		<title>Alpine Faction News Feed</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_News_Feed&amp;diff=15123"/>
		<updated>2025-12-30T12:54:07Z</updated>

		<summary type="html">&lt;p&gt;Goober: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;- RF Game Night 175: Jan 3, '26&lt;br /&gt;
- RF Game Night 176: Jan 17, '26&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Alpine_Level_Design&amp;diff=15103</id>
		<title>Alpine Level Design</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Alpine_Level_Design&amp;diff=15103"/>
		<updated>2025-12-23T13:07:03Z</updated>

		<summary type="html">&lt;p&gt;Goober: /* Translating Movers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BubbleNav|RF1Modding}}&lt;br /&gt;
[[File:Alpinelogo1.png|center]]&lt;br /&gt;
&lt;br /&gt;
This page lists all major differences between normal Red Faction level design and level design for Alpine Levels, as featured in Alpine Faction.&lt;br /&gt;
&lt;br /&gt;
*This page is current as of the release of Alpine Faction v1.2.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
===Versioning===&lt;br /&gt;
'''Alpine Levels are playable only using Alpine Faction.'''&lt;br /&gt;
&lt;br /&gt;
Due to features unavailable in those clients, Alpine Levels are '''not''' playable while using other client versions such as any version of Red Faction (official builds), Pure Faction, or Dash Faction.&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
* '''Troubleshooting goals''' - You can use the &amp;lt;tt&amp;gt;[ dbg_goal GOALNAME ]&amp;lt;/tt&amp;gt; console command at any time to query a goal by name and print its current and initial values.&lt;br /&gt;
* '''Troubleshooting event and trigger links''' - You can use the &amp;lt;tt&amp;gt;[ debug trigger ]&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;[ debug event ]&amp;lt;/tt&amp;gt; console commands at any time (SP only) to draw events and triggers and their links as arrows in the game world. Links from triggers are blue, links from events are purple.&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
* '''Multiplayer playtesting''' - In addition to the '''Play''' and '''Play from Camera''' features that have always been available, the Alpine level editor adds a feature to allow you to playtest multiplayer maps in multiplayer. If you click the '''Play in multi''' or '''Play in multi (camera)''' buttons on the top toolbar, the game will launch you into a listen (local) server running your level.&lt;br /&gt;
* '''Hotkeys''' - The F9 hotkey now maps to '''Play in multi''' and F10 maps to '''Play in multi (camera)'''&lt;br /&gt;
* '''Object links''' - You can now link to multiple objects at once. When you select multiple objects and press &amp;quot;K&amp;quot;, the first object you selected will be linked to all other object you have selected.&lt;br /&gt;
* '''Pixels/meter tiling''' - The maximum configurable value in Preference-&amp;gt;Texture has been raised to 8192.&lt;br /&gt;
&lt;br /&gt;
===Level Properties===&lt;br /&gt;
* '''RFL version''' - Is now displayed in the Level Properties window.&lt;br /&gt;
* '''Fog''' - Default fog colour for newly created levels is now (0, 0, 0) full black instead of the stock game default of (40, 40, 40).&lt;br /&gt;
====Advanced options====&lt;br /&gt;
These options allow level designers to access new functionality available only in Alpine Faction. The default values for existing levels ensure functionality continues as it always has (legacy compatible), while the default values for new levels enable the new features. You can control them yourself in the Level Properties window.&lt;br /&gt;
* '''Legacy Cyclic_Timer events''' - Disable Cyclic_Timer fix, see [[#Fixed Cyclic_Timer|Fixed Cyclic_Timer]] for more information. Defaults to true for existing levels, false for new levels.&lt;br /&gt;
* '''Legacy movers''' - Disable new Alpine mover logic, see [[Alpine Level Design#Movers|Movers]] for more information. Defaults to true for existing levels, false for new levels.&lt;br /&gt;
* '''Player starts with headlamp''' - If true, players of this level can use their headlamp immediately when the level loads (SP only). If false, the player must first be given a headlamp with [[RED Event List#Set_Gameplay_Rule|Set_Gameplay_Rule]] before they can use their headlamp. Defaults to true for existing and new levels.&lt;br /&gt;
* '''Override static mesh ambient light scale''' - If true, use the specified '''New scale value''' as scalar for ambient light applied to static meshes. If false, use the stock game's behaviour, which is a scale of 2.0 when loaded in SP and 3.2 when loaded in MP. Defaults to false for existing and new levels.&lt;br /&gt;
&lt;br /&gt;
==Geometry==&lt;br /&gt;
When constructing non-Alpine levels, faces are added to &amp;quot;fix ps2 tiling&amp;quot; when building geometry, if the texture applied to a given surface tiles many times. This does not occur when constructing Alpine Levels - you can safely tile textures as much as you like without it resulting in additional unnecessary faces being added.&lt;br /&gt;
&lt;br /&gt;
Similarly, when adding brushes to moving groups during construction of non-Alpine levels, if those brushes have surfaces with textures that tile many times, the brush will be split. This also does not occur when constructing Alpine Levels - you can safely tile textures as much as you like on brushes that either are, or will eventually be, members of moving groups, without it resulting in additional unnecessary faces being added.&lt;br /&gt;
&lt;br /&gt;
==Movers==&lt;br /&gt;
Alpine Faction fixes several issues present in the stock game with movers, and adds some new functionality for mappers. All functionality described in this section is subject to the [[#Advanced options|Legacy movers]] option.&lt;br /&gt;
&lt;br /&gt;
===Translating Movers===&lt;br /&gt;
In the stock game, translating movers were never able to move slower than 0.4m/sec. This is now resolved, and movers can move very slow if configured as such. A hard minimum velocity of 0.001m/sec is imposed to handle some obscure framerate-related issues, but in a practical sense this will never be a limiting factor.&lt;br /&gt;
&lt;br /&gt;
In the stock game, travel time is calculated without taking acceleration/deceleration into account, which results in a drift in travel time equal to 50% of the combined acceleration + deceleration time. This is now resolved, and the travel time configured for the keyframe is respected. Note that if the combined acceleration + deceleration time is greater than the configured travel time, the travel time will be increased by Alpine Faction in order to accommodate the provided values.&lt;br /&gt;
&lt;br /&gt;
In the stock game, the way values were applied along the mover path was not always intuitive. In Alpine Faction, the travel, acceleration, and deceleration times for a movement segment are always as configured on the starting keyframe for that segment.&lt;br /&gt;
* For example, if a mover is moving forward from Keyframe A -&amp;gt; B -&amp;gt; C, and is set to &amp;quot;Ping Pong Once&amp;quot;:&lt;br /&gt;
** Time values configured on Keyframe A are used for the movement from A -&amp;gt; B (moving forward, uses &amp;quot;Departing Travel Time&amp;quot;)&lt;br /&gt;
** Time values configured on Keyframe B are used for the movement from B -&amp;gt; C (moving forward, uses &amp;quot;Departing Travel Time&amp;quot;)&lt;br /&gt;
** The mover hits Keyframe C, and because it's set to &amp;quot;Ping Pong Once&amp;quot;, it reverses direction and begins moving backwards&lt;br /&gt;
** Time values configured on Keyframe C are used for the movement from C -&amp;gt; B (moving backward, uses &amp;quot;Returning Travel Time&amp;quot;)&lt;br /&gt;
** Time values configured on Keyframe B are used for the movement from B -&amp;gt; A (moving backward, uses &amp;quot;Returning Travel Time&amp;quot;)&lt;br /&gt;
** The mover hits Keyframe A, and because it's set to &amp;quot;Ping Pong Once&amp;quot; and has now reached its starting position, it stops. The next time it is activated, it begins moving forward from Keyframe A -&amp;gt; B again.&lt;br /&gt;
&lt;br /&gt;
===Rotating Movers===&lt;br /&gt;
In the stock game, &amp;quot;Loop Once&amp;quot; and &amp;quot;Loop Infinite&amp;quot; on rotating movers with rotation degrees &amp;lt; 360 just continued looping 360 degrees regardless. This is now resolved, so the mover works as expected - i.e. with rotation degrees 90 and type &amp;quot;Loop Once&amp;quot;, the mover rotates 90 degrees and then snaps back to its starting position.&lt;br /&gt;
&lt;br /&gt;
In the stock game, &amp;quot;Ping Pong Infinite&amp;quot; on rotating movers did not work properly - the behaviour was different than &amp;quot;Ping Pong Once&amp;quot;. This is now resolved, and &amp;quot;Ping Pong Infinite&amp;quot; functions identically to &amp;quot;Ping Pong Once&amp;quot;, just continues going until forcefully stopped.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;Lift&amp;quot; Movement Type===&lt;br /&gt;
This option has always been available in [[RED_Objects#Keyframe|Keyframe]] properties, but has functioned the same as the &amp;quot;One Way&amp;quot; type. This has been resolved - &amp;quot;Lift&amp;quot; now works similarly to &amp;quot;One Way&amp;quot;, however whereas &amp;quot;One Way&amp;quot; ensures a one way movement from the starting keyframe to the last keyframe, &amp;quot;Lift&amp;quot; moves just one segment per activation, and then stops and waits to be activated again.&lt;br /&gt;
&lt;br /&gt;
===Force Orient===&lt;br /&gt;
This option has always been available in [[RED_Objects#Keyframe|Keyframe]] properties, but using it would make levels crash when loading. In Alpine Faction, this option now works properly:&lt;br /&gt;
* For translating movers, it ensures the mover faces the direction of movement while moving (resets to base orientation when stopped)&lt;br /&gt;
* For rotating movers, it ensures the mover maintains its base orientation when moving.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' While the Force Orient functionality is restricted to Alpine levels (and subject to the &amp;quot;Legacy Movers&amp;quot; option), Alpine Faction fixes the crash issue across all levels. Older levels will no longer crash when this option is used, but they also won't be able to use the functionality (they will act as though this option was simply not enabled).&lt;br /&gt;
&lt;br /&gt;
==Lighting==&lt;br /&gt;
===Lightmaps===&lt;br /&gt;
In Alpine Levels, the game does not apply lightmap clamping. This means that the full range of available colors is available - including fully unlit (black) areas. Put another way, the way your lightmaps look when you calculate them in the level editor is how they will look in game.&lt;br /&gt;
&lt;br /&gt;
Additionally, the stock editor applies similar lightmap clamping when opening saved levels. This has also been removed in Alpine RED - levels loaded in Alpine RED will look as they did when they were saved.&lt;br /&gt;
===Dynamic Lights===&lt;br /&gt;
Alpine Levels can utilize dynamic lights - configured via the &amp;quot;Dynamic&amp;quot; checkbox in light properties. Using the ''Anchor_Marker'' event (described below), you can also move dynamic lights using moving groups. &lt;br /&gt;
&lt;br /&gt;
Note: Dynamic lights are far more taxing on game performance than normal (static) lights. You should keep this in mind when designing, and use dynamic lights only where necessary to achieve your desired effect.&lt;br /&gt;
&lt;br /&gt;
==Skyboxes==&lt;br /&gt;
In Alpine Levels, while you can still make static skyboxes as you always could before if you wish, through the ''Set_Skybox'' event (described below) you can enhance your skyboxes. The key differences are listed below.&lt;br /&gt;
&lt;br /&gt;
Note: When making an enhanced skybox, while you still do need to place a ''Room Effect'' in the room that is to be your sky room, you should '''not''' select the &amp;quot;Sky Room&amp;quot; type on the ''Room Effect'' - instead, leave &amp;quot;type&amp;quot; set to &amp;quot;None&amp;quot;. The UID of the ''Room Effect'' is the skybox room UID you will specify in the properties of the ''Set_Skybox'' event.&lt;br /&gt;
&lt;br /&gt;
===Base Functionality===&lt;br /&gt;
Enhanced skyboxes retain all functionality seen in normal skyboxes, but add:&lt;br /&gt;
* '''Lighting''' - Lightmaps are rendered in surfaces in enhanced skyboxes (Direct3D 11 renderer only). If you do not want lightmaps on your skybox faces, you can set them to fullbright in texture properties.&lt;br /&gt;
* '''Liquid''' - You can set the ''Room Effect'' that designates your enhanced skybox room to type &amp;quot;Liquid Room&amp;quot; if you wish to have a liquid surface in your sky room.&lt;br /&gt;
&lt;br /&gt;
===Eye Anchor===&lt;br /&gt;
When setting an enhanced skybox via the ''Set_Skybox'' event, you can specify an &amp;quot;eye anchor&amp;quot; UID. This must be the UID of an ''Anchor_Marker'' event that is inside the skybox room you are using. If you specify a valid &amp;quot;eye anchor&amp;quot; UID, this will be the position from which the sky room will be visible when projected as your skybox. You can also place the ''Anchor_Marker'' in a moving group and move it with keyframes if you wish.&lt;br /&gt;
&lt;br /&gt;
Caution: Moving the &amp;quot;eye anchor&amp;quot; with keyframes can be very disorienting and take away from your level if you are not careful. In general, you should avoid quick movements.&lt;br /&gt;
&lt;br /&gt;
===Relative Position===&lt;br /&gt;
When setting an enhanced skybox via the ''Set_Skybox'' event, you can turn on &amp;quot;use relative position&amp;quot; and specify a &amp;quot;relative position scale&amp;quot;. If you do, players can move around &amp;quot;inside the sky room&amp;quot; as they play your map. The position of your camera in relation to the world origin (position 0,0,0) is mapped to the &amp;quot;eye&amp;quot; position in the skybox, relative to the &amp;quot;eye anchor&amp;quot; position in the sky room. The position is scaled using the scale.&lt;br /&gt;
&lt;br /&gt;
* A &amp;quot;relative position scale&amp;quot; of 1.0 maps camera position relative to world origin to eye position relative to eye anchor position at a ratio of 1:1 - every 1m moved in the world is 1m moved in the skybox.&lt;br /&gt;
* A &amp;quot;relative position scale&amp;quot; of 0.25 however, means every 1m moved in the world is 0.25m moved in the skybox. Using this, you can make your skybox much smaller than your actual level.&lt;br /&gt;
&lt;br /&gt;
Note: Relative position '''requires''' you specify a scale and an eye anchor (and of course a skyboox room UID). If you do not specify each of these, ticking the &amp;quot;use relative position&amp;quot; option will have no effect.&lt;br /&gt;
&lt;br /&gt;
==Multiplayer Respawn Points==&lt;br /&gt;
The stock game recognized only the first 32 [[RED Objects#Multiplayer Respawn Point|Multiplayer Respawn Points]] placed in a level. Alpine Faction recognizes the first 2048.&lt;br /&gt;
&lt;br /&gt;
In the new KOTH, DC, REV, and ESC gametypes, Multiplayer Respawn Points can be associated with control points. This behaviour is further described in [[Mapping with Control Points#Advanced Mechanics|Mapping with Control Points]].&lt;br /&gt;
&lt;br /&gt;
Multiplayer Respawn Points can now be toggled on/off with [[RED Event List#AF_Utility|Respawn_Point_State]], and the associated team(s) changed with [[RED Event List#AF_General|Modify_Respawn_Point]].&lt;br /&gt;
&lt;br /&gt;
==Triggers==&lt;br /&gt;
In multiplayer, unlike levels made for other versions of the game, triggers in Alpine Levels can activate events directly. This includes stock game events and Alpine Events (described below).&lt;br /&gt;
&lt;br /&gt;
The following events are not supported in multiplayer and will not function if triggered:&lt;br /&gt;
* Load_Level&lt;br /&gt;
* Endgame&lt;br /&gt;
* Defuse_Nuke&lt;br /&gt;
* Drop_Point_Marker&lt;br /&gt;
* Go_Undercover&lt;br /&gt;
* Win_PS2_Demo&lt;br /&gt;
* Play_Video&lt;br /&gt;
* When_Picked_Up&lt;br /&gt;
&lt;br /&gt;
==Items==&lt;br /&gt;
In single player, unlike levels made for other versions of the game, Alpine Levels allow the player to pick up the ''Multi Super Health'' and ''Multi Super Armor'' items.&lt;br /&gt;
&lt;br /&gt;
==HUD Messages==&lt;br /&gt;
Magic words can be used in HUD message display (via the ''HUD_Message''' event, and any other reason HUD messages would be rendered) to display dynamic values to the player. The stock game supported the use of magic words in HUD messages for a subset of the controls in the stock game (used in the training mission), but Alpine Faction expands this capability substantially. To use these magic words, simply include their text exactly as written below in the string for your HUD message.&lt;br /&gt;
&lt;br /&gt;
The following is a list of magic words that are available for use by level designers and mod developers in Alpine Faction, as well as what they are translated to when displayed as a HUD message&lt;br /&gt;
* '''$FIRE$''' - Name of the key or mouse button assigned to the primary fire control&lt;br /&gt;
* '''$ALT_FIRE$''' - Name of the key or mouse button assigned to the alternate fire control&lt;br /&gt;
* '''$USE$''' - Name of the key or mouse button assigned to the use control&lt;br /&gt;
* '''$JUMP$''' - Name of the key or mouse button assigned to the jump control&lt;br /&gt;
* '''$CROUCH$''' - Name of the key or mouse button assigned to the crouch control&lt;br /&gt;
* '''$HOLSTER$''' - Name of the key or mouse button assigned to the holster weapon control&lt;br /&gt;
* '''$RELOAD$''' - Name of the key or mouse button assigned to the reload weapon control&lt;br /&gt;
* '''$NEXT_WEAPON$''' - Name of the key or mouse button assigned to the next weapon control&lt;br /&gt;
* '''$PREV_WEAPON$''' - Name of the key or mouse button assigned to the previous weapon control&lt;br /&gt;
* '''$MESSAGE_LOG$''' - Name of the key or mouse button assigned to the message log control&lt;br /&gt;
* '''$QUICK_SAVE$''' - Name of the key or mouse button assigned to the quick save control&lt;br /&gt;
* '''$QUICK_LOAD$''' - Name of the key or mouse button assigned to the quick load control&lt;br /&gt;
* '''$HEADLAMP$''' - Name of the key or mouse button assigned to the toggle headlamp control&lt;br /&gt;
* '''$SKIP_CUTSCENE$''' - Name of the key or mouse button assigned to the skip cutscene control&lt;br /&gt;
* '''$goal_GOALNAME$''' - Value of the goal with name equal to GOALNAME, if such a goal exists in the current map&lt;br /&gt;
&lt;br /&gt;
==Events==&lt;br /&gt;
===Fixed Delay Parameter===&lt;br /&gt;
Outside of Alpine Levels, using the delay parameter with the following stock game events leads to that event breaking - the effect will never apply. In Alpine Levels, the delay parameter can be used on these events without issue - just like any other event.&lt;br /&gt;
* '''Play_Sound'''&lt;br /&gt;
* '''Cyclic_Timer'''&lt;br /&gt;
* '''Make_Invulnerable'''&lt;br /&gt;
* '''Alarm_Siren'''&lt;br /&gt;
* '''Unhide'''&lt;br /&gt;
&lt;br /&gt;
===Fixed Cyclic_Timer===&lt;br /&gt;
Normally, the [[RED Event List#Cyclic_Timer|Cyclic_Timer]] fires twice on its first activation. In Alpine levels, this is fixed so the first activation (like every other activation_ fires only once. (Subject to [[#Advanced options|Legacy Cyclic_Timer events]] option)&lt;br /&gt;
&lt;br /&gt;
===Enhanced Functionality===&lt;br /&gt;
In Alpine Levels, some stock game events have been improved in various ways:&lt;br /&gt;
* '''Headlamp_State''' - If not linked to any specific entities, applies to the player. Can be used to toggle the player flashlight.&lt;br /&gt;
* '''Holster_Weapon''' - Could always be turned on to holster the weapon of linked entities. In Alpine Levels, can also be turned off to force those entities to unholster their weapons.&lt;br /&gt;
* '''Holster_Player_Weapon''' - Could always be turned on to holster the player's weapon. In Alpine Levels, can also be turned off to unholster the player's weapon.&lt;br /&gt;
&lt;br /&gt;
====Dash Faction====&lt;br /&gt;
The following events had functionality added in Dash Faction 1.5.0. This functionality is not specific to Alpine Levels - it is available on any levels when using Dash Faction 1.5.0+ or any version of Alpine Faction. On other client versions (including all official client versions), although levels that rely on this functionality can be loaded, the functionality of these events will be restricted to only their stock game behaviour, which could lead to undesirable behaviour.&lt;br /&gt;
* '''Set_Liquid_Depth''' - Had no effect in the stock game. Can now be used to smoothly change the depth of a liquid room.&lt;br /&gt;
* '''Switch_Model''' - Used to swap the mesh used by linked clutter objects to a specified file. Could be used in stock game as long as the specified mesh file was a stock game file. Can now be used to specify custom meshes distributed with levels.&lt;br /&gt;
&lt;br /&gt;
===Directional Events===&lt;br /&gt;
3D arrows in the Alpine level editor are drawn from directional events - that is, events that save their orientation and use it for some purpose. (most events are not directional). The following events are directional:&lt;br /&gt;
* '''Play_VClip''' - (did not display a 3D arrow in stock level editor, does in Alpine level editor)&lt;br /&gt;
* '''Teleport''' - (did not display a 3D arrow in stock level editor, does in Alpine level editor)&lt;br /&gt;
* '''Teleport_Player'''&lt;br /&gt;
* '''Clone_Entity'''&lt;br /&gt;
* '''AF_Teleport_Player'''&lt;br /&gt;
* '''Anchor_Marker_Orient'''&lt;br /&gt;
&lt;br /&gt;
===Alpine Events===&lt;br /&gt;
* Alpine Faction adds many brand new event objects for use by level designers. For a full list of the new Alpine events, and a breakdown of the functionality of each, see [[RED_Event_List#Alpine_Faction|Alpine Faction Event List]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: RF1 Editing]]&lt;br /&gt;
[[Category: Alpine Faction]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Alpine_Level_Design&amp;diff=15102</id>
		<title>Alpine Level Design</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Alpine_Level_Design&amp;diff=15102"/>
		<updated>2025-12-23T13:03:26Z</updated>

		<summary type="html">&lt;p&gt;Goober: /* Multiplayer Respawn Points */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BubbleNav|RF1Modding}}&lt;br /&gt;
[[File:Alpinelogo1.png|center]]&lt;br /&gt;
&lt;br /&gt;
This page lists all major differences between normal Red Faction level design and level design for Alpine Levels, as featured in Alpine Faction.&lt;br /&gt;
&lt;br /&gt;
*This page is current as of the release of Alpine Faction v1.2.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
===Versioning===&lt;br /&gt;
'''Alpine Levels are playable only using Alpine Faction.'''&lt;br /&gt;
&lt;br /&gt;
Due to features unavailable in those clients, Alpine Levels are '''not''' playable while using other client versions such as any version of Red Faction (official builds), Pure Faction, or Dash Faction.&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
* '''Troubleshooting goals''' - You can use the &amp;lt;tt&amp;gt;[ dbg_goal GOALNAME ]&amp;lt;/tt&amp;gt; console command at any time to query a goal by name and print its current and initial values.&lt;br /&gt;
* '''Troubleshooting event and trigger links''' - You can use the &amp;lt;tt&amp;gt;[ debug trigger ]&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;[ debug event ]&amp;lt;/tt&amp;gt; console commands at any time (SP only) to draw events and triggers and their links as arrows in the game world. Links from triggers are blue, links from events are purple.&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
* '''Multiplayer playtesting''' - In addition to the '''Play''' and '''Play from Camera''' features that have always been available, the Alpine level editor adds a feature to allow you to playtest multiplayer maps in multiplayer. If you click the '''Play in multi''' or '''Play in multi (camera)''' buttons on the top toolbar, the game will launch you into a listen (local) server running your level.&lt;br /&gt;
* '''Hotkeys''' - The F9 hotkey now maps to '''Play in multi''' and F10 maps to '''Play in multi (camera)'''&lt;br /&gt;
* '''Object links''' - You can now link to multiple objects at once. When you select multiple objects and press &amp;quot;K&amp;quot;, the first object you selected will be linked to all other object you have selected.&lt;br /&gt;
* '''Pixels/meter tiling''' - The maximum configurable value in Preference-&amp;gt;Texture has been raised to 8192.&lt;br /&gt;
&lt;br /&gt;
===Level Properties===&lt;br /&gt;
* '''RFL version''' - Is now displayed in the Level Properties window.&lt;br /&gt;
* '''Fog''' - Default fog colour for newly created levels is now (0, 0, 0) full black instead of the stock game default of (40, 40, 40).&lt;br /&gt;
====Advanced options====&lt;br /&gt;
These options allow level designers to access new functionality available only in Alpine Faction. The default values for existing levels ensure functionality continues as it always has (legacy compatible), while the default values for new levels enable the new features. You can control them yourself in the Level Properties window.&lt;br /&gt;
* '''Legacy Cyclic_Timer events''' - Disable Cyclic_Timer fix, see [[#Fixed Cyclic_Timer|Fixed Cyclic_Timer]] for more information. Defaults to true for existing levels, false for new levels.&lt;br /&gt;
* '''Legacy movers''' - Disable new Alpine mover logic, see [[Alpine Level Design#Movers|Movers]] for more information. Defaults to true for existing levels, false for new levels.&lt;br /&gt;
* '''Player starts with headlamp''' - If true, players of this level can use their headlamp immediately when the level loads (SP only). If false, the player must first be given a headlamp with [[RED Event List#Set_Gameplay_Rule|Set_Gameplay_Rule]] before they can use their headlamp. Defaults to true for existing and new levels.&lt;br /&gt;
* '''Override static mesh ambient light scale''' - If true, use the specified '''New scale value''' as scalar for ambient light applied to static meshes. If false, use the stock game's behaviour, which is a scale of 2.0 when loaded in SP and 3.2 when loaded in MP. Defaults to false for existing and new levels.&lt;br /&gt;
&lt;br /&gt;
==Geometry==&lt;br /&gt;
When constructing non-Alpine levels, faces are added to &amp;quot;fix ps2 tiling&amp;quot; when building geometry, if the texture applied to a given surface tiles many times. This does not occur when constructing Alpine Levels - you can safely tile textures as much as you like without it resulting in additional unnecessary faces being added.&lt;br /&gt;
&lt;br /&gt;
Similarly, when adding brushes to moving groups during construction of non-Alpine levels, if those brushes have surfaces with textures that tile many times, the brush will be split. This also does not occur when constructing Alpine Levels - you can safely tile textures as much as you like on brushes that either are, or will eventually be, members of moving groups, without it resulting in additional unnecessary faces being added.&lt;br /&gt;
&lt;br /&gt;
==Movers==&lt;br /&gt;
Alpine Faction fixes several issues present in the stock game with movers, and adds some new functionality for mappers. All functionality described in this section is subject to the [[#Advanced options|Legacy movers]] option.&lt;br /&gt;
&lt;br /&gt;
===Translating Movers===&lt;br /&gt;
In the stock game, translating movers were never able to move slower than 0.4m/sec. This is now resolved, and movers can move very slow if configured as such. A hard minimum velocity of 0.001m/sec is imposed to handle some obscure framerate-related issues, but in a practical sense this will never be a limiting factor.&lt;br /&gt;
&lt;br /&gt;
In the stock game, travel time is calculated without taking acceleration/deceleration into account, which results in a drift in travel time equal to 50% of the combined acceleration + deceleration time. This is now resolved, and the travel time configured for the keyframe is respected. Note that if the combined acceleration + deceleration time is greater than the configured travel time, the travel time will be increased by Alpine Faction in order to accommodate the provided values.&lt;br /&gt;
&lt;br /&gt;
In the stock game, the way values were applied along the mover path was not always intuitive. In Alpine Faction, the travel, acceleration, and deceleration times for a movement segment are always as configured on the starting keyframe for that segment.&lt;br /&gt;
* For example, if a mover is moving forward from Keyframe A -&amp;gt; B -&amp;gt; C, and is set to &amp;quot;Ping Pong Once&amp;quot;:&lt;br /&gt;
** Time values configured on Keyframe A are used for the movement from A -&amp;gt; B (moving forward)&lt;br /&gt;
** Time values configured on Keyframe B are used for the movement from B -&amp;gt; C (moving forward)&lt;br /&gt;
** The mover hits Keyframe C, and because it's set to &amp;quot;Ping Pong Once&amp;quot;, it reverses direction and begins moving backwards&lt;br /&gt;
** Time values configured on Keyframe C are used for the movement from C -&amp;gt; B (moving backward)&lt;br /&gt;
** Time values configured on Keyframe B are used for the movement from B -&amp;gt; A (moving backward)&lt;br /&gt;
** The mover hits Keyframe A, and because it's set to &amp;quot;Ping Pong Once&amp;quot; and has now reached its starting position, it stops. The next time it is activated, it begins moving forward from Keyframe A -&amp;gt; B again.&lt;br /&gt;
&lt;br /&gt;
===Rotating Movers===&lt;br /&gt;
In the stock game, &amp;quot;Loop Once&amp;quot; and &amp;quot;Loop Infinite&amp;quot; on rotating movers with rotation degrees &amp;lt; 360 just continued looping 360 degrees regardless. This is now resolved, so the mover works as expected - i.e. with rotation degrees 90 and type &amp;quot;Loop Once&amp;quot;, the mover rotates 90 degrees and then snaps back to its starting position.&lt;br /&gt;
&lt;br /&gt;
In the stock game, &amp;quot;Ping Pong Infinite&amp;quot; on rotating movers did not work properly - the behaviour was different than &amp;quot;Ping Pong Once&amp;quot;. This is now resolved, and &amp;quot;Ping Pong Infinite&amp;quot; functions identically to &amp;quot;Ping Pong Once&amp;quot;, just continues going until forcefully stopped.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;Lift&amp;quot; Movement Type===&lt;br /&gt;
This option has always been available in [[RED_Objects#Keyframe|Keyframe]] properties, but has functioned the same as the &amp;quot;One Way&amp;quot; type. This has been resolved - &amp;quot;Lift&amp;quot; now works similarly to &amp;quot;One Way&amp;quot;, however whereas &amp;quot;One Way&amp;quot; ensures a one way movement from the starting keyframe to the last keyframe, &amp;quot;Lift&amp;quot; moves just one segment per activation, and then stops and waits to be activated again.&lt;br /&gt;
&lt;br /&gt;
===Force Orient===&lt;br /&gt;
This option has always been available in [[RED_Objects#Keyframe|Keyframe]] properties, but using it would make levels crash when loading. In Alpine Faction, this option now works properly:&lt;br /&gt;
* For translating movers, it ensures the mover faces the direction of movement while moving (resets to base orientation when stopped)&lt;br /&gt;
* For rotating movers, it ensures the mover maintains its base orientation when moving.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' While the Force Orient functionality is restricted to Alpine levels (and subject to the &amp;quot;Legacy Movers&amp;quot; option), Alpine Faction fixes the crash issue across all levels. Older levels will no longer crash when this option is used, but they also won't be able to use the functionality (they will act as though this option was simply not enabled).&lt;br /&gt;
&lt;br /&gt;
==Lighting==&lt;br /&gt;
===Lightmaps===&lt;br /&gt;
In Alpine Levels, the game does not apply lightmap clamping. This means that the full range of available colors is available - including fully unlit (black) areas. Put another way, the way your lightmaps look when you calculate them in the level editor is how they will look in game.&lt;br /&gt;
&lt;br /&gt;
Additionally, the stock editor applies similar lightmap clamping when opening saved levels. This has also been removed in Alpine RED - levels loaded in Alpine RED will look as they did when they were saved.&lt;br /&gt;
===Dynamic Lights===&lt;br /&gt;
Alpine Levels can utilize dynamic lights - configured via the &amp;quot;Dynamic&amp;quot; checkbox in light properties. Using the ''Anchor_Marker'' event (described below), you can also move dynamic lights using moving groups. &lt;br /&gt;
&lt;br /&gt;
Note: Dynamic lights are far more taxing on game performance than normal (static) lights. You should keep this in mind when designing, and use dynamic lights only where necessary to achieve your desired effect.&lt;br /&gt;
&lt;br /&gt;
==Skyboxes==&lt;br /&gt;
In Alpine Levels, while you can still make static skyboxes as you always could before if you wish, through the ''Set_Skybox'' event (described below) you can enhance your skyboxes. The key differences are listed below.&lt;br /&gt;
&lt;br /&gt;
Note: When making an enhanced skybox, while you still do need to place a ''Room Effect'' in the room that is to be your sky room, you should '''not''' select the &amp;quot;Sky Room&amp;quot; type on the ''Room Effect'' - instead, leave &amp;quot;type&amp;quot; set to &amp;quot;None&amp;quot;. The UID of the ''Room Effect'' is the skybox room UID you will specify in the properties of the ''Set_Skybox'' event.&lt;br /&gt;
&lt;br /&gt;
===Base Functionality===&lt;br /&gt;
Enhanced skyboxes retain all functionality seen in normal skyboxes, but add:&lt;br /&gt;
* '''Lighting''' - Lightmaps are rendered in surfaces in enhanced skyboxes (Direct3D 11 renderer only). If you do not want lightmaps on your skybox faces, you can set them to fullbright in texture properties.&lt;br /&gt;
* '''Liquid''' - You can set the ''Room Effect'' that designates your enhanced skybox room to type &amp;quot;Liquid Room&amp;quot; if you wish to have a liquid surface in your sky room.&lt;br /&gt;
&lt;br /&gt;
===Eye Anchor===&lt;br /&gt;
When setting an enhanced skybox via the ''Set_Skybox'' event, you can specify an &amp;quot;eye anchor&amp;quot; UID. This must be the UID of an ''Anchor_Marker'' event that is inside the skybox room you are using. If you specify a valid &amp;quot;eye anchor&amp;quot; UID, this will be the position from which the sky room will be visible when projected as your skybox. You can also place the ''Anchor_Marker'' in a moving group and move it with keyframes if you wish.&lt;br /&gt;
&lt;br /&gt;
Caution: Moving the &amp;quot;eye anchor&amp;quot; with keyframes can be very disorienting and take away from your level if you are not careful. In general, you should avoid quick movements.&lt;br /&gt;
&lt;br /&gt;
===Relative Position===&lt;br /&gt;
When setting an enhanced skybox via the ''Set_Skybox'' event, you can turn on &amp;quot;use relative position&amp;quot; and specify a &amp;quot;relative position scale&amp;quot;. If you do, players can move around &amp;quot;inside the sky room&amp;quot; as they play your map. The position of your camera in relation to the world origin (position 0,0,0) is mapped to the &amp;quot;eye&amp;quot; position in the skybox, relative to the &amp;quot;eye anchor&amp;quot; position in the sky room. The position is scaled using the scale.&lt;br /&gt;
&lt;br /&gt;
* A &amp;quot;relative position scale&amp;quot; of 1.0 maps camera position relative to world origin to eye position relative to eye anchor position at a ratio of 1:1 - every 1m moved in the world is 1m moved in the skybox.&lt;br /&gt;
* A &amp;quot;relative position scale&amp;quot; of 0.25 however, means every 1m moved in the world is 0.25m moved in the skybox. Using this, you can make your skybox much smaller than your actual level.&lt;br /&gt;
&lt;br /&gt;
Note: Relative position '''requires''' you specify a scale and an eye anchor (and of course a skyboox room UID). If you do not specify each of these, ticking the &amp;quot;use relative position&amp;quot; option will have no effect.&lt;br /&gt;
&lt;br /&gt;
==Multiplayer Respawn Points==&lt;br /&gt;
The stock game recognized only the first 32 [[RED Objects#Multiplayer Respawn Point|Multiplayer Respawn Points]] placed in a level. Alpine Faction recognizes the first 2048.&lt;br /&gt;
&lt;br /&gt;
In the new KOTH, DC, REV, and ESC gametypes, Multiplayer Respawn Points can be associated with control points. This behaviour is further described in [[Mapping with Control Points#Advanced Mechanics|Mapping with Control Points]].&lt;br /&gt;
&lt;br /&gt;
Multiplayer Respawn Points can now be toggled on/off with [[RED Event List#AF_Utility|Respawn_Point_State]], and the associated team(s) changed with [[RED Event List#AF_General|Modify_Respawn_Point]].&lt;br /&gt;
&lt;br /&gt;
==Triggers==&lt;br /&gt;
In multiplayer, unlike levels made for other versions of the game, triggers in Alpine Levels can activate events directly. This includes stock game events and Alpine Events (described below).&lt;br /&gt;
&lt;br /&gt;
The following events are not supported in multiplayer and will not function if triggered:&lt;br /&gt;
* Load_Level&lt;br /&gt;
* Endgame&lt;br /&gt;
* Defuse_Nuke&lt;br /&gt;
* Drop_Point_Marker&lt;br /&gt;
* Go_Undercover&lt;br /&gt;
* Win_PS2_Demo&lt;br /&gt;
* Play_Video&lt;br /&gt;
* When_Picked_Up&lt;br /&gt;
&lt;br /&gt;
==Items==&lt;br /&gt;
In single player, unlike levels made for other versions of the game, Alpine Levels allow the player to pick up the ''Multi Super Health'' and ''Multi Super Armor'' items.&lt;br /&gt;
&lt;br /&gt;
==HUD Messages==&lt;br /&gt;
Magic words can be used in HUD message display (via the ''HUD_Message''' event, and any other reason HUD messages would be rendered) to display dynamic values to the player. The stock game supported the use of magic words in HUD messages for a subset of the controls in the stock game (used in the training mission), but Alpine Faction expands this capability substantially. To use these magic words, simply include their text exactly as written below in the string for your HUD message.&lt;br /&gt;
&lt;br /&gt;
The following is a list of magic words that are available for use by level designers and mod developers in Alpine Faction, as well as what they are translated to when displayed as a HUD message&lt;br /&gt;
* '''$FIRE$''' - Name of the key or mouse button assigned to the primary fire control&lt;br /&gt;
* '''$ALT_FIRE$''' - Name of the key or mouse button assigned to the alternate fire control&lt;br /&gt;
* '''$USE$''' - Name of the key or mouse button assigned to the use control&lt;br /&gt;
* '''$JUMP$''' - Name of the key or mouse button assigned to the jump control&lt;br /&gt;
* '''$CROUCH$''' - Name of the key or mouse button assigned to the crouch control&lt;br /&gt;
* '''$HOLSTER$''' - Name of the key or mouse button assigned to the holster weapon control&lt;br /&gt;
* '''$RELOAD$''' - Name of the key or mouse button assigned to the reload weapon control&lt;br /&gt;
* '''$NEXT_WEAPON$''' - Name of the key or mouse button assigned to the next weapon control&lt;br /&gt;
* '''$PREV_WEAPON$''' - Name of the key or mouse button assigned to the previous weapon control&lt;br /&gt;
* '''$MESSAGE_LOG$''' - Name of the key or mouse button assigned to the message log control&lt;br /&gt;
* '''$QUICK_SAVE$''' - Name of the key or mouse button assigned to the quick save control&lt;br /&gt;
* '''$QUICK_LOAD$''' - Name of the key or mouse button assigned to the quick load control&lt;br /&gt;
* '''$HEADLAMP$''' - Name of the key or mouse button assigned to the toggle headlamp control&lt;br /&gt;
* '''$SKIP_CUTSCENE$''' - Name of the key or mouse button assigned to the skip cutscene control&lt;br /&gt;
* '''$goal_GOALNAME$''' - Value of the goal with name equal to GOALNAME, if such a goal exists in the current map&lt;br /&gt;
&lt;br /&gt;
==Events==&lt;br /&gt;
===Fixed Delay Parameter===&lt;br /&gt;
Outside of Alpine Levels, using the delay parameter with the following stock game events leads to that event breaking - the effect will never apply. In Alpine Levels, the delay parameter can be used on these events without issue - just like any other event.&lt;br /&gt;
* '''Play_Sound'''&lt;br /&gt;
* '''Cyclic_Timer'''&lt;br /&gt;
* '''Make_Invulnerable'''&lt;br /&gt;
* '''Alarm_Siren'''&lt;br /&gt;
* '''Unhide'''&lt;br /&gt;
&lt;br /&gt;
===Fixed Cyclic_Timer===&lt;br /&gt;
Normally, the [[RED Event List#Cyclic_Timer|Cyclic_Timer]] fires twice on its first activation. In Alpine levels, this is fixed so the first activation (like every other activation_ fires only once. (Subject to [[#Advanced options|Legacy Cyclic_Timer events]] option)&lt;br /&gt;
&lt;br /&gt;
===Enhanced Functionality===&lt;br /&gt;
In Alpine Levels, some stock game events have been improved in various ways:&lt;br /&gt;
* '''Headlamp_State''' - If not linked to any specific entities, applies to the player. Can be used to toggle the player flashlight.&lt;br /&gt;
* '''Holster_Weapon''' - Could always be turned on to holster the weapon of linked entities. In Alpine Levels, can also be turned off to force those entities to unholster their weapons.&lt;br /&gt;
* '''Holster_Player_Weapon''' - Could always be turned on to holster the player's weapon. In Alpine Levels, can also be turned off to unholster the player's weapon.&lt;br /&gt;
&lt;br /&gt;
====Dash Faction====&lt;br /&gt;
The following events had functionality added in Dash Faction 1.5.0. This functionality is not specific to Alpine Levels - it is available on any levels when using Dash Faction 1.5.0+ or any version of Alpine Faction. On other client versions (including all official client versions), although levels that rely on this functionality can be loaded, the functionality of these events will be restricted to only their stock game behaviour, which could lead to undesirable behaviour.&lt;br /&gt;
* '''Set_Liquid_Depth''' - Had no effect in the stock game. Can now be used to smoothly change the depth of a liquid room.&lt;br /&gt;
* '''Switch_Model''' - Used to swap the mesh used by linked clutter objects to a specified file. Could be used in stock game as long as the specified mesh file was a stock game file. Can now be used to specify custom meshes distributed with levels.&lt;br /&gt;
&lt;br /&gt;
===Directional Events===&lt;br /&gt;
3D arrows in the Alpine level editor are drawn from directional events - that is, events that save their orientation and use it for some purpose. (most events are not directional). The following events are directional:&lt;br /&gt;
* '''Play_VClip''' - (did not display a 3D arrow in stock level editor, does in Alpine level editor)&lt;br /&gt;
* '''Teleport''' - (did not display a 3D arrow in stock level editor, does in Alpine level editor)&lt;br /&gt;
* '''Teleport_Player'''&lt;br /&gt;
* '''Clone_Entity'''&lt;br /&gt;
* '''AF_Teleport_Player'''&lt;br /&gt;
* '''Anchor_Marker_Orient'''&lt;br /&gt;
&lt;br /&gt;
===Alpine Events===&lt;br /&gt;
* Alpine Faction adds many brand new event objects for use by level designers. For a full list of the new Alpine events, and a breakdown of the functionality of each, see [[RED_Event_List#Alpine_Faction|Alpine Faction Event List]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: RF1 Editing]]&lt;br /&gt;
[[Category: Alpine Faction]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Alpine_Level_Design&amp;diff=15101</id>
		<title>Alpine Level Design</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Alpine_Level_Design&amp;diff=15101"/>
		<updated>2025-12-23T13:02:11Z</updated>

		<summary type="html">&lt;p&gt;Goober: /* Multiplayer Respawn Points */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BubbleNav|RF1Modding}}&lt;br /&gt;
[[File:Alpinelogo1.png|center]]&lt;br /&gt;
&lt;br /&gt;
This page lists all major differences between normal Red Faction level design and level design for Alpine Levels, as featured in Alpine Faction.&lt;br /&gt;
&lt;br /&gt;
*This page is current as of the release of Alpine Faction v1.2.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
===Versioning===&lt;br /&gt;
'''Alpine Levels are playable only using Alpine Faction.'''&lt;br /&gt;
&lt;br /&gt;
Due to features unavailable in those clients, Alpine Levels are '''not''' playable while using other client versions such as any version of Red Faction (official builds), Pure Faction, or Dash Faction.&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
* '''Troubleshooting goals''' - You can use the &amp;lt;tt&amp;gt;[ dbg_goal GOALNAME ]&amp;lt;/tt&amp;gt; console command at any time to query a goal by name and print its current and initial values.&lt;br /&gt;
* '''Troubleshooting event and trigger links''' - You can use the &amp;lt;tt&amp;gt;[ debug trigger ]&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;[ debug event ]&amp;lt;/tt&amp;gt; console commands at any time (SP only) to draw events and triggers and their links as arrows in the game world. Links from triggers are blue, links from events are purple.&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
* '''Multiplayer playtesting''' - In addition to the '''Play''' and '''Play from Camera''' features that have always been available, the Alpine level editor adds a feature to allow you to playtest multiplayer maps in multiplayer. If you click the '''Play in multi''' or '''Play in multi (camera)''' buttons on the top toolbar, the game will launch you into a listen (local) server running your level.&lt;br /&gt;
* '''Hotkeys''' - The F9 hotkey now maps to '''Play in multi''' and F10 maps to '''Play in multi (camera)'''&lt;br /&gt;
* '''Object links''' - You can now link to multiple objects at once. When you select multiple objects and press &amp;quot;K&amp;quot;, the first object you selected will be linked to all other object you have selected.&lt;br /&gt;
* '''Pixels/meter tiling''' - The maximum configurable value in Preference-&amp;gt;Texture has been raised to 8192.&lt;br /&gt;
&lt;br /&gt;
===Level Properties===&lt;br /&gt;
* '''RFL version''' - Is now displayed in the Level Properties window.&lt;br /&gt;
* '''Fog''' - Default fog colour for newly created levels is now (0, 0, 0) full black instead of the stock game default of (40, 40, 40).&lt;br /&gt;
====Advanced options====&lt;br /&gt;
These options allow level designers to access new functionality available only in Alpine Faction. The default values for existing levels ensure functionality continues as it always has (legacy compatible), while the default values for new levels enable the new features. You can control them yourself in the Level Properties window.&lt;br /&gt;
* '''Legacy Cyclic_Timer events''' - Disable Cyclic_Timer fix, see [[#Fixed Cyclic_Timer|Fixed Cyclic_Timer]] for more information. Defaults to true for existing levels, false for new levels.&lt;br /&gt;
* '''Legacy movers''' - Disable new Alpine mover logic, see [[Alpine Level Design#Movers|Movers]] for more information. Defaults to true for existing levels, false for new levels.&lt;br /&gt;
* '''Player starts with headlamp''' - If true, players of this level can use their headlamp immediately when the level loads (SP only). If false, the player must first be given a headlamp with [[RED Event List#Set_Gameplay_Rule|Set_Gameplay_Rule]] before they can use their headlamp. Defaults to true for existing and new levels.&lt;br /&gt;
* '''Override static mesh ambient light scale''' - If true, use the specified '''New scale value''' as scalar for ambient light applied to static meshes. If false, use the stock game's behaviour, which is a scale of 2.0 when loaded in SP and 3.2 when loaded in MP. Defaults to false for existing and new levels.&lt;br /&gt;
&lt;br /&gt;
==Geometry==&lt;br /&gt;
When constructing non-Alpine levels, faces are added to &amp;quot;fix ps2 tiling&amp;quot; when building geometry, if the texture applied to a given surface tiles many times. This does not occur when constructing Alpine Levels - you can safely tile textures as much as you like without it resulting in additional unnecessary faces being added.&lt;br /&gt;
&lt;br /&gt;
Similarly, when adding brushes to moving groups during construction of non-Alpine levels, if those brushes have surfaces with textures that tile many times, the brush will be split. This also does not occur when constructing Alpine Levels - you can safely tile textures as much as you like on brushes that either are, or will eventually be, members of moving groups, without it resulting in additional unnecessary faces being added.&lt;br /&gt;
&lt;br /&gt;
==Movers==&lt;br /&gt;
Alpine Faction fixes several issues present in the stock game with movers, and adds some new functionality for mappers. All functionality described in this section is subject to the [[#Advanced options|Legacy movers]] option.&lt;br /&gt;
&lt;br /&gt;
===Translating Movers===&lt;br /&gt;
In the stock game, translating movers were never able to move slower than 0.4m/sec. This is now resolved, and movers can move very slow if configured as such. A hard minimum velocity of 0.001m/sec is imposed to handle some obscure framerate-related issues, but in a practical sense this will never be a limiting factor.&lt;br /&gt;
&lt;br /&gt;
In the stock game, travel time is calculated without taking acceleration/deceleration into account, which results in a drift in travel time equal to 50% of the combined acceleration + deceleration time. This is now resolved, and the travel time configured for the keyframe is respected. Note that if the combined acceleration + deceleration time is greater than the configured travel time, the travel time will be increased by Alpine Faction in order to accommodate the provided values.&lt;br /&gt;
&lt;br /&gt;
In the stock game, the way values were applied along the mover path was not always intuitive. In Alpine Faction, the travel, acceleration, and deceleration times for a movement segment are always as configured on the starting keyframe for that segment.&lt;br /&gt;
* For example, if a mover is moving forward from Keyframe A -&amp;gt; B -&amp;gt; C, and is set to &amp;quot;Ping Pong Once&amp;quot;:&lt;br /&gt;
** Time values configured on Keyframe A are used for the movement from A -&amp;gt; B (moving forward)&lt;br /&gt;
** Time values configured on Keyframe B are used for the movement from B -&amp;gt; C (moving forward)&lt;br /&gt;
** The mover hits Keyframe C, and because it's set to &amp;quot;Ping Pong Once&amp;quot;, it reverses direction and begins moving backwards&lt;br /&gt;
** Time values configured on Keyframe C are used for the movement from C -&amp;gt; B (moving backward)&lt;br /&gt;
** Time values configured on Keyframe B are used for the movement from B -&amp;gt; A (moving backward)&lt;br /&gt;
** The mover hits Keyframe A, and because it's set to &amp;quot;Ping Pong Once&amp;quot; and has now reached its starting position, it stops. The next time it is activated, it begins moving forward from Keyframe A -&amp;gt; B again.&lt;br /&gt;
&lt;br /&gt;
===Rotating Movers===&lt;br /&gt;
In the stock game, &amp;quot;Loop Once&amp;quot; and &amp;quot;Loop Infinite&amp;quot; on rotating movers with rotation degrees &amp;lt; 360 just continued looping 360 degrees regardless. This is now resolved, so the mover works as expected - i.e. with rotation degrees 90 and type &amp;quot;Loop Once&amp;quot;, the mover rotates 90 degrees and then snaps back to its starting position.&lt;br /&gt;
&lt;br /&gt;
In the stock game, &amp;quot;Ping Pong Infinite&amp;quot; on rotating movers did not work properly - the behaviour was different than &amp;quot;Ping Pong Once&amp;quot;. This is now resolved, and &amp;quot;Ping Pong Infinite&amp;quot; functions identically to &amp;quot;Ping Pong Once&amp;quot;, just continues going until forcefully stopped.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;Lift&amp;quot; Movement Type===&lt;br /&gt;
This option has always been available in [[RED_Objects#Keyframe|Keyframe]] properties, but has functioned the same as the &amp;quot;One Way&amp;quot; type. This has been resolved - &amp;quot;Lift&amp;quot; now works similarly to &amp;quot;One Way&amp;quot;, however whereas &amp;quot;One Way&amp;quot; ensures a one way movement from the starting keyframe to the last keyframe, &amp;quot;Lift&amp;quot; moves just one segment per activation, and then stops and waits to be activated again.&lt;br /&gt;
&lt;br /&gt;
===Force Orient===&lt;br /&gt;
This option has always been available in [[RED_Objects#Keyframe|Keyframe]] properties, but using it would make levels crash when loading. In Alpine Faction, this option now works properly:&lt;br /&gt;
* For translating movers, it ensures the mover faces the direction of movement while moving (resets to base orientation when stopped)&lt;br /&gt;
* For rotating movers, it ensures the mover maintains its base orientation when moving.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' While the Force Orient functionality is restricted to Alpine levels (and subject to the &amp;quot;Legacy Movers&amp;quot; option), Alpine Faction fixes the crash issue across all levels. Older levels will no longer crash when this option is used, but they also won't be able to use the functionality (they will act as though this option was simply not enabled).&lt;br /&gt;
&lt;br /&gt;
==Lighting==&lt;br /&gt;
===Lightmaps===&lt;br /&gt;
In Alpine Levels, the game does not apply lightmap clamping. This means that the full range of available colors is available - including fully unlit (black) areas. Put another way, the way your lightmaps look when you calculate them in the level editor is how they will look in game.&lt;br /&gt;
&lt;br /&gt;
Additionally, the stock editor applies similar lightmap clamping when opening saved levels. This has also been removed in Alpine RED - levels loaded in Alpine RED will look as they did when they were saved.&lt;br /&gt;
===Dynamic Lights===&lt;br /&gt;
Alpine Levels can utilize dynamic lights - configured via the &amp;quot;Dynamic&amp;quot; checkbox in light properties. Using the ''Anchor_Marker'' event (described below), you can also move dynamic lights using moving groups. &lt;br /&gt;
&lt;br /&gt;
Note: Dynamic lights are far more taxing on game performance than normal (static) lights. You should keep this in mind when designing, and use dynamic lights only where necessary to achieve your desired effect.&lt;br /&gt;
&lt;br /&gt;
==Skyboxes==&lt;br /&gt;
In Alpine Levels, while you can still make static skyboxes as you always could before if you wish, through the ''Set_Skybox'' event (described below) you can enhance your skyboxes. The key differences are listed below.&lt;br /&gt;
&lt;br /&gt;
Note: When making an enhanced skybox, while you still do need to place a ''Room Effect'' in the room that is to be your sky room, you should '''not''' select the &amp;quot;Sky Room&amp;quot; type on the ''Room Effect'' - instead, leave &amp;quot;type&amp;quot; set to &amp;quot;None&amp;quot;. The UID of the ''Room Effect'' is the skybox room UID you will specify in the properties of the ''Set_Skybox'' event.&lt;br /&gt;
&lt;br /&gt;
===Base Functionality===&lt;br /&gt;
Enhanced skyboxes retain all functionality seen in normal skyboxes, but add:&lt;br /&gt;
* '''Lighting''' - Lightmaps are rendered in surfaces in enhanced skyboxes (Direct3D 11 renderer only). If you do not want lightmaps on your skybox faces, you can set them to fullbright in texture properties.&lt;br /&gt;
* '''Liquid''' - You can set the ''Room Effect'' that designates your enhanced skybox room to type &amp;quot;Liquid Room&amp;quot; if you wish to have a liquid surface in your sky room.&lt;br /&gt;
&lt;br /&gt;
===Eye Anchor===&lt;br /&gt;
When setting an enhanced skybox via the ''Set_Skybox'' event, you can specify an &amp;quot;eye anchor&amp;quot; UID. This must be the UID of an ''Anchor_Marker'' event that is inside the skybox room you are using. If you specify a valid &amp;quot;eye anchor&amp;quot; UID, this will be the position from which the sky room will be visible when projected as your skybox. You can also place the ''Anchor_Marker'' in a moving group and move it with keyframes if you wish.&lt;br /&gt;
&lt;br /&gt;
Caution: Moving the &amp;quot;eye anchor&amp;quot; with keyframes can be very disorienting and take away from your level if you are not careful. In general, you should avoid quick movements.&lt;br /&gt;
&lt;br /&gt;
===Relative Position===&lt;br /&gt;
When setting an enhanced skybox via the ''Set_Skybox'' event, you can turn on &amp;quot;use relative position&amp;quot; and specify a &amp;quot;relative position scale&amp;quot;. If you do, players can move around &amp;quot;inside the sky room&amp;quot; as they play your map. The position of your camera in relation to the world origin (position 0,0,0) is mapped to the &amp;quot;eye&amp;quot; position in the skybox, relative to the &amp;quot;eye anchor&amp;quot; position in the sky room. The position is scaled using the scale.&lt;br /&gt;
&lt;br /&gt;
* A &amp;quot;relative position scale&amp;quot; of 1.0 maps camera position relative to world origin to eye position relative to eye anchor position at a ratio of 1:1 - every 1m moved in the world is 1m moved in the skybox.&lt;br /&gt;
* A &amp;quot;relative position scale&amp;quot; of 0.25 however, means every 1m moved in the world is 0.25m moved in the skybox. Using this, you can make your skybox much smaller than your actual level.&lt;br /&gt;
&lt;br /&gt;
Note: Relative position '''requires''' you specify a scale and an eye anchor (and of course a skyboox room UID). If you do not specify each of these, ticking the &amp;quot;use relative position&amp;quot; option will have no effect.&lt;br /&gt;
&lt;br /&gt;
==Multiplayer Respawn Points==&lt;br /&gt;
The stock game recognized only the first 32 [[RED Objects#Multiplayer Respawn Point|Multiplayer Respawn Points]] placed in a level. Alpine Faction recognizes the first 2048.&lt;br /&gt;
&lt;br /&gt;
In the new KOTH, DC, REV, and ESC gametypes, Multiplayer Respawn Points can be associated with control points. This behaviour is further described in [[Mapping with Control Points#Advanced Mechanics|Mapping with Control Points]].&lt;br /&gt;
&lt;br /&gt;
Multiplayer Respawn Points can now be toggled on/off with [[RED Event List#Respawn_Point_State|Respawn_Point_State]], and the associated team(s) changed with [[RED Event List#Modify_Respawn_Point|Modify_Respawn_Point]].&lt;br /&gt;
&lt;br /&gt;
==Triggers==&lt;br /&gt;
In multiplayer, unlike levels made for other versions of the game, triggers in Alpine Levels can activate events directly. This includes stock game events and Alpine Events (described below).&lt;br /&gt;
&lt;br /&gt;
The following events are not supported in multiplayer and will not function if triggered:&lt;br /&gt;
* Load_Level&lt;br /&gt;
* Endgame&lt;br /&gt;
* Defuse_Nuke&lt;br /&gt;
* Drop_Point_Marker&lt;br /&gt;
* Go_Undercover&lt;br /&gt;
* Win_PS2_Demo&lt;br /&gt;
* Play_Video&lt;br /&gt;
* When_Picked_Up&lt;br /&gt;
&lt;br /&gt;
==Items==&lt;br /&gt;
In single player, unlike levels made for other versions of the game, Alpine Levels allow the player to pick up the ''Multi Super Health'' and ''Multi Super Armor'' items.&lt;br /&gt;
&lt;br /&gt;
==HUD Messages==&lt;br /&gt;
Magic words can be used in HUD message display (via the ''HUD_Message''' event, and any other reason HUD messages would be rendered) to display dynamic values to the player. The stock game supported the use of magic words in HUD messages for a subset of the controls in the stock game (used in the training mission), but Alpine Faction expands this capability substantially. To use these magic words, simply include their text exactly as written below in the string for your HUD message.&lt;br /&gt;
&lt;br /&gt;
The following is a list of magic words that are available for use by level designers and mod developers in Alpine Faction, as well as what they are translated to when displayed as a HUD message&lt;br /&gt;
* '''$FIRE$''' - Name of the key or mouse button assigned to the primary fire control&lt;br /&gt;
* '''$ALT_FIRE$''' - Name of the key or mouse button assigned to the alternate fire control&lt;br /&gt;
* '''$USE$''' - Name of the key or mouse button assigned to the use control&lt;br /&gt;
* '''$JUMP$''' - Name of the key or mouse button assigned to the jump control&lt;br /&gt;
* '''$CROUCH$''' - Name of the key or mouse button assigned to the crouch control&lt;br /&gt;
* '''$HOLSTER$''' - Name of the key or mouse button assigned to the holster weapon control&lt;br /&gt;
* '''$RELOAD$''' - Name of the key or mouse button assigned to the reload weapon control&lt;br /&gt;
* '''$NEXT_WEAPON$''' - Name of the key or mouse button assigned to the next weapon control&lt;br /&gt;
* '''$PREV_WEAPON$''' - Name of the key or mouse button assigned to the previous weapon control&lt;br /&gt;
* '''$MESSAGE_LOG$''' - Name of the key or mouse button assigned to the message log control&lt;br /&gt;
* '''$QUICK_SAVE$''' - Name of the key or mouse button assigned to the quick save control&lt;br /&gt;
* '''$QUICK_LOAD$''' - Name of the key or mouse button assigned to the quick load control&lt;br /&gt;
* '''$HEADLAMP$''' - Name of the key or mouse button assigned to the toggle headlamp control&lt;br /&gt;
* '''$SKIP_CUTSCENE$''' - Name of the key or mouse button assigned to the skip cutscene control&lt;br /&gt;
* '''$goal_GOALNAME$''' - Value of the goal with name equal to GOALNAME, if such a goal exists in the current map&lt;br /&gt;
&lt;br /&gt;
==Events==&lt;br /&gt;
===Fixed Delay Parameter===&lt;br /&gt;
Outside of Alpine Levels, using the delay parameter with the following stock game events leads to that event breaking - the effect will never apply. In Alpine Levels, the delay parameter can be used on these events without issue - just like any other event.&lt;br /&gt;
* '''Play_Sound'''&lt;br /&gt;
* '''Cyclic_Timer'''&lt;br /&gt;
* '''Make_Invulnerable'''&lt;br /&gt;
* '''Alarm_Siren'''&lt;br /&gt;
* '''Unhide'''&lt;br /&gt;
&lt;br /&gt;
===Fixed Cyclic_Timer===&lt;br /&gt;
Normally, the [[RED Event List#Cyclic_Timer|Cyclic_Timer]] fires twice on its first activation. In Alpine levels, this is fixed so the first activation (like every other activation_ fires only once. (Subject to [[#Advanced options|Legacy Cyclic_Timer events]] option)&lt;br /&gt;
&lt;br /&gt;
===Enhanced Functionality===&lt;br /&gt;
In Alpine Levels, some stock game events have been improved in various ways:&lt;br /&gt;
* '''Headlamp_State''' - If not linked to any specific entities, applies to the player. Can be used to toggle the player flashlight.&lt;br /&gt;
* '''Holster_Weapon''' - Could always be turned on to holster the weapon of linked entities. In Alpine Levels, can also be turned off to force those entities to unholster their weapons.&lt;br /&gt;
* '''Holster_Player_Weapon''' - Could always be turned on to holster the player's weapon. In Alpine Levels, can also be turned off to unholster the player's weapon.&lt;br /&gt;
&lt;br /&gt;
====Dash Faction====&lt;br /&gt;
The following events had functionality added in Dash Faction 1.5.0. This functionality is not specific to Alpine Levels - it is available on any levels when using Dash Faction 1.5.0+ or any version of Alpine Faction. On other client versions (including all official client versions), although levels that rely on this functionality can be loaded, the functionality of these events will be restricted to only their stock game behaviour, which could lead to undesirable behaviour.&lt;br /&gt;
* '''Set_Liquid_Depth''' - Had no effect in the stock game. Can now be used to smoothly change the depth of a liquid room.&lt;br /&gt;
* '''Switch_Model''' - Used to swap the mesh used by linked clutter objects to a specified file. Could be used in stock game as long as the specified mesh file was a stock game file. Can now be used to specify custom meshes distributed with levels.&lt;br /&gt;
&lt;br /&gt;
===Directional Events===&lt;br /&gt;
3D arrows in the Alpine level editor are drawn from directional events - that is, events that save their orientation and use it for some purpose. (most events are not directional). The following events are directional:&lt;br /&gt;
* '''Play_VClip''' - (did not display a 3D arrow in stock level editor, does in Alpine level editor)&lt;br /&gt;
* '''Teleport''' - (did not display a 3D arrow in stock level editor, does in Alpine level editor)&lt;br /&gt;
* '''Teleport_Player'''&lt;br /&gt;
* '''Clone_Entity'''&lt;br /&gt;
* '''AF_Teleport_Player'''&lt;br /&gt;
* '''Anchor_Marker_Orient'''&lt;br /&gt;
&lt;br /&gt;
===Alpine Events===&lt;br /&gt;
* Alpine Faction adds many brand new event objects for use by level designers. For a full list of the new Alpine events, and a breakdown of the functionality of each, see [[RED_Event_List#Alpine_Faction|Alpine Faction Event List]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: RF1 Editing]]&lt;br /&gt;
[[Category: Alpine Faction]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Alpine_Level_Design&amp;diff=15100</id>
		<title>Alpine Level Design</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Alpine_Level_Design&amp;diff=15100"/>
		<updated>2025-12-23T13:01:34Z</updated>

		<summary type="html">&lt;p&gt;Goober: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BubbleNav|RF1Modding}}&lt;br /&gt;
[[File:Alpinelogo1.png|center]]&lt;br /&gt;
&lt;br /&gt;
This page lists all major differences between normal Red Faction level design and level design for Alpine Levels, as featured in Alpine Faction.&lt;br /&gt;
&lt;br /&gt;
*This page is current as of the release of Alpine Faction v1.2.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
===Versioning===&lt;br /&gt;
'''Alpine Levels are playable only using Alpine Faction.'''&lt;br /&gt;
&lt;br /&gt;
Due to features unavailable in those clients, Alpine Levels are '''not''' playable while using other client versions such as any version of Red Faction (official builds), Pure Faction, or Dash Faction.&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
* '''Troubleshooting goals''' - You can use the &amp;lt;tt&amp;gt;[ dbg_goal GOALNAME ]&amp;lt;/tt&amp;gt; console command at any time to query a goal by name and print its current and initial values.&lt;br /&gt;
* '''Troubleshooting event and trigger links''' - You can use the &amp;lt;tt&amp;gt;[ debug trigger ]&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;[ debug event ]&amp;lt;/tt&amp;gt; console commands at any time (SP only) to draw events and triggers and their links as arrows in the game world. Links from triggers are blue, links from events are purple.&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
* '''Multiplayer playtesting''' - In addition to the '''Play''' and '''Play from Camera''' features that have always been available, the Alpine level editor adds a feature to allow you to playtest multiplayer maps in multiplayer. If you click the '''Play in multi''' or '''Play in multi (camera)''' buttons on the top toolbar, the game will launch you into a listen (local) server running your level.&lt;br /&gt;
* '''Hotkeys''' - The F9 hotkey now maps to '''Play in multi''' and F10 maps to '''Play in multi (camera)'''&lt;br /&gt;
* '''Object links''' - You can now link to multiple objects at once. When you select multiple objects and press &amp;quot;K&amp;quot;, the first object you selected will be linked to all other object you have selected.&lt;br /&gt;
* '''Pixels/meter tiling''' - The maximum configurable value in Preference-&amp;gt;Texture has been raised to 8192.&lt;br /&gt;
&lt;br /&gt;
===Level Properties===&lt;br /&gt;
* '''RFL version''' - Is now displayed in the Level Properties window.&lt;br /&gt;
* '''Fog''' - Default fog colour for newly created levels is now (0, 0, 0) full black instead of the stock game default of (40, 40, 40).&lt;br /&gt;
====Advanced options====&lt;br /&gt;
These options allow level designers to access new functionality available only in Alpine Faction. The default values for existing levels ensure functionality continues as it always has (legacy compatible), while the default values for new levels enable the new features. You can control them yourself in the Level Properties window.&lt;br /&gt;
* '''Legacy Cyclic_Timer events''' - Disable Cyclic_Timer fix, see [[#Fixed Cyclic_Timer|Fixed Cyclic_Timer]] for more information. Defaults to true for existing levels, false for new levels.&lt;br /&gt;
* '''Legacy movers''' - Disable new Alpine mover logic, see [[Alpine Level Design#Movers|Movers]] for more information. Defaults to true for existing levels, false for new levels.&lt;br /&gt;
* '''Player starts with headlamp''' - If true, players of this level can use their headlamp immediately when the level loads (SP only). If false, the player must first be given a headlamp with [[RED Event List#Set_Gameplay_Rule|Set_Gameplay_Rule]] before they can use their headlamp. Defaults to true for existing and new levels.&lt;br /&gt;
* '''Override static mesh ambient light scale''' - If true, use the specified '''New scale value''' as scalar for ambient light applied to static meshes. If false, use the stock game's behaviour, which is a scale of 2.0 when loaded in SP and 3.2 when loaded in MP. Defaults to false for existing and new levels.&lt;br /&gt;
&lt;br /&gt;
==Geometry==&lt;br /&gt;
When constructing non-Alpine levels, faces are added to &amp;quot;fix ps2 tiling&amp;quot; when building geometry, if the texture applied to a given surface tiles many times. This does not occur when constructing Alpine Levels - you can safely tile textures as much as you like without it resulting in additional unnecessary faces being added.&lt;br /&gt;
&lt;br /&gt;
Similarly, when adding brushes to moving groups during construction of non-Alpine levels, if those brushes have surfaces with textures that tile many times, the brush will be split. This also does not occur when constructing Alpine Levels - you can safely tile textures as much as you like on brushes that either are, or will eventually be, members of moving groups, without it resulting in additional unnecessary faces being added.&lt;br /&gt;
&lt;br /&gt;
==Movers==&lt;br /&gt;
Alpine Faction fixes several issues present in the stock game with movers, and adds some new functionality for mappers. All functionality described in this section is subject to the [[#Advanced options|Legacy movers]] option.&lt;br /&gt;
&lt;br /&gt;
===Translating Movers===&lt;br /&gt;
In the stock game, translating movers were never able to move slower than 0.4m/sec. This is now resolved, and movers can move very slow if configured as such. A hard minimum velocity of 0.001m/sec is imposed to handle some obscure framerate-related issues, but in a practical sense this will never be a limiting factor.&lt;br /&gt;
&lt;br /&gt;
In the stock game, travel time is calculated without taking acceleration/deceleration into account, which results in a drift in travel time equal to 50% of the combined acceleration + deceleration time. This is now resolved, and the travel time configured for the keyframe is respected. Note that if the combined acceleration + deceleration time is greater than the configured travel time, the travel time will be increased by Alpine Faction in order to accommodate the provided values.&lt;br /&gt;
&lt;br /&gt;
In the stock game, the way values were applied along the mover path was not always intuitive. In Alpine Faction, the travel, acceleration, and deceleration times for a movement segment are always as configured on the starting keyframe for that segment.&lt;br /&gt;
* For example, if a mover is moving forward from Keyframe A -&amp;gt; B -&amp;gt; C, and is set to &amp;quot;Ping Pong Once&amp;quot;:&lt;br /&gt;
** Time values configured on Keyframe A are used for the movement from A -&amp;gt; B (moving forward)&lt;br /&gt;
** Time values configured on Keyframe B are used for the movement from B -&amp;gt; C (moving forward)&lt;br /&gt;
** The mover hits Keyframe C, and because it's set to &amp;quot;Ping Pong Once&amp;quot;, it reverses direction and begins moving backwards&lt;br /&gt;
** Time values configured on Keyframe C are used for the movement from C -&amp;gt; B (moving backward)&lt;br /&gt;
** Time values configured on Keyframe B are used for the movement from B -&amp;gt; A (moving backward)&lt;br /&gt;
** The mover hits Keyframe A, and because it's set to &amp;quot;Ping Pong Once&amp;quot; and has now reached its starting position, it stops. The next time it is activated, it begins moving forward from Keyframe A -&amp;gt; B again.&lt;br /&gt;
&lt;br /&gt;
===Rotating Movers===&lt;br /&gt;
In the stock game, &amp;quot;Loop Once&amp;quot; and &amp;quot;Loop Infinite&amp;quot; on rotating movers with rotation degrees &amp;lt; 360 just continued looping 360 degrees regardless. This is now resolved, so the mover works as expected - i.e. with rotation degrees 90 and type &amp;quot;Loop Once&amp;quot;, the mover rotates 90 degrees and then snaps back to its starting position.&lt;br /&gt;
&lt;br /&gt;
In the stock game, &amp;quot;Ping Pong Infinite&amp;quot; on rotating movers did not work properly - the behaviour was different than &amp;quot;Ping Pong Once&amp;quot;. This is now resolved, and &amp;quot;Ping Pong Infinite&amp;quot; functions identically to &amp;quot;Ping Pong Once&amp;quot;, just continues going until forcefully stopped.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;Lift&amp;quot; Movement Type===&lt;br /&gt;
This option has always been available in [[RED_Objects#Keyframe|Keyframe]] properties, but has functioned the same as the &amp;quot;One Way&amp;quot; type. This has been resolved - &amp;quot;Lift&amp;quot; now works similarly to &amp;quot;One Way&amp;quot;, however whereas &amp;quot;One Way&amp;quot; ensures a one way movement from the starting keyframe to the last keyframe, &amp;quot;Lift&amp;quot; moves just one segment per activation, and then stops and waits to be activated again.&lt;br /&gt;
&lt;br /&gt;
===Force Orient===&lt;br /&gt;
This option has always been available in [[RED_Objects#Keyframe|Keyframe]] properties, but using it would make levels crash when loading. In Alpine Faction, this option now works properly:&lt;br /&gt;
* For translating movers, it ensures the mover faces the direction of movement while moving (resets to base orientation when stopped)&lt;br /&gt;
* For rotating movers, it ensures the mover maintains its base orientation when moving.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' While the Force Orient functionality is restricted to Alpine levels (and subject to the &amp;quot;Legacy Movers&amp;quot; option), Alpine Faction fixes the crash issue across all levels. Older levels will no longer crash when this option is used, but they also won't be able to use the functionality (they will act as though this option was simply not enabled).&lt;br /&gt;
&lt;br /&gt;
==Lighting==&lt;br /&gt;
===Lightmaps===&lt;br /&gt;
In Alpine Levels, the game does not apply lightmap clamping. This means that the full range of available colors is available - including fully unlit (black) areas. Put another way, the way your lightmaps look when you calculate them in the level editor is how they will look in game.&lt;br /&gt;
&lt;br /&gt;
Additionally, the stock editor applies similar lightmap clamping when opening saved levels. This has also been removed in Alpine RED - levels loaded in Alpine RED will look as they did when they were saved.&lt;br /&gt;
===Dynamic Lights===&lt;br /&gt;
Alpine Levels can utilize dynamic lights - configured via the &amp;quot;Dynamic&amp;quot; checkbox in light properties. Using the ''Anchor_Marker'' event (described below), you can also move dynamic lights using moving groups. &lt;br /&gt;
&lt;br /&gt;
Note: Dynamic lights are far more taxing on game performance than normal (static) lights. You should keep this in mind when designing, and use dynamic lights only where necessary to achieve your desired effect.&lt;br /&gt;
&lt;br /&gt;
==Skyboxes==&lt;br /&gt;
In Alpine Levels, while you can still make static skyboxes as you always could before if you wish, through the ''Set_Skybox'' event (described below) you can enhance your skyboxes. The key differences are listed below.&lt;br /&gt;
&lt;br /&gt;
Note: When making an enhanced skybox, while you still do need to place a ''Room Effect'' in the room that is to be your sky room, you should '''not''' select the &amp;quot;Sky Room&amp;quot; type on the ''Room Effect'' - instead, leave &amp;quot;type&amp;quot; set to &amp;quot;None&amp;quot;. The UID of the ''Room Effect'' is the skybox room UID you will specify in the properties of the ''Set_Skybox'' event.&lt;br /&gt;
&lt;br /&gt;
===Base Functionality===&lt;br /&gt;
Enhanced skyboxes retain all functionality seen in normal skyboxes, but add:&lt;br /&gt;
* '''Lighting''' - Lightmaps are rendered in surfaces in enhanced skyboxes (Direct3D 11 renderer only). If you do not want lightmaps on your skybox faces, you can set them to fullbright in texture properties.&lt;br /&gt;
* '''Liquid''' - You can set the ''Room Effect'' that designates your enhanced skybox room to type &amp;quot;Liquid Room&amp;quot; if you wish to have a liquid surface in your sky room.&lt;br /&gt;
&lt;br /&gt;
===Eye Anchor===&lt;br /&gt;
When setting an enhanced skybox via the ''Set_Skybox'' event, you can specify an &amp;quot;eye anchor&amp;quot; UID. This must be the UID of an ''Anchor_Marker'' event that is inside the skybox room you are using. If you specify a valid &amp;quot;eye anchor&amp;quot; UID, this will be the position from which the sky room will be visible when projected as your skybox. You can also place the ''Anchor_Marker'' in a moving group and move it with keyframes if you wish.&lt;br /&gt;
&lt;br /&gt;
Caution: Moving the &amp;quot;eye anchor&amp;quot; with keyframes can be very disorienting and take away from your level if you are not careful. In general, you should avoid quick movements.&lt;br /&gt;
&lt;br /&gt;
===Relative Position===&lt;br /&gt;
When setting an enhanced skybox via the ''Set_Skybox'' event, you can turn on &amp;quot;use relative position&amp;quot; and specify a &amp;quot;relative position scale&amp;quot;. If you do, players can move around &amp;quot;inside the sky room&amp;quot; as they play your map. The position of your camera in relation to the world origin (position 0,0,0) is mapped to the &amp;quot;eye&amp;quot; position in the skybox, relative to the &amp;quot;eye anchor&amp;quot; position in the sky room. The position is scaled using the scale.&lt;br /&gt;
&lt;br /&gt;
* A &amp;quot;relative position scale&amp;quot; of 1.0 maps camera position relative to world origin to eye position relative to eye anchor position at a ratio of 1:1 - every 1m moved in the world is 1m moved in the skybox.&lt;br /&gt;
* A &amp;quot;relative position scale&amp;quot; of 0.25 however, means every 1m moved in the world is 0.25m moved in the skybox. Using this, you can make your skybox much smaller than your actual level.&lt;br /&gt;
&lt;br /&gt;
Note: Relative position '''requires''' you specify a scale and an eye anchor (and of course a skyboox room UID). If you do not specify each of these, ticking the &amp;quot;use relative position&amp;quot; option will have no effect.&lt;br /&gt;
&lt;br /&gt;
==Multiplayer Respawn Points==&lt;br /&gt;
The stock game recognized only the first 32 [[RED Objects#Multiplayer Respawn Point|Multiplayer Respawn Points]] placed in a level. Alpine Faction recognizes the first 2048.&lt;br /&gt;
&lt;br /&gt;
In the new KOTH, DC, REV, and ESC gametypes, Multiplayer Respawn Points can be associated with control points. This behaviour is further described in [[Mapping_with_Control_Points#Linking_to_Respawn_Points|Mapping with Control Points]].&lt;br /&gt;
&lt;br /&gt;
Multiplayer Respawn Points can now be toggled on/off with [[RED Event List#Respawn_Point_State|Respawn_Point_State]], and the associated team(s) changed with [[RED Event List#Modify_Respawn_Point|Modify_Respawn_Point]].&lt;br /&gt;
&lt;br /&gt;
==Triggers==&lt;br /&gt;
In multiplayer, unlike levels made for other versions of the game, triggers in Alpine Levels can activate events directly. This includes stock game events and Alpine Events (described below).&lt;br /&gt;
&lt;br /&gt;
The following events are not supported in multiplayer and will not function if triggered:&lt;br /&gt;
* Load_Level&lt;br /&gt;
* Endgame&lt;br /&gt;
* Defuse_Nuke&lt;br /&gt;
* Drop_Point_Marker&lt;br /&gt;
* Go_Undercover&lt;br /&gt;
* Win_PS2_Demo&lt;br /&gt;
* Play_Video&lt;br /&gt;
* When_Picked_Up&lt;br /&gt;
&lt;br /&gt;
==Items==&lt;br /&gt;
In single player, unlike levels made for other versions of the game, Alpine Levels allow the player to pick up the ''Multi Super Health'' and ''Multi Super Armor'' items.&lt;br /&gt;
&lt;br /&gt;
==HUD Messages==&lt;br /&gt;
Magic words can be used in HUD message display (via the ''HUD_Message''' event, and any other reason HUD messages would be rendered) to display dynamic values to the player. The stock game supported the use of magic words in HUD messages for a subset of the controls in the stock game (used in the training mission), but Alpine Faction expands this capability substantially. To use these magic words, simply include their text exactly as written below in the string for your HUD message.&lt;br /&gt;
&lt;br /&gt;
The following is a list of magic words that are available for use by level designers and mod developers in Alpine Faction, as well as what they are translated to when displayed as a HUD message&lt;br /&gt;
* '''$FIRE$''' - Name of the key or mouse button assigned to the primary fire control&lt;br /&gt;
* '''$ALT_FIRE$''' - Name of the key or mouse button assigned to the alternate fire control&lt;br /&gt;
* '''$USE$''' - Name of the key or mouse button assigned to the use control&lt;br /&gt;
* '''$JUMP$''' - Name of the key or mouse button assigned to the jump control&lt;br /&gt;
* '''$CROUCH$''' - Name of the key or mouse button assigned to the crouch control&lt;br /&gt;
* '''$HOLSTER$''' - Name of the key or mouse button assigned to the holster weapon control&lt;br /&gt;
* '''$RELOAD$''' - Name of the key or mouse button assigned to the reload weapon control&lt;br /&gt;
* '''$NEXT_WEAPON$''' - Name of the key or mouse button assigned to the next weapon control&lt;br /&gt;
* '''$PREV_WEAPON$''' - Name of the key or mouse button assigned to the previous weapon control&lt;br /&gt;
* '''$MESSAGE_LOG$''' - Name of the key or mouse button assigned to the message log control&lt;br /&gt;
* '''$QUICK_SAVE$''' - Name of the key or mouse button assigned to the quick save control&lt;br /&gt;
* '''$QUICK_LOAD$''' - Name of the key or mouse button assigned to the quick load control&lt;br /&gt;
* '''$HEADLAMP$''' - Name of the key or mouse button assigned to the toggle headlamp control&lt;br /&gt;
* '''$SKIP_CUTSCENE$''' - Name of the key or mouse button assigned to the skip cutscene control&lt;br /&gt;
* '''$goal_GOALNAME$''' - Value of the goal with name equal to GOALNAME, if such a goal exists in the current map&lt;br /&gt;
&lt;br /&gt;
==Events==&lt;br /&gt;
===Fixed Delay Parameter===&lt;br /&gt;
Outside of Alpine Levels, using the delay parameter with the following stock game events leads to that event breaking - the effect will never apply. In Alpine Levels, the delay parameter can be used on these events without issue - just like any other event.&lt;br /&gt;
* '''Play_Sound'''&lt;br /&gt;
* '''Cyclic_Timer'''&lt;br /&gt;
* '''Make_Invulnerable'''&lt;br /&gt;
* '''Alarm_Siren'''&lt;br /&gt;
* '''Unhide'''&lt;br /&gt;
&lt;br /&gt;
===Fixed Cyclic_Timer===&lt;br /&gt;
Normally, the [[RED Event List#Cyclic_Timer|Cyclic_Timer]] fires twice on its first activation. In Alpine levels, this is fixed so the first activation (like every other activation_ fires only once. (Subject to [[#Advanced options|Legacy Cyclic_Timer events]] option)&lt;br /&gt;
&lt;br /&gt;
===Enhanced Functionality===&lt;br /&gt;
In Alpine Levels, some stock game events have been improved in various ways:&lt;br /&gt;
* '''Headlamp_State''' - If not linked to any specific entities, applies to the player. Can be used to toggle the player flashlight.&lt;br /&gt;
* '''Holster_Weapon''' - Could always be turned on to holster the weapon of linked entities. In Alpine Levels, can also be turned off to force those entities to unholster their weapons.&lt;br /&gt;
* '''Holster_Player_Weapon''' - Could always be turned on to holster the player's weapon. In Alpine Levels, can also be turned off to unholster the player's weapon.&lt;br /&gt;
&lt;br /&gt;
====Dash Faction====&lt;br /&gt;
The following events had functionality added in Dash Faction 1.5.0. This functionality is not specific to Alpine Levels - it is available on any levels when using Dash Faction 1.5.0+ or any version of Alpine Faction. On other client versions (including all official client versions), although levels that rely on this functionality can be loaded, the functionality of these events will be restricted to only their stock game behaviour, which could lead to undesirable behaviour.&lt;br /&gt;
* '''Set_Liquid_Depth''' - Had no effect in the stock game. Can now be used to smoothly change the depth of a liquid room.&lt;br /&gt;
* '''Switch_Model''' - Used to swap the mesh used by linked clutter objects to a specified file. Could be used in stock game as long as the specified mesh file was a stock game file. Can now be used to specify custom meshes distributed with levels.&lt;br /&gt;
&lt;br /&gt;
===Directional Events===&lt;br /&gt;
3D arrows in the Alpine level editor are drawn from directional events - that is, events that save their orientation and use it for some purpose. (most events are not directional). The following events are directional:&lt;br /&gt;
* '''Play_VClip''' - (did not display a 3D arrow in stock level editor, does in Alpine level editor)&lt;br /&gt;
* '''Teleport''' - (did not display a 3D arrow in stock level editor, does in Alpine level editor)&lt;br /&gt;
* '''Teleport_Player'''&lt;br /&gt;
* '''Clone_Entity'''&lt;br /&gt;
* '''AF_Teleport_Player'''&lt;br /&gt;
* '''Anchor_Marker_Orient'''&lt;br /&gt;
&lt;br /&gt;
===Alpine Events===&lt;br /&gt;
* Alpine Faction adds many brand new event objects for use by level designers. For a full list of the new Alpine events, and a breakdown of the functionality of each, see [[RED_Event_List#Alpine_Faction|Alpine Faction Event List]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: RF1 Editing]]&lt;br /&gt;
[[Category: Alpine Faction]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Alpine_Level_Design&amp;diff=15099</id>
		<title>Alpine Level Design</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Alpine_Level_Design&amp;diff=15099"/>
		<updated>2025-12-23T12:56:58Z</updated>

		<summary type="html">&lt;p&gt;Goober: /* Movers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BubbleNav|RF1Modding}}&lt;br /&gt;
[[File:Alpinelogo1.png|center]]&lt;br /&gt;
&lt;br /&gt;
This page lists all major differences between normal Red Faction level design and level design for Alpine Levels, as featured in Alpine Faction.&lt;br /&gt;
&lt;br /&gt;
*This page is current as of the release of Alpine Faction v1.2.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
===Versioning===&lt;br /&gt;
'''Alpine Levels are playable only using Alpine Faction.'''&lt;br /&gt;
&lt;br /&gt;
Due to features unavailable in those clients, Alpine Levels are '''not''' playable while using other client versions such as any version of Red Faction (official builds), Pure Faction, or Dash Faction.&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
* '''Troubleshooting goals''' - You can use the &amp;lt;tt&amp;gt;[ dbg_goal GOALNAME ]&amp;lt;/tt&amp;gt; console command at any time to query a goal by name and print its current and initial values.&lt;br /&gt;
* '''Troubleshooting event and trigger links''' - You can use the &amp;lt;tt&amp;gt;[ debug trigger ]&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;[ debug event ]&amp;lt;/tt&amp;gt; console commands at any time (SP only) to draw events and triggers and their links as arrows in the game world. Links from triggers are blue, links from events are purple.&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
* '''Multiplayer playtesting''' - In addition to the '''Play''' and '''Play from Camera''' features that have always been available, the Alpine level editor adds a feature to allow you to playtest multiplayer maps in multiplayer. If you click the '''Play in multi''' or '''Play in multi (camera)''' buttons on the top toolbar, the game will launch you into a listen (local) server running your level.&lt;br /&gt;
* '''Hotkeys''' - The F9 hotkey now maps to '''Play in multi''' and F10 maps to '''Play in multi (camera)'''&lt;br /&gt;
* '''Object links''' - You can now link to multiple objects at once. When you select multiple objects and press &amp;quot;K&amp;quot;, the first object you selected will be linked to all other object you have selected.&lt;br /&gt;
* '''Pixels/meter tiling''' - The maximum configurable value in Preference-&amp;gt;Texture has been raised to 8192.&lt;br /&gt;
&lt;br /&gt;
===Level Properties===&lt;br /&gt;
* '''RFL version''' - Is now displayed in the Level Properties window.&lt;br /&gt;
* '''Fog''' - Default fog colour for newly created levels is now (0, 0, 0) full black instead of the stock game default of (40, 40, 40).&lt;br /&gt;
====Advanced options====&lt;br /&gt;
These options allow level designers to access new functionality available only in Alpine Faction. The default values for existing levels ensure functionality continues as it always has (legacy compatible), while the default values for new levels enable the new features. You can control them yourself in the Level Properties window.&lt;br /&gt;
* '''Legacy Cyclic_Timer events''' - Disable Cyclic_Timer fix, see [[#Fixed Cyclic_Timer|Fixed Cyclic_Timer]] for more information. Defaults to true for existing levels, false for new levels.&lt;br /&gt;
* '''Legacy movers''' - Disable new Alpine mover logic, see [[Alpine Level Design#Movers|Movers]] for more information. Defaults to true for existing levels, false for new levels.&lt;br /&gt;
* '''Player starts with headlamp''' - If true, players of this level can use their headlamp immediately when the level loads (SP only). If false, the player must first be given a headlamp with [[RED Event List#Set_Gameplay_Rule|Set_Gameplay_Rule]] before they can use their headlamp. Defaults to true for existing and new levels.&lt;br /&gt;
* '''Override static mesh ambient light scale''' - If true, use the specified '''New scale value''' as scalar for ambient light applied to static meshes. If false, use the stock game's behaviour, which is a scale of 2.0 when loaded in SP and 3.2 when loaded in MP. Defaults to false for existing and new levels.&lt;br /&gt;
&lt;br /&gt;
==Geometry==&lt;br /&gt;
When constructing non-Alpine levels, faces are added to &amp;quot;fix ps2 tiling&amp;quot; when building geometry, if the texture applied to a given surface tiles many times. This does not occur when constructing Alpine Levels - you can safely tile textures as much as you like without it resulting in additional unnecessary faces being added.&lt;br /&gt;
&lt;br /&gt;
Similarly, when adding brushes to moving groups during construction of non-Alpine levels, if those brushes have surfaces with textures that tile many times, the brush will be split. This also does not occur when constructing Alpine Levels - you can safely tile textures as much as you like on brushes that either are, or will eventually be, members of moving groups, without it resulting in additional unnecessary faces being added.&lt;br /&gt;
&lt;br /&gt;
==Movers==&lt;br /&gt;
Alpine Faction fixes several issues present in the stock game with movers, and adds some new functionality for mappers. All functionality described in this section is subject to the [[#Advanced options|Legacy movers]] option.&lt;br /&gt;
&lt;br /&gt;
===Translating Movers===&lt;br /&gt;
In the stock game, translating movers were never able to move slower than 0.4m/sec. This is now resolved, and movers can move very slow if configured as such. A hard minimum velocity of 0.001m/sec is imposed to handle some obscure framerate-related issues, but in a practical sense this will never be a limiting factor.&lt;br /&gt;
&lt;br /&gt;
In the stock game, travel time is calculated without taking acceleration/deceleration into account, which results in a drift in travel time equal to 50% of the combined acceleration + deceleration time. This is now resolved, and the travel time configured for the keyframe is respected. Note that if the combined acceleration + deceleration time is greater than the configured travel time, the travel time will be increased by Alpine Faction in order to accommodate the provided values.&lt;br /&gt;
&lt;br /&gt;
In the stock game, the way values were applied along the mover path was not always intuitive. In Alpine Faction, the travel, acceleration, and deceleration times for a movement segment are always as configured on the starting keyframe for that segment.&lt;br /&gt;
* For example, if a mover is moving forward from Keyframe A -&amp;gt; B -&amp;gt; C, and is set to &amp;quot;Ping Pong Once&amp;quot;:&lt;br /&gt;
** Time values configured on Keyframe A are used for the movement from A -&amp;gt; B (moving forward)&lt;br /&gt;
** Time values configured on Keyframe B are used for the movement from B -&amp;gt; C (moving forward)&lt;br /&gt;
** The mover hits Keyframe C, and because it's set to &amp;quot;Ping Pong Once&amp;quot;, it reverses direction and begins moving backwards&lt;br /&gt;
** Time values configured on Keyframe C are used for the movement from C -&amp;gt; B (moving backward)&lt;br /&gt;
** Time values configured on Keyframe B are used for the movement from B -&amp;gt; A (moving backward)&lt;br /&gt;
** The mover hits Keyframe A, and because it's set to &amp;quot;Ping Pong Once&amp;quot; and has now reached its starting position, it stops. The next time it is activated, it begins moving forward from Keyframe A -&amp;gt; B again.&lt;br /&gt;
&lt;br /&gt;
===Rotating Movers===&lt;br /&gt;
In the stock game, &amp;quot;Loop Once&amp;quot; and &amp;quot;Loop Infinite&amp;quot; on rotating movers with rotation degrees &amp;lt; 360 just continued looping 360 degrees regardless. This is now resolved, so the mover works as expected - i.e. with rotation degrees 90 and type &amp;quot;Loop Once&amp;quot;, the mover rotates 90 degrees and then snaps back to its starting position.&lt;br /&gt;
&lt;br /&gt;
In the stock game, &amp;quot;Ping Pong Infinite&amp;quot; on rotating movers did not work properly - the behaviour was different than &amp;quot;Ping Pong Once&amp;quot;. This is now resolved, and &amp;quot;Ping Pong Infinite&amp;quot; functions identically to &amp;quot;Ping Pong Once&amp;quot;, just continues going until forcefully stopped.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;Lift&amp;quot; Movement Type===&lt;br /&gt;
This option has always been available in [[RED_Objects#Keyframe|Keyframe]] properties, but has functioned the same as the &amp;quot;One Way&amp;quot; type. This has been resolved - &amp;quot;Lift&amp;quot; now works similarly to &amp;quot;One Way&amp;quot;, however whereas &amp;quot;One Way&amp;quot; ensures a one way movement from the starting keyframe to the last keyframe, &amp;quot;Lift&amp;quot; moves just one segment per activation, and then stops and waits to be activated again.&lt;br /&gt;
&lt;br /&gt;
===Force Orient===&lt;br /&gt;
This option has always been available in [[RED_Objects#Keyframe|Keyframe]] properties, but using it would make levels crash when loading. In Alpine Faction, this option now works properly:&lt;br /&gt;
* For translating movers, it ensures the mover faces the direction of movement while moving (resets to base orientation when stopped)&lt;br /&gt;
* For rotating movers, it ensures the mover maintains its base orientation when moving.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' While the Force Orient functionality is restricted to Alpine levels (and subject to the &amp;quot;Legacy Movers&amp;quot; option), Alpine Faction fixes the crash issue across all levels. Older levels will no longer crash when this option is used, but they also won't be able to use the functionality (they will act as though this option was simply not enabled).&lt;br /&gt;
&lt;br /&gt;
==Lighting==&lt;br /&gt;
===Lightmaps===&lt;br /&gt;
In Alpine Levels, the game does not apply lightmap clamping. This means that the full range of available colors is available - including fully unlit (black) areas. Put another way, the way your lightmaps look when you calculate them in the level editor is how they will look in game.&lt;br /&gt;
&lt;br /&gt;
Additionally, the stock editor applies similar lightmap clamping when opening saved levels. This has also been removed in Alpine RED - levels loaded in Alpine RED will look as they did when they were saved.&lt;br /&gt;
===Dynamic Lights===&lt;br /&gt;
Alpine Levels can utilize dynamic lights - configured via the &amp;quot;Dynamic&amp;quot; checkbox in light properties. Using the ''Anchor_Marker'' event (described below), you can also move dynamic lights using moving groups. &lt;br /&gt;
&lt;br /&gt;
Note: Dynamic lights are far more taxing on game performance than normal (static) lights. You should keep this in mind when designing, and use dynamic lights only where necessary to achieve your desired effect.&lt;br /&gt;
&lt;br /&gt;
==Skyboxes==&lt;br /&gt;
In Alpine Levels, while you can still make static skyboxes as you always could before if you wish, through the ''Set_Skybox'' event (described below) you can enhance your skyboxes. The key differences are listed below.&lt;br /&gt;
&lt;br /&gt;
Note: When making an enhanced skybox, while you still do need to place a ''Room Effect'' in the room that is to be your sky room, you should '''not''' select the &amp;quot;Sky Room&amp;quot; type on the ''Room Effect'' - instead, leave &amp;quot;type&amp;quot; set to &amp;quot;None&amp;quot;. The UID of the ''Room Effect'' is the skybox room UID you will specify in the properties of the ''Set_Skybox'' event.&lt;br /&gt;
&lt;br /&gt;
===Base Functionality===&lt;br /&gt;
Enhanced skyboxes retain all functionality seen in normal skyboxes, but add:&lt;br /&gt;
* '''Lighting''' - Lightmaps are rendered in surfaces in enhanced skyboxes (Direct3D 11 renderer only). If you do not want lightmaps on your skybox faces, you can set them to fullbright in texture properties.&lt;br /&gt;
* '''Liquid''' - You can set the ''Room Effect'' that designates your enhanced skybox room to type &amp;quot;Liquid Room&amp;quot; if you wish to have a liquid surface in your sky room.&lt;br /&gt;
&lt;br /&gt;
===Eye Anchor===&lt;br /&gt;
When setting an enhanced skybox via the ''Set_Skybox'' event, you can specify an &amp;quot;eye anchor&amp;quot; UID. This must be the UID of an ''Anchor_Marker'' event that is inside the skybox room you are using. If you specify a valid &amp;quot;eye anchor&amp;quot; UID, this will be the position from which the sky room will be visible when projected as your skybox. You can also place the ''Anchor_Marker'' in a moving group and move it with keyframes if you wish.&lt;br /&gt;
&lt;br /&gt;
Caution: Moving the &amp;quot;eye anchor&amp;quot; with keyframes can be very disorienting and take away from your level if you are not careful. In general, you should avoid quick movements.&lt;br /&gt;
&lt;br /&gt;
===Relative Position===&lt;br /&gt;
When setting an enhanced skybox via the ''Set_Skybox'' event, you can turn on &amp;quot;use relative position&amp;quot; and specify a &amp;quot;relative position scale&amp;quot;. If you do, players can move around &amp;quot;inside the sky room&amp;quot; as they play your map. The position of your camera in relation to the world origin (position 0,0,0) is mapped to the &amp;quot;eye&amp;quot; position in the skybox, relative to the &amp;quot;eye anchor&amp;quot; position in the sky room. The position is scaled using the scale.&lt;br /&gt;
&lt;br /&gt;
* A &amp;quot;relative position scale&amp;quot; of 1.0 maps camera position relative to world origin to eye position relative to eye anchor position at a ratio of 1:1 - every 1m moved in the world is 1m moved in the skybox.&lt;br /&gt;
* A &amp;quot;relative position scale&amp;quot; of 0.25 however, means every 1m moved in the world is 0.25m moved in the skybox. Using this, you can make your skybox much smaller than your actual level.&lt;br /&gt;
&lt;br /&gt;
Note: Relative position '''requires''' you specify a scale and an eye anchor (and of course a skyboox room UID). If you do not specify each of these, ticking the &amp;quot;use relative position&amp;quot; option will have no effect.&lt;br /&gt;
&lt;br /&gt;
==Triggers==&lt;br /&gt;
In multiplayer, unlike levels made for other versions of the game, triggers in Alpine Levels can activate events directly. This includes stock game events and Alpine Events (described below).&lt;br /&gt;
&lt;br /&gt;
The following events are not supported in multiplayer and will not function if triggered:&lt;br /&gt;
* Load_Level&lt;br /&gt;
* Endgame&lt;br /&gt;
* Defuse_Nuke&lt;br /&gt;
* Drop_Point_Marker&lt;br /&gt;
* Go_Undercover&lt;br /&gt;
* Win_PS2_Demo&lt;br /&gt;
* Play_Video&lt;br /&gt;
* When_Picked_Up&lt;br /&gt;
&lt;br /&gt;
==Items==&lt;br /&gt;
In single player, unlike levels made for other versions of the game, Alpine Levels allow the player to pick up the ''Multi Super Health'' and ''Multi Super Armor'' items.&lt;br /&gt;
&lt;br /&gt;
==HUD Messages==&lt;br /&gt;
Magic words can be used in HUD message display (via the ''HUD_Message''' event, and any other reason HUD messages would be rendered) to display dynamic values to the player. The stock game supported the use of magic words in HUD messages for a subset of the controls in the stock game (used in the training mission), but Alpine Faction expands this capability substantially. To use these magic words, simply include their text exactly as written below in the string for your HUD message.&lt;br /&gt;
&lt;br /&gt;
The following is a list of magic words that are available for use by level designers and mod developers in Alpine Faction, as well as what they are translated to when displayed as a HUD message&lt;br /&gt;
* '''$FIRE$''' - Name of the key or mouse button assigned to the primary fire control&lt;br /&gt;
* '''$ALT_FIRE$''' - Name of the key or mouse button assigned to the alternate fire control&lt;br /&gt;
* '''$USE$''' - Name of the key or mouse button assigned to the use control&lt;br /&gt;
* '''$JUMP$''' - Name of the key or mouse button assigned to the jump control&lt;br /&gt;
* '''$CROUCH$''' - Name of the key or mouse button assigned to the crouch control&lt;br /&gt;
* '''$HOLSTER$''' - Name of the key or mouse button assigned to the holster weapon control&lt;br /&gt;
* '''$RELOAD$''' - Name of the key or mouse button assigned to the reload weapon control&lt;br /&gt;
* '''$NEXT_WEAPON$''' - Name of the key or mouse button assigned to the next weapon control&lt;br /&gt;
* '''$PREV_WEAPON$''' - Name of the key or mouse button assigned to the previous weapon control&lt;br /&gt;
* '''$MESSAGE_LOG$''' - Name of the key or mouse button assigned to the message log control&lt;br /&gt;
* '''$QUICK_SAVE$''' - Name of the key or mouse button assigned to the quick save control&lt;br /&gt;
* '''$QUICK_LOAD$''' - Name of the key or mouse button assigned to the quick load control&lt;br /&gt;
* '''$HEADLAMP$''' - Name of the key or mouse button assigned to the toggle headlamp control&lt;br /&gt;
* '''$SKIP_CUTSCENE$''' - Name of the key or mouse button assigned to the skip cutscene control&lt;br /&gt;
* '''$goal_GOALNAME$''' - Value of the goal with name equal to GOALNAME, if such a goal exists in the current map&lt;br /&gt;
&lt;br /&gt;
==Events==&lt;br /&gt;
===Fixed Delay Parameter===&lt;br /&gt;
Outside of Alpine Levels, using the delay parameter with the following stock game events leads to that event breaking - the effect will never apply. In Alpine Levels, the delay parameter can be used on these events without issue - just like any other event.&lt;br /&gt;
* '''Play_Sound'''&lt;br /&gt;
* '''Cyclic_Timer'''&lt;br /&gt;
* '''Make_Invulnerable'''&lt;br /&gt;
* '''Alarm_Siren'''&lt;br /&gt;
* '''Unhide'''&lt;br /&gt;
&lt;br /&gt;
===Fixed Cyclic_Timer===&lt;br /&gt;
Normally, the [[RED Event List#Cyclic_Timer|Cyclic_Timer]] fires twice on its first activation. In Alpine levels, this is fixed so the first activation (like every other activation_ fires only once. (Subject to [[#Advanced options|Legacy Cyclic_Timer events]] option)&lt;br /&gt;
&lt;br /&gt;
===Enhanced Functionality===&lt;br /&gt;
In Alpine Levels, some stock game events have been improved in various ways:&lt;br /&gt;
* '''Headlamp_State''' - If not linked to any specific entities, applies to the player. Can be used to toggle the player flashlight.&lt;br /&gt;
* '''Holster_Weapon''' - Could always be turned on to holster the weapon of linked entities. In Alpine Levels, can also be turned off to force those entities to unholster their weapons.&lt;br /&gt;
* '''Holster_Player_Weapon''' - Could always be turned on to holster the player's weapon. In Alpine Levels, can also be turned off to unholster the player's weapon.&lt;br /&gt;
&lt;br /&gt;
====Dash Faction====&lt;br /&gt;
The following events had functionality added in Dash Faction 1.5.0. This functionality is not specific to Alpine Levels - it is available on any levels when using Dash Faction 1.5.0+ or any version of Alpine Faction. On other client versions (including all official client versions), although levels that rely on this functionality can be loaded, the functionality of these events will be restricted to only their stock game behaviour, which could lead to undesirable behaviour.&lt;br /&gt;
* '''Set_Liquid_Depth''' - Had no effect in the stock game. Can now be used to smoothly change the depth of a liquid room.&lt;br /&gt;
* '''Switch_Model''' - Used to swap the mesh used by linked clutter objects to a specified file. Could be used in stock game as long as the specified mesh file was a stock game file. Can now be used to specify custom meshes distributed with levels.&lt;br /&gt;
&lt;br /&gt;
===Directional Events===&lt;br /&gt;
3D arrows in the Alpine level editor are drawn from directional events - that is, events that save their orientation and use it for some purpose. (most events are not directional). The following events are directional:&lt;br /&gt;
* '''Play_VClip''' - (did not display a 3D arrow in stock level editor, does in Alpine level editor)&lt;br /&gt;
* '''Teleport''' - (did not display a 3D arrow in stock level editor, does in Alpine level editor)&lt;br /&gt;
* '''Teleport_Player'''&lt;br /&gt;
* '''Clone_Entity'''&lt;br /&gt;
* '''AF_Teleport_Player'''&lt;br /&gt;
* '''Anchor_Marker_Orient'''&lt;br /&gt;
&lt;br /&gt;
===Alpine Events===&lt;br /&gt;
* Alpine Faction adds many brand new event objects for use by level designers. For a full list of the new Alpine events, and a breakdown of the functionality of each, see [[RED_Event_List#Alpine_Faction|Alpine Faction Event List]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: RF1 Editing]]&lt;br /&gt;
[[Category: Alpine Faction]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Alpine_Level_Design&amp;diff=15098</id>
		<title>Alpine Level Design</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Alpine_Level_Design&amp;diff=15098"/>
		<updated>2025-12-23T12:25:10Z</updated>

		<summary type="html">&lt;p&gt;Goober: /* Advanced options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BubbleNav|RF1Modding}}&lt;br /&gt;
[[File:Alpinelogo1.png|center]]&lt;br /&gt;
&lt;br /&gt;
This page lists all major differences between normal Red Faction level design and level design for Alpine Levels, as featured in Alpine Faction.&lt;br /&gt;
&lt;br /&gt;
*This page is current as of the release of Alpine Faction v1.2.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
===Versioning===&lt;br /&gt;
'''Alpine Levels are playable only using Alpine Faction.'''&lt;br /&gt;
&lt;br /&gt;
Due to features unavailable in those clients, Alpine Levels are '''not''' playable while using other client versions such as any version of Red Faction (official builds), Pure Faction, or Dash Faction.&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
* '''Troubleshooting goals''' - You can use the &amp;lt;tt&amp;gt;[ dbg_goal GOALNAME ]&amp;lt;/tt&amp;gt; console command at any time to query a goal by name and print its current and initial values.&lt;br /&gt;
* '''Troubleshooting event and trigger links''' - You can use the &amp;lt;tt&amp;gt;[ debug trigger ]&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;[ debug event ]&amp;lt;/tt&amp;gt; console commands at any time (SP only) to draw events and triggers and their links as arrows in the game world. Links from triggers are blue, links from events are purple.&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
* '''Multiplayer playtesting''' - In addition to the '''Play''' and '''Play from Camera''' features that have always been available, the Alpine level editor adds a feature to allow you to playtest multiplayer maps in multiplayer. If you click the '''Play in multi''' or '''Play in multi (camera)''' buttons on the top toolbar, the game will launch you into a listen (local) server running your level.&lt;br /&gt;
* '''Hotkeys''' - The F9 hotkey now maps to '''Play in multi''' and F10 maps to '''Play in multi (camera)'''&lt;br /&gt;
* '''Object links''' - You can now link to multiple objects at once. When you select multiple objects and press &amp;quot;K&amp;quot;, the first object you selected will be linked to all other object you have selected.&lt;br /&gt;
* '''Pixels/meter tiling''' - The maximum configurable value in Preference-&amp;gt;Texture has been raised to 8192.&lt;br /&gt;
&lt;br /&gt;
===Level Properties===&lt;br /&gt;
* '''RFL version''' - Is now displayed in the Level Properties window.&lt;br /&gt;
* '''Fog''' - Default fog colour for newly created levels is now (0, 0, 0) full black instead of the stock game default of (40, 40, 40).&lt;br /&gt;
====Advanced options====&lt;br /&gt;
These options allow level designers to access new functionality available only in Alpine Faction. The default values for existing levels ensure functionality continues as it always has (legacy compatible), while the default values for new levels enable the new features. You can control them yourself in the Level Properties window.&lt;br /&gt;
* '''Legacy Cyclic_Timer events''' - Disable Cyclic_Timer fix, see [[#Fixed Cyclic_Timer|Fixed Cyclic_Timer]] for more information. Defaults to true for existing levels, false for new levels.&lt;br /&gt;
* '''Legacy movers''' - Disable new Alpine mover logic, see [[Alpine Level Design#Movers|Movers]] for more information. Defaults to true for existing levels, false for new levels.&lt;br /&gt;
* '''Player starts with headlamp''' - If true, players of this level can use their headlamp immediately when the level loads (SP only). If false, the player must first be given a headlamp with [[RED Event List#Set_Gameplay_Rule|Set_Gameplay_Rule]] before they can use their headlamp. Defaults to true for existing and new levels.&lt;br /&gt;
* '''Override static mesh ambient light scale''' - If true, use the specified '''New scale value''' as scalar for ambient light applied to static meshes. If false, use the stock game's behaviour, which is a scale of 2.0 when loaded in SP and 3.2 when loaded in MP. Defaults to false for existing and new levels.&lt;br /&gt;
&lt;br /&gt;
==Geometry==&lt;br /&gt;
When constructing non-Alpine levels, faces are added to &amp;quot;fix ps2 tiling&amp;quot; when building geometry, if the texture applied to a given surface tiles many times. This does not occur when constructing Alpine Levels - you can safely tile textures as much as you like without it resulting in additional unnecessary faces being added.&lt;br /&gt;
&lt;br /&gt;
Similarly, when adding brushes to moving groups during construction of non-Alpine levels, if those brushes have surfaces with textures that tile many times, the brush will be split. This also does not occur when constructing Alpine Levels - you can safely tile textures as much as you like on brushes that either are, or will eventually be, members of moving groups, without it resulting in additional unnecessary faces being added.&lt;br /&gt;
&lt;br /&gt;
==Movers==&lt;br /&gt;
WIP&lt;br /&gt;
&lt;br /&gt;
==Lighting==&lt;br /&gt;
===Lightmaps===&lt;br /&gt;
In Alpine Levels, the game does not apply lightmap clamping. This means that the full range of available colors is available - including fully unlit (black) areas. Put another way, the way your lightmaps look when you calculate them in the level editor is how they will look in game.&lt;br /&gt;
&lt;br /&gt;
Additionally, the stock editor applies similar lightmap clamping when opening saved levels. This has also been removed in Alpine RED - levels loaded in Alpine RED will look as they did when they were saved.&lt;br /&gt;
===Dynamic Lights===&lt;br /&gt;
Alpine Levels can utilize dynamic lights - configured via the &amp;quot;Dynamic&amp;quot; checkbox in light properties. Using the ''Anchor_Marker'' event (described below), you can also move dynamic lights using moving groups. &lt;br /&gt;
&lt;br /&gt;
Note: Dynamic lights are far more taxing on game performance than normal (static) lights. You should keep this in mind when designing, and use dynamic lights only where necessary to achieve your desired effect.&lt;br /&gt;
&lt;br /&gt;
==Skyboxes==&lt;br /&gt;
In Alpine Levels, while you can still make static skyboxes as you always could before if you wish, through the ''Set_Skybox'' event (described below) you can enhance your skyboxes. The key differences are listed below.&lt;br /&gt;
&lt;br /&gt;
Note: When making an enhanced skybox, while you still do need to place a ''Room Effect'' in the room that is to be your sky room, you should '''not''' select the &amp;quot;Sky Room&amp;quot; type on the ''Room Effect'' - instead, leave &amp;quot;type&amp;quot; set to &amp;quot;None&amp;quot;. The UID of the ''Room Effect'' is the skybox room UID you will specify in the properties of the ''Set_Skybox'' event.&lt;br /&gt;
&lt;br /&gt;
===Base Functionality===&lt;br /&gt;
Enhanced skyboxes retain all functionality seen in normal skyboxes, but add:&lt;br /&gt;
* '''Lighting''' - Lightmaps are rendered in surfaces in enhanced skyboxes (Direct3D 11 renderer only). If you do not want lightmaps on your skybox faces, you can set them to fullbright in texture properties.&lt;br /&gt;
* '''Liquid''' - You can set the ''Room Effect'' that designates your enhanced skybox room to type &amp;quot;Liquid Room&amp;quot; if you wish to have a liquid surface in your sky room.&lt;br /&gt;
&lt;br /&gt;
===Eye Anchor===&lt;br /&gt;
When setting an enhanced skybox via the ''Set_Skybox'' event, you can specify an &amp;quot;eye anchor&amp;quot; UID. This must be the UID of an ''Anchor_Marker'' event that is inside the skybox room you are using. If you specify a valid &amp;quot;eye anchor&amp;quot; UID, this will be the position from which the sky room will be visible when projected as your skybox. You can also place the ''Anchor_Marker'' in a moving group and move it with keyframes if you wish.&lt;br /&gt;
&lt;br /&gt;
Caution: Moving the &amp;quot;eye anchor&amp;quot; with keyframes can be very disorienting and take away from your level if you are not careful. In general, you should avoid quick movements.&lt;br /&gt;
&lt;br /&gt;
===Relative Position===&lt;br /&gt;
When setting an enhanced skybox via the ''Set_Skybox'' event, you can turn on &amp;quot;use relative position&amp;quot; and specify a &amp;quot;relative position scale&amp;quot;. If you do, players can move around &amp;quot;inside the sky room&amp;quot; as they play your map. The position of your camera in relation to the world origin (position 0,0,0) is mapped to the &amp;quot;eye&amp;quot; position in the skybox, relative to the &amp;quot;eye anchor&amp;quot; position in the sky room. The position is scaled using the scale.&lt;br /&gt;
&lt;br /&gt;
* A &amp;quot;relative position scale&amp;quot; of 1.0 maps camera position relative to world origin to eye position relative to eye anchor position at a ratio of 1:1 - every 1m moved in the world is 1m moved in the skybox.&lt;br /&gt;
* A &amp;quot;relative position scale&amp;quot; of 0.25 however, means every 1m moved in the world is 0.25m moved in the skybox. Using this, you can make your skybox much smaller than your actual level.&lt;br /&gt;
&lt;br /&gt;
Note: Relative position '''requires''' you specify a scale and an eye anchor (and of course a skyboox room UID). If you do not specify each of these, ticking the &amp;quot;use relative position&amp;quot; option will have no effect.&lt;br /&gt;
&lt;br /&gt;
==Triggers==&lt;br /&gt;
In multiplayer, unlike levels made for other versions of the game, triggers in Alpine Levels can activate events directly. This includes stock game events and Alpine Events (described below).&lt;br /&gt;
&lt;br /&gt;
The following events are not supported in multiplayer and will not function if triggered:&lt;br /&gt;
* Load_Level&lt;br /&gt;
* Endgame&lt;br /&gt;
* Defuse_Nuke&lt;br /&gt;
* Drop_Point_Marker&lt;br /&gt;
* Go_Undercover&lt;br /&gt;
* Win_PS2_Demo&lt;br /&gt;
* Play_Video&lt;br /&gt;
* When_Picked_Up&lt;br /&gt;
&lt;br /&gt;
==Items==&lt;br /&gt;
In single player, unlike levels made for other versions of the game, Alpine Levels allow the player to pick up the ''Multi Super Health'' and ''Multi Super Armor'' items.&lt;br /&gt;
&lt;br /&gt;
==HUD Messages==&lt;br /&gt;
Magic words can be used in HUD message display (via the ''HUD_Message''' event, and any other reason HUD messages would be rendered) to display dynamic values to the player. The stock game supported the use of magic words in HUD messages for a subset of the controls in the stock game (used in the training mission), but Alpine Faction expands this capability substantially. To use these magic words, simply include their text exactly as written below in the string for your HUD message.&lt;br /&gt;
&lt;br /&gt;
The following is a list of magic words that are available for use by level designers and mod developers in Alpine Faction, as well as what they are translated to when displayed as a HUD message&lt;br /&gt;
* '''$FIRE$''' - Name of the key or mouse button assigned to the primary fire control&lt;br /&gt;
* '''$ALT_FIRE$''' - Name of the key or mouse button assigned to the alternate fire control&lt;br /&gt;
* '''$USE$''' - Name of the key or mouse button assigned to the use control&lt;br /&gt;
* '''$JUMP$''' - Name of the key or mouse button assigned to the jump control&lt;br /&gt;
* '''$CROUCH$''' - Name of the key or mouse button assigned to the crouch control&lt;br /&gt;
* '''$HOLSTER$''' - Name of the key or mouse button assigned to the holster weapon control&lt;br /&gt;
* '''$RELOAD$''' - Name of the key or mouse button assigned to the reload weapon control&lt;br /&gt;
* '''$NEXT_WEAPON$''' - Name of the key or mouse button assigned to the next weapon control&lt;br /&gt;
* '''$PREV_WEAPON$''' - Name of the key or mouse button assigned to the previous weapon control&lt;br /&gt;
* '''$MESSAGE_LOG$''' - Name of the key or mouse button assigned to the message log control&lt;br /&gt;
* '''$QUICK_SAVE$''' - Name of the key or mouse button assigned to the quick save control&lt;br /&gt;
* '''$QUICK_LOAD$''' - Name of the key or mouse button assigned to the quick load control&lt;br /&gt;
* '''$HEADLAMP$''' - Name of the key or mouse button assigned to the toggle headlamp control&lt;br /&gt;
* '''$SKIP_CUTSCENE$''' - Name of the key or mouse button assigned to the skip cutscene control&lt;br /&gt;
* '''$goal_GOALNAME$''' - Value of the goal with name equal to GOALNAME, if such a goal exists in the current map&lt;br /&gt;
&lt;br /&gt;
==Events==&lt;br /&gt;
===Fixed Delay Parameter===&lt;br /&gt;
Outside of Alpine Levels, using the delay parameter with the following stock game events leads to that event breaking - the effect will never apply. In Alpine Levels, the delay parameter can be used on these events without issue - just like any other event.&lt;br /&gt;
* '''Play_Sound'''&lt;br /&gt;
* '''Cyclic_Timer'''&lt;br /&gt;
* '''Make_Invulnerable'''&lt;br /&gt;
* '''Alarm_Siren'''&lt;br /&gt;
* '''Unhide'''&lt;br /&gt;
&lt;br /&gt;
===Fixed Cyclic_Timer===&lt;br /&gt;
Normally, the [[RED Event List#Cyclic_Timer|Cyclic_Timer]] fires twice on its first activation. In Alpine levels, this is fixed so the first activation (like every other activation_ fires only once. (Subject to [[#Advanced options|Legacy Cyclic_Timer events]] option)&lt;br /&gt;
&lt;br /&gt;
===Enhanced Functionality===&lt;br /&gt;
In Alpine Levels, some stock game events have been improved in various ways:&lt;br /&gt;
* '''Headlamp_State''' - If not linked to any specific entities, applies to the player. Can be used to toggle the player flashlight.&lt;br /&gt;
* '''Holster_Weapon''' - Could always be turned on to holster the weapon of linked entities. In Alpine Levels, can also be turned off to force those entities to unholster their weapons.&lt;br /&gt;
* '''Holster_Player_Weapon''' - Could always be turned on to holster the player's weapon. In Alpine Levels, can also be turned off to unholster the player's weapon.&lt;br /&gt;
&lt;br /&gt;
====Dash Faction====&lt;br /&gt;
The following events had functionality added in Dash Faction 1.5.0. This functionality is not specific to Alpine Levels - it is available on any levels when using Dash Faction 1.5.0+ or any version of Alpine Faction. On other client versions (including all official client versions), although levels that rely on this functionality can be loaded, the functionality of these events will be restricted to only their stock game behaviour, which could lead to undesirable behaviour.&lt;br /&gt;
* '''Set_Liquid_Depth''' - Had no effect in the stock game. Can now be used to smoothly change the depth of a liquid room.&lt;br /&gt;
* '''Switch_Model''' - Used to swap the mesh used by linked clutter objects to a specified file. Could be used in stock game as long as the specified mesh file was a stock game file. Can now be used to specify custom meshes distributed with levels.&lt;br /&gt;
&lt;br /&gt;
===Directional Events===&lt;br /&gt;
3D arrows in the Alpine level editor are drawn from directional events - that is, events that save their orientation and use it for some purpose. (most events are not directional). The following events are directional:&lt;br /&gt;
* '''Play_VClip''' - (did not display a 3D arrow in stock level editor, does in Alpine level editor)&lt;br /&gt;
* '''Teleport''' - (did not display a 3D arrow in stock level editor, does in Alpine level editor)&lt;br /&gt;
* '''Teleport_Player'''&lt;br /&gt;
* '''Clone_Entity'''&lt;br /&gt;
* '''AF_Teleport_Player'''&lt;br /&gt;
* '''Anchor_Marker_Orient'''&lt;br /&gt;
&lt;br /&gt;
===Alpine Events===&lt;br /&gt;
* Alpine Faction adds many brand new event objects for use by level designers. For a full list of the new Alpine events, and a breakdown of the functionality of each, see [[RED_Event_List#Alpine_Faction|Alpine Faction Event List]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: RF1 Editing]]&lt;br /&gt;
[[Category: Alpine Faction]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Alpine_Level_Design&amp;diff=15097</id>
		<title>Alpine Level Design</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Alpine_Level_Design&amp;diff=15097"/>
		<updated>2025-12-23T12:23:43Z</updated>

		<summary type="html">&lt;p&gt;Goober: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BubbleNav|RF1Modding}}&lt;br /&gt;
[[File:Alpinelogo1.png|center]]&lt;br /&gt;
&lt;br /&gt;
This page lists all major differences between normal Red Faction level design and level design for Alpine Levels, as featured in Alpine Faction.&lt;br /&gt;
&lt;br /&gt;
*This page is current as of the release of Alpine Faction v1.2.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
===Versioning===&lt;br /&gt;
'''Alpine Levels are playable only using Alpine Faction.'''&lt;br /&gt;
&lt;br /&gt;
Due to features unavailable in those clients, Alpine Levels are '''not''' playable while using other client versions such as any version of Red Faction (official builds), Pure Faction, or Dash Faction.&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
* '''Troubleshooting goals''' - You can use the &amp;lt;tt&amp;gt;[ dbg_goal GOALNAME ]&amp;lt;/tt&amp;gt; console command at any time to query a goal by name and print its current and initial values.&lt;br /&gt;
* '''Troubleshooting event and trigger links''' - You can use the &amp;lt;tt&amp;gt;[ debug trigger ]&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;[ debug event ]&amp;lt;/tt&amp;gt; console commands at any time (SP only) to draw events and triggers and their links as arrows in the game world. Links from triggers are blue, links from events are purple.&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
* '''Multiplayer playtesting''' - In addition to the '''Play''' and '''Play from Camera''' features that have always been available, the Alpine level editor adds a feature to allow you to playtest multiplayer maps in multiplayer. If you click the '''Play in multi''' or '''Play in multi (camera)''' buttons on the top toolbar, the game will launch you into a listen (local) server running your level.&lt;br /&gt;
* '''Hotkeys''' - The F9 hotkey now maps to '''Play in multi''' and F10 maps to '''Play in multi (camera)'''&lt;br /&gt;
* '''Object links''' - You can now link to multiple objects at once. When you select multiple objects and press &amp;quot;K&amp;quot;, the first object you selected will be linked to all other object you have selected.&lt;br /&gt;
* '''Pixels/meter tiling''' - The maximum configurable value in Preference-&amp;gt;Texture has been raised to 8192.&lt;br /&gt;
&lt;br /&gt;
===Level Properties===&lt;br /&gt;
* '''RFL version''' - Is now displayed in the Level Properties window.&lt;br /&gt;
* '''Fog''' - Default fog colour for newly created levels is now (0, 0, 0) full black instead of the stock game default of (40, 40, 40).&lt;br /&gt;
====Advanced options====&lt;br /&gt;
These options allow level designers to access new functionality available only in Alpine Faction. The default values for existing levels ensure functionality continues as it always has (legacy compatible), while the default values for new levels enable the new features. You can control them yourself in the Level Properties window.&lt;br /&gt;
* '''Legacy Cyclic_Timer events''' - Disable Cyclic_Timer fix, see [[#Fixed Cyclic_Timer|Fixed Cyclic_Timer]] for more information. Defaults to true for existing levels, false for new levels.&lt;br /&gt;
* '''Legacy movers''' - Disable new Alpine mover logic, see [[Movers]] for more information. Defaults to true for existing levels, false for new levels.&lt;br /&gt;
* '''Player starts with headlamp''' - If true, players of this level can use their headlamp immediately when the level loads (SP only). If false, the player must first be given a headlamp with [[RED Event List#Cyclic_Timer|Set_Gameplay_Rule]] before they can use their headlamp. Defaults to true for existing and new levels.&lt;br /&gt;
* '''Override static mesh ambient light scale''' - If true, use the specified '''New scale value''' as scalar for ambient light applied to static meshes. If false, use the stock game's behaviour, which is a scale of 2.0 when loaded in SP and 3.2 when loaded in MP. Defaults to false for existing and new levels.&lt;br /&gt;
&lt;br /&gt;
==Geometry==&lt;br /&gt;
When constructing non-Alpine levels, faces are added to &amp;quot;fix ps2 tiling&amp;quot; when building geometry, if the texture applied to a given surface tiles many times. This does not occur when constructing Alpine Levels - you can safely tile textures as much as you like without it resulting in additional unnecessary faces being added.&lt;br /&gt;
&lt;br /&gt;
Similarly, when adding brushes to moving groups during construction of non-Alpine levels, if those brushes have surfaces with textures that tile many times, the brush will be split. This also does not occur when constructing Alpine Levels - you can safely tile textures as much as you like on brushes that either are, or will eventually be, members of moving groups, without it resulting in additional unnecessary faces being added.&lt;br /&gt;
&lt;br /&gt;
==Movers==&lt;br /&gt;
WIP&lt;br /&gt;
&lt;br /&gt;
==Lighting==&lt;br /&gt;
===Lightmaps===&lt;br /&gt;
In Alpine Levels, the game does not apply lightmap clamping. This means that the full range of available colors is available - including fully unlit (black) areas. Put another way, the way your lightmaps look when you calculate them in the level editor is how they will look in game.&lt;br /&gt;
&lt;br /&gt;
Additionally, the stock editor applies similar lightmap clamping when opening saved levels. This has also been removed in Alpine RED - levels loaded in Alpine RED will look as they did when they were saved.&lt;br /&gt;
===Dynamic Lights===&lt;br /&gt;
Alpine Levels can utilize dynamic lights - configured via the &amp;quot;Dynamic&amp;quot; checkbox in light properties. Using the ''Anchor_Marker'' event (described below), you can also move dynamic lights using moving groups. &lt;br /&gt;
&lt;br /&gt;
Note: Dynamic lights are far more taxing on game performance than normal (static) lights. You should keep this in mind when designing, and use dynamic lights only where necessary to achieve your desired effect.&lt;br /&gt;
&lt;br /&gt;
==Skyboxes==&lt;br /&gt;
In Alpine Levels, while you can still make static skyboxes as you always could before if you wish, through the ''Set_Skybox'' event (described below) you can enhance your skyboxes. The key differences are listed below.&lt;br /&gt;
&lt;br /&gt;
Note: When making an enhanced skybox, while you still do need to place a ''Room Effect'' in the room that is to be your sky room, you should '''not''' select the &amp;quot;Sky Room&amp;quot; type on the ''Room Effect'' - instead, leave &amp;quot;type&amp;quot; set to &amp;quot;None&amp;quot;. The UID of the ''Room Effect'' is the skybox room UID you will specify in the properties of the ''Set_Skybox'' event.&lt;br /&gt;
&lt;br /&gt;
===Base Functionality===&lt;br /&gt;
Enhanced skyboxes retain all functionality seen in normal skyboxes, but add:&lt;br /&gt;
* '''Lighting''' - Lightmaps are rendered in surfaces in enhanced skyboxes (Direct3D 11 renderer only). If you do not want lightmaps on your skybox faces, you can set them to fullbright in texture properties.&lt;br /&gt;
* '''Liquid''' - You can set the ''Room Effect'' that designates your enhanced skybox room to type &amp;quot;Liquid Room&amp;quot; if you wish to have a liquid surface in your sky room.&lt;br /&gt;
&lt;br /&gt;
===Eye Anchor===&lt;br /&gt;
When setting an enhanced skybox via the ''Set_Skybox'' event, you can specify an &amp;quot;eye anchor&amp;quot; UID. This must be the UID of an ''Anchor_Marker'' event that is inside the skybox room you are using. If you specify a valid &amp;quot;eye anchor&amp;quot; UID, this will be the position from which the sky room will be visible when projected as your skybox. You can also place the ''Anchor_Marker'' in a moving group and move it with keyframes if you wish.&lt;br /&gt;
&lt;br /&gt;
Caution: Moving the &amp;quot;eye anchor&amp;quot; with keyframes can be very disorienting and take away from your level if you are not careful. In general, you should avoid quick movements.&lt;br /&gt;
&lt;br /&gt;
===Relative Position===&lt;br /&gt;
When setting an enhanced skybox via the ''Set_Skybox'' event, you can turn on &amp;quot;use relative position&amp;quot; and specify a &amp;quot;relative position scale&amp;quot;. If you do, players can move around &amp;quot;inside the sky room&amp;quot; as they play your map. The position of your camera in relation to the world origin (position 0,0,0) is mapped to the &amp;quot;eye&amp;quot; position in the skybox, relative to the &amp;quot;eye anchor&amp;quot; position in the sky room. The position is scaled using the scale.&lt;br /&gt;
&lt;br /&gt;
* A &amp;quot;relative position scale&amp;quot; of 1.0 maps camera position relative to world origin to eye position relative to eye anchor position at a ratio of 1:1 - every 1m moved in the world is 1m moved in the skybox.&lt;br /&gt;
* A &amp;quot;relative position scale&amp;quot; of 0.25 however, means every 1m moved in the world is 0.25m moved in the skybox. Using this, you can make your skybox much smaller than your actual level.&lt;br /&gt;
&lt;br /&gt;
Note: Relative position '''requires''' you specify a scale and an eye anchor (and of course a skyboox room UID). If you do not specify each of these, ticking the &amp;quot;use relative position&amp;quot; option will have no effect.&lt;br /&gt;
&lt;br /&gt;
==Triggers==&lt;br /&gt;
In multiplayer, unlike levels made for other versions of the game, triggers in Alpine Levels can activate events directly. This includes stock game events and Alpine Events (described below).&lt;br /&gt;
&lt;br /&gt;
The following events are not supported in multiplayer and will not function if triggered:&lt;br /&gt;
* Load_Level&lt;br /&gt;
* Endgame&lt;br /&gt;
* Defuse_Nuke&lt;br /&gt;
* Drop_Point_Marker&lt;br /&gt;
* Go_Undercover&lt;br /&gt;
* Win_PS2_Demo&lt;br /&gt;
* Play_Video&lt;br /&gt;
* When_Picked_Up&lt;br /&gt;
&lt;br /&gt;
==Items==&lt;br /&gt;
In single player, unlike levels made for other versions of the game, Alpine Levels allow the player to pick up the ''Multi Super Health'' and ''Multi Super Armor'' items.&lt;br /&gt;
&lt;br /&gt;
==HUD Messages==&lt;br /&gt;
Magic words can be used in HUD message display (via the ''HUD_Message''' event, and any other reason HUD messages would be rendered) to display dynamic values to the player. The stock game supported the use of magic words in HUD messages for a subset of the controls in the stock game (used in the training mission), but Alpine Faction expands this capability substantially. To use these magic words, simply include their text exactly as written below in the string for your HUD message.&lt;br /&gt;
&lt;br /&gt;
The following is a list of magic words that are available for use by level designers and mod developers in Alpine Faction, as well as what they are translated to when displayed as a HUD message&lt;br /&gt;
* '''$FIRE$''' - Name of the key or mouse button assigned to the primary fire control&lt;br /&gt;
* '''$ALT_FIRE$''' - Name of the key or mouse button assigned to the alternate fire control&lt;br /&gt;
* '''$USE$''' - Name of the key or mouse button assigned to the use control&lt;br /&gt;
* '''$JUMP$''' - Name of the key or mouse button assigned to the jump control&lt;br /&gt;
* '''$CROUCH$''' - Name of the key or mouse button assigned to the crouch control&lt;br /&gt;
* '''$HOLSTER$''' - Name of the key or mouse button assigned to the holster weapon control&lt;br /&gt;
* '''$RELOAD$''' - Name of the key or mouse button assigned to the reload weapon control&lt;br /&gt;
* '''$NEXT_WEAPON$''' - Name of the key or mouse button assigned to the next weapon control&lt;br /&gt;
* '''$PREV_WEAPON$''' - Name of the key or mouse button assigned to the previous weapon control&lt;br /&gt;
* '''$MESSAGE_LOG$''' - Name of the key or mouse button assigned to the message log control&lt;br /&gt;
* '''$QUICK_SAVE$''' - Name of the key or mouse button assigned to the quick save control&lt;br /&gt;
* '''$QUICK_LOAD$''' - Name of the key or mouse button assigned to the quick load control&lt;br /&gt;
* '''$HEADLAMP$''' - Name of the key or mouse button assigned to the toggle headlamp control&lt;br /&gt;
* '''$SKIP_CUTSCENE$''' - Name of the key or mouse button assigned to the skip cutscene control&lt;br /&gt;
* '''$goal_GOALNAME$''' - Value of the goal with name equal to GOALNAME, if such a goal exists in the current map&lt;br /&gt;
&lt;br /&gt;
==Events==&lt;br /&gt;
===Fixed Delay Parameter===&lt;br /&gt;
Outside of Alpine Levels, using the delay parameter with the following stock game events leads to that event breaking - the effect will never apply. In Alpine Levels, the delay parameter can be used on these events without issue - just like any other event.&lt;br /&gt;
* '''Play_Sound'''&lt;br /&gt;
* '''Cyclic_Timer'''&lt;br /&gt;
* '''Make_Invulnerable'''&lt;br /&gt;
* '''Alarm_Siren'''&lt;br /&gt;
* '''Unhide'''&lt;br /&gt;
&lt;br /&gt;
===Fixed Cyclic_Timer===&lt;br /&gt;
Normally, the [[RED Event List#Cyclic_Timer|Cyclic_Timer]] fires twice on its first activation. In Alpine levels, this is fixed so the first activation (like every other activation_ fires only once. (Subject to [[#Advanced options|Legacy Cyclic_Timer events]] option)&lt;br /&gt;
&lt;br /&gt;
===Enhanced Functionality===&lt;br /&gt;
In Alpine Levels, some stock game events have been improved in various ways:&lt;br /&gt;
* '''Headlamp_State''' - If not linked to any specific entities, applies to the player. Can be used to toggle the player flashlight.&lt;br /&gt;
* '''Holster_Weapon''' - Could always be turned on to holster the weapon of linked entities. In Alpine Levels, can also be turned off to force those entities to unholster their weapons.&lt;br /&gt;
* '''Holster_Player_Weapon''' - Could always be turned on to holster the player's weapon. In Alpine Levels, can also be turned off to unholster the player's weapon.&lt;br /&gt;
&lt;br /&gt;
====Dash Faction====&lt;br /&gt;
The following events had functionality added in Dash Faction 1.5.0. This functionality is not specific to Alpine Levels - it is available on any levels when using Dash Faction 1.5.0+ or any version of Alpine Faction. On other client versions (including all official client versions), although levels that rely on this functionality can be loaded, the functionality of these events will be restricted to only their stock game behaviour, which could lead to undesirable behaviour.&lt;br /&gt;
* '''Set_Liquid_Depth''' - Had no effect in the stock game. Can now be used to smoothly change the depth of a liquid room.&lt;br /&gt;
* '''Switch_Model''' - Used to swap the mesh used by linked clutter objects to a specified file. Could be used in stock game as long as the specified mesh file was a stock game file. Can now be used to specify custom meshes distributed with levels.&lt;br /&gt;
&lt;br /&gt;
===Directional Events===&lt;br /&gt;
3D arrows in the Alpine level editor are drawn from directional events - that is, events that save their orientation and use it for some purpose. (most events are not directional). The following events are directional:&lt;br /&gt;
* '''Play_VClip''' - (did not display a 3D arrow in stock level editor, does in Alpine level editor)&lt;br /&gt;
* '''Teleport''' - (did not display a 3D arrow in stock level editor, does in Alpine level editor)&lt;br /&gt;
* '''Teleport_Player'''&lt;br /&gt;
* '''Clone_Entity'''&lt;br /&gt;
* '''AF_Teleport_Player'''&lt;br /&gt;
* '''Anchor_Marker_Orient'''&lt;br /&gt;
&lt;br /&gt;
===Alpine Events===&lt;br /&gt;
* Alpine Faction adds many brand new event objects for use by level designers. For a full list of the new Alpine events, and a breakdown of the functionality of each, see [[RED_Event_List#Alpine_Faction|Alpine Faction Event List]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: RF1 Editing]]&lt;br /&gt;
[[Category: Alpine Faction]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=RED_Event_List&amp;diff=15089</id>
		<title>RED Event List</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=RED_Event_List&amp;diff=15089"/>
		<updated>2025-12-19T11:40:16Z</updated>

		<summary type="html">&lt;p&gt;Goober: /* AF_Gameplay */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BubbleNav|RF1Modding}}&lt;br /&gt;
This page lists all event scripting objects available in [[RED]]. To read more about how the scripting system itself works, see [[RED Objects#Events|Events]].&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction==&lt;br /&gt;
The events in categories prefixed with &amp;quot;AF_&amp;quot; are only available in [[Alpine Faction]]. If you don't see them listed, you should install [https://alpinefaction.com Alpine Faction] and launch RED through the Alpine Faction launcher.&lt;br /&gt;
&lt;br /&gt;
* For other level editing features and improvements that are specific to Alpine Faction, see [[Alpine Level Design]]&lt;br /&gt;
&lt;br /&gt;
==AF_Catalysts==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = AF_When_Dead&lt;br /&gt;
|category       = AF_Catalysts&lt;br /&gt;
|description    = Upgraded version of the stock &amp;quot;When_Dead&amp;quot; event. Does not require a slot in the savegame file, so there is no limit on the number of '''AF_When_Dead''' events that you can use in a single map. Also supports repeated activations, unlike the stock event.&lt;br /&gt;
|params         = * '''Activate on any dead:''' (bool1) If true, this event sends an on message each time a linked entity or clutter dies. If false, this event only sends a single on message at the time that all linked entities/clutter are dead.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Captured&lt;br /&gt;
|category       = AF_Catalysts&lt;br /&gt;
|description    = Fires a message to all linked triggers, movers, and events whenever a linked control point is captured by either team.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Picked_Up&lt;br /&gt;
|category       = AF_Catalysts&lt;br /&gt;
|description    = Fires a message to all linked triggers, movers, and events whenever a linked item is picked up by the player. Single player only.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AF_Flow==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Sequence&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Each activation of this event routes the message to the next link in sequential order. After the last link, the cycle resets and the first link is called. Note the order of links is determined by the order in which you add them.&lt;br /&gt;
|on             = Send an on signal to the next link in the sequence.&lt;br /&gt;
|params         = * '''Next index to activate:''' (int1) Next link index to be activated when this event processes an on message. This setting essentially allows you to jump to a specific point in the sequence when you wish.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Difficulty_Gate&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Tests if the game is set to the specified difficulty and forwards messages only if true.&lt;br /&gt;
|on             = Forward on signal to all links, if the game is set to the specified difficulty.&lt;br /&gt;
|params         = * '''Difficulty:''' (int1&amp;quot;) Difficulty to test against.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Valid_Gate&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Tests if the specified UID is a valid object and forwards messages only if true. In the case of objects that have life values (ie. clutter and entities), &amp;quot;valid&amp;quot; means alive.&lt;br /&gt;
|on             = Forward on signal to all links, if the specified object is valid.&lt;br /&gt;
|params         = * '''Object UID to test:''' (int1&amp;quot;) Object UID to be checked.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Inside_Gate&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Tests if an object (default: the player who activated the event) is in a specified area of the map. Forwards messages if true.&lt;br /&gt;
|on             = Forward on signal to all links if test passes.&lt;br /&gt;
|params         = * '''UID (trigger/room) to check:''' (int1) Region to be checked. Can be a trigger UID or a room UID (Room Effect).&lt;br /&gt;
* '''What to check for:''' (int2) Object to be checked. If not specified, defaults to the player who activated the event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Owner_Gate&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Tests whether a specific control point has a specified owner.&lt;br /&gt;
|params         = * '''Handler UID:''' (int1) UID of the Capture_Point_Handler to test.&lt;br /&gt;
* '''Required owner:''' (int2) Owner to check.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Switch_Random&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Randomly select one of this event's links and send an on message to it.&lt;br /&gt;
|on             = Send an on message to a randomly selected link.&lt;br /&gt;
|params         = * '''No repeats until all used:''' (bool1) Never choose the same link twice until all links have been chosen at least once.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Route_Node&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = In-line multi-purpose flow control node. Has several options to control what the processed message looks like.&lt;br /&gt;
|params         = * '''Node behavior:''' (int1) What should the Route_Node do to the message?&lt;br /&gt;
* '''Non-retriggerable delay:''' (bool1) If true, ignore any received messages while a message is currently queued on this Route_Node. Has no effect unless a delay is specified.&lt;br /&gt;
* '''Clear trigger info:''' (bool2) If true, clear information about the trigger and object that initiated the message when passing through this Route_Node.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Gate&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Performs a test on a specified goal (integer variable). Forwards message to links only if test passes.&lt;br /&gt;
|on             = Perform test and forward message if passed.&lt;br /&gt;
|params         = * '''Goal to test:''' (str1) Specify the goal name to which the test is applied.&lt;br /&gt;
* '''Test to run:''' (int1)&lt;br /&gt;
* '''Value to test against:''' (int2) Note: ignored if testing against initial value.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Scope_Gate&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Performs a test on various aspects of the game. Forwards message to links only if test passes.&lt;br /&gt;
|on             = Perform test and forward message if passed.&lt;br /&gt;
|params         = * '''Scope to test against:''' (int1) Test to run&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Gametype_Gate&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Performs a test on the gametype of the game. Forwards message to links only if test passes. Works only in multiplayer (test will always fail in single player).&lt;br /&gt;
|on             = Perform test and forward message if passed.&lt;br /&gt;
|params         = * '''Check for gametype:''' (int1) Gametype to test against.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AF_Gameplay==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Capture_Point_Handler&lt;br /&gt;
|category       = AF_Gameplay&lt;br /&gt;
|description    = Controls the behaviour of a multiplayer control point (capture zone) for [[King of the Hill]], [[Damage Control]], and [[Revolt]]. Uses a linked [[RED Objects#Triggers|trigger]] to define the capture area and manages capture progress, ownership, and HUD display.&lt;br /&gt;
|params         = * '''Name:''' (str1) Display name for the control point.&lt;br /&gt;
* '''Outline offset:''' (float1) Vertical offset for the circular outline drawn on the ground around the capture area. Useful for keeping the outline visible above uneven terrain.&lt;br /&gt;
* '''Cap rate multiplier:''' (float2) Multiplier applied to the base capture rate. '''0.0''' = no multiplier (same as '''1.0'''). Higher values capture faster; values between '''0.0''' and '''1.0''' capture slower.&lt;br /&gt;
* '''Stage:''' Specify stage for this point. Only used in [[Revolt]].&lt;br /&gt;
* '''Cylindrical Trigger:''' If true, treat the linked trigger as a vertical cylinder instead of using its raw shape. For sphere triggers, the cylinder radius matches the sphere radius. For box triggers, the cylinder diameter uses the longest edge of the box.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Gameplay_Rule&lt;br /&gt;
|category       = AF_Gameplay&lt;br /&gt;
|description    = Toggles a specified gameplay rule on or off.&lt;br /&gt;
|on             = Set specified rule to on.&lt;br /&gt;
|off            = Set specified rule to off.&lt;br /&gt;
|params         = * '''Rule to set:''' (int1) Which rule to toggle. Currently '''Player has headlamp''' is the only available option.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AF_General==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Clone_Entity&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Creates a clone of the linked entity with the same properties and settings as its source.&lt;br /&gt;
|on             = Create a clone at the event's position, and with the event's orientation.&lt;br /&gt;
|params         = * '''Clone is hostile to player:''' (bool1) If true, clone is actively hostile to player and will engage if it spots the player.&lt;br /&gt;
* '''Go to player:''' (bool2) If true, the clone will begin running to the player immediately when created. Assuming there is a valid route to the player's position, it will find them.&lt;br /&gt;
* '''Link event UID to clone:''' (int1) If specified, when a clone is created, a link will be created between the specified event UID and the clone.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Player_World_Collide&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Control whether the player collides with level geometry.&lt;br /&gt;
|on             = Collision = true (default)&lt;br /&gt;
|off            = Collision = false&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Level_Hardness&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Set the hardness for the loaded level (size of geo craters).&lt;br /&gt;
|on             = Set hardness to the specified value.&lt;br /&gt;
|params         = * '''Hardness:''' (int1) The hardness value to set.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Difficulty&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Set the difficulty level of the game.&lt;br /&gt;
|on             = Set difficulty to the specified value.&lt;br /&gt;
|params         = * '''Difficulty:''' (int1) Set the game's difficulty.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Skybox&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Set the room to project as skybox.&lt;br /&gt;
|on             = Set skybox information as configured.&lt;br /&gt;
|params         = * '''Skybox room UID:''' (int1) Specify the room UID (by ''Room Effect'') to set as the sky room.&lt;br /&gt;
* '''Eye anchor UID:''' (int2) Specify the ''Anchor_Marker'' event to use as the eye position inside the sky room.&lt;br /&gt;
* '''Use relative position:''' (bool1) If true, apply relative position mapping camera position in world space to eye position in the sky room.&lt;br /&gt;
* '''Relative position scale:''' (float1) Scale/ratio to apply to relative position camera mapping.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Item_Drop&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Changes the configured item drop for linked entities.&lt;br /&gt;
|on             = Set item drop.&lt;br /&gt;
|params         = * '''Item class to drop:''' (str1) Item name to drop. Event will have no effect unless this is a valid item name (from [[items.tbl]])&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Life&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Changes the base life value of linked clutter and/or entities.&lt;br /&gt;
|on             = Set the base life value.&lt;br /&gt;
|params         = *'''New life value:''' (int1)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = AF_Heal&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Heal or damage the player (or multiple players in multiplayer) by a specific amount. Can also apply to armour.&lt;br /&gt;
|on             = Apply the configured change.&lt;br /&gt;
|params         = * '''Amount:''' (int1) What numeric change should be applied&lt;br /&gt;
* '''Apply change to:''' (int2) Who should it be applied to?&lt;br /&gt;
* '''Apply to armor instead:''' (bool1) If true, apply the change to armour rather than health.&lt;br /&gt;
* '''Allow super values:''' (bool2) If true, accomodate for super health/super armour. If false, the resulting health or armour after applying the change is clamped to 0-100. If true, it's clamped to 0-200.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = World_HUD_Sprite&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Display a sprite in the world, most often used for providing the player with directions (for example, to an objective).&lt;br /&gt;
|on             = Enable the sprite.&lt;br /&gt;
|off            = Disable the sprite.&lt;br /&gt;
|params         = * '''Start enabled:''' (bool1) Is the sprite initially enabled when the map loads?&lt;br /&gt;
* '''Render mode:''' (int1) How is the sprite rendered? Overdraw means players can see the sprite through all level geometry.&lt;br /&gt;
* '''Render scale:''' (float1) Adjust the scale of the sprite (1.0 for normal size).&lt;br /&gt;
* '''Sprite filename:''' (str1) Specify the filename to use for the sprite when rendered. If ''Sprite filename blue'' is also specified, this field is the sprite rendered for the red team in multiplayer.&lt;br /&gt;
* '''Sprite filename blue:''' (str2) Specify the filename to use for the sprite when rendered for the blue team only (in multiplayer). If this field isn't specified, the sprite filename specified for ''Sprite filename'' will be shown to all players regardless of team.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Capture_Point_Owner&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Forces linked control points to a specific ownership state. Must be run on the server, ignored when run on a client.&lt;br /&gt;
|on             = Set all linked control points to the specified owner.&lt;br /&gt;
|params         = * '''Owner:''' (int1) Desired owner.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = HUD_Message&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Display a green HUD message in the bottom middle of the screen (like the helper text when you pick up items).&lt;br /&gt;
|on             = Display the HUD message for the configured duration.&lt;br /&gt;
|params         = * '''Message text:''' (str1) The message to display.&lt;br /&gt;
* '''Duration:''' (float1) Duration in seconds the message will be displayed. Note the message will go away quicker if another HUD message is displayed (such as from another HUD_Message event, or from the player picking up an item)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Play_Video&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Play a .bik format video.&lt;br /&gt;
|on             = Play the video specified.&lt;br /&gt;
|params         = * '''Video filename:''' (str1) The filename of the video to play.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Force_Unhide&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Force unhide/hide an object with no conditions. Virtually identical to the stock &amp;quot;Unhide&amp;quot; event, except this one will always do it, regardless of player line of sight or any other factors.&lt;br /&gt;
|on             = Unhide linked objects.&lt;br /&gt;
|off            = Hide linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Fog_Far_Clip&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Sets the far clip plane used for distance fog.&lt;br /&gt;
|on             = Set far clip plane to specified value (in metres).&lt;br /&gt;
|params         = * '''Far clip distance:''' (int1) Far clip plane distance.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Entity_Flag&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Turn on or off entity flags on linked entities.&lt;br /&gt;
|on             = Turn selected flag on.&lt;br /&gt;
|off            = Turn selected flag off.&lt;br /&gt;
|params         = * '''Flag to set:''' (int1)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Debris&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Set the debris and explosion parameters for linked clutter and/or entities.&lt;br /&gt;
|on             = Set values as specified.&lt;br /&gt;
|params         = * '''Debris filename:''' (str1) Filename of debris to set.&lt;br /&gt;
* '''Explosion VClip index:''' (int1) Index of VClip to play when object dies (from [[vclip.tbl]]).&lt;br /&gt;
* '''Explosion VClip radius:''' (float1)&lt;br /&gt;
* '''Debris sound set:''' (str2) Sound set to use for debris collision (from [[foley.tbl]]). (Only supported on clutter)&lt;br /&gt;
* '''Debris velocity:''' (float2) Velocity of debris. (Only supported on clutter)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = AF_Teleport_Player&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Teleport player to the event's position, with the event's orientation.&lt;br /&gt;
|on             = Teleport player.&lt;br /&gt;
|params         = * '''Reset player velocity:''' (bool1) If true, set player velocity to 0 m/s after teleporting. If false, player details velocity, but it is translated based on the orientation of the event.&lt;br /&gt;
* '''Eject player from vehicle:''' (bool2) If true, if the player is in a vehicle, eject them from the vehicle and teleport them just as a player. If false, teleport their vehicle. Has no effect in multiplayer or if the player is not in a vehicle.&lt;br /&gt;
* '''Entrance VClip:''' (str1) VClip name (from [[vclip.tbl]]) to play at the player's position just before they teleport.&lt;br /&gt;
* '''Exit VClip:''' (str2) VClip name (from [[vclip.tbl]]) to play at the teleport destination when the player arrives.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Fog_Color&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Sets the distance fog colour.&lt;br /&gt;
|on             = Set configured fog colour.&lt;br /&gt;
|params         = * '''Fog color:''' (str1) Specify fog colour to set. Uses the same format as Level Properties - e.g. specifying &amp;quot;&amp;lt;255, 255, 255&amp;gt;&amp;quot; would result in pure white fog.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Light_Color&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Sets the colour of dynamic lights&lt;br /&gt;
|on             = Set light colour.&lt;br /&gt;
|params         = * '''Light color:''' (str1) Specify light colour to set. Uses the same format as Light properties - e.g. specifying &amp;quot;&amp;lt;255, 255, 255&amp;gt;&amp;quot; would result in pure white light.&lt;br /&gt;
* '''Random color instead:''' (bool1) If true, generate a random color instead.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Modify_Respawn_Point&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Sets which teams spawn at the linked respawn points.&lt;br /&gt;
|params         = * '''Red team:''' (bool1) Allow the red team to spawn here.&lt;br /&gt;
* '''Blue team:''' (bool2) Allow the blue team to spawn here.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AF_Utility==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Variable&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Reconfigure a variable on linked Alpine Faction event(s).&lt;br /&gt;
|on             = Updates the variable of the linked event(s) based on the provided configuration.&lt;br /&gt;
|params         = * '''Variable handle:''' The variable to be set. This corresponds to the variable names provided in parentheses on the properties panel for Alpine events.&lt;br /&gt;
* '''Value for int1 or int2:''' If variable handle is int1 or int2, set the variable on the linked event(s) to this value.&lt;br /&gt;
* '''Value for delay, float1, or float2:''' If variable handle is delay, float1, or float2, set the variable on the linked event(s) to this value.&lt;br /&gt;
* '''Value for bool1 or bool2:''' If variable handle is bool1 or bool2, set the variable on the linked event(s) to this value.&lt;br /&gt;
* '''Value for str1 or str2:''' If variable handle is str1 or str2, set the variable on the linked event(s) to this value.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Remove_Link&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Used to remove links between objects. By default (with &amp;quot;Purge all links&amp;quot; turned off), removes links between objects this event is linked to.&lt;br /&gt;
|on             = Remove links.&lt;br /&gt;
|params         = * '''Purge all links:''' (bool1) Instead, remove all links between every object this event is linked to and any other objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Math&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Used to perform math operations on goals (integer variables). Applies the operation to level (non-persistent) goals, as well as persistent goals that are loaded.&lt;br /&gt;
|on             = Apply the operation.&lt;br /&gt;
|params         = * '''Goal to edit:''' (str1) Specify the goal name to apply the operation.&lt;br /&gt;
* '''Operation to perform:''' (int1)&lt;br /&gt;
* '''Value to use for operation:''' (int2)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Anchor_Marker_Orient&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Same as the '''Anchor_Marker''' event, except this one respect the orientation (direction) of the event. Can be used to, among other things, rotate particle emitters or push regions using movers.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Respawn_Point_State&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Toggles the enabled status of linked multiplayer respawn points.&lt;br /&gt;
|on             = Enable linked respawn points.&lt;br /&gt;
|off            = Disable linked respawn points.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Clear_Queued&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Clears queued message (if any) on all linked events. Queued messages are messages that are queued per a configured delay value on that event.&lt;br /&gt;
|on             = Clear queued messages.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Add_Link&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Adds links from the specified source event to each object this event is linked to.&lt;br /&gt;
|on             = Add links.&lt;br /&gt;
|params         = * '''Source event UID:''' (int1) Source event for the links.&lt;br /&gt;
* '''Link inbound:''' (bool1) Reverse the operation - create links from each object this event is linked to, inbound to the specified source event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Anchor_Marker&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Used to &amp;quot;drag along&amp;quot; some object types that can't normally be added to moving groups. Simply add the Anchor Marker to the moving group, then link the Anchor_Marker to the objects you want to bring. That object/those objects will have their position locked to the position of the Anchor_Marker event as it travels with the mover. Supports Lights (Dynamic only), Particle Emitters, and Push Regions. Can also be used in conjunction with '''Set_Skybox''' to specify the &amp;quot;eye&amp;quot; location within the skybox.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Light_State&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Used to toggle Lights (Dynamic only) on/off as desired.&lt;br /&gt;
|on             = Turn linked lights on.&lt;br /&gt;
|off            = Turn linked lights off.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AI_Actions==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Attack&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = Used to force AI entities to attack objects.&lt;br /&gt;
|on             = Make attacker specified by attacker uid param attack the object the Attack event is linked to.&lt;br /&gt;
|params         = * '''Attacker UID:''' Primary, Secondary, Flare.  What type of weapon to use.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Drop_Point_Marker&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This is a special type of Event which doesn’t respond to On or Off messages.  This event is used as a position where AI will drop off objects while in AI_COLLECTING_MODE. This is how Grabber robots can drop their rocks off at a specific location.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Drop_Weapon&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event is used to force linked [[RED Objects#Entity|entities]] to drop any weapons they may be holding.&lt;br /&gt;
|on             = Force all linked entities to drop their equipped weapon.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Follow_Waypoints&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will force all linked objects to follow a specified waypoint list, with a specific following method.&lt;br /&gt;
|on             = Begin following the waypoints.  An AI will use the closest waypoint as the location to begin the path following.&lt;br /&gt;
|off            = Stop following the current waypoint path.&lt;br /&gt;
|params         = * '''Waypoint List:''' Name of the waypoint list that the AI should follow.&lt;br /&gt;
* '''Always Face Player:''' If true, the AI will always face the player while following their waypoints.&lt;br /&gt;
* '''Follow Method:''' This determines how the AI will behave when the last waypoint node is reached.  The choices are: &lt;br /&gt;
*# One way:	follow the waypoints to the last node and stop.&lt;br /&gt;
*# Loop: follow the waypoints to the last node, then return to the start and repeat.&lt;br /&gt;
*# Ping Pong: follow the waypoints to the last node, then follow the nodes back to the start (repeat).&lt;br /&gt;
* '''Run:''' If ticked, the linked objects will attempt to run rather than walk while following the waypoint list.&lt;br /&gt;
* '''Always Face Player:''' If ticked, the linked objects will always look at the player while following the waypoint list.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goto&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will make all linked entities travel to the Event location.&lt;br /&gt;
|on             = Make linked entities start moving towards Event location.&lt;br /&gt;
|params         = * '''Run:''' If ticked, the linked objects will attempt to run rather than walk.&lt;br /&gt;
* '''Always Face Player:''' If ticked, the linked objects will always look at the player while following the path.&lt;br /&gt;
* '''Face Player When Finished:''' If ticked, AI will face the player immediately when they get to the Goto event location. &lt;br /&gt;
* '''Override Current Behavior:''' If ticked, AI will ignore any other pathing until reaching the Goto event location. This includes the AI not chasing the player.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goto_Player&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will make all linked entities travel to the Player position.  The linked entities will continue to pathfind to the Player until they have line-of-sight.  When the entities can see the Player, they will return to their default AI.&lt;br /&gt;
|on             = Make linked entities start moving towards the Player.&lt;br /&gt;
|params         = * '''Run:''' If ticked, the linked objects will attempt to run rather than walk.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Headlamp_State&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event toggles the headlamp state of all linked [[RED Objects#Entity|entities]] (realistically, vehicles). Default state is for headlamps to be disabled.&lt;br /&gt;
|on             = Turn on headlamps for all linked entities.&lt;br /&gt;
|off            = Turn off headlamps for all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Holster_Player_Weapon&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will forcefully holster the player's weapon.&lt;br /&gt;
|on             = Holster the player weapon.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Holster_Weapon&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will forcefully holster the weapon of any linked entities.&lt;br /&gt;
|on             = Holster the weapons of all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Look_At&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This Event will cause any linked AI to turn and face the Event location.&lt;br /&gt;
|on             = Make linked AI look at the Event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Play_Animation&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will cause a linked AI to play a specific animation.  If the animation is a state animation (i.e., a looping animation) then it will replace the current animation state for the AI.  If the animation is an action animation (i.e., a one-time animation) then it is blended with the current state.&lt;br /&gt;
|on             = Play the animation.&lt;br /&gt;
|params         = * '''Animation:''' Name of the animation. This is selectable from a list of possible animations for the object that is linked. &lt;br /&gt;
* '''Hold Last Frame:''' If true, the model will stay in the last frame of animation. This is only valid if the animation is defined as an action animation.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_AI_Mode&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event is used to set the AI mode of all linked [[RED Objects#Entity|entities]], overriding the AI mode configured in the properties of those entities.&lt;br /&gt;
|on             = Set AI mode of linked entities to the mode specified in the event paramets. &lt;br /&gt;
|params         = * '''AI Mode:''' Specify desired AI mode.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Friendliness&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will set the Friendliness of all linked objects.&lt;br /&gt;
|on             = Change the Friendliness of an entity.&lt;br /&gt;
|params         = * '''Friendliness:''' The friendliness is selectable from a drop-down list, and consists of the following choices:&lt;br /&gt;
*# Unfriendly: AI will attack the player on sight.&lt;br /&gt;
*# Neutral: AI will only attack the player if provoked.&lt;br /&gt;
*# Friendly: AI will not attack the player, and may attack entities that are attacking the player.&lt;br /&gt;
*# Outcast: AI will attack anything it sees.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Shoot_At&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will cause all linked AI to shoot at the Event location.  The AI will continue to shoot at the Event until an Off message is received.&lt;br /&gt;
|on             = Make all linked AI attack the Event location.&lt;br /&gt;
|off            = Make all linked AI stop attacking the Event location.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Shoot_Once&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will make all linked AI shoot once in the direction they are currently facing.&lt;br /&gt;
|on             = Fire a single time.&lt;br /&gt;
|params         = * '''Shoot Type:''' Primary, Secondary, Flare.  What type of weapon to use.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Catalysts==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Cyclic_Timer&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event will send an On message to all linked Events at a specified interval.  This Event has to receive an On Message before it will begin sending out messages.&lt;br /&gt;
|on             = Begin sending On messages at the specified interval.&lt;br /&gt;
|params         = * '''Time:''' The interval in seconds between sending On messages to all linked events.&lt;br /&gt;
* '''Max Sends:''' The number of times the Event will send out On messages.&lt;br /&gt;
* '''Send Forever:''' If true, the Max Sends field is ignored, and the Cyclic Timer sends On messages forever.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Delay&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = Forwards a response it receives to all linked events after the specified delay duration.&lt;br /&gt;
|on             = Send (forward) an on response to all linked events following the delay duration.&lt;br /&gt;
|off            = Send (forward) an off response to all linked events following the delay duration.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Invert&lt;br /&gt;
|image          = Icon_Event_L.png&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event will change On messages to Off messages (and Off to On) before forwarding them to any linked Events.&lt;br /&gt;
|on             = Change message to off and forward to all linked events.&lt;br /&gt;
|off            = Change message to on and forward to all linked events.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Switch&lt;br /&gt;
|image          = Icon_Event_C.png&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event behaves like a switch that remembers it’s state (on or off).  This Event can be used to turn lights on or off, and can be used to let the player activate special events.  If the Event is linked to a VFX, this VFX is used as the model for the switch (the default state of the VFX should be off, with the animation taking the VFX to the on state).&lt;br /&gt;
|on             = Toggle the state of the switch.  The behavior of the switch is controlled through the Event parameters.&lt;br /&gt;
|params         = * '''Initial State:''' The initial state of the switch (either on or off).&lt;br /&gt;
* '''Behavior:''' This says what kind of signal the switch will send (toggle between on and off, always send an on, always send an off).&lt;br /&gt;
* '''Sound:''' Disk filename (including the .wav extension) of the sound to play when the switch is thrown.&lt;br /&gt;
* '''Max Throws:''' How many times the switch can be thrown. &lt;br /&gt;
* '''Infinite Throws:''' If true, the Max Throws parameter is ignored, and the switch can be thrown an infinite number of times.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Armor_Reaches&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when the object to which the When_Armor_Reaches event is linked reaches the specified amount of armor, either by armor being added or by suffering damage.&lt;br /&gt;
|params         = * '''Armor:''' Specify amount of armor (integer) at which the event will activate (send an On message).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Countdown_Over&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when a countdown ends. (countdowns are started with [[RED Event List#Countdown_Begin|Countdown_Begin]])&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Countdown_Reaches&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when a countdown reaches the specified value. (countdowns are started with [[RED Event List#Countdown_Begin|Countdown_Begin]])&lt;br /&gt;
|params         = * '''Time:''' Specify the desired time remaining at which this event should activate (send an On message).&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Cutscene_Over&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when a cutscene ends. (cutscenes are started with [[RED Event List#Cutscene|Cutscene]])&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Dead&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event will send an On message to all linked Events when all linked objects have died.  This Event is used when you want to do something when a specific object has been destroyed. Note that savegame files can store only 20 When_Dead events in a given level, so if you're mapping for single player, it's highly recommended to include no more than 20 When_Dead events in a single map.&lt;br /&gt;
|params         = * '''Activate When Any Dead:''' Modifies the default behaviour of the event such that it sends an On message each time a linked object dies, rather than the default behaviour of only sending a single On message when all linked objects have been destroyed.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Enter_Vehicle&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when the player enters the linked vehicle [[RED Objects#Entity|entity]].&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Hit&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event will send an On message to all linked Events when a linked object (normally an [[RED Objects#Entity|entity]]) suffers damage from a weapon (normally due to being shot by the player).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Life_Reaches&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when the object to which the When_Life_Reaches event is linked reaches the specified amount of life, either by being healed or by suffering damage.&lt;br /&gt;
|params         = * '''Life:''' Specify amount of life (integer) at which the event will activate (send an On message).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Try_Exit_Vehicle&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when the player attempts to leave a vehicle [[RED Objects#Entity|entity]] they are piloting.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Level==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Alarm&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event toggles the level alarm.&lt;br /&gt;
|on             = Turn alarm on.&lt;br /&gt;
|off            = Turn alarm off.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Alarm_Siren&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event plays an audible alarm sound, without turning the level alarm on (as the [[RED Event List#Alarm|Alarm]] event does).&lt;br /&gt;
|on             = Play an alarm sound.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Cutscene&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event is used to activate an in-game cutscene. This event is very powerful, but also very complicated, with loads of options configured in the event properties. Please refer to the [[RF1_Editing_Main_Page#Events_and_Scripting|cutscene tutorials on the RF1 Editing Main Page]] for information on how to use cutscenes.&lt;br /&gt;
|on             = Play the cutscene.&lt;br /&gt;
|params         = * Many - please see tutorials linked in Description above.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Enable_Navpoint&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event toggles the active state of all linked [[RED Objects#Nav Point|Nav Points]].&lt;br /&gt;
|on             = Enables all linked Nav Points.&lt;br /&gt;
|off            = Disables all linked Nav Points.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Endgame&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event triggers an endgame sequence, and displays text from [[endgame.tbl]]. The Script Name parameter of the Endgame event is used to specify which entry from endgame.tbl is displayed to the player as an on response from this event.&lt;br /&gt;
|on             = End the game, and display scrolling text from endgame.tbl that corresponds to the Script Name of this event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Explode&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause an explosion to occur at the event location.  The explosion can be made to cause a geomod, and you can control the amount of damage caused by the explosion.&lt;br /&gt;
|on             = Make the explosion happen.&lt;br /&gt;
|params         = * '''Damage:''' The amount of damage caused by the explosion.  This is the damage that is applied to any object within the explosion range.&lt;br /&gt;
* '''Type:''' Small, Medium, Large.  This field isn’t properly supported yet.  We need to list a selection of different explosions to choose from. &lt;br /&gt;
* '''Geomod:''' If true, the explosion will apply a geomod at the center of the explosion.  The hardness of the rock where the explosion occurs is used to determine if a geomod is possible.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Check&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event can either block or forward On messages, depending on the state of an associated goal_set Event.&lt;br /&gt;
|on             = Foward On messages if min_count exceeds the current count value of the associated goal_set Event&lt;br /&gt;
|params         = * '''Goal to Check:''' Script name for the associated Goal_Create Event.&lt;br /&gt;
* '''Minimum Count:''' The miniumum value that the associated goal variable must have before forwarding messages.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Create&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will create a goal variable (integer) when it receives an On message. The variable name will be the script name of the Goal_Create event.&lt;br /&gt;
|on             = Create a goal variable.&lt;br /&gt;
|params         = * '''Start Count:''' The inital value of the goal variable (this will be zero in most cases). &lt;br /&gt;
* '''Persistent:''' If ticked, the goal variable will be available to be set/checked in future levels, and will be saved in savegame files perpetually. Note that there is a maximum of 64 persistent goal variables that may be saved in savegame files.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Set&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will increment a goal variable every time it receives an On message (Off messages will cause the count value to decrement).&lt;br /&gt;
|on             = Increment count by one.&lt;br /&gt;
|off            = Decrement count by one.&lt;br /&gt;
|params         = * '''Goal to Set:''' The goal variable name to set.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Item_Pickup_State&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event is used to toggle the active state of linked [[RED_Objects#Item|Items]] (ie. whether they can be picked up). The default behaviour of Items is enabled (they can be picked up).&lt;br /&gt;
|on             = Set all linked items to enabled (they can be picked up).&lt;br /&gt;
|off            = Set all linked items to disabled (they cannot be picked up).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Load_Level&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause the specified level to load.  The Player will be taken to the new level seamlessly. Note that a level cannot have two Load_Level events with the same Script Name, so you should change the Script Name for each Load_Level event you place to something that makes sense to you.&lt;br /&gt;
|on             = Load the specified level.&lt;br /&gt;
|params         = * '''Filename:''' Disk filename (including the .rfl or .d4l extension) of the level to load.&lt;br /&gt;
* '''Hard Level Break:''' Force the player to the [[RED Objects#Player Start|Player Start]] position in the destination level, rather than the default behaviour of attempting a seamless transition.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Message&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will make a sound file play and display the associated text on the Player HUD.&lt;br /&gt;
|on             = Play the message.&lt;br /&gt;
|params         = * '''Persona:''' Selectable from drop-down list of names which is generated from personas.tbl. Select &amp;quot;none&amp;quot; if you don’t want the message to be from a persona.&lt;br /&gt;
* '''Voice Filename:''' Disk filename (including .wav extension) of the sound file to play.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Monitor_State&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event is used for initializing and configuring security monitors and mirrors.&lt;br /&gt;
|on             = Set all screen [[RED Objects#Clutter|clutter objects]] this event is linked to to cycle between video feeds from all camera [[RED Objects#Entity|entities]] this event is linked to, according to the parameters configured in the event properties.&lt;br /&gt;
|params         = * '''Initial State:''' Control whether the linked monitors should be on or off as a result of this event's on response.&lt;br /&gt;
* '''Cycle Delay:''' Time, in seconds, that linked monitors display a given video feed. If this parameter is set to 1.0 for example, the feed will cycle to the next linked camera every 1 second.&lt;br /&gt;
* '''Continuously update monitor:''' If ticked, monitor will constantly be updated. Severe performance impact, but is needed for video feeds of dynamic scenes.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Music_Start&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = Plays a specified music track.&lt;br /&gt;
|on             = Start playing the music track specified in the event's properties.&lt;br /&gt;
|params         = * '''Filename:''' Filename (.wav) of the music track to play.&lt;br /&gt;
* '''Use Effects Volume:''' If ticked, the music track volume is scaled using the Sound Effects volume slider, rather than the Music slider.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Music_Stop&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event stops all music currently being played.&lt;br /&gt;
|on             = Stop playing all music tracks (after fading them out according to this event's properties).&lt;br /&gt;
|params         = * '''Fade Time:''' Length of time any currently playing music tracks will take to fade out to silence. (if set to 0, music will immediately stop playing)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Play_Sound&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause a sound to play.  The sound can be a 3D or 2D sound, and it can be made to loop.&lt;br /&gt;
|on             = Start playing the sound.&lt;br /&gt;
|off            = Stop the sound, if it is playing.&lt;br /&gt;
|params         = * '''Sound Filename:''' Disk filename of the sound to play (including .wav extension). &lt;br /&gt;
* '''Min Distance:''' Distance (in meters) where the sound begins to drop off in volume.  If you don’t want the sound to be 3D, set the Min Distance to zero.&lt;br /&gt;
* '''Looping:''' If true, the sound will play looping (until you stop it by sending an Off message to this Event).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Play_Vclip&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event is used to play a specified vclip (from [[vclip.tbl]])&lt;br /&gt;
|on             = Play the specified vclip at the event location.&lt;br /&gt;
|params         = * '''Vclip Name:''' Specify the vclip to play.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Remove_Object&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will destroy all objects linked to the event.  Objects will disappear instantly (i.e., without their death sequence).&lt;br /&gt;
|on             = Kill all linked objects immediately.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Slay_Object&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will kill all linked objects, and allow their death sequence to play.&lt;br /&gt;
|on             = Kill all linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Spawn_Object&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause a specific object type to be created.  The object is created at the event location, with an identity matrix orientation.&lt;br /&gt;
|on             = Spawn the object at the Event location.&lt;br /&gt;
|params         = * '''Object Type:''' Entity, Clutter, Item.  Selectable from a drop-down list.&lt;br /&gt;
* '''Object Class:''' The classname of the object.  Selectable from a drop-down list.  The choice here depends on the Object Type that has been selected.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Swap_Textures&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause the specified textures (up to 2 per event) to be used on all linked objects.&lt;br /&gt;
|on             = Swap the textures.&lt;br /&gt;
|params         = * '''Texture Num:''' Texture index to swap (starts from 0).&lt;br /&gt;
* '''Texture Filename:''' Disk filename (including extension) of the texture bitmap to use.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Modifiers==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Armor&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event adds or subtracts from the armor of all linked objects.&lt;br /&gt;
|on             = Apply the Armor Delta specified in this event's properties to all linked objects.&lt;br /&gt;
|params         = * '''Armor Delta:''' Modification to perform to armor. Negative values subtract armor, positive values add armor.&lt;br /&gt;
* '''Apply to player:''' If ticked, apply the Armor Delta to the player as the On response, rather than applying it to linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Black_Out_Player&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Fade the player's camera out to, or in from, full black.&lt;br /&gt;
|on             = Linearly fade the player's camera to full black over the time specified in the event properties.&lt;br /&gt;
|off            = Immediately set the player's camera to full black and then linearly fade in to full visibility over the time specified in the event properties.&lt;br /&gt;
|params         = * '''Blackout Time:''' Specify the time over which the blackout occurs.&lt;br /&gt;
* '''Kill Player After Blackout:''' If ticked, the player will be killed after the Blackout Time has elapsed.&lt;br /&gt;
* '''End Level After Blackout:''' If ticked, the level will end after the Blackout Time has elapsed, with a scrolling endgame message pulled from [[endgame.tbl]]. The Script Name for the Black_Out_Player event is used to specify the endgame.tbl entry that is displayed.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Bolt_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the active state of linked [[RED Objects#Bolt Emitter|bolt emitters]]. The default state for bolt emitters is controlled by the &amp;quot;Emitter is initially on&amp;quot; flag in the emitter properties.&lt;br /&gt;
|on             = Set all linked bolt emitters to active/enabled.&lt;br /&gt;
|off            = Set all linked bolt emitters to inactive/disabled.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Clear_Endgame_If_Killed&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to allow [[RED Objects#Entity|entities]] which would ordinarily trigger an endgame sequence when killed, to be killed without triggering that sequence.&lt;br /&gt;
|on             = Remove the &amp;quot;End Game If Killed&amp;quot; flag from all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Continuous_Damage&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Cause the AI or Player which triggered the event to receive damage (use a trigger reset time of 0 to make the damage continuous).&lt;br /&gt;
|on             = Apply damage to the entity who triggered the event. Any linked objects will also receive damage.&lt;br /&gt;
|params         = * '''Damage Per Sec:''' Damage per second applied. (0 is instant death)&lt;br /&gt;
* '''Damage Type:''' melee, bullet, armor piercing bullet, explosive, fire, energy, electrical, acid, scalding.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Detach&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event controls whether linked objects (normally [[RED Objects#Entity|entities]]) are attached to [[RED Groups#Moving Groups|movers]] they intersect (like cranes, elevators, etc.)&lt;br /&gt;
|on             = Detach linked objects from moving groups they intersect.&lt;br /&gt;
|off            = Attach linked objects to moving groups they intersect.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Fog_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the active state of the level's distance-based fog (fog uses the settings configured in [[RED_User_Guide#Level_Properties|Level Properties]], and the default behaviour is for fog to be enabled).&lt;br /&gt;
|on             = Set fog to enabled/active.&lt;br /&gt;
|off            = Set fog to disabled/inactive.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Force_Monitor_Update&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event forces linked monitors to refresh their displayed image.&lt;br /&gt;
|on             = Force an image update on all linked monitors.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Give_Item_To_Player&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will make the player pick up a specific item.  Items are normally automatically picked up by the player when they get close enough to them.  All game items are specified in items.tbl.&lt;br /&gt;
|on             = Give the player the specified item.&lt;br /&gt;
|params         = * '''Item:''' Item class name, which is selectable from a drop-down list of all items from items.tbl.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Go_Undercover&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to put the player into undercover mode (as used in the RF campaign stealth sequences).&lt;br /&gt;
|on             = Set player to undercover.&lt;br /&gt;
|off            = Remove the undercover status of the player.&lt;br /&gt;
|params         = * '''Cover:''' Specify whether the undercover type is executive (as used in [[L6: Corporate HQ|Corporate HQ]]) or scientist (as used in [[L8: Medical Research|Medical Research]]).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Heal&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event adds or subtracts from the health of all linked objects.&lt;br /&gt;
|on             = Apply the Life Delta specified in this event's properties to all linked objects.&lt;br /&gt;
|params         = * '''Life Delta:''' Modification to perform to life. Negative values subtract life, positive values add life.&lt;br /&gt;
* '''Apply to player:''' If ticked, apply the Life Delta to the player as the On response, rather than applying it to linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Ignite_Entity&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to ignite linked [[RED Objects#Entity|entities]].&lt;br /&gt;
|on             = Ignite all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Make_Fly&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will make the linked AI enter fly mode.  If the AI is already flying, this event does nothing.  This event can only make AI fly if it normally has the ability (i.e., this event can’t make a Cave Slug fly).&lt;br /&gt;
|on             = Make linked AI enter fly mode.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Make_Invulnerable&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the invulnerability state of linked objects. By default, all objects are vulnerable.&lt;br /&gt;
|on             = Set all linked objects to invulnerable for the duration specified in the event properties.&lt;br /&gt;
|off            = Set all linked objects to vulnerable (ie. revert the effect of any previously applied Make_Invulnerable events)&lt;br /&gt;
|params         = * '''Duration:''' Specify a duration for the invulnerability. If 0, invulnerability lasts indefinitely.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Make_Walk&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will make the linked AI enter walk mode.  If the AI is already walking, this event does nothing.  This event can only make AI walk if it normally has the ability (i.e., this event can’t make a Grabber walk).&lt;br /&gt;
|on             = Make linked AI enter walk mode.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Modify_Rotating_Mover&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Speed up or slow down the movement of all linked rotating movers.&lt;br /&gt;
|on             = Apply the modification specified in the event properties to all linked rotating movers.&lt;br /&gt;
|params         = * '''Settings:''' Configure settings to increase or decrease all linked rotating movers by the percentage specified.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Mover_Pause&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event toggles the active state of linked movers.&lt;br /&gt;
|on             = Immediately pause all linked movers at their current position.&lt;br /&gt;
|off            = Resume the movement of all linked movers (ie. revert the effect of a previously applied Mover_Pause)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Particle_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the active state of linked [[RED Objects#Particle Emitter|particle emitters]]. The default state for particle emitters is controlled by the &amp;quot;Emitter is initially on&amp;quot; flag in the emitter properties.&lt;br /&gt;
|on             = Set all linked particle emitters to active/enabled.&lt;br /&gt;
|off            = Set all linked particle emitters to inactive/disabled.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Push_Region_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the active state of linked [[RED Objects#Push Region|push regions]]. The default state for push regions is active/enabled.&lt;br /&gt;
|on             = Set all linked push regions to active/enabled.&lt;br /&gt;
|off            = Set all linked push regions to inactive/disabled.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Reverse_Mover&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to immediately reverse the direction in which linked movers are currently moving. This event is linked to a [[RED Objects#Keyframe|keyframe]] object.&lt;br /&gt;
|on             = Reverse the direction of all linked movers that meet the condition specified in the event parameters.&lt;br /&gt;
|params         = * '''If Moving:''' Specify the directional condition for the application of the event. ie. This event will only take effect if the linked mover is moving in the specified direction when the event receives an On message.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Gravity&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Set the downward acceleration due to gravity applied to all objects in the world.&lt;br /&gt;
|on             = Override the default gravity (-9.8 m/s^2) with the value specified in the event properties.&lt;br /&gt;
|params         = * '''Gravity:''' Value for acceleration due to gravity, specified in m/s^2, and applied in the Y axis.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Liquid_Depth&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Linearly transition the liquid depth of the linked [[RED Objects#Room Effect|Room Effect]] object to a specified new depth over time.&lt;br /&gt;
|on             = Begin transitioning liquid depth according to settings configured in properties.&lt;br /&gt;
|params         = * '''Depth:''' Set the desired depth after the transition has completed.&lt;br /&gt;
* '''Time:''' How long in seconds it takes the liquid depth to transition to the event-configured depth from the configured depth value in the properties of the linked [[RED Objects#Room Effect|Room Effect]].&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Shake_Player&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will shake the viewpoint of the Player.&lt;br /&gt;
|on             = Start shaking the Player camera.&lt;br /&gt;
|params         = * '''Magnitude:''' How strong to make the shaking.  This value is the max amplitude of the shake in meters. &lt;br /&gt;
* '''Time:''' How long to shake the camera in seconds.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Skybox_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Can be used to rotate the skybox around the camera.&lt;br /&gt;
|on             = Start rotating as per values specified in the event properties. Rotation is always from -360 to 360, then loops.&lt;br /&gt;
|params         = * '''Axis:''' Axis to rotate the skybox around.&lt;br /&gt;
* '''Velocity:''' Velocity/speed of the rotation, specified in degrees-per-second (degrees/sec).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Strip_Player_Weapons&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Used to remove weapons from the player's inventory.&lt;br /&gt;
|on             = Remove all weapons and ammo the player currently has.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Switch_Model&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will change the model of all linked objects to the model filename that is contained in the event.&lt;br /&gt;
|on             = Change the model.&lt;br /&gt;
|params         = * '''Model filename:''' Disk filename (with extension) of the model to switch to.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Teleport&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will teleport all linked objects to the event location.  There are no special effects associated with the teleportation.&lt;br /&gt;
|on             = Teleport all linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Teleport_Player&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Teleports the player. This is the only event for which pitch/yaw is relevant, so the event displays a small red arrow showing you which direction it is facing.&lt;br /&gt;
|on             = Teleport the player to the event, setting their position (xyz) and rotation (pitch/yaw) to that of the Teleport_Player event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Turn_Off_Physics&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event controls whether linked [[RED Objects#Entity|entities]] have physics applied. Typically, this event is used alongside [[RED Event List#Detach|Detach]] to move entities via cranes or similar. Physics is enabled by default.&lt;br /&gt;
|on             = Turn off physics for all linked entities.&lt;br /&gt;
|off            = Turn on physics for all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Unhide&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Manipulate the visibility of linked object(s). Note that if this event is used to unhide an entity, the entity will not be &amp;quot;unhidden&amp;quot; until the next time its' root bone is out of the player's line of sight. Because of this, you will normally want to be sure to send an on message to an unhide event at a time the linked entity is out of the player's view.&lt;br /&gt;
|on             = Unhide all linked objects.&lt;br /&gt;
|off            = Hide all linked objects.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Special==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Activate_Capek_Shield&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event can be used to activate a Capek nanotech shield on-demand for entities that support it.&lt;br /&gt;
|on             = Activate nanotech shield for all linked entities (provided they are allowed to use it).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Countdown_Begin&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event is used to start an on-HUD countdown.&lt;br /&gt;
|on             = Start the countdown&lt;br /&gt;
|params         = * '''Time:''' Specify duration for the countdown (in seconds).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Countdown_End&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event is used to forcibly end an active countdown.&lt;br /&gt;
|on             = End the active countdown.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Defuse_Nuke&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event brings up the RF1 campaign endgame nuke puzzle sequence.&lt;br /&gt;
|on             = Display nuke puzzle.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Display_Fullscreen_Image&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = Displays a specified image/texture filename stretched to the player's window resolution. Note that [[Dash Faction]] is required for alpha channels on fullscreen images to function correctly.&lt;br /&gt;
|on             = Display the specified filename as a fullscreen image.&lt;br /&gt;
|off            = Stop displaying the fullscreen image.&lt;br /&gt;
|params         = * '''Filename:''' Image to display (normally .tga or .vbm). It's very important to ensure the data in this field is correct - a Display_Fullscreen_Image event that receives an on message but has no valid filename specified will result in an unrecoverable error (crash).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Fire_Weapon_No_Anim&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event is used in very niche circumstances to force a gun to fire without playing its normal animation. Typically, you would do this while already playing a properly-timed custom animation.&lt;br /&gt;
|on             = Force linked entities to fire their equipped weapon without playing a fire animation.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Never_Leave_Vehicle&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event stops the player from being able to leave a vehicle they're piloting.&lt;br /&gt;
|on             = Stop the player from being able to leave a vehicle.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Win_PS2_Demo&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event triggers the PS2 demo endgame sequence, which involves 3 demo upsell graphics (demo-upsell1.tga, demo-upsell2.tga, demo-upsell3.tga) and then drops back to the main menu.&lt;br /&gt;
|on             = Initiate PS2 demo endgame sequence.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Deprecated==&lt;br /&gt;
*The below events are not readily accessible via the [[RED Objects#Events|Events]] section of [[RED Functionality Overview#Object Mode|Object Mode]], but are referenced in '''events.tbl''' and/or [[RED]] documentation.&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Follow_Player&lt;br /&gt;
|category       = Deprecated&lt;br /&gt;
|description    = This Event will force all linked objects to follow and protect the Player.  This should only be used to make Hendrix follow (or stop following) the Player.&lt;br /&gt;
|on             = Make linked entities follow the Player.&lt;br /&gt;
|off            = Make linked entities stop following the Player.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Level_Transition_Marker&lt;br /&gt;
|category       = Deprecated&lt;br /&gt;
|description    = This is a special type of event which doesn’t respond to On or Off messages.  This event is used to maintain the correct positions and orientations off all objects in the transition areas between levels.  This event needs to be placed in the location of the trigger which causes level loading in the other level involved in the transition.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Light_State&lt;br /&gt;
|category       = Deprecated&lt;br /&gt;
|description    = This Event will set the state of any linked lights.  Currently this event can set a light on or off, but any light related changes (like making a light flash, change color, etc.) can be data within this event.&lt;br /&gt;
|on             = Change the state of all linked lights.&lt;br /&gt;
|params         = * '''State:''' On or Off.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Shield&lt;br /&gt;
|category       = Deprecated&lt;br /&gt;
|description    = This event will add the Shield Delta value to the shield of all linked objects. (this event was likely replaced by [[RED Event List#Armor|Armor]])&lt;br /&gt;
|on             = Add Shield Delta to all linked objects shields.&lt;br /&gt;
|params         = * '''Shield Delta:''' The amount of shield to add (you can decrease shield by using a negative number here).&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: RF1 Editing]]&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
[[Category: Archived RF1 Content]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=RED_Event_List&amp;diff=15088</id>
		<title>RED Event List</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=RED_Event_List&amp;diff=15088"/>
		<updated>2025-12-19T11:38:35Z</updated>

		<summary type="html">&lt;p&gt;Goober: /* AF_Utility */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BubbleNav|RF1Modding}}&lt;br /&gt;
This page lists all event scripting objects available in [[RED]]. To read more about how the scripting system itself works, see [[RED Objects#Events|Events]].&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction==&lt;br /&gt;
The events in categories prefixed with &amp;quot;AF_&amp;quot; are only available in [[Alpine Faction]]. If you don't see them listed, you should install [https://alpinefaction.com Alpine Faction] and launch RED through the Alpine Faction launcher.&lt;br /&gt;
&lt;br /&gt;
* For other level editing features and improvements that are specific to Alpine Faction, see [[Alpine Level Design]]&lt;br /&gt;
&lt;br /&gt;
==AF_Catalysts==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = AF_When_Dead&lt;br /&gt;
|category       = AF_Catalysts&lt;br /&gt;
|description    = Upgraded version of the stock &amp;quot;When_Dead&amp;quot; event. Does not require a slot in the savegame file, so there is no limit on the number of '''AF_When_Dead''' events that you can use in a single map. Also supports repeated activations, unlike the stock event.&lt;br /&gt;
|params         = * '''Activate on any dead:''' (bool1) If true, this event sends an on message each time a linked entity or clutter dies. If false, this event only sends a single on message at the time that all linked entities/clutter are dead.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Captured&lt;br /&gt;
|category       = AF_Catalysts&lt;br /&gt;
|description    = Fires a message to all linked triggers, movers, and events whenever a linked control point is captured by either team.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Picked_Up&lt;br /&gt;
|category       = AF_Catalysts&lt;br /&gt;
|description    = Fires a message to all linked triggers, movers, and events whenever a linked item is picked up by the player. Single player only.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AF_Flow==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Sequence&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Each activation of this event routes the message to the next link in sequential order. After the last link, the cycle resets and the first link is called. Note the order of links is determined by the order in which you add them.&lt;br /&gt;
|on             = Send an on signal to the next link in the sequence.&lt;br /&gt;
|params         = * '''Next index to activate:''' (int1) Next link index to be activated when this event processes an on message. This setting essentially allows you to jump to a specific point in the sequence when you wish.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Difficulty_Gate&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Tests if the game is set to the specified difficulty and forwards messages only if true.&lt;br /&gt;
|on             = Forward on signal to all links, if the game is set to the specified difficulty.&lt;br /&gt;
|params         = * '''Difficulty:''' (int1&amp;quot;) Difficulty to test against.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Valid_Gate&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Tests if the specified UID is a valid object and forwards messages only if true. In the case of objects that have life values (ie. clutter and entities), &amp;quot;valid&amp;quot; means alive.&lt;br /&gt;
|on             = Forward on signal to all links, if the specified object is valid.&lt;br /&gt;
|params         = * '''Object UID to test:''' (int1&amp;quot;) Object UID to be checked.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Inside_Gate&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Tests if an object (default: the player who activated the event) is in a specified area of the map. Forwards messages if true.&lt;br /&gt;
|on             = Forward on signal to all links if test passes.&lt;br /&gt;
|params         = * '''UID (trigger/room) to check:''' (int1) Region to be checked. Can be a trigger UID or a room UID (Room Effect).&lt;br /&gt;
* '''What to check for:''' (int2) Object to be checked. If not specified, defaults to the player who activated the event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Owner_Gate&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Tests whether a specific control point has a specified owner.&lt;br /&gt;
|params         = * '''Handler UID:''' (int1) UID of the Capture_Point_Handler to test.&lt;br /&gt;
* '''Required owner:''' (int2) Owner to check.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Switch_Random&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Randomly select one of this event's links and send an on message to it.&lt;br /&gt;
|on             = Send an on message to a randomly selected link.&lt;br /&gt;
|params         = * '''No repeats until all used:''' (bool1) Never choose the same link twice until all links have been chosen at least once.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Route_Node&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = In-line multi-purpose flow control node. Has several options to control what the processed message looks like.&lt;br /&gt;
|params         = * '''Node behavior:''' (int1) What should the Route_Node do to the message?&lt;br /&gt;
* '''Non-retriggerable delay:''' (bool1) If true, ignore any received messages while a message is currently queued on this Route_Node. Has no effect unless a delay is specified.&lt;br /&gt;
* '''Clear trigger info:''' (bool2) If true, clear information about the trigger and object that initiated the message when passing through this Route_Node.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Gate&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Performs a test on a specified goal (integer variable). Forwards message to links only if test passes.&lt;br /&gt;
|on             = Perform test and forward message if passed.&lt;br /&gt;
|params         = * '''Goal to test:''' (str1) Specify the goal name to which the test is applied.&lt;br /&gt;
* '''Test to run:''' (int1)&lt;br /&gt;
* '''Value to test against:''' (int2) Note: ignored if testing against initial value.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Scope_Gate&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Performs a test on various aspects of the game. Forwards message to links only if test passes.&lt;br /&gt;
|on             = Perform test and forward message if passed.&lt;br /&gt;
|params         = * '''Scope to test against:''' (int1) Test to run&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Gametype_Gate&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Performs a test on the gametype of the game. Forwards message to links only if test passes. Works only in multiplayer (test will always fail in single player).&lt;br /&gt;
|on             = Perform test and forward message if passed.&lt;br /&gt;
|params         = * '''Check for gametype:''' (int1) Gametype to test against.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AF_Gameplay==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Capture_Point_Handler&lt;br /&gt;
|category       = AF_Gameplay&lt;br /&gt;
|description    = Controls the behaviour of a multiplayer control point (capture zone) for [[King of the Hill]], [[Damage Control]], and [[Revolt]]. Uses a linked [[RED Objects#Triggers|trigger]] to define the capture area and manages capture progress, ownership, and HUD display.&lt;br /&gt;
|params         = * '''Name:''' (str1) Display name for the control point.&lt;br /&gt;
* '''Outline offset:''' (float1) Vertical offset for the circular outline drawn on the ground around the capture area. Useful for keeping the outline visible above uneven terrain.&lt;br /&gt;
* '''Cap rate multiplier:''' (float2) Multiplier applied to the base capture rate. '''0.0''' = no multiplier (same as '''1.0'''). Higher values capture faster; values between '''0.0''' and '''1.0''' capture slower.&lt;br /&gt;
* '''Stage:''' Specify stage for this point. Only used in [[Revolt]].&lt;br /&gt;
* '''Cylindrical Trigger:''' If true, treat the linked trigger as a vertical cylinder instead of using its raw shape. For sphere triggers, the cylinder radius matches the sphere radius. For box triggers, the cylinder diameter uses the longest edge of the box.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AF_General==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Clone_Entity&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Creates a clone of the linked entity with the same properties and settings as its source.&lt;br /&gt;
|on             = Create a clone at the event's position, and with the event's orientation.&lt;br /&gt;
|params         = * '''Clone is hostile to player:''' (bool1) If true, clone is actively hostile to player and will engage if it spots the player.&lt;br /&gt;
* '''Go to player:''' (bool2) If true, the clone will begin running to the player immediately when created. Assuming there is a valid route to the player's position, it will find them.&lt;br /&gt;
* '''Link event UID to clone:''' (int1) If specified, when a clone is created, a link will be created between the specified event UID and the clone.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Player_World_Collide&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Control whether the player collides with level geometry.&lt;br /&gt;
|on             = Collision = true (default)&lt;br /&gt;
|off            = Collision = false&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Level_Hardness&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Set the hardness for the loaded level (size of geo craters).&lt;br /&gt;
|on             = Set hardness to the specified value.&lt;br /&gt;
|params         = * '''Hardness:''' (int1) The hardness value to set.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Difficulty&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Set the difficulty level of the game.&lt;br /&gt;
|on             = Set difficulty to the specified value.&lt;br /&gt;
|params         = * '''Difficulty:''' (int1) Set the game's difficulty.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Skybox&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Set the room to project as skybox.&lt;br /&gt;
|on             = Set skybox information as configured.&lt;br /&gt;
|params         = * '''Skybox room UID:''' (int1) Specify the room UID (by ''Room Effect'') to set as the sky room.&lt;br /&gt;
* '''Eye anchor UID:''' (int2) Specify the ''Anchor_Marker'' event to use as the eye position inside the sky room.&lt;br /&gt;
* '''Use relative position:''' (bool1) If true, apply relative position mapping camera position in world space to eye position in the sky room.&lt;br /&gt;
* '''Relative position scale:''' (float1) Scale/ratio to apply to relative position camera mapping.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Item_Drop&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Changes the configured item drop for linked entities.&lt;br /&gt;
|on             = Set item drop.&lt;br /&gt;
|params         = * '''Item class to drop:''' (str1) Item name to drop. Event will have no effect unless this is a valid item name (from [[items.tbl]])&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Life&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Changes the base life value of linked clutter and/or entities.&lt;br /&gt;
|on             = Set the base life value.&lt;br /&gt;
|params         = *'''New life value:''' (int1)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = AF_Heal&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Heal or damage the player (or multiple players in multiplayer) by a specific amount. Can also apply to armour.&lt;br /&gt;
|on             = Apply the configured change.&lt;br /&gt;
|params         = * '''Amount:''' (int1) What numeric change should be applied&lt;br /&gt;
* '''Apply change to:''' (int2) Who should it be applied to?&lt;br /&gt;
* '''Apply to armor instead:''' (bool1) If true, apply the change to armour rather than health.&lt;br /&gt;
* '''Allow super values:''' (bool2) If true, accomodate for super health/super armour. If false, the resulting health or armour after applying the change is clamped to 0-100. If true, it's clamped to 0-200.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = World_HUD_Sprite&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Display a sprite in the world, most often used for providing the player with directions (for example, to an objective).&lt;br /&gt;
|on             = Enable the sprite.&lt;br /&gt;
|off            = Disable the sprite.&lt;br /&gt;
|params         = * '''Start enabled:''' (bool1) Is the sprite initially enabled when the map loads?&lt;br /&gt;
* '''Render mode:''' (int1) How is the sprite rendered? Overdraw means players can see the sprite through all level geometry.&lt;br /&gt;
* '''Render scale:''' (float1) Adjust the scale of the sprite (1.0 for normal size).&lt;br /&gt;
* '''Sprite filename:''' (str1) Specify the filename to use for the sprite when rendered. If ''Sprite filename blue'' is also specified, this field is the sprite rendered for the red team in multiplayer.&lt;br /&gt;
* '''Sprite filename blue:''' (str2) Specify the filename to use for the sprite when rendered for the blue team only (in multiplayer). If this field isn't specified, the sprite filename specified for ''Sprite filename'' will be shown to all players regardless of team.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Capture_Point_Owner&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Forces linked control points to a specific ownership state. Must be run on the server, ignored when run on a client.&lt;br /&gt;
|on             = Set all linked control points to the specified owner.&lt;br /&gt;
|params         = * '''Owner:''' (int1) Desired owner.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = HUD_Message&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Display a green HUD message in the bottom middle of the screen (like the helper text when you pick up items).&lt;br /&gt;
|on             = Display the HUD message for the configured duration.&lt;br /&gt;
|params         = * '''Message text:''' (str1) The message to display.&lt;br /&gt;
* '''Duration:''' (float1) Duration in seconds the message will be displayed. Note the message will go away quicker if another HUD message is displayed (such as from another HUD_Message event, or from the player picking up an item)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Play_Video&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Play a .bik format video.&lt;br /&gt;
|on             = Play the video specified.&lt;br /&gt;
|params         = * '''Video filename:''' (str1) The filename of the video to play.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Force_Unhide&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Force unhide/hide an object with no conditions. Virtually identical to the stock &amp;quot;Unhide&amp;quot; event, except this one will always do it, regardless of player line of sight or any other factors.&lt;br /&gt;
|on             = Unhide linked objects.&lt;br /&gt;
|off            = Hide linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Fog_Far_Clip&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Sets the far clip plane used for distance fog.&lt;br /&gt;
|on             = Set far clip plane to specified value (in metres).&lt;br /&gt;
|params         = * '''Far clip distance:''' (int1) Far clip plane distance.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Entity_Flag&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Turn on or off entity flags on linked entities.&lt;br /&gt;
|on             = Turn selected flag on.&lt;br /&gt;
|off            = Turn selected flag off.&lt;br /&gt;
|params         = * '''Flag to set:''' (int1)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Debris&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Set the debris and explosion parameters for linked clutter and/or entities.&lt;br /&gt;
|on             = Set values as specified.&lt;br /&gt;
|params         = * '''Debris filename:''' (str1) Filename of debris to set.&lt;br /&gt;
* '''Explosion VClip index:''' (int1) Index of VClip to play when object dies (from [[vclip.tbl]]).&lt;br /&gt;
* '''Explosion VClip radius:''' (float1)&lt;br /&gt;
* '''Debris sound set:''' (str2) Sound set to use for debris collision (from [[foley.tbl]]). (Only supported on clutter)&lt;br /&gt;
* '''Debris velocity:''' (float2) Velocity of debris. (Only supported on clutter)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = AF_Teleport_Player&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Teleport player to the event's position, with the event's orientation.&lt;br /&gt;
|on             = Teleport player.&lt;br /&gt;
|params         = * '''Reset player velocity:''' (bool1) If true, set player velocity to 0 m/s after teleporting. If false, player details velocity, but it is translated based on the orientation of the event.&lt;br /&gt;
* '''Eject player from vehicle:''' (bool2) If true, if the player is in a vehicle, eject them from the vehicle and teleport them just as a player. If false, teleport their vehicle. Has no effect in multiplayer or if the player is not in a vehicle.&lt;br /&gt;
* '''Entrance VClip:''' (str1) VClip name (from [[vclip.tbl]]) to play at the player's position just before they teleport.&lt;br /&gt;
* '''Exit VClip:''' (str2) VClip name (from [[vclip.tbl]]) to play at the teleport destination when the player arrives.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Fog_Color&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Sets the distance fog colour.&lt;br /&gt;
|on             = Set configured fog colour.&lt;br /&gt;
|params         = * '''Fog color:''' (str1) Specify fog colour to set. Uses the same format as Level Properties - e.g. specifying &amp;quot;&amp;lt;255, 255, 255&amp;gt;&amp;quot; would result in pure white fog.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Light_Color&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Sets the colour of dynamic lights&lt;br /&gt;
|on             = Set light colour.&lt;br /&gt;
|params         = * '''Light color:''' (str1) Specify light colour to set. Uses the same format as Light properties - e.g. specifying &amp;quot;&amp;lt;255, 255, 255&amp;gt;&amp;quot; would result in pure white light.&lt;br /&gt;
* '''Random color instead:''' (bool1) If true, generate a random color instead.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Modify_Respawn_Point&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Sets which teams spawn at the linked respawn points.&lt;br /&gt;
|params         = * '''Red team:''' (bool1) Allow the red team to spawn here.&lt;br /&gt;
* '''Blue team:''' (bool2) Allow the blue team to spawn here.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AF_Utility==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Variable&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Reconfigure a variable on linked Alpine Faction event(s).&lt;br /&gt;
|on             = Updates the variable of the linked event(s) based on the provided configuration.&lt;br /&gt;
|params         = * '''Variable handle:''' The variable to be set. This corresponds to the variable names provided in parentheses on the properties panel for Alpine events.&lt;br /&gt;
* '''Value for int1 or int2:''' If variable handle is int1 or int2, set the variable on the linked event(s) to this value.&lt;br /&gt;
* '''Value for delay, float1, or float2:''' If variable handle is delay, float1, or float2, set the variable on the linked event(s) to this value.&lt;br /&gt;
* '''Value for bool1 or bool2:''' If variable handle is bool1 or bool2, set the variable on the linked event(s) to this value.&lt;br /&gt;
* '''Value for str1 or str2:''' If variable handle is str1 or str2, set the variable on the linked event(s) to this value.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Remove_Link&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Used to remove links between objects. By default (with &amp;quot;Purge all links&amp;quot; turned off), removes links between objects this event is linked to.&lt;br /&gt;
|on             = Remove links.&lt;br /&gt;
|params         = * '''Purge all links:''' (bool1) Instead, remove all links between every object this event is linked to and any other objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Math&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Used to perform math operations on goals (integer variables). Applies the operation to level (non-persistent) goals, as well as persistent goals that are loaded.&lt;br /&gt;
|on             = Apply the operation.&lt;br /&gt;
|params         = * '''Goal to edit:''' (str1) Specify the goal name to apply the operation.&lt;br /&gt;
* '''Operation to perform:''' (int1)&lt;br /&gt;
* '''Value to use for operation:''' (int2)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Anchor_Marker_Orient&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Same as the '''Anchor_Marker''' event, except this one respect the orientation (direction) of the event. Can be used to, among other things, rotate particle emitters or push regions using movers.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Respawn_Point_State&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Toggles the enabled status of linked multiplayer respawn points.&lt;br /&gt;
|on             = Enable linked respawn points.&lt;br /&gt;
|off            = Disable linked respawn points.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Clear_Queued&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Clears queued message (if any) on all linked events. Queued messages are messages that are queued per a configured delay value on that event.&lt;br /&gt;
|on             = Clear queued messages.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Add_Link&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Adds links from the specified source event to each object this event is linked to.&lt;br /&gt;
|on             = Add links.&lt;br /&gt;
|params         = * '''Source event UID:''' (int1) Source event for the links.&lt;br /&gt;
* '''Link inbound:''' (bool1) Reverse the operation - create links from each object this event is linked to, inbound to the specified source event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Anchor_Marker&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Used to &amp;quot;drag along&amp;quot; some object types that can't normally be added to moving groups. Simply add the Anchor Marker to the moving group, then link the Anchor_Marker to the objects you want to bring. That object/those objects will have their position locked to the position of the Anchor_Marker event as it travels with the mover. Supports Lights (Dynamic only), Particle Emitters, and Push Regions. Can also be used in conjunction with '''Set_Skybox''' to specify the &amp;quot;eye&amp;quot; location within the skybox.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Light_State&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Used to toggle Lights (Dynamic only) on/off as desired.&lt;br /&gt;
|on             = Turn linked lights on.&lt;br /&gt;
|off            = Turn linked lights off.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AI_Actions==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Attack&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = Used to force AI entities to attack objects.&lt;br /&gt;
|on             = Make attacker specified by attacker uid param attack the object the Attack event is linked to.&lt;br /&gt;
|params         = * '''Attacker UID:''' Primary, Secondary, Flare.  What type of weapon to use.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Drop_Point_Marker&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This is a special type of Event which doesn’t respond to On or Off messages.  This event is used as a position where AI will drop off objects while in AI_COLLECTING_MODE. This is how Grabber robots can drop their rocks off at a specific location.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Drop_Weapon&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event is used to force linked [[RED Objects#Entity|entities]] to drop any weapons they may be holding.&lt;br /&gt;
|on             = Force all linked entities to drop their equipped weapon.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Follow_Waypoints&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will force all linked objects to follow a specified waypoint list, with a specific following method.&lt;br /&gt;
|on             = Begin following the waypoints.  An AI will use the closest waypoint as the location to begin the path following.&lt;br /&gt;
|off            = Stop following the current waypoint path.&lt;br /&gt;
|params         = * '''Waypoint List:''' Name of the waypoint list that the AI should follow.&lt;br /&gt;
* '''Always Face Player:''' If true, the AI will always face the player while following their waypoints.&lt;br /&gt;
* '''Follow Method:''' This determines how the AI will behave when the last waypoint node is reached.  The choices are: &lt;br /&gt;
*# One way:	follow the waypoints to the last node and stop.&lt;br /&gt;
*# Loop: follow the waypoints to the last node, then return to the start and repeat.&lt;br /&gt;
*# Ping Pong: follow the waypoints to the last node, then follow the nodes back to the start (repeat).&lt;br /&gt;
* '''Run:''' If ticked, the linked objects will attempt to run rather than walk while following the waypoint list.&lt;br /&gt;
* '''Always Face Player:''' If ticked, the linked objects will always look at the player while following the waypoint list.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goto&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will make all linked entities travel to the Event location.&lt;br /&gt;
|on             = Make linked entities start moving towards Event location.&lt;br /&gt;
|params         = * '''Run:''' If ticked, the linked objects will attempt to run rather than walk.&lt;br /&gt;
* '''Always Face Player:''' If ticked, the linked objects will always look at the player while following the path.&lt;br /&gt;
* '''Face Player When Finished:''' If ticked, AI will face the player immediately when they get to the Goto event location. &lt;br /&gt;
* '''Override Current Behavior:''' If ticked, AI will ignore any other pathing until reaching the Goto event location. This includes the AI not chasing the player.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goto_Player&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will make all linked entities travel to the Player position.  The linked entities will continue to pathfind to the Player until they have line-of-sight.  When the entities can see the Player, they will return to their default AI.&lt;br /&gt;
|on             = Make linked entities start moving towards the Player.&lt;br /&gt;
|params         = * '''Run:''' If ticked, the linked objects will attempt to run rather than walk.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Headlamp_State&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event toggles the headlamp state of all linked [[RED Objects#Entity|entities]] (realistically, vehicles). Default state is for headlamps to be disabled.&lt;br /&gt;
|on             = Turn on headlamps for all linked entities.&lt;br /&gt;
|off            = Turn off headlamps for all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Holster_Player_Weapon&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will forcefully holster the player's weapon.&lt;br /&gt;
|on             = Holster the player weapon.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Holster_Weapon&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will forcefully holster the weapon of any linked entities.&lt;br /&gt;
|on             = Holster the weapons of all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Look_At&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This Event will cause any linked AI to turn and face the Event location.&lt;br /&gt;
|on             = Make linked AI look at the Event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Play_Animation&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will cause a linked AI to play a specific animation.  If the animation is a state animation (i.e., a looping animation) then it will replace the current animation state for the AI.  If the animation is an action animation (i.e., a one-time animation) then it is blended with the current state.&lt;br /&gt;
|on             = Play the animation.&lt;br /&gt;
|params         = * '''Animation:''' Name of the animation. This is selectable from a list of possible animations for the object that is linked. &lt;br /&gt;
* '''Hold Last Frame:''' If true, the model will stay in the last frame of animation. This is only valid if the animation is defined as an action animation.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_AI_Mode&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event is used to set the AI mode of all linked [[RED Objects#Entity|entities]], overriding the AI mode configured in the properties of those entities.&lt;br /&gt;
|on             = Set AI mode of linked entities to the mode specified in the event paramets. &lt;br /&gt;
|params         = * '''AI Mode:''' Specify desired AI mode.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Friendliness&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will set the Friendliness of all linked objects.&lt;br /&gt;
|on             = Change the Friendliness of an entity.&lt;br /&gt;
|params         = * '''Friendliness:''' The friendliness is selectable from a drop-down list, and consists of the following choices:&lt;br /&gt;
*# Unfriendly: AI will attack the player on sight.&lt;br /&gt;
*# Neutral: AI will only attack the player if provoked.&lt;br /&gt;
*# Friendly: AI will not attack the player, and may attack entities that are attacking the player.&lt;br /&gt;
*# Outcast: AI will attack anything it sees.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Shoot_At&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will cause all linked AI to shoot at the Event location.  The AI will continue to shoot at the Event until an Off message is received.&lt;br /&gt;
|on             = Make all linked AI attack the Event location.&lt;br /&gt;
|off            = Make all linked AI stop attacking the Event location.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Shoot_Once&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will make all linked AI shoot once in the direction they are currently facing.&lt;br /&gt;
|on             = Fire a single time.&lt;br /&gt;
|params         = * '''Shoot Type:''' Primary, Secondary, Flare.  What type of weapon to use.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Catalysts==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Cyclic_Timer&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event will send an On message to all linked Events at a specified interval.  This Event has to receive an On Message before it will begin sending out messages.&lt;br /&gt;
|on             = Begin sending On messages at the specified interval.&lt;br /&gt;
|params         = * '''Time:''' The interval in seconds between sending On messages to all linked events.&lt;br /&gt;
* '''Max Sends:''' The number of times the Event will send out On messages.&lt;br /&gt;
* '''Send Forever:''' If true, the Max Sends field is ignored, and the Cyclic Timer sends On messages forever.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Delay&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = Forwards a response it receives to all linked events after the specified delay duration.&lt;br /&gt;
|on             = Send (forward) an on response to all linked events following the delay duration.&lt;br /&gt;
|off            = Send (forward) an off response to all linked events following the delay duration.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Invert&lt;br /&gt;
|image          = Icon_Event_L.png&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event will change On messages to Off messages (and Off to On) before forwarding them to any linked Events.&lt;br /&gt;
|on             = Change message to off and forward to all linked events.&lt;br /&gt;
|off            = Change message to on and forward to all linked events.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Switch&lt;br /&gt;
|image          = Icon_Event_C.png&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event behaves like a switch that remembers it’s state (on or off).  This Event can be used to turn lights on or off, and can be used to let the player activate special events.  If the Event is linked to a VFX, this VFX is used as the model for the switch (the default state of the VFX should be off, with the animation taking the VFX to the on state).&lt;br /&gt;
|on             = Toggle the state of the switch.  The behavior of the switch is controlled through the Event parameters.&lt;br /&gt;
|params         = * '''Initial State:''' The initial state of the switch (either on or off).&lt;br /&gt;
* '''Behavior:''' This says what kind of signal the switch will send (toggle between on and off, always send an on, always send an off).&lt;br /&gt;
* '''Sound:''' Disk filename (including the .wav extension) of the sound to play when the switch is thrown.&lt;br /&gt;
* '''Max Throws:''' How many times the switch can be thrown. &lt;br /&gt;
* '''Infinite Throws:''' If true, the Max Throws parameter is ignored, and the switch can be thrown an infinite number of times.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Armor_Reaches&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when the object to which the When_Armor_Reaches event is linked reaches the specified amount of armor, either by armor being added or by suffering damage.&lt;br /&gt;
|params         = * '''Armor:''' Specify amount of armor (integer) at which the event will activate (send an On message).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Countdown_Over&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when a countdown ends. (countdowns are started with [[RED Event List#Countdown_Begin|Countdown_Begin]])&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Countdown_Reaches&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when a countdown reaches the specified value. (countdowns are started with [[RED Event List#Countdown_Begin|Countdown_Begin]])&lt;br /&gt;
|params         = * '''Time:''' Specify the desired time remaining at which this event should activate (send an On message).&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Cutscene_Over&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when a cutscene ends. (cutscenes are started with [[RED Event List#Cutscene|Cutscene]])&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Dead&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event will send an On message to all linked Events when all linked objects have died.  This Event is used when you want to do something when a specific object has been destroyed. Note that savegame files can store only 20 When_Dead events in a given level, so if you're mapping for single player, it's highly recommended to include no more than 20 When_Dead events in a single map.&lt;br /&gt;
|params         = * '''Activate When Any Dead:''' Modifies the default behaviour of the event such that it sends an On message each time a linked object dies, rather than the default behaviour of only sending a single On message when all linked objects have been destroyed.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Enter_Vehicle&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when the player enters the linked vehicle [[RED Objects#Entity|entity]].&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Hit&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event will send an On message to all linked Events when a linked object (normally an [[RED Objects#Entity|entity]]) suffers damage from a weapon (normally due to being shot by the player).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Life_Reaches&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when the object to which the When_Life_Reaches event is linked reaches the specified amount of life, either by being healed or by suffering damage.&lt;br /&gt;
|params         = * '''Life:''' Specify amount of life (integer) at which the event will activate (send an On message).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Try_Exit_Vehicle&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when the player attempts to leave a vehicle [[RED Objects#Entity|entity]] they are piloting.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Level==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Alarm&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event toggles the level alarm.&lt;br /&gt;
|on             = Turn alarm on.&lt;br /&gt;
|off            = Turn alarm off.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Alarm_Siren&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event plays an audible alarm sound, without turning the level alarm on (as the [[RED Event List#Alarm|Alarm]] event does).&lt;br /&gt;
|on             = Play an alarm sound.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Cutscene&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event is used to activate an in-game cutscene. This event is very powerful, but also very complicated, with loads of options configured in the event properties. Please refer to the [[RF1_Editing_Main_Page#Events_and_Scripting|cutscene tutorials on the RF1 Editing Main Page]] for information on how to use cutscenes.&lt;br /&gt;
|on             = Play the cutscene.&lt;br /&gt;
|params         = * Many - please see tutorials linked in Description above.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Enable_Navpoint&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event toggles the active state of all linked [[RED Objects#Nav Point|Nav Points]].&lt;br /&gt;
|on             = Enables all linked Nav Points.&lt;br /&gt;
|off            = Disables all linked Nav Points.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Endgame&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event triggers an endgame sequence, and displays text from [[endgame.tbl]]. The Script Name parameter of the Endgame event is used to specify which entry from endgame.tbl is displayed to the player as an on response from this event.&lt;br /&gt;
|on             = End the game, and display scrolling text from endgame.tbl that corresponds to the Script Name of this event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Explode&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause an explosion to occur at the event location.  The explosion can be made to cause a geomod, and you can control the amount of damage caused by the explosion.&lt;br /&gt;
|on             = Make the explosion happen.&lt;br /&gt;
|params         = * '''Damage:''' The amount of damage caused by the explosion.  This is the damage that is applied to any object within the explosion range.&lt;br /&gt;
* '''Type:''' Small, Medium, Large.  This field isn’t properly supported yet.  We need to list a selection of different explosions to choose from. &lt;br /&gt;
* '''Geomod:''' If true, the explosion will apply a geomod at the center of the explosion.  The hardness of the rock where the explosion occurs is used to determine if a geomod is possible.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Check&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event can either block or forward On messages, depending on the state of an associated goal_set Event.&lt;br /&gt;
|on             = Foward On messages if min_count exceeds the current count value of the associated goal_set Event&lt;br /&gt;
|params         = * '''Goal to Check:''' Script name for the associated Goal_Create Event.&lt;br /&gt;
* '''Minimum Count:''' The miniumum value that the associated goal variable must have before forwarding messages.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Create&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will create a goal variable (integer) when it receives an On message. The variable name will be the script name of the Goal_Create event.&lt;br /&gt;
|on             = Create a goal variable.&lt;br /&gt;
|params         = * '''Start Count:''' The inital value of the goal variable (this will be zero in most cases). &lt;br /&gt;
* '''Persistent:''' If ticked, the goal variable will be available to be set/checked in future levels, and will be saved in savegame files perpetually. Note that there is a maximum of 64 persistent goal variables that may be saved in savegame files.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Set&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will increment a goal variable every time it receives an On message (Off messages will cause the count value to decrement).&lt;br /&gt;
|on             = Increment count by one.&lt;br /&gt;
|off            = Decrement count by one.&lt;br /&gt;
|params         = * '''Goal to Set:''' The goal variable name to set.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Item_Pickup_State&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event is used to toggle the active state of linked [[RED_Objects#Item|Items]] (ie. whether they can be picked up). The default behaviour of Items is enabled (they can be picked up).&lt;br /&gt;
|on             = Set all linked items to enabled (they can be picked up).&lt;br /&gt;
|off            = Set all linked items to disabled (they cannot be picked up).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Load_Level&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause the specified level to load.  The Player will be taken to the new level seamlessly. Note that a level cannot have two Load_Level events with the same Script Name, so you should change the Script Name for each Load_Level event you place to something that makes sense to you.&lt;br /&gt;
|on             = Load the specified level.&lt;br /&gt;
|params         = * '''Filename:''' Disk filename (including the .rfl or .d4l extension) of the level to load.&lt;br /&gt;
* '''Hard Level Break:''' Force the player to the [[RED Objects#Player Start|Player Start]] position in the destination level, rather than the default behaviour of attempting a seamless transition.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Message&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will make a sound file play and display the associated text on the Player HUD.&lt;br /&gt;
|on             = Play the message.&lt;br /&gt;
|params         = * '''Persona:''' Selectable from drop-down list of names which is generated from personas.tbl. Select &amp;quot;none&amp;quot; if you don’t want the message to be from a persona.&lt;br /&gt;
* '''Voice Filename:''' Disk filename (including .wav extension) of the sound file to play.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Monitor_State&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event is used for initializing and configuring security monitors and mirrors.&lt;br /&gt;
|on             = Set all screen [[RED Objects#Clutter|clutter objects]] this event is linked to to cycle between video feeds from all camera [[RED Objects#Entity|entities]] this event is linked to, according to the parameters configured in the event properties.&lt;br /&gt;
|params         = * '''Initial State:''' Control whether the linked monitors should be on or off as a result of this event's on response.&lt;br /&gt;
* '''Cycle Delay:''' Time, in seconds, that linked monitors display a given video feed. If this parameter is set to 1.0 for example, the feed will cycle to the next linked camera every 1 second.&lt;br /&gt;
* '''Continuously update monitor:''' If ticked, monitor will constantly be updated. Severe performance impact, but is needed for video feeds of dynamic scenes.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Music_Start&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = Plays a specified music track.&lt;br /&gt;
|on             = Start playing the music track specified in the event's properties.&lt;br /&gt;
|params         = * '''Filename:''' Filename (.wav) of the music track to play.&lt;br /&gt;
* '''Use Effects Volume:''' If ticked, the music track volume is scaled using the Sound Effects volume slider, rather than the Music slider.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Music_Stop&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event stops all music currently being played.&lt;br /&gt;
|on             = Stop playing all music tracks (after fading them out according to this event's properties).&lt;br /&gt;
|params         = * '''Fade Time:''' Length of time any currently playing music tracks will take to fade out to silence. (if set to 0, music will immediately stop playing)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Play_Sound&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause a sound to play.  The sound can be a 3D or 2D sound, and it can be made to loop.&lt;br /&gt;
|on             = Start playing the sound.&lt;br /&gt;
|off            = Stop the sound, if it is playing.&lt;br /&gt;
|params         = * '''Sound Filename:''' Disk filename of the sound to play (including .wav extension). &lt;br /&gt;
* '''Min Distance:''' Distance (in meters) where the sound begins to drop off in volume.  If you don’t want the sound to be 3D, set the Min Distance to zero.&lt;br /&gt;
* '''Looping:''' If true, the sound will play looping (until you stop it by sending an Off message to this Event).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Play_Vclip&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event is used to play a specified vclip (from [[vclip.tbl]])&lt;br /&gt;
|on             = Play the specified vclip at the event location.&lt;br /&gt;
|params         = * '''Vclip Name:''' Specify the vclip to play.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Remove_Object&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will destroy all objects linked to the event.  Objects will disappear instantly (i.e., without their death sequence).&lt;br /&gt;
|on             = Kill all linked objects immediately.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Slay_Object&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will kill all linked objects, and allow their death sequence to play.&lt;br /&gt;
|on             = Kill all linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Spawn_Object&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause a specific object type to be created.  The object is created at the event location, with an identity matrix orientation.&lt;br /&gt;
|on             = Spawn the object at the Event location.&lt;br /&gt;
|params         = * '''Object Type:''' Entity, Clutter, Item.  Selectable from a drop-down list.&lt;br /&gt;
* '''Object Class:''' The classname of the object.  Selectable from a drop-down list.  The choice here depends on the Object Type that has been selected.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Swap_Textures&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause the specified textures (up to 2 per event) to be used on all linked objects.&lt;br /&gt;
|on             = Swap the textures.&lt;br /&gt;
|params         = * '''Texture Num:''' Texture index to swap (starts from 0).&lt;br /&gt;
* '''Texture Filename:''' Disk filename (including extension) of the texture bitmap to use.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Modifiers==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Armor&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event adds or subtracts from the armor of all linked objects.&lt;br /&gt;
|on             = Apply the Armor Delta specified in this event's properties to all linked objects.&lt;br /&gt;
|params         = * '''Armor Delta:''' Modification to perform to armor. Negative values subtract armor, positive values add armor.&lt;br /&gt;
* '''Apply to player:''' If ticked, apply the Armor Delta to the player as the On response, rather than applying it to linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Black_Out_Player&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Fade the player's camera out to, or in from, full black.&lt;br /&gt;
|on             = Linearly fade the player's camera to full black over the time specified in the event properties.&lt;br /&gt;
|off            = Immediately set the player's camera to full black and then linearly fade in to full visibility over the time specified in the event properties.&lt;br /&gt;
|params         = * '''Blackout Time:''' Specify the time over which the blackout occurs.&lt;br /&gt;
* '''Kill Player After Blackout:''' If ticked, the player will be killed after the Blackout Time has elapsed.&lt;br /&gt;
* '''End Level After Blackout:''' If ticked, the level will end after the Blackout Time has elapsed, with a scrolling endgame message pulled from [[endgame.tbl]]. The Script Name for the Black_Out_Player event is used to specify the endgame.tbl entry that is displayed.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Bolt_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the active state of linked [[RED Objects#Bolt Emitter|bolt emitters]]. The default state for bolt emitters is controlled by the &amp;quot;Emitter is initially on&amp;quot; flag in the emitter properties.&lt;br /&gt;
|on             = Set all linked bolt emitters to active/enabled.&lt;br /&gt;
|off            = Set all linked bolt emitters to inactive/disabled.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Clear_Endgame_If_Killed&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to allow [[RED Objects#Entity|entities]] which would ordinarily trigger an endgame sequence when killed, to be killed without triggering that sequence.&lt;br /&gt;
|on             = Remove the &amp;quot;End Game If Killed&amp;quot; flag from all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Continuous_Damage&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Cause the AI or Player which triggered the event to receive damage (use a trigger reset time of 0 to make the damage continuous).&lt;br /&gt;
|on             = Apply damage to the entity who triggered the event. Any linked objects will also receive damage.&lt;br /&gt;
|params         = * '''Damage Per Sec:''' Damage per second applied. (0 is instant death)&lt;br /&gt;
* '''Damage Type:''' melee, bullet, armor piercing bullet, explosive, fire, energy, electrical, acid, scalding.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Detach&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event controls whether linked objects (normally [[RED Objects#Entity|entities]]) are attached to [[RED Groups#Moving Groups|movers]] they intersect (like cranes, elevators, etc.)&lt;br /&gt;
|on             = Detach linked objects from moving groups they intersect.&lt;br /&gt;
|off            = Attach linked objects to moving groups they intersect.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Fog_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the active state of the level's distance-based fog (fog uses the settings configured in [[RED_User_Guide#Level_Properties|Level Properties]], and the default behaviour is for fog to be enabled).&lt;br /&gt;
|on             = Set fog to enabled/active.&lt;br /&gt;
|off            = Set fog to disabled/inactive.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Force_Monitor_Update&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event forces linked monitors to refresh their displayed image.&lt;br /&gt;
|on             = Force an image update on all linked monitors.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Give_Item_To_Player&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will make the player pick up a specific item.  Items are normally automatically picked up by the player when they get close enough to them.  All game items are specified in items.tbl.&lt;br /&gt;
|on             = Give the player the specified item.&lt;br /&gt;
|params         = * '''Item:''' Item class name, which is selectable from a drop-down list of all items from items.tbl.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Go_Undercover&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to put the player into undercover mode (as used in the RF campaign stealth sequences).&lt;br /&gt;
|on             = Set player to undercover.&lt;br /&gt;
|off            = Remove the undercover status of the player.&lt;br /&gt;
|params         = * '''Cover:''' Specify whether the undercover type is executive (as used in [[L6: Corporate HQ|Corporate HQ]]) or scientist (as used in [[L8: Medical Research|Medical Research]]).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Heal&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event adds or subtracts from the health of all linked objects.&lt;br /&gt;
|on             = Apply the Life Delta specified in this event's properties to all linked objects.&lt;br /&gt;
|params         = * '''Life Delta:''' Modification to perform to life. Negative values subtract life, positive values add life.&lt;br /&gt;
* '''Apply to player:''' If ticked, apply the Life Delta to the player as the On response, rather than applying it to linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Ignite_Entity&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to ignite linked [[RED Objects#Entity|entities]].&lt;br /&gt;
|on             = Ignite all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Make_Fly&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will make the linked AI enter fly mode.  If the AI is already flying, this event does nothing.  This event can only make AI fly if it normally has the ability (i.e., this event can’t make a Cave Slug fly).&lt;br /&gt;
|on             = Make linked AI enter fly mode.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Make_Invulnerable&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the invulnerability state of linked objects. By default, all objects are vulnerable.&lt;br /&gt;
|on             = Set all linked objects to invulnerable for the duration specified in the event properties.&lt;br /&gt;
|off            = Set all linked objects to vulnerable (ie. revert the effect of any previously applied Make_Invulnerable events)&lt;br /&gt;
|params         = * '''Duration:''' Specify a duration for the invulnerability. If 0, invulnerability lasts indefinitely.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Make_Walk&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will make the linked AI enter walk mode.  If the AI is already walking, this event does nothing.  This event can only make AI walk if it normally has the ability (i.e., this event can’t make a Grabber walk).&lt;br /&gt;
|on             = Make linked AI enter walk mode.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Modify_Rotating_Mover&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Speed up or slow down the movement of all linked rotating movers.&lt;br /&gt;
|on             = Apply the modification specified in the event properties to all linked rotating movers.&lt;br /&gt;
|params         = * '''Settings:''' Configure settings to increase or decrease all linked rotating movers by the percentage specified.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Mover_Pause&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event toggles the active state of linked movers.&lt;br /&gt;
|on             = Immediately pause all linked movers at their current position.&lt;br /&gt;
|off            = Resume the movement of all linked movers (ie. revert the effect of a previously applied Mover_Pause)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Particle_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the active state of linked [[RED Objects#Particle Emitter|particle emitters]]. The default state for particle emitters is controlled by the &amp;quot;Emitter is initially on&amp;quot; flag in the emitter properties.&lt;br /&gt;
|on             = Set all linked particle emitters to active/enabled.&lt;br /&gt;
|off            = Set all linked particle emitters to inactive/disabled.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Push_Region_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the active state of linked [[RED Objects#Push Region|push regions]]. The default state for push regions is active/enabled.&lt;br /&gt;
|on             = Set all linked push regions to active/enabled.&lt;br /&gt;
|off            = Set all linked push regions to inactive/disabled.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Reverse_Mover&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to immediately reverse the direction in which linked movers are currently moving. This event is linked to a [[RED Objects#Keyframe|keyframe]] object.&lt;br /&gt;
|on             = Reverse the direction of all linked movers that meet the condition specified in the event parameters.&lt;br /&gt;
|params         = * '''If Moving:''' Specify the directional condition for the application of the event. ie. This event will only take effect if the linked mover is moving in the specified direction when the event receives an On message.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Gravity&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Set the downward acceleration due to gravity applied to all objects in the world.&lt;br /&gt;
|on             = Override the default gravity (-9.8 m/s^2) with the value specified in the event properties.&lt;br /&gt;
|params         = * '''Gravity:''' Value for acceleration due to gravity, specified in m/s^2, and applied in the Y axis.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Liquid_Depth&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Linearly transition the liquid depth of the linked [[RED Objects#Room Effect|Room Effect]] object to a specified new depth over time.&lt;br /&gt;
|on             = Begin transitioning liquid depth according to settings configured in properties.&lt;br /&gt;
|params         = * '''Depth:''' Set the desired depth after the transition has completed.&lt;br /&gt;
* '''Time:''' How long in seconds it takes the liquid depth to transition to the event-configured depth from the configured depth value in the properties of the linked [[RED Objects#Room Effect|Room Effect]].&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Shake_Player&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will shake the viewpoint of the Player.&lt;br /&gt;
|on             = Start shaking the Player camera.&lt;br /&gt;
|params         = * '''Magnitude:''' How strong to make the shaking.  This value is the max amplitude of the shake in meters. &lt;br /&gt;
* '''Time:''' How long to shake the camera in seconds.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Skybox_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Can be used to rotate the skybox around the camera.&lt;br /&gt;
|on             = Start rotating as per values specified in the event properties. Rotation is always from -360 to 360, then loops.&lt;br /&gt;
|params         = * '''Axis:''' Axis to rotate the skybox around.&lt;br /&gt;
* '''Velocity:''' Velocity/speed of the rotation, specified in degrees-per-second (degrees/sec).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Strip_Player_Weapons&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Used to remove weapons from the player's inventory.&lt;br /&gt;
|on             = Remove all weapons and ammo the player currently has.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Switch_Model&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will change the model of all linked objects to the model filename that is contained in the event.&lt;br /&gt;
|on             = Change the model.&lt;br /&gt;
|params         = * '''Model filename:''' Disk filename (with extension) of the model to switch to.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Teleport&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will teleport all linked objects to the event location.  There are no special effects associated with the teleportation.&lt;br /&gt;
|on             = Teleport all linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Teleport_Player&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Teleports the player. This is the only event for which pitch/yaw is relevant, so the event displays a small red arrow showing you which direction it is facing.&lt;br /&gt;
|on             = Teleport the player to the event, setting their position (xyz) and rotation (pitch/yaw) to that of the Teleport_Player event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Turn_Off_Physics&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event controls whether linked [[RED Objects#Entity|entities]] have physics applied. Typically, this event is used alongside [[RED Event List#Detach|Detach]] to move entities via cranes or similar. Physics is enabled by default.&lt;br /&gt;
|on             = Turn off physics for all linked entities.&lt;br /&gt;
|off            = Turn on physics for all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Unhide&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Manipulate the visibility of linked object(s). Note that if this event is used to unhide an entity, the entity will not be &amp;quot;unhidden&amp;quot; until the next time its' root bone is out of the player's line of sight. Because of this, you will normally want to be sure to send an on message to an unhide event at a time the linked entity is out of the player's view.&lt;br /&gt;
|on             = Unhide all linked objects.&lt;br /&gt;
|off            = Hide all linked objects.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Special==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Activate_Capek_Shield&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event can be used to activate a Capek nanotech shield on-demand for entities that support it.&lt;br /&gt;
|on             = Activate nanotech shield for all linked entities (provided they are allowed to use it).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Countdown_Begin&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event is used to start an on-HUD countdown.&lt;br /&gt;
|on             = Start the countdown&lt;br /&gt;
|params         = * '''Time:''' Specify duration for the countdown (in seconds).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Countdown_End&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event is used to forcibly end an active countdown.&lt;br /&gt;
|on             = End the active countdown.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Defuse_Nuke&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event brings up the RF1 campaign endgame nuke puzzle sequence.&lt;br /&gt;
|on             = Display nuke puzzle.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Display_Fullscreen_Image&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = Displays a specified image/texture filename stretched to the player's window resolution. Note that [[Dash Faction]] is required for alpha channels on fullscreen images to function correctly.&lt;br /&gt;
|on             = Display the specified filename as a fullscreen image.&lt;br /&gt;
|off            = Stop displaying the fullscreen image.&lt;br /&gt;
|params         = * '''Filename:''' Image to display (normally .tga or .vbm). It's very important to ensure the data in this field is correct - a Display_Fullscreen_Image event that receives an on message but has no valid filename specified will result in an unrecoverable error (crash).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Fire_Weapon_No_Anim&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event is used in very niche circumstances to force a gun to fire without playing its normal animation. Typically, you would do this while already playing a properly-timed custom animation.&lt;br /&gt;
|on             = Force linked entities to fire their equipped weapon without playing a fire animation.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Never_Leave_Vehicle&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event stops the player from being able to leave a vehicle they're piloting.&lt;br /&gt;
|on             = Stop the player from being able to leave a vehicle.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Win_PS2_Demo&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event triggers the PS2 demo endgame sequence, which involves 3 demo upsell graphics (demo-upsell1.tga, demo-upsell2.tga, demo-upsell3.tga) and then drops back to the main menu.&lt;br /&gt;
|on             = Initiate PS2 demo endgame sequence.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Deprecated==&lt;br /&gt;
*The below events are not readily accessible via the [[RED Objects#Events|Events]] section of [[RED Functionality Overview#Object Mode|Object Mode]], but are referenced in '''events.tbl''' and/or [[RED]] documentation.&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Follow_Player&lt;br /&gt;
|category       = Deprecated&lt;br /&gt;
|description    = This Event will force all linked objects to follow and protect the Player.  This should only be used to make Hendrix follow (or stop following) the Player.&lt;br /&gt;
|on             = Make linked entities follow the Player.&lt;br /&gt;
|off            = Make linked entities stop following the Player.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Level_Transition_Marker&lt;br /&gt;
|category       = Deprecated&lt;br /&gt;
|description    = This is a special type of event which doesn’t respond to On or Off messages.  This event is used to maintain the correct positions and orientations off all objects in the transition areas between levels.  This event needs to be placed in the location of the trigger which causes level loading in the other level involved in the transition.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Light_State&lt;br /&gt;
|category       = Deprecated&lt;br /&gt;
|description    = This Event will set the state of any linked lights.  Currently this event can set a light on or off, but any light related changes (like making a light flash, change color, etc.) can be data within this event.&lt;br /&gt;
|on             = Change the state of all linked lights.&lt;br /&gt;
|params         = * '''State:''' On or Off.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Shield&lt;br /&gt;
|category       = Deprecated&lt;br /&gt;
|description    = This event will add the Shield Delta value to the shield of all linked objects. (this event was likely replaced by [[RED Event List#Armor|Armor]])&lt;br /&gt;
|on             = Add Shield Delta to all linked objects shields.&lt;br /&gt;
|params         = * '''Shield Delta:''' The amount of shield to add (you can decrease shield by using a negative number here).&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: RF1 Editing]]&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
[[Category: Archived RF1 Content]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=RED_Event_List&amp;diff=15087</id>
		<title>RED Event List</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=RED_Event_List&amp;diff=15087"/>
		<updated>2025-12-19T11:38:16Z</updated>

		<summary type="html">&lt;p&gt;Goober: /* AF_General */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BubbleNav|RF1Modding}}&lt;br /&gt;
This page lists all event scripting objects available in [[RED]]. To read more about how the scripting system itself works, see [[RED Objects#Events|Events]].&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction==&lt;br /&gt;
The events in categories prefixed with &amp;quot;AF_&amp;quot; are only available in [[Alpine Faction]]. If you don't see them listed, you should install [https://alpinefaction.com Alpine Faction] and launch RED through the Alpine Faction launcher.&lt;br /&gt;
&lt;br /&gt;
* For other level editing features and improvements that are specific to Alpine Faction, see [[Alpine Level Design]]&lt;br /&gt;
&lt;br /&gt;
==AF_Catalysts==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = AF_When_Dead&lt;br /&gt;
|category       = AF_Catalysts&lt;br /&gt;
|description    = Upgraded version of the stock &amp;quot;When_Dead&amp;quot; event. Does not require a slot in the savegame file, so there is no limit on the number of '''AF_When_Dead''' events that you can use in a single map. Also supports repeated activations, unlike the stock event.&lt;br /&gt;
|params         = * '''Activate on any dead:''' (bool1) If true, this event sends an on message each time a linked entity or clutter dies. If false, this event only sends a single on message at the time that all linked entities/clutter are dead.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Captured&lt;br /&gt;
|category       = AF_Catalysts&lt;br /&gt;
|description    = Fires a message to all linked triggers, movers, and events whenever a linked control point is captured by either team.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Picked_Up&lt;br /&gt;
|category       = AF_Catalysts&lt;br /&gt;
|description    = Fires a message to all linked triggers, movers, and events whenever a linked item is picked up by the player. Single player only.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AF_Flow==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Sequence&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Each activation of this event routes the message to the next link in sequential order. After the last link, the cycle resets and the first link is called. Note the order of links is determined by the order in which you add them.&lt;br /&gt;
|on             = Send an on signal to the next link in the sequence.&lt;br /&gt;
|params         = * '''Next index to activate:''' (int1) Next link index to be activated when this event processes an on message. This setting essentially allows you to jump to a specific point in the sequence when you wish.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Difficulty_Gate&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Tests if the game is set to the specified difficulty and forwards messages only if true.&lt;br /&gt;
|on             = Forward on signal to all links, if the game is set to the specified difficulty.&lt;br /&gt;
|params         = * '''Difficulty:''' (int1&amp;quot;) Difficulty to test against.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Valid_Gate&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Tests if the specified UID is a valid object and forwards messages only if true. In the case of objects that have life values (ie. clutter and entities), &amp;quot;valid&amp;quot; means alive.&lt;br /&gt;
|on             = Forward on signal to all links, if the specified object is valid.&lt;br /&gt;
|params         = * '''Object UID to test:''' (int1&amp;quot;) Object UID to be checked.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Inside_Gate&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Tests if an object (default: the player who activated the event) is in a specified area of the map. Forwards messages if true.&lt;br /&gt;
|on             = Forward on signal to all links if test passes.&lt;br /&gt;
|params         = * '''UID (trigger/room) to check:''' (int1) Region to be checked. Can be a trigger UID or a room UID (Room Effect).&lt;br /&gt;
* '''What to check for:''' (int2) Object to be checked. If not specified, defaults to the player who activated the event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Owner_Gate&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Tests whether a specific control point has a specified owner.&lt;br /&gt;
|params         = * '''Handler UID:''' (int1) UID of the Capture_Point_Handler to test.&lt;br /&gt;
* '''Required owner:''' (int2) Owner to check.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Switch_Random&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Randomly select one of this event's links and send an on message to it.&lt;br /&gt;
|on             = Send an on message to a randomly selected link.&lt;br /&gt;
|params         = * '''No repeats until all used:''' (bool1) Never choose the same link twice until all links have been chosen at least once.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Route_Node&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = In-line multi-purpose flow control node. Has several options to control what the processed message looks like.&lt;br /&gt;
|params         = * '''Node behavior:''' (int1) What should the Route_Node do to the message?&lt;br /&gt;
* '''Non-retriggerable delay:''' (bool1) If true, ignore any received messages while a message is currently queued on this Route_Node. Has no effect unless a delay is specified.&lt;br /&gt;
* '''Clear trigger info:''' (bool2) If true, clear information about the trigger and object that initiated the message when passing through this Route_Node.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Gate&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Performs a test on a specified goal (integer variable). Forwards message to links only if test passes.&lt;br /&gt;
|on             = Perform test and forward message if passed.&lt;br /&gt;
|params         = * '''Goal to test:''' (str1) Specify the goal name to which the test is applied.&lt;br /&gt;
* '''Test to run:''' (int1)&lt;br /&gt;
* '''Value to test against:''' (int2) Note: ignored if testing against initial value.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Scope_Gate&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Performs a test on various aspects of the game. Forwards message to links only if test passes.&lt;br /&gt;
|on             = Perform test and forward message if passed.&lt;br /&gt;
|params         = * '''Scope to test against:''' (int1) Test to run&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Gametype_Gate&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Performs a test on the gametype of the game. Forwards message to links only if test passes. Works only in multiplayer (test will always fail in single player).&lt;br /&gt;
|on             = Perform test and forward message if passed.&lt;br /&gt;
|params         = * '''Check for gametype:''' (int1) Gametype to test against.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AF_Gameplay==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Capture_Point_Handler&lt;br /&gt;
|category       = AF_Gameplay&lt;br /&gt;
|description    = Controls the behaviour of a multiplayer control point (capture zone) for [[King of the Hill]], [[Damage Control]], and [[Revolt]]. Uses a linked [[RED Objects#Triggers|trigger]] to define the capture area and manages capture progress, ownership, and HUD display.&lt;br /&gt;
|params         = * '''Name:''' (str1) Display name for the control point.&lt;br /&gt;
* '''Outline offset:''' (float1) Vertical offset for the circular outline drawn on the ground around the capture area. Useful for keeping the outline visible above uneven terrain.&lt;br /&gt;
* '''Cap rate multiplier:''' (float2) Multiplier applied to the base capture rate. '''0.0''' = no multiplier (same as '''1.0'''). Higher values capture faster; values between '''0.0''' and '''1.0''' capture slower.&lt;br /&gt;
* '''Stage:''' Specify stage for this point. Only used in [[Revolt]].&lt;br /&gt;
* '''Cylindrical Trigger:''' If true, treat the linked trigger as a vertical cylinder instead of using its raw shape. For sphere triggers, the cylinder radius matches the sphere radius. For box triggers, the cylinder diameter uses the longest edge of the box.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AF_General==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Clone_Entity&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Creates a clone of the linked entity with the same properties and settings as its source.&lt;br /&gt;
|on             = Create a clone at the event's position, and with the event's orientation.&lt;br /&gt;
|params         = * '''Clone is hostile to player:''' (bool1) If true, clone is actively hostile to player and will engage if it spots the player.&lt;br /&gt;
* '''Go to player:''' (bool2) If true, the clone will begin running to the player immediately when created. Assuming there is a valid route to the player's position, it will find them.&lt;br /&gt;
* '''Link event UID to clone:''' (int1) If specified, when a clone is created, a link will be created between the specified event UID and the clone.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Player_World_Collide&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Control whether the player collides with level geometry.&lt;br /&gt;
|on             = Collision = true (default)&lt;br /&gt;
|off            = Collision = false&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Level_Hardness&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Set the hardness for the loaded level (size of geo craters).&lt;br /&gt;
|on             = Set hardness to the specified value.&lt;br /&gt;
|params         = * '''Hardness:''' (int1) The hardness value to set.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Difficulty&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Set the difficulty level of the game.&lt;br /&gt;
|on             = Set difficulty to the specified value.&lt;br /&gt;
|params         = * '''Difficulty:''' (int1) Set the game's difficulty.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Skybox&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Set the room to project as skybox.&lt;br /&gt;
|on             = Set skybox information as configured.&lt;br /&gt;
|params         = * '''Skybox room UID:''' (int1) Specify the room UID (by ''Room Effect'') to set as the sky room.&lt;br /&gt;
* '''Eye anchor UID:''' (int2) Specify the ''Anchor_Marker'' event to use as the eye position inside the sky room.&lt;br /&gt;
* '''Use relative position:''' (bool1) If true, apply relative position mapping camera position in world space to eye position in the sky room.&lt;br /&gt;
* '''Relative position scale:''' (float1) Scale/ratio to apply to relative position camera mapping.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Item_Drop&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Changes the configured item drop for linked entities.&lt;br /&gt;
|on             = Set item drop.&lt;br /&gt;
|params         = * '''Item class to drop:''' (str1) Item name to drop. Event will have no effect unless this is a valid item name (from [[items.tbl]])&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Life&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Changes the base life value of linked clutter and/or entities.&lt;br /&gt;
|on             = Set the base life value.&lt;br /&gt;
|params         = *'''New life value:''' (int1)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = AF_Heal&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Heal or damage the player (or multiple players in multiplayer) by a specific amount. Can also apply to armour.&lt;br /&gt;
|on             = Apply the configured change.&lt;br /&gt;
|params         = * '''Amount:''' (int1) What numeric change should be applied&lt;br /&gt;
* '''Apply change to:''' (int2) Who should it be applied to?&lt;br /&gt;
* '''Apply to armor instead:''' (bool1) If true, apply the change to armour rather than health.&lt;br /&gt;
* '''Allow super values:''' (bool2) If true, accomodate for super health/super armour. If false, the resulting health or armour after applying the change is clamped to 0-100. If true, it's clamped to 0-200.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = World_HUD_Sprite&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Display a sprite in the world, most often used for providing the player with directions (for example, to an objective).&lt;br /&gt;
|on             = Enable the sprite.&lt;br /&gt;
|off            = Disable the sprite.&lt;br /&gt;
|params         = * '''Start enabled:''' (bool1) Is the sprite initially enabled when the map loads?&lt;br /&gt;
* '''Render mode:''' (int1) How is the sprite rendered? Overdraw means players can see the sprite through all level geometry.&lt;br /&gt;
* '''Render scale:''' (float1) Adjust the scale of the sprite (1.0 for normal size).&lt;br /&gt;
* '''Sprite filename:''' (str1) Specify the filename to use for the sprite when rendered. If ''Sprite filename blue'' is also specified, this field is the sprite rendered for the red team in multiplayer.&lt;br /&gt;
* '''Sprite filename blue:''' (str2) Specify the filename to use for the sprite when rendered for the blue team only (in multiplayer). If this field isn't specified, the sprite filename specified for ''Sprite filename'' will be shown to all players regardless of team.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Capture_Point_Owner&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Forces linked control points to a specific ownership state. Must be run on the server, ignored when run on a client.&lt;br /&gt;
|on             = Set all linked control points to the specified owner.&lt;br /&gt;
|params         = * '''Owner:''' (int1) Desired owner.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = HUD_Message&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Display a green HUD message in the bottom middle of the screen (like the helper text when you pick up items).&lt;br /&gt;
|on             = Display the HUD message for the configured duration.&lt;br /&gt;
|params         = * '''Message text:''' (str1) The message to display.&lt;br /&gt;
* '''Duration:''' (float1) Duration in seconds the message will be displayed. Note the message will go away quicker if another HUD message is displayed (such as from another HUD_Message event, or from the player picking up an item)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Play_Video&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Play a .bik format video.&lt;br /&gt;
|on             = Play the video specified.&lt;br /&gt;
|params         = * '''Video filename:''' (str1) The filename of the video to play.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Force_Unhide&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Force unhide/hide an object with no conditions. Virtually identical to the stock &amp;quot;Unhide&amp;quot; event, except this one will always do it, regardless of player line of sight or any other factors.&lt;br /&gt;
|on             = Unhide linked objects.&lt;br /&gt;
|off            = Hide linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Fog_Far_Clip&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Sets the far clip plane used for distance fog.&lt;br /&gt;
|on             = Set far clip plane to specified value (in metres).&lt;br /&gt;
|params         = * '''Far clip distance:''' (int1) Far clip plane distance.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Entity_Flag&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Turn on or off entity flags on linked entities.&lt;br /&gt;
|on             = Turn selected flag on.&lt;br /&gt;
|off            = Turn selected flag off.&lt;br /&gt;
|params         = * '''Flag to set:''' (int1)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Debris&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Set the debris and explosion parameters for linked clutter and/or entities.&lt;br /&gt;
|on             = Set values as specified.&lt;br /&gt;
|params         = * '''Debris filename:''' (str1) Filename of debris to set.&lt;br /&gt;
* '''Explosion VClip index:''' (int1) Index of VClip to play when object dies (from [[vclip.tbl]]).&lt;br /&gt;
* '''Explosion VClip radius:''' (float1)&lt;br /&gt;
* '''Debris sound set:''' (str2) Sound set to use for debris collision (from [[foley.tbl]]). (Only supported on clutter)&lt;br /&gt;
* '''Debris velocity:''' (float2) Velocity of debris. (Only supported on clutter)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = AF_Teleport_Player&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Teleport player to the event's position, with the event's orientation.&lt;br /&gt;
|on             = Teleport player.&lt;br /&gt;
|params         = * '''Reset player velocity:''' (bool1) If true, set player velocity to 0 m/s after teleporting. If false, player details velocity, but it is translated based on the orientation of the event.&lt;br /&gt;
* '''Eject player from vehicle:''' (bool2) If true, if the player is in a vehicle, eject them from the vehicle and teleport them just as a player. If false, teleport their vehicle. Has no effect in multiplayer or if the player is not in a vehicle.&lt;br /&gt;
* '''Entrance VClip:''' (str1) VClip name (from [[vclip.tbl]]) to play at the player's position just before they teleport.&lt;br /&gt;
* '''Exit VClip:''' (str2) VClip name (from [[vclip.tbl]]) to play at the teleport destination when the player arrives.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Fog_Color&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Sets the distance fog colour.&lt;br /&gt;
|on             = Set configured fog colour.&lt;br /&gt;
|params         = * '''Fog color:''' (str1) Specify fog colour to set. Uses the same format as Level Properties - e.g. specifying &amp;quot;&amp;lt;255, 255, 255&amp;gt;&amp;quot; would result in pure white fog.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Light_Color&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Sets the colour of dynamic lights&lt;br /&gt;
|on             = Set light colour.&lt;br /&gt;
|params         = * '''Light color:''' (str1) Specify light colour to set. Uses the same format as Light properties - e.g. specifying &amp;quot;&amp;lt;255, 255, 255&amp;gt;&amp;quot; would result in pure white light.&lt;br /&gt;
* '''Random color instead:''' (bool1) If true, generate a random color instead.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Modify_Respawn_Point&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Sets which teams spawn at the linked respawn points.&lt;br /&gt;
|params         = * '''Red team:''' (bool1) Allow the red team to spawn here.&lt;br /&gt;
* '''Blue team:''' (bool2) Allow the blue team to spawn here.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AF_Utility==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Variable&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Reconfigure a variable on linked Alpine Faction event(s).&lt;br /&gt;
|on             = Updates the variable of the linked event(s) based on the provided configuration.&lt;br /&gt;
|params         = * '''Variable handle:''' The variable to be set. This corresponds to the variable names provided in parentheses on the properties panel for Alpine events.&lt;br /&gt;
* '''Value for int1 or int2:''' If variable handle is int1 or int2, set the variable on the linked event(s) to this value.&lt;br /&gt;
* '''Value for delay, float1, or float2:''' If variable handle is delay, float1, or float2, set the variable on the linked event(s) to this value.&lt;br /&gt;
* '''Value for bool1 or bool2:''' If variable handle is bool1 or bool2, set the variable on the linked event(s) to this value.&lt;br /&gt;
* '''Value for str1 or str2:''' If variable handle is str1 or str2, set the variable on the linked event(s) to this value.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Remove_Link&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Used to remove links between objects. By default (with &amp;quot;Purge all links&amp;quot; turned off), removes links between objects this event is linked to.&lt;br /&gt;
|on             = Remove links.&lt;br /&gt;
|params         = * '''Purge all links:''' (bool1) Instead, remove all links between every object this event is linked to and any other objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Math&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Used to perform math operations on goals (integer variables). Applies the operation to level (non-persistent) goals, as well as persistent goals that are loaded.&lt;br /&gt;
|on             = Apply the operation.&lt;br /&gt;
|params         = * '''Goal to edit:''' (str1) Specify the goal name to apply the operation.&lt;br /&gt;
* '''Operation to perform:''' (int1)&lt;br /&gt;
* '''Value to use for operation:''' (int2)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Anchor_Marker_Orient&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Same as the '''Anchor_Marker''' event, except this one respect the orientation (direction) of the event. Can be used to, among other things, rotate particle emitters or push regions using movers.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Clear_Queued&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Clears queued message (if any) on all linked events. Queued messages are messages that are queued per a configured delay value on that event.&lt;br /&gt;
|on             = Clear queued messages.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Add_Link&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Adds links from the specified source event to each object this event is linked to.&lt;br /&gt;
|on             = Add links.&lt;br /&gt;
|params         = * '''Source event UID:''' (int1) Source event for the links.&lt;br /&gt;
* '''Link inbound:''' (bool1) Reverse the operation - create links from each object this event is linked to, inbound to the specified source event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Anchor_Marker&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Used to &amp;quot;drag along&amp;quot; some object types that can't normally be added to moving groups. Simply add the Anchor Marker to the moving group, then link the Anchor_Marker to the objects you want to bring. That object/those objects will have their position locked to the position of the Anchor_Marker event as it travels with the mover. Supports Lights (Dynamic only), Particle Emitters, and Push Regions. Can also be used in conjunction with '''Set_Skybox''' to specify the &amp;quot;eye&amp;quot; location within the skybox.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Light_State&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Used to toggle Lights (Dynamic only) on/off as desired.&lt;br /&gt;
|on             = Turn linked lights on.&lt;br /&gt;
|off            = Turn linked lights off.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AI_Actions==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Attack&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = Used to force AI entities to attack objects.&lt;br /&gt;
|on             = Make attacker specified by attacker uid param attack the object the Attack event is linked to.&lt;br /&gt;
|params         = * '''Attacker UID:''' Primary, Secondary, Flare.  What type of weapon to use.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Drop_Point_Marker&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This is a special type of Event which doesn’t respond to On or Off messages.  This event is used as a position where AI will drop off objects while in AI_COLLECTING_MODE. This is how Grabber robots can drop their rocks off at a specific location.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Drop_Weapon&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event is used to force linked [[RED Objects#Entity|entities]] to drop any weapons they may be holding.&lt;br /&gt;
|on             = Force all linked entities to drop their equipped weapon.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Follow_Waypoints&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will force all linked objects to follow a specified waypoint list, with a specific following method.&lt;br /&gt;
|on             = Begin following the waypoints.  An AI will use the closest waypoint as the location to begin the path following.&lt;br /&gt;
|off            = Stop following the current waypoint path.&lt;br /&gt;
|params         = * '''Waypoint List:''' Name of the waypoint list that the AI should follow.&lt;br /&gt;
* '''Always Face Player:''' If true, the AI will always face the player while following their waypoints.&lt;br /&gt;
* '''Follow Method:''' This determines how the AI will behave when the last waypoint node is reached.  The choices are: &lt;br /&gt;
*# One way:	follow the waypoints to the last node and stop.&lt;br /&gt;
*# Loop: follow the waypoints to the last node, then return to the start and repeat.&lt;br /&gt;
*# Ping Pong: follow the waypoints to the last node, then follow the nodes back to the start (repeat).&lt;br /&gt;
* '''Run:''' If ticked, the linked objects will attempt to run rather than walk while following the waypoint list.&lt;br /&gt;
* '''Always Face Player:''' If ticked, the linked objects will always look at the player while following the waypoint list.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goto&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will make all linked entities travel to the Event location.&lt;br /&gt;
|on             = Make linked entities start moving towards Event location.&lt;br /&gt;
|params         = * '''Run:''' If ticked, the linked objects will attempt to run rather than walk.&lt;br /&gt;
* '''Always Face Player:''' If ticked, the linked objects will always look at the player while following the path.&lt;br /&gt;
* '''Face Player When Finished:''' If ticked, AI will face the player immediately when they get to the Goto event location. &lt;br /&gt;
* '''Override Current Behavior:''' If ticked, AI will ignore any other pathing until reaching the Goto event location. This includes the AI not chasing the player.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goto_Player&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will make all linked entities travel to the Player position.  The linked entities will continue to pathfind to the Player until they have line-of-sight.  When the entities can see the Player, they will return to their default AI.&lt;br /&gt;
|on             = Make linked entities start moving towards the Player.&lt;br /&gt;
|params         = * '''Run:''' If ticked, the linked objects will attempt to run rather than walk.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Headlamp_State&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event toggles the headlamp state of all linked [[RED Objects#Entity|entities]] (realistically, vehicles). Default state is for headlamps to be disabled.&lt;br /&gt;
|on             = Turn on headlamps for all linked entities.&lt;br /&gt;
|off            = Turn off headlamps for all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Holster_Player_Weapon&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will forcefully holster the player's weapon.&lt;br /&gt;
|on             = Holster the player weapon.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Holster_Weapon&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will forcefully holster the weapon of any linked entities.&lt;br /&gt;
|on             = Holster the weapons of all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Look_At&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This Event will cause any linked AI to turn and face the Event location.&lt;br /&gt;
|on             = Make linked AI look at the Event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Play_Animation&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will cause a linked AI to play a specific animation.  If the animation is a state animation (i.e., a looping animation) then it will replace the current animation state for the AI.  If the animation is an action animation (i.e., a one-time animation) then it is blended with the current state.&lt;br /&gt;
|on             = Play the animation.&lt;br /&gt;
|params         = * '''Animation:''' Name of the animation. This is selectable from a list of possible animations for the object that is linked. &lt;br /&gt;
* '''Hold Last Frame:''' If true, the model will stay in the last frame of animation. This is only valid if the animation is defined as an action animation.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_AI_Mode&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event is used to set the AI mode of all linked [[RED Objects#Entity|entities]], overriding the AI mode configured in the properties of those entities.&lt;br /&gt;
|on             = Set AI mode of linked entities to the mode specified in the event paramets. &lt;br /&gt;
|params         = * '''AI Mode:''' Specify desired AI mode.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Friendliness&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will set the Friendliness of all linked objects.&lt;br /&gt;
|on             = Change the Friendliness of an entity.&lt;br /&gt;
|params         = * '''Friendliness:''' The friendliness is selectable from a drop-down list, and consists of the following choices:&lt;br /&gt;
*# Unfriendly: AI will attack the player on sight.&lt;br /&gt;
*# Neutral: AI will only attack the player if provoked.&lt;br /&gt;
*# Friendly: AI will not attack the player, and may attack entities that are attacking the player.&lt;br /&gt;
*# Outcast: AI will attack anything it sees.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Shoot_At&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will cause all linked AI to shoot at the Event location.  The AI will continue to shoot at the Event until an Off message is received.&lt;br /&gt;
|on             = Make all linked AI attack the Event location.&lt;br /&gt;
|off            = Make all linked AI stop attacking the Event location.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Shoot_Once&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will make all linked AI shoot once in the direction they are currently facing.&lt;br /&gt;
|on             = Fire a single time.&lt;br /&gt;
|params         = * '''Shoot Type:''' Primary, Secondary, Flare.  What type of weapon to use.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Catalysts==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Cyclic_Timer&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event will send an On message to all linked Events at a specified interval.  This Event has to receive an On Message before it will begin sending out messages.&lt;br /&gt;
|on             = Begin sending On messages at the specified interval.&lt;br /&gt;
|params         = * '''Time:''' The interval in seconds between sending On messages to all linked events.&lt;br /&gt;
* '''Max Sends:''' The number of times the Event will send out On messages.&lt;br /&gt;
* '''Send Forever:''' If true, the Max Sends field is ignored, and the Cyclic Timer sends On messages forever.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Delay&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = Forwards a response it receives to all linked events after the specified delay duration.&lt;br /&gt;
|on             = Send (forward) an on response to all linked events following the delay duration.&lt;br /&gt;
|off            = Send (forward) an off response to all linked events following the delay duration.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Invert&lt;br /&gt;
|image          = Icon_Event_L.png&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event will change On messages to Off messages (and Off to On) before forwarding them to any linked Events.&lt;br /&gt;
|on             = Change message to off and forward to all linked events.&lt;br /&gt;
|off            = Change message to on and forward to all linked events.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Switch&lt;br /&gt;
|image          = Icon_Event_C.png&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event behaves like a switch that remembers it’s state (on or off).  This Event can be used to turn lights on or off, and can be used to let the player activate special events.  If the Event is linked to a VFX, this VFX is used as the model for the switch (the default state of the VFX should be off, with the animation taking the VFX to the on state).&lt;br /&gt;
|on             = Toggle the state of the switch.  The behavior of the switch is controlled through the Event parameters.&lt;br /&gt;
|params         = * '''Initial State:''' The initial state of the switch (either on or off).&lt;br /&gt;
* '''Behavior:''' This says what kind of signal the switch will send (toggle between on and off, always send an on, always send an off).&lt;br /&gt;
* '''Sound:''' Disk filename (including the .wav extension) of the sound to play when the switch is thrown.&lt;br /&gt;
* '''Max Throws:''' How many times the switch can be thrown. &lt;br /&gt;
* '''Infinite Throws:''' If true, the Max Throws parameter is ignored, and the switch can be thrown an infinite number of times.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Armor_Reaches&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when the object to which the When_Armor_Reaches event is linked reaches the specified amount of armor, either by armor being added or by suffering damage.&lt;br /&gt;
|params         = * '''Armor:''' Specify amount of armor (integer) at which the event will activate (send an On message).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Countdown_Over&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when a countdown ends. (countdowns are started with [[RED Event List#Countdown_Begin|Countdown_Begin]])&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Countdown_Reaches&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when a countdown reaches the specified value. (countdowns are started with [[RED Event List#Countdown_Begin|Countdown_Begin]])&lt;br /&gt;
|params         = * '''Time:''' Specify the desired time remaining at which this event should activate (send an On message).&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Cutscene_Over&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when a cutscene ends. (cutscenes are started with [[RED Event List#Cutscene|Cutscene]])&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Dead&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event will send an On message to all linked Events when all linked objects have died.  This Event is used when you want to do something when a specific object has been destroyed. Note that savegame files can store only 20 When_Dead events in a given level, so if you're mapping for single player, it's highly recommended to include no more than 20 When_Dead events in a single map.&lt;br /&gt;
|params         = * '''Activate When Any Dead:''' Modifies the default behaviour of the event such that it sends an On message each time a linked object dies, rather than the default behaviour of only sending a single On message when all linked objects have been destroyed.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Enter_Vehicle&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when the player enters the linked vehicle [[RED Objects#Entity|entity]].&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Hit&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event will send an On message to all linked Events when a linked object (normally an [[RED Objects#Entity|entity]]) suffers damage from a weapon (normally due to being shot by the player).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Life_Reaches&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when the object to which the When_Life_Reaches event is linked reaches the specified amount of life, either by being healed or by suffering damage.&lt;br /&gt;
|params         = * '''Life:''' Specify amount of life (integer) at which the event will activate (send an On message).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Try_Exit_Vehicle&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when the player attempts to leave a vehicle [[RED Objects#Entity|entity]] they are piloting.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Level==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Alarm&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event toggles the level alarm.&lt;br /&gt;
|on             = Turn alarm on.&lt;br /&gt;
|off            = Turn alarm off.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Alarm_Siren&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event plays an audible alarm sound, without turning the level alarm on (as the [[RED Event List#Alarm|Alarm]] event does).&lt;br /&gt;
|on             = Play an alarm sound.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Cutscene&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event is used to activate an in-game cutscene. This event is very powerful, but also very complicated, with loads of options configured in the event properties. Please refer to the [[RF1_Editing_Main_Page#Events_and_Scripting|cutscene tutorials on the RF1 Editing Main Page]] for information on how to use cutscenes.&lt;br /&gt;
|on             = Play the cutscene.&lt;br /&gt;
|params         = * Many - please see tutorials linked in Description above.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Enable_Navpoint&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event toggles the active state of all linked [[RED Objects#Nav Point|Nav Points]].&lt;br /&gt;
|on             = Enables all linked Nav Points.&lt;br /&gt;
|off            = Disables all linked Nav Points.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Endgame&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event triggers an endgame sequence, and displays text from [[endgame.tbl]]. The Script Name parameter of the Endgame event is used to specify which entry from endgame.tbl is displayed to the player as an on response from this event.&lt;br /&gt;
|on             = End the game, and display scrolling text from endgame.tbl that corresponds to the Script Name of this event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Explode&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause an explosion to occur at the event location.  The explosion can be made to cause a geomod, and you can control the amount of damage caused by the explosion.&lt;br /&gt;
|on             = Make the explosion happen.&lt;br /&gt;
|params         = * '''Damage:''' The amount of damage caused by the explosion.  This is the damage that is applied to any object within the explosion range.&lt;br /&gt;
* '''Type:''' Small, Medium, Large.  This field isn’t properly supported yet.  We need to list a selection of different explosions to choose from. &lt;br /&gt;
* '''Geomod:''' If true, the explosion will apply a geomod at the center of the explosion.  The hardness of the rock where the explosion occurs is used to determine if a geomod is possible.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Check&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event can either block or forward On messages, depending on the state of an associated goal_set Event.&lt;br /&gt;
|on             = Foward On messages if min_count exceeds the current count value of the associated goal_set Event&lt;br /&gt;
|params         = * '''Goal to Check:''' Script name for the associated Goal_Create Event.&lt;br /&gt;
* '''Minimum Count:''' The miniumum value that the associated goal variable must have before forwarding messages.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Create&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will create a goal variable (integer) when it receives an On message. The variable name will be the script name of the Goal_Create event.&lt;br /&gt;
|on             = Create a goal variable.&lt;br /&gt;
|params         = * '''Start Count:''' The inital value of the goal variable (this will be zero in most cases). &lt;br /&gt;
* '''Persistent:''' If ticked, the goal variable will be available to be set/checked in future levels, and will be saved in savegame files perpetually. Note that there is a maximum of 64 persistent goal variables that may be saved in savegame files.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Set&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will increment a goal variable every time it receives an On message (Off messages will cause the count value to decrement).&lt;br /&gt;
|on             = Increment count by one.&lt;br /&gt;
|off            = Decrement count by one.&lt;br /&gt;
|params         = * '''Goal to Set:''' The goal variable name to set.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Item_Pickup_State&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event is used to toggle the active state of linked [[RED_Objects#Item|Items]] (ie. whether they can be picked up). The default behaviour of Items is enabled (they can be picked up).&lt;br /&gt;
|on             = Set all linked items to enabled (they can be picked up).&lt;br /&gt;
|off            = Set all linked items to disabled (they cannot be picked up).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Load_Level&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause the specified level to load.  The Player will be taken to the new level seamlessly. Note that a level cannot have two Load_Level events with the same Script Name, so you should change the Script Name for each Load_Level event you place to something that makes sense to you.&lt;br /&gt;
|on             = Load the specified level.&lt;br /&gt;
|params         = * '''Filename:''' Disk filename (including the .rfl or .d4l extension) of the level to load.&lt;br /&gt;
* '''Hard Level Break:''' Force the player to the [[RED Objects#Player Start|Player Start]] position in the destination level, rather than the default behaviour of attempting a seamless transition.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Message&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will make a sound file play and display the associated text on the Player HUD.&lt;br /&gt;
|on             = Play the message.&lt;br /&gt;
|params         = * '''Persona:''' Selectable from drop-down list of names which is generated from personas.tbl. Select &amp;quot;none&amp;quot; if you don’t want the message to be from a persona.&lt;br /&gt;
* '''Voice Filename:''' Disk filename (including .wav extension) of the sound file to play.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Monitor_State&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event is used for initializing and configuring security monitors and mirrors.&lt;br /&gt;
|on             = Set all screen [[RED Objects#Clutter|clutter objects]] this event is linked to to cycle between video feeds from all camera [[RED Objects#Entity|entities]] this event is linked to, according to the parameters configured in the event properties.&lt;br /&gt;
|params         = * '''Initial State:''' Control whether the linked monitors should be on or off as a result of this event's on response.&lt;br /&gt;
* '''Cycle Delay:''' Time, in seconds, that linked monitors display a given video feed. If this parameter is set to 1.0 for example, the feed will cycle to the next linked camera every 1 second.&lt;br /&gt;
* '''Continuously update monitor:''' If ticked, monitor will constantly be updated. Severe performance impact, but is needed for video feeds of dynamic scenes.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Music_Start&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = Plays a specified music track.&lt;br /&gt;
|on             = Start playing the music track specified in the event's properties.&lt;br /&gt;
|params         = * '''Filename:''' Filename (.wav) of the music track to play.&lt;br /&gt;
* '''Use Effects Volume:''' If ticked, the music track volume is scaled using the Sound Effects volume slider, rather than the Music slider.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Music_Stop&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event stops all music currently being played.&lt;br /&gt;
|on             = Stop playing all music tracks (after fading them out according to this event's properties).&lt;br /&gt;
|params         = * '''Fade Time:''' Length of time any currently playing music tracks will take to fade out to silence. (if set to 0, music will immediately stop playing)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Play_Sound&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause a sound to play.  The sound can be a 3D or 2D sound, and it can be made to loop.&lt;br /&gt;
|on             = Start playing the sound.&lt;br /&gt;
|off            = Stop the sound, if it is playing.&lt;br /&gt;
|params         = * '''Sound Filename:''' Disk filename of the sound to play (including .wav extension). &lt;br /&gt;
* '''Min Distance:''' Distance (in meters) where the sound begins to drop off in volume.  If you don’t want the sound to be 3D, set the Min Distance to zero.&lt;br /&gt;
* '''Looping:''' If true, the sound will play looping (until you stop it by sending an Off message to this Event).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Play_Vclip&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event is used to play a specified vclip (from [[vclip.tbl]])&lt;br /&gt;
|on             = Play the specified vclip at the event location.&lt;br /&gt;
|params         = * '''Vclip Name:''' Specify the vclip to play.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Remove_Object&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will destroy all objects linked to the event.  Objects will disappear instantly (i.e., without their death sequence).&lt;br /&gt;
|on             = Kill all linked objects immediately.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Slay_Object&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will kill all linked objects, and allow their death sequence to play.&lt;br /&gt;
|on             = Kill all linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Spawn_Object&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause a specific object type to be created.  The object is created at the event location, with an identity matrix orientation.&lt;br /&gt;
|on             = Spawn the object at the Event location.&lt;br /&gt;
|params         = * '''Object Type:''' Entity, Clutter, Item.  Selectable from a drop-down list.&lt;br /&gt;
* '''Object Class:''' The classname of the object.  Selectable from a drop-down list.  The choice here depends on the Object Type that has been selected.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Swap_Textures&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause the specified textures (up to 2 per event) to be used on all linked objects.&lt;br /&gt;
|on             = Swap the textures.&lt;br /&gt;
|params         = * '''Texture Num:''' Texture index to swap (starts from 0).&lt;br /&gt;
* '''Texture Filename:''' Disk filename (including extension) of the texture bitmap to use.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Modifiers==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Armor&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event adds or subtracts from the armor of all linked objects.&lt;br /&gt;
|on             = Apply the Armor Delta specified in this event's properties to all linked objects.&lt;br /&gt;
|params         = * '''Armor Delta:''' Modification to perform to armor. Negative values subtract armor, positive values add armor.&lt;br /&gt;
* '''Apply to player:''' If ticked, apply the Armor Delta to the player as the On response, rather than applying it to linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Black_Out_Player&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Fade the player's camera out to, or in from, full black.&lt;br /&gt;
|on             = Linearly fade the player's camera to full black over the time specified in the event properties.&lt;br /&gt;
|off            = Immediately set the player's camera to full black and then linearly fade in to full visibility over the time specified in the event properties.&lt;br /&gt;
|params         = * '''Blackout Time:''' Specify the time over which the blackout occurs.&lt;br /&gt;
* '''Kill Player After Blackout:''' If ticked, the player will be killed after the Blackout Time has elapsed.&lt;br /&gt;
* '''End Level After Blackout:''' If ticked, the level will end after the Blackout Time has elapsed, with a scrolling endgame message pulled from [[endgame.tbl]]. The Script Name for the Black_Out_Player event is used to specify the endgame.tbl entry that is displayed.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Bolt_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the active state of linked [[RED Objects#Bolt Emitter|bolt emitters]]. The default state for bolt emitters is controlled by the &amp;quot;Emitter is initially on&amp;quot; flag in the emitter properties.&lt;br /&gt;
|on             = Set all linked bolt emitters to active/enabled.&lt;br /&gt;
|off            = Set all linked bolt emitters to inactive/disabled.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Clear_Endgame_If_Killed&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to allow [[RED Objects#Entity|entities]] which would ordinarily trigger an endgame sequence when killed, to be killed without triggering that sequence.&lt;br /&gt;
|on             = Remove the &amp;quot;End Game If Killed&amp;quot; flag from all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Continuous_Damage&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Cause the AI or Player which triggered the event to receive damage (use a trigger reset time of 0 to make the damage continuous).&lt;br /&gt;
|on             = Apply damage to the entity who triggered the event. Any linked objects will also receive damage.&lt;br /&gt;
|params         = * '''Damage Per Sec:''' Damage per second applied. (0 is instant death)&lt;br /&gt;
* '''Damage Type:''' melee, bullet, armor piercing bullet, explosive, fire, energy, electrical, acid, scalding.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Detach&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event controls whether linked objects (normally [[RED Objects#Entity|entities]]) are attached to [[RED Groups#Moving Groups|movers]] they intersect (like cranes, elevators, etc.)&lt;br /&gt;
|on             = Detach linked objects from moving groups they intersect.&lt;br /&gt;
|off            = Attach linked objects to moving groups they intersect.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Fog_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the active state of the level's distance-based fog (fog uses the settings configured in [[RED_User_Guide#Level_Properties|Level Properties]], and the default behaviour is for fog to be enabled).&lt;br /&gt;
|on             = Set fog to enabled/active.&lt;br /&gt;
|off            = Set fog to disabled/inactive.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Force_Monitor_Update&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event forces linked monitors to refresh their displayed image.&lt;br /&gt;
|on             = Force an image update on all linked monitors.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Give_Item_To_Player&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will make the player pick up a specific item.  Items are normally automatically picked up by the player when they get close enough to them.  All game items are specified in items.tbl.&lt;br /&gt;
|on             = Give the player the specified item.&lt;br /&gt;
|params         = * '''Item:''' Item class name, which is selectable from a drop-down list of all items from items.tbl.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Go_Undercover&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to put the player into undercover mode (as used in the RF campaign stealth sequences).&lt;br /&gt;
|on             = Set player to undercover.&lt;br /&gt;
|off            = Remove the undercover status of the player.&lt;br /&gt;
|params         = * '''Cover:''' Specify whether the undercover type is executive (as used in [[L6: Corporate HQ|Corporate HQ]]) or scientist (as used in [[L8: Medical Research|Medical Research]]).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Heal&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event adds or subtracts from the health of all linked objects.&lt;br /&gt;
|on             = Apply the Life Delta specified in this event's properties to all linked objects.&lt;br /&gt;
|params         = * '''Life Delta:''' Modification to perform to life. Negative values subtract life, positive values add life.&lt;br /&gt;
* '''Apply to player:''' If ticked, apply the Life Delta to the player as the On response, rather than applying it to linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Ignite_Entity&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to ignite linked [[RED Objects#Entity|entities]].&lt;br /&gt;
|on             = Ignite all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Make_Fly&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will make the linked AI enter fly mode.  If the AI is already flying, this event does nothing.  This event can only make AI fly if it normally has the ability (i.e., this event can’t make a Cave Slug fly).&lt;br /&gt;
|on             = Make linked AI enter fly mode.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Make_Invulnerable&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the invulnerability state of linked objects. By default, all objects are vulnerable.&lt;br /&gt;
|on             = Set all linked objects to invulnerable for the duration specified in the event properties.&lt;br /&gt;
|off            = Set all linked objects to vulnerable (ie. revert the effect of any previously applied Make_Invulnerable events)&lt;br /&gt;
|params         = * '''Duration:''' Specify a duration for the invulnerability. If 0, invulnerability lasts indefinitely.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Make_Walk&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will make the linked AI enter walk mode.  If the AI is already walking, this event does nothing.  This event can only make AI walk if it normally has the ability (i.e., this event can’t make a Grabber walk).&lt;br /&gt;
|on             = Make linked AI enter walk mode.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Modify_Rotating_Mover&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Speed up or slow down the movement of all linked rotating movers.&lt;br /&gt;
|on             = Apply the modification specified in the event properties to all linked rotating movers.&lt;br /&gt;
|params         = * '''Settings:''' Configure settings to increase or decrease all linked rotating movers by the percentage specified.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Mover_Pause&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event toggles the active state of linked movers.&lt;br /&gt;
|on             = Immediately pause all linked movers at their current position.&lt;br /&gt;
|off            = Resume the movement of all linked movers (ie. revert the effect of a previously applied Mover_Pause)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Particle_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the active state of linked [[RED Objects#Particle Emitter|particle emitters]]. The default state for particle emitters is controlled by the &amp;quot;Emitter is initially on&amp;quot; flag in the emitter properties.&lt;br /&gt;
|on             = Set all linked particle emitters to active/enabled.&lt;br /&gt;
|off            = Set all linked particle emitters to inactive/disabled.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Push_Region_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the active state of linked [[RED Objects#Push Region|push regions]]. The default state for push regions is active/enabled.&lt;br /&gt;
|on             = Set all linked push regions to active/enabled.&lt;br /&gt;
|off            = Set all linked push regions to inactive/disabled.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Reverse_Mover&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to immediately reverse the direction in which linked movers are currently moving. This event is linked to a [[RED Objects#Keyframe|keyframe]] object.&lt;br /&gt;
|on             = Reverse the direction of all linked movers that meet the condition specified in the event parameters.&lt;br /&gt;
|params         = * '''If Moving:''' Specify the directional condition for the application of the event. ie. This event will only take effect if the linked mover is moving in the specified direction when the event receives an On message.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Gravity&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Set the downward acceleration due to gravity applied to all objects in the world.&lt;br /&gt;
|on             = Override the default gravity (-9.8 m/s^2) with the value specified in the event properties.&lt;br /&gt;
|params         = * '''Gravity:''' Value for acceleration due to gravity, specified in m/s^2, and applied in the Y axis.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Liquid_Depth&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Linearly transition the liquid depth of the linked [[RED Objects#Room Effect|Room Effect]] object to a specified new depth over time.&lt;br /&gt;
|on             = Begin transitioning liquid depth according to settings configured in properties.&lt;br /&gt;
|params         = * '''Depth:''' Set the desired depth after the transition has completed.&lt;br /&gt;
* '''Time:''' How long in seconds it takes the liquid depth to transition to the event-configured depth from the configured depth value in the properties of the linked [[RED Objects#Room Effect|Room Effect]].&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Shake_Player&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will shake the viewpoint of the Player.&lt;br /&gt;
|on             = Start shaking the Player camera.&lt;br /&gt;
|params         = * '''Magnitude:''' How strong to make the shaking.  This value is the max amplitude of the shake in meters. &lt;br /&gt;
* '''Time:''' How long to shake the camera in seconds.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Skybox_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Can be used to rotate the skybox around the camera.&lt;br /&gt;
|on             = Start rotating as per values specified in the event properties. Rotation is always from -360 to 360, then loops.&lt;br /&gt;
|params         = * '''Axis:''' Axis to rotate the skybox around.&lt;br /&gt;
* '''Velocity:''' Velocity/speed of the rotation, specified in degrees-per-second (degrees/sec).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Strip_Player_Weapons&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Used to remove weapons from the player's inventory.&lt;br /&gt;
|on             = Remove all weapons and ammo the player currently has.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Switch_Model&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will change the model of all linked objects to the model filename that is contained in the event.&lt;br /&gt;
|on             = Change the model.&lt;br /&gt;
|params         = * '''Model filename:''' Disk filename (with extension) of the model to switch to.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Teleport&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will teleport all linked objects to the event location.  There are no special effects associated with the teleportation.&lt;br /&gt;
|on             = Teleport all linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Teleport_Player&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Teleports the player. This is the only event for which pitch/yaw is relevant, so the event displays a small red arrow showing you which direction it is facing.&lt;br /&gt;
|on             = Teleport the player to the event, setting their position (xyz) and rotation (pitch/yaw) to that of the Teleport_Player event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Turn_Off_Physics&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event controls whether linked [[RED Objects#Entity|entities]] have physics applied. Typically, this event is used alongside [[RED Event List#Detach|Detach]] to move entities via cranes or similar. Physics is enabled by default.&lt;br /&gt;
|on             = Turn off physics for all linked entities.&lt;br /&gt;
|off            = Turn on physics for all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Unhide&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Manipulate the visibility of linked object(s). Note that if this event is used to unhide an entity, the entity will not be &amp;quot;unhidden&amp;quot; until the next time its' root bone is out of the player's line of sight. Because of this, you will normally want to be sure to send an on message to an unhide event at a time the linked entity is out of the player's view.&lt;br /&gt;
|on             = Unhide all linked objects.&lt;br /&gt;
|off            = Hide all linked objects.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Special==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Activate_Capek_Shield&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event can be used to activate a Capek nanotech shield on-demand for entities that support it.&lt;br /&gt;
|on             = Activate nanotech shield for all linked entities (provided they are allowed to use it).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Countdown_Begin&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event is used to start an on-HUD countdown.&lt;br /&gt;
|on             = Start the countdown&lt;br /&gt;
|params         = * '''Time:''' Specify duration for the countdown (in seconds).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Countdown_End&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event is used to forcibly end an active countdown.&lt;br /&gt;
|on             = End the active countdown.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Defuse_Nuke&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event brings up the RF1 campaign endgame nuke puzzle sequence.&lt;br /&gt;
|on             = Display nuke puzzle.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Display_Fullscreen_Image&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = Displays a specified image/texture filename stretched to the player's window resolution. Note that [[Dash Faction]] is required for alpha channels on fullscreen images to function correctly.&lt;br /&gt;
|on             = Display the specified filename as a fullscreen image.&lt;br /&gt;
|off            = Stop displaying the fullscreen image.&lt;br /&gt;
|params         = * '''Filename:''' Image to display (normally .tga or .vbm). It's very important to ensure the data in this field is correct - a Display_Fullscreen_Image event that receives an on message but has no valid filename specified will result in an unrecoverable error (crash).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Fire_Weapon_No_Anim&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event is used in very niche circumstances to force a gun to fire without playing its normal animation. Typically, you would do this while already playing a properly-timed custom animation.&lt;br /&gt;
|on             = Force linked entities to fire their equipped weapon without playing a fire animation.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Never_Leave_Vehicle&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event stops the player from being able to leave a vehicle they're piloting.&lt;br /&gt;
|on             = Stop the player from being able to leave a vehicle.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Win_PS2_Demo&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event triggers the PS2 demo endgame sequence, which involves 3 demo upsell graphics (demo-upsell1.tga, demo-upsell2.tga, demo-upsell3.tga) and then drops back to the main menu.&lt;br /&gt;
|on             = Initiate PS2 demo endgame sequence.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Deprecated==&lt;br /&gt;
*The below events are not readily accessible via the [[RED Objects#Events|Events]] section of [[RED Functionality Overview#Object Mode|Object Mode]], but are referenced in '''events.tbl''' and/or [[RED]] documentation.&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Follow_Player&lt;br /&gt;
|category       = Deprecated&lt;br /&gt;
|description    = This Event will force all linked objects to follow and protect the Player.  This should only be used to make Hendrix follow (or stop following) the Player.&lt;br /&gt;
|on             = Make linked entities follow the Player.&lt;br /&gt;
|off            = Make linked entities stop following the Player.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Level_Transition_Marker&lt;br /&gt;
|category       = Deprecated&lt;br /&gt;
|description    = This is a special type of event which doesn’t respond to On or Off messages.  This event is used to maintain the correct positions and orientations off all objects in the transition areas between levels.  This event needs to be placed in the location of the trigger which causes level loading in the other level involved in the transition.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Light_State&lt;br /&gt;
|category       = Deprecated&lt;br /&gt;
|description    = This Event will set the state of any linked lights.  Currently this event can set a light on or off, but any light related changes (like making a light flash, change color, etc.) can be data within this event.&lt;br /&gt;
|on             = Change the state of all linked lights.&lt;br /&gt;
|params         = * '''State:''' On or Off.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Shield&lt;br /&gt;
|category       = Deprecated&lt;br /&gt;
|description    = This event will add the Shield Delta value to the shield of all linked objects. (this event was likely replaced by [[RED Event List#Armor|Armor]])&lt;br /&gt;
|on             = Add Shield Delta to all linked objects shields.&lt;br /&gt;
|params         = * '''Shield Delta:''' The amount of shield to add (you can decrease shield by using a negative number here).&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: RF1 Editing]]&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
[[Category: Archived RF1 Content]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=RED_Event_List&amp;diff=15086</id>
		<title>RED Event List</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=RED_Event_List&amp;diff=15086"/>
		<updated>2025-12-19T11:35:22Z</updated>

		<summary type="html">&lt;p&gt;Goober: /* AF_General */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BubbleNav|RF1Modding}}&lt;br /&gt;
This page lists all event scripting objects available in [[RED]]. To read more about how the scripting system itself works, see [[RED Objects#Events|Events]].&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction==&lt;br /&gt;
The events in categories prefixed with &amp;quot;AF_&amp;quot; are only available in [[Alpine Faction]]. If you don't see them listed, you should install [https://alpinefaction.com Alpine Faction] and launch RED through the Alpine Faction launcher.&lt;br /&gt;
&lt;br /&gt;
* For other level editing features and improvements that are specific to Alpine Faction, see [[Alpine Level Design]]&lt;br /&gt;
&lt;br /&gt;
==AF_Catalysts==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = AF_When_Dead&lt;br /&gt;
|category       = AF_Catalysts&lt;br /&gt;
|description    = Upgraded version of the stock &amp;quot;When_Dead&amp;quot; event. Does not require a slot in the savegame file, so there is no limit on the number of '''AF_When_Dead''' events that you can use in a single map. Also supports repeated activations, unlike the stock event.&lt;br /&gt;
|params         = * '''Activate on any dead:''' (bool1) If true, this event sends an on message each time a linked entity or clutter dies. If false, this event only sends a single on message at the time that all linked entities/clutter are dead.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Captured&lt;br /&gt;
|category       = AF_Catalysts&lt;br /&gt;
|description    = Fires a message to all linked triggers, movers, and events whenever a linked control point is captured by either team.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Picked_Up&lt;br /&gt;
|category       = AF_Catalysts&lt;br /&gt;
|description    = Fires a message to all linked triggers, movers, and events whenever a linked item is picked up by the player. Single player only.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AF_Flow==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Sequence&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Each activation of this event routes the message to the next link in sequential order. After the last link, the cycle resets and the first link is called. Note the order of links is determined by the order in which you add them.&lt;br /&gt;
|on             = Send an on signal to the next link in the sequence.&lt;br /&gt;
|params         = * '''Next index to activate:''' (int1) Next link index to be activated when this event processes an on message. This setting essentially allows you to jump to a specific point in the sequence when you wish.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Difficulty_Gate&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Tests if the game is set to the specified difficulty and forwards messages only if true.&lt;br /&gt;
|on             = Forward on signal to all links, if the game is set to the specified difficulty.&lt;br /&gt;
|params         = * '''Difficulty:''' (int1&amp;quot;) Difficulty to test against.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Valid_Gate&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Tests if the specified UID is a valid object and forwards messages only if true. In the case of objects that have life values (ie. clutter and entities), &amp;quot;valid&amp;quot; means alive.&lt;br /&gt;
|on             = Forward on signal to all links, if the specified object is valid.&lt;br /&gt;
|params         = * '''Object UID to test:''' (int1&amp;quot;) Object UID to be checked.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Inside_Gate&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Tests if an object (default: the player who activated the event) is in a specified area of the map. Forwards messages if true.&lt;br /&gt;
|on             = Forward on signal to all links if test passes.&lt;br /&gt;
|params         = * '''UID (trigger/room) to check:''' (int1) Region to be checked. Can be a trigger UID or a room UID (Room Effect).&lt;br /&gt;
* '''What to check for:''' (int2) Object to be checked. If not specified, defaults to the player who activated the event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Owner_Gate&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Tests whether a specific control point has a specified owner.&lt;br /&gt;
|params         = * '''Handler UID:''' (int1) UID of the Capture_Point_Handler to test.&lt;br /&gt;
* '''Required owner:''' (int2) Owner to check.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Switch_Random&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Randomly select one of this event's links and send an on message to it.&lt;br /&gt;
|on             = Send an on message to a randomly selected link.&lt;br /&gt;
|params         = * '''No repeats until all used:''' (bool1) Never choose the same link twice until all links have been chosen at least once.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Route_Node&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = In-line multi-purpose flow control node. Has several options to control what the processed message looks like.&lt;br /&gt;
|params         = * '''Node behavior:''' (int1) What should the Route_Node do to the message?&lt;br /&gt;
* '''Non-retriggerable delay:''' (bool1) If true, ignore any received messages while a message is currently queued on this Route_Node. Has no effect unless a delay is specified.&lt;br /&gt;
* '''Clear trigger info:''' (bool2) If true, clear information about the trigger and object that initiated the message when passing through this Route_Node.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Gate&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Performs a test on a specified goal (integer variable). Forwards message to links only if test passes.&lt;br /&gt;
|on             = Perform test and forward message if passed.&lt;br /&gt;
|params         = * '''Goal to test:''' (str1) Specify the goal name to which the test is applied.&lt;br /&gt;
* '''Test to run:''' (int1)&lt;br /&gt;
* '''Value to test against:''' (int2) Note: ignored if testing against initial value.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Scope_Gate&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Performs a test on various aspects of the game. Forwards message to links only if test passes.&lt;br /&gt;
|on             = Perform test and forward message if passed.&lt;br /&gt;
|params         = * '''Scope to test against:''' (int1) Test to run&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Gametype_Gate&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Performs a test on the gametype of the game. Forwards message to links only if test passes. Works only in multiplayer (test will always fail in single player).&lt;br /&gt;
|on             = Perform test and forward message if passed.&lt;br /&gt;
|params         = * '''Check for gametype:''' (int1) Gametype to test against.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AF_Gameplay==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Capture_Point_Handler&lt;br /&gt;
|category       = AF_Gameplay&lt;br /&gt;
|description    = Controls the behaviour of a multiplayer control point (capture zone) for [[King of the Hill]], [[Damage Control]], and [[Revolt]]. Uses a linked [[RED Objects#Triggers|trigger]] to define the capture area and manages capture progress, ownership, and HUD display.&lt;br /&gt;
|params         = * '''Name:''' (str1) Display name for the control point.&lt;br /&gt;
* '''Outline offset:''' (float1) Vertical offset for the circular outline drawn on the ground around the capture area. Useful for keeping the outline visible above uneven terrain.&lt;br /&gt;
* '''Cap rate multiplier:''' (float2) Multiplier applied to the base capture rate. '''0.0''' = no multiplier (same as '''1.0'''). Higher values capture faster; values between '''0.0''' and '''1.0''' capture slower.&lt;br /&gt;
* '''Stage:''' Specify stage for this point. Only used in [[Revolt]].&lt;br /&gt;
* '''Cylindrical Trigger:''' If true, treat the linked trigger as a vertical cylinder instead of using its raw shape. For sphere triggers, the cylinder radius matches the sphere radius. For box triggers, the cylinder diameter uses the longest edge of the box.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AF_General==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Clone_Entity&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Creates a clone of the linked entity with the same properties and settings as its source.&lt;br /&gt;
|on             = Create a clone at the event's position, and with the event's orientation.&lt;br /&gt;
|params         = * '''Clone is hostile to player:''' (bool1) If true, clone is actively hostile to player and will engage if it spots the player.&lt;br /&gt;
* '''Go to player:''' (bool2) If true, the clone will begin running to the player immediately when created. Assuming there is a valid route to the player's position, it will find them.&lt;br /&gt;
* '''Link event UID to clone:''' (int1) If specified, when a clone is created, a link will be created between the specified event UID and the clone.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Player_World_Collide&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Control whether the player collides with level geometry.&lt;br /&gt;
|on             = Collision = true (default)&lt;br /&gt;
|off            = Collision = false&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Level_Hardness&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Set the hardness for the loaded level (size of geo craters).&lt;br /&gt;
|on             = Set hardness to the specified value.&lt;br /&gt;
|params         = * '''Hardness:''' (int1) The hardness value to set.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Difficulty&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Set the difficulty level of the game.&lt;br /&gt;
|on             = Set difficulty to the specified value.&lt;br /&gt;
|params         = * '''Difficulty:''' (int1) Set the game's difficulty.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Skybox&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Set the room to project as skybox.&lt;br /&gt;
|on             = Set skybox information as configured.&lt;br /&gt;
|params         = * '''Skybox room UID:''' (int1) Specify the room UID (by ''Room Effect'') to set as the sky room.&lt;br /&gt;
* '''Eye anchor UID:''' (int2) Specify the ''Anchor_Marker'' event to use as the eye position inside the sky room.&lt;br /&gt;
* '''Use relative position:''' (bool1) If true, apply relative position mapping camera position in world space to eye position in the sky room.&lt;br /&gt;
* '''Relative position scale:''' (float1) Scale/ratio to apply to relative position camera mapping.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Item_Drop&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Changes the configured item drop for linked entities.&lt;br /&gt;
|on             = Set item drop.&lt;br /&gt;
|params         = * '''Item class to drop:''' (str1) Item name to drop. Event will have no effect unless this is a valid item name (from [[items.tbl]])&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Life&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Changes the base life value of linked clutter and/or entities.&lt;br /&gt;
|on             = Set the base life value.&lt;br /&gt;
|params         = *'''New life value:''' (int1)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = AF_Heal&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Heal or damage the player (or multiple players in multiplayer) by a specific amount. Can also apply to armour.&lt;br /&gt;
|on             = Apply the configured change.&lt;br /&gt;
|params         = * '''Amount:''' (int1) What numeric change should be applied&lt;br /&gt;
* '''Apply change to:''' (int2) Who should it be applied to?&lt;br /&gt;
* '''Apply to armor instead:''' (bool1) If true, apply the change to armour rather than health.&lt;br /&gt;
* '''Allow super values:''' (bool2) If true, accomodate for super health/super armour. If false, the resulting health or armour after applying the change is clamped to 0-100. If true, it's clamped to 0-200.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = World_HUD_Sprite&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Display a sprite in the world, most often used for providing the player with directions (for example, to an objective).&lt;br /&gt;
|on             = Enable the sprite.&lt;br /&gt;
|off            = Disable the sprite.&lt;br /&gt;
|params         = * '''Start enabled:''' (bool1) Is the sprite initially enabled when the map loads?&lt;br /&gt;
* '''Render mode:''' (int1) How is the sprite rendered? Overdraw means players can see the sprite through all level geometry.&lt;br /&gt;
* '''Render scale:''' (float1) Adjust the scale of the sprite (1.0 for normal size).&lt;br /&gt;
* '''Sprite filename:''' (str1) Specify the filename to use for the sprite when rendered. If ''Sprite filename blue'' is also specified, this field is the sprite rendered for the red team in multiplayer.&lt;br /&gt;
* '''Sprite filename blue:''' (str2) Specify the filename to use for the sprite when rendered for the blue team only (in multiplayer). If this field isn't specified, the sprite filename specified for ''Sprite filename'' will be shown to all players regardless of team.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Capture_Point_Owner&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Forces linked control points to a specific ownership state. Must be run on the server, ignored when run on a client.&lt;br /&gt;
|on             = Set all linked control points to the specified owner.&lt;br /&gt;
|params         = * '''Owner:''' (int1) Desired owner.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = HUD_Message&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Display a green HUD message in the bottom middle of the screen (like the helper text when you pick up items).&lt;br /&gt;
|on             = Display the HUD message for the configured duration.&lt;br /&gt;
|params         = * '''Message text:''' (str1) The message to display.&lt;br /&gt;
* '''Duration:''' (float1) Duration in seconds the message will be displayed. Note the message will go away quicker if another HUD message is displayed (such as from another HUD_Message event, or from the player picking up an item)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Play_Video&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Play a .bik format video.&lt;br /&gt;
|on             = Play the video specified.&lt;br /&gt;
|params         = * '''Video filename:''' (str1) The filename of the video to play.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Force_Unhide&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Force unhide/hide an object with no conditions. Virtually identical to the stock &amp;quot;Unhide&amp;quot; event, except this one will always do it, regardless of player line of sight or any other factors.&lt;br /&gt;
|on             = Unhide linked objects.&lt;br /&gt;
|off            = Hide linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Fog_Far_Clip&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Sets the far clip plane used for distance fog.&lt;br /&gt;
|on             = Set far clip plane to specified value (in metres).&lt;br /&gt;
|params         = * '''Far clip distance:''' (int1) Far clip plane distance.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Entity_Flag&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Turn on or off entity flags on linked entities.&lt;br /&gt;
|on             = Turn selected flag on.&lt;br /&gt;
|off            = Turn selected flag off.&lt;br /&gt;
|params         = * '''Flag to set:''' (int1)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Debris&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Set the debris and explosion parameters for linked clutter and/or entities.&lt;br /&gt;
|on             = Set values as specified.&lt;br /&gt;
|params         = * '''Debris filename:''' (str1) Filename of debris to set.&lt;br /&gt;
* '''Explosion VClip index:''' (int1) Index of VClip to play when object dies (from [[vclip.tbl]]).&lt;br /&gt;
* '''Explosion VClip radius:''' (float1)&lt;br /&gt;
* '''Debris sound set:''' (str2) Sound set to use for debris collision (from [[foley.tbl]]). (Only supported on clutter)&lt;br /&gt;
* '''Debris velocity:''' (float2) Velocity of debris. (Only supported on clutter)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = AF_Teleport_Player&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Teleport player to the event's position, with the event's orientation.&lt;br /&gt;
|on             = Teleport player.&lt;br /&gt;
|params         = * '''Reset player velocity:''' (bool1) If true, set player velocity to 0 m/s after teleporting. If false, player details velocity, but it is translated based on the orientation of the event.&lt;br /&gt;
* '''Eject player from vehicle:''' (bool2) If true, if the player is in a vehicle, eject them from the vehicle and teleport them just as a player. If false, teleport their vehicle. Has no effect in multiplayer or if the player is not in a vehicle.&lt;br /&gt;
* '''Entrance VClip:''' (str1) VClip name (from [[vclip.tbl]]) to play at the player's position just before they teleport.&lt;br /&gt;
* '''Exit VClip:''' (str2) VClip name (from [[vclip.tbl]]) to play at the teleport destination when the player arrives.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Fog_Color&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Sets the distance fog colour.&lt;br /&gt;
|on             = Set configured fog colour.&lt;br /&gt;
|params         = * '''Fog color:''' (str1) Specify fog colour to set. Uses the same format as Level Properties - e.g. specifying &amp;quot;&amp;lt;255, 255, 255&amp;gt;&amp;quot; would result in pure white fog.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Light_Color&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Sets the colour of dynamic lights&lt;br /&gt;
|on             = Set light colour.&lt;br /&gt;
|params         = * '''Light color:''' (str1) Specify light colour to set. Uses the same format as Light properties - e.g. specifying &amp;quot;&amp;lt;255, 255, 255&amp;gt;&amp;quot; would result in pure white light.&lt;br /&gt;
* '''Random color instead:''' (bool1) If true, generate a random color instead.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AF_Utility==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Variable&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Reconfigure a variable on linked Alpine Faction event(s).&lt;br /&gt;
|on             = Updates the variable of the linked event(s) based on the provided configuration.&lt;br /&gt;
|params         = * '''Variable handle:''' The variable to be set. This corresponds to the variable names provided in parentheses on the properties panel for Alpine events.&lt;br /&gt;
* '''Value for int1 or int2:''' If variable handle is int1 or int2, set the variable on the linked event(s) to this value.&lt;br /&gt;
* '''Value for delay, float1, or float2:''' If variable handle is delay, float1, or float2, set the variable on the linked event(s) to this value.&lt;br /&gt;
* '''Value for bool1 or bool2:''' If variable handle is bool1 or bool2, set the variable on the linked event(s) to this value.&lt;br /&gt;
* '''Value for str1 or str2:''' If variable handle is str1 or str2, set the variable on the linked event(s) to this value.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Remove_Link&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Used to remove links between objects. By default (with &amp;quot;Purge all links&amp;quot; turned off), removes links between objects this event is linked to.&lt;br /&gt;
|on             = Remove links.&lt;br /&gt;
|params         = * '''Purge all links:''' (bool1) Instead, remove all links between every object this event is linked to and any other objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Math&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Used to perform math operations on goals (integer variables). Applies the operation to level (non-persistent) goals, as well as persistent goals that are loaded.&lt;br /&gt;
|on             = Apply the operation.&lt;br /&gt;
|params         = * '''Goal to edit:''' (str1) Specify the goal name to apply the operation.&lt;br /&gt;
* '''Operation to perform:''' (int1)&lt;br /&gt;
* '''Value to use for operation:''' (int2)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Anchor_Marker_Orient&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Same as the '''Anchor_Marker''' event, except this one respect the orientation (direction) of the event. Can be used to, among other things, rotate particle emitters or push regions using movers.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Clear_Queued&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Clears queued message (if any) on all linked events. Queued messages are messages that are queued per a configured delay value on that event.&lt;br /&gt;
|on             = Clear queued messages.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Add_Link&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Adds links from the specified source event to each object this event is linked to.&lt;br /&gt;
|on             = Add links.&lt;br /&gt;
|params         = * '''Source event UID:''' (int1) Source event for the links.&lt;br /&gt;
* '''Link inbound:''' (bool1) Reverse the operation - create links from each object this event is linked to, inbound to the specified source event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Anchor_Marker&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Used to &amp;quot;drag along&amp;quot; some object types that can't normally be added to moving groups. Simply add the Anchor Marker to the moving group, then link the Anchor_Marker to the objects you want to bring. That object/those objects will have their position locked to the position of the Anchor_Marker event as it travels with the mover. Supports Lights (Dynamic only), Particle Emitters, and Push Regions. Can also be used in conjunction with '''Set_Skybox''' to specify the &amp;quot;eye&amp;quot; location within the skybox.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Light_State&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Used to toggle Lights (Dynamic only) on/off as desired.&lt;br /&gt;
|on             = Turn linked lights on.&lt;br /&gt;
|off            = Turn linked lights off.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AI_Actions==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Attack&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = Used to force AI entities to attack objects.&lt;br /&gt;
|on             = Make attacker specified by attacker uid param attack the object the Attack event is linked to.&lt;br /&gt;
|params         = * '''Attacker UID:''' Primary, Secondary, Flare.  What type of weapon to use.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Drop_Point_Marker&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This is a special type of Event which doesn’t respond to On or Off messages.  This event is used as a position where AI will drop off objects while in AI_COLLECTING_MODE. This is how Grabber robots can drop their rocks off at a specific location.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Drop_Weapon&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event is used to force linked [[RED Objects#Entity|entities]] to drop any weapons they may be holding.&lt;br /&gt;
|on             = Force all linked entities to drop their equipped weapon.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Follow_Waypoints&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will force all linked objects to follow a specified waypoint list, with a specific following method.&lt;br /&gt;
|on             = Begin following the waypoints.  An AI will use the closest waypoint as the location to begin the path following.&lt;br /&gt;
|off            = Stop following the current waypoint path.&lt;br /&gt;
|params         = * '''Waypoint List:''' Name of the waypoint list that the AI should follow.&lt;br /&gt;
* '''Always Face Player:''' If true, the AI will always face the player while following their waypoints.&lt;br /&gt;
* '''Follow Method:''' This determines how the AI will behave when the last waypoint node is reached.  The choices are: &lt;br /&gt;
*# One way:	follow the waypoints to the last node and stop.&lt;br /&gt;
*# Loop: follow the waypoints to the last node, then return to the start and repeat.&lt;br /&gt;
*# Ping Pong: follow the waypoints to the last node, then follow the nodes back to the start (repeat).&lt;br /&gt;
* '''Run:''' If ticked, the linked objects will attempt to run rather than walk while following the waypoint list.&lt;br /&gt;
* '''Always Face Player:''' If ticked, the linked objects will always look at the player while following the waypoint list.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goto&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will make all linked entities travel to the Event location.&lt;br /&gt;
|on             = Make linked entities start moving towards Event location.&lt;br /&gt;
|params         = * '''Run:''' If ticked, the linked objects will attempt to run rather than walk.&lt;br /&gt;
* '''Always Face Player:''' If ticked, the linked objects will always look at the player while following the path.&lt;br /&gt;
* '''Face Player When Finished:''' If ticked, AI will face the player immediately when they get to the Goto event location. &lt;br /&gt;
* '''Override Current Behavior:''' If ticked, AI will ignore any other pathing until reaching the Goto event location. This includes the AI not chasing the player.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goto_Player&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will make all linked entities travel to the Player position.  The linked entities will continue to pathfind to the Player until they have line-of-sight.  When the entities can see the Player, they will return to their default AI.&lt;br /&gt;
|on             = Make linked entities start moving towards the Player.&lt;br /&gt;
|params         = * '''Run:''' If ticked, the linked objects will attempt to run rather than walk.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Headlamp_State&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event toggles the headlamp state of all linked [[RED Objects#Entity|entities]] (realistically, vehicles). Default state is for headlamps to be disabled.&lt;br /&gt;
|on             = Turn on headlamps for all linked entities.&lt;br /&gt;
|off            = Turn off headlamps for all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Holster_Player_Weapon&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will forcefully holster the player's weapon.&lt;br /&gt;
|on             = Holster the player weapon.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Holster_Weapon&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will forcefully holster the weapon of any linked entities.&lt;br /&gt;
|on             = Holster the weapons of all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Look_At&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This Event will cause any linked AI to turn and face the Event location.&lt;br /&gt;
|on             = Make linked AI look at the Event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Play_Animation&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will cause a linked AI to play a specific animation.  If the animation is a state animation (i.e., a looping animation) then it will replace the current animation state for the AI.  If the animation is an action animation (i.e., a one-time animation) then it is blended with the current state.&lt;br /&gt;
|on             = Play the animation.&lt;br /&gt;
|params         = * '''Animation:''' Name of the animation. This is selectable from a list of possible animations for the object that is linked. &lt;br /&gt;
* '''Hold Last Frame:''' If true, the model will stay in the last frame of animation. This is only valid if the animation is defined as an action animation.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_AI_Mode&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event is used to set the AI mode of all linked [[RED Objects#Entity|entities]], overriding the AI mode configured in the properties of those entities.&lt;br /&gt;
|on             = Set AI mode of linked entities to the mode specified in the event paramets. &lt;br /&gt;
|params         = * '''AI Mode:''' Specify desired AI mode.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Friendliness&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will set the Friendliness of all linked objects.&lt;br /&gt;
|on             = Change the Friendliness of an entity.&lt;br /&gt;
|params         = * '''Friendliness:''' The friendliness is selectable from a drop-down list, and consists of the following choices:&lt;br /&gt;
*# Unfriendly: AI will attack the player on sight.&lt;br /&gt;
*# Neutral: AI will only attack the player if provoked.&lt;br /&gt;
*# Friendly: AI will not attack the player, and may attack entities that are attacking the player.&lt;br /&gt;
*# Outcast: AI will attack anything it sees.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Shoot_At&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will cause all linked AI to shoot at the Event location.  The AI will continue to shoot at the Event until an Off message is received.&lt;br /&gt;
|on             = Make all linked AI attack the Event location.&lt;br /&gt;
|off            = Make all linked AI stop attacking the Event location.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Shoot_Once&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will make all linked AI shoot once in the direction they are currently facing.&lt;br /&gt;
|on             = Fire a single time.&lt;br /&gt;
|params         = * '''Shoot Type:''' Primary, Secondary, Flare.  What type of weapon to use.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Catalysts==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Cyclic_Timer&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event will send an On message to all linked Events at a specified interval.  This Event has to receive an On Message before it will begin sending out messages.&lt;br /&gt;
|on             = Begin sending On messages at the specified interval.&lt;br /&gt;
|params         = * '''Time:''' The interval in seconds between sending On messages to all linked events.&lt;br /&gt;
* '''Max Sends:''' The number of times the Event will send out On messages.&lt;br /&gt;
* '''Send Forever:''' If true, the Max Sends field is ignored, and the Cyclic Timer sends On messages forever.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Delay&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = Forwards a response it receives to all linked events after the specified delay duration.&lt;br /&gt;
|on             = Send (forward) an on response to all linked events following the delay duration.&lt;br /&gt;
|off            = Send (forward) an off response to all linked events following the delay duration.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Invert&lt;br /&gt;
|image          = Icon_Event_L.png&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event will change On messages to Off messages (and Off to On) before forwarding them to any linked Events.&lt;br /&gt;
|on             = Change message to off and forward to all linked events.&lt;br /&gt;
|off            = Change message to on and forward to all linked events.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Switch&lt;br /&gt;
|image          = Icon_Event_C.png&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event behaves like a switch that remembers it’s state (on or off).  This Event can be used to turn lights on or off, and can be used to let the player activate special events.  If the Event is linked to a VFX, this VFX is used as the model for the switch (the default state of the VFX should be off, with the animation taking the VFX to the on state).&lt;br /&gt;
|on             = Toggle the state of the switch.  The behavior of the switch is controlled through the Event parameters.&lt;br /&gt;
|params         = * '''Initial State:''' The initial state of the switch (either on or off).&lt;br /&gt;
* '''Behavior:''' This says what kind of signal the switch will send (toggle between on and off, always send an on, always send an off).&lt;br /&gt;
* '''Sound:''' Disk filename (including the .wav extension) of the sound to play when the switch is thrown.&lt;br /&gt;
* '''Max Throws:''' How many times the switch can be thrown. &lt;br /&gt;
* '''Infinite Throws:''' If true, the Max Throws parameter is ignored, and the switch can be thrown an infinite number of times.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Armor_Reaches&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when the object to which the When_Armor_Reaches event is linked reaches the specified amount of armor, either by armor being added or by suffering damage.&lt;br /&gt;
|params         = * '''Armor:''' Specify amount of armor (integer) at which the event will activate (send an On message).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Countdown_Over&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when a countdown ends. (countdowns are started with [[RED Event List#Countdown_Begin|Countdown_Begin]])&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Countdown_Reaches&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when a countdown reaches the specified value. (countdowns are started with [[RED Event List#Countdown_Begin|Countdown_Begin]])&lt;br /&gt;
|params         = * '''Time:''' Specify the desired time remaining at which this event should activate (send an On message).&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Cutscene_Over&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when a cutscene ends. (cutscenes are started with [[RED Event List#Cutscene|Cutscene]])&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Dead&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event will send an On message to all linked Events when all linked objects have died.  This Event is used when you want to do something when a specific object has been destroyed. Note that savegame files can store only 20 When_Dead events in a given level, so if you're mapping for single player, it's highly recommended to include no more than 20 When_Dead events in a single map.&lt;br /&gt;
|params         = * '''Activate When Any Dead:''' Modifies the default behaviour of the event such that it sends an On message each time a linked object dies, rather than the default behaviour of only sending a single On message when all linked objects have been destroyed.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Enter_Vehicle&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when the player enters the linked vehicle [[RED Objects#Entity|entity]].&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Hit&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event will send an On message to all linked Events when a linked object (normally an [[RED Objects#Entity|entity]]) suffers damage from a weapon (normally due to being shot by the player).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Life_Reaches&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when the object to which the When_Life_Reaches event is linked reaches the specified amount of life, either by being healed or by suffering damage.&lt;br /&gt;
|params         = * '''Life:''' Specify amount of life (integer) at which the event will activate (send an On message).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Try_Exit_Vehicle&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when the player attempts to leave a vehicle [[RED Objects#Entity|entity]] they are piloting.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Level==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Alarm&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event toggles the level alarm.&lt;br /&gt;
|on             = Turn alarm on.&lt;br /&gt;
|off            = Turn alarm off.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Alarm_Siren&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event plays an audible alarm sound, without turning the level alarm on (as the [[RED Event List#Alarm|Alarm]] event does).&lt;br /&gt;
|on             = Play an alarm sound.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Cutscene&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event is used to activate an in-game cutscene. This event is very powerful, but also very complicated, with loads of options configured in the event properties. Please refer to the [[RF1_Editing_Main_Page#Events_and_Scripting|cutscene tutorials on the RF1 Editing Main Page]] for information on how to use cutscenes.&lt;br /&gt;
|on             = Play the cutscene.&lt;br /&gt;
|params         = * Many - please see tutorials linked in Description above.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Enable_Navpoint&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event toggles the active state of all linked [[RED Objects#Nav Point|Nav Points]].&lt;br /&gt;
|on             = Enables all linked Nav Points.&lt;br /&gt;
|off            = Disables all linked Nav Points.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Endgame&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event triggers an endgame sequence, and displays text from [[endgame.tbl]]. The Script Name parameter of the Endgame event is used to specify which entry from endgame.tbl is displayed to the player as an on response from this event.&lt;br /&gt;
|on             = End the game, and display scrolling text from endgame.tbl that corresponds to the Script Name of this event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Explode&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause an explosion to occur at the event location.  The explosion can be made to cause a geomod, and you can control the amount of damage caused by the explosion.&lt;br /&gt;
|on             = Make the explosion happen.&lt;br /&gt;
|params         = * '''Damage:''' The amount of damage caused by the explosion.  This is the damage that is applied to any object within the explosion range.&lt;br /&gt;
* '''Type:''' Small, Medium, Large.  This field isn’t properly supported yet.  We need to list a selection of different explosions to choose from. &lt;br /&gt;
* '''Geomod:''' If true, the explosion will apply a geomod at the center of the explosion.  The hardness of the rock where the explosion occurs is used to determine if a geomod is possible.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Check&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event can either block or forward On messages, depending on the state of an associated goal_set Event.&lt;br /&gt;
|on             = Foward On messages if min_count exceeds the current count value of the associated goal_set Event&lt;br /&gt;
|params         = * '''Goal to Check:''' Script name for the associated Goal_Create Event.&lt;br /&gt;
* '''Minimum Count:''' The miniumum value that the associated goal variable must have before forwarding messages.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Create&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will create a goal variable (integer) when it receives an On message. The variable name will be the script name of the Goal_Create event.&lt;br /&gt;
|on             = Create a goal variable.&lt;br /&gt;
|params         = * '''Start Count:''' The inital value of the goal variable (this will be zero in most cases). &lt;br /&gt;
* '''Persistent:''' If ticked, the goal variable will be available to be set/checked in future levels, and will be saved in savegame files perpetually. Note that there is a maximum of 64 persistent goal variables that may be saved in savegame files.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Set&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will increment a goal variable every time it receives an On message (Off messages will cause the count value to decrement).&lt;br /&gt;
|on             = Increment count by one.&lt;br /&gt;
|off            = Decrement count by one.&lt;br /&gt;
|params         = * '''Goal to Set:''' The goal variable name to set.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Item_Pickup_State&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event is used to toggle the active state of linked [[RED_Objects#Item|Items]] (ie. whether they can be picked up). The default behaviour of Items is enabled (they can be picked up).&lt;br /&gt;
|on             = Set all linked items to enabled (they can be picked up).&lt;br /&gt;
|off            = Set all linked items to disabled (they cannot be picked up).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Load_Level&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause the specified level to load.  The Player will be taken to the new level seamlessly. Note that a level cannot have two Load_Level events with the same Script Name, so you should change the Script Name for each Load_Level event you place to something that makes sense to you.&lt;br /&gt;
|on             = Load the specified level.&lt;br /&gt;
|params         = * '''Filename:''' Disk filename (including the .rfl or .d4l extension) of the level to load.&lt;br /&gt;
* '''Hard Level Break:''' Force the player to the [[RED Objects#Player Start|Player Start]] position in the destination level, rather than the default behaviour of attempting a seamless transition.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Message&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will make a sound file play and display the associated text on the Player HUD.&lt;br /&gt;
|on             = Play the message.&lt;br /&gt;
|params         = * '''Persona:''' Selectable from drop-down list of names which is generated from personas.tbl. Select &amp;quot;none&amp;quot; if you don’t want the message to be from a persona.&lt;br /&gt;
* '''Voice Filename:''' Disk filename (including .wav extension) of the sound file to play.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Monitor_State&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event is used for initializing and configuring security monitors and mirrors.&lt;br /&gt;
|on             = Set all screen [[RED Objects#Clutter|clutter objects]] this event is linked to to cycle between video feeds from all camera [[RED Objects#Entity|entities]] this event is linked to, according to the parameters configured in the event properties.&lt;br /&gt;
|params         = * '''Initial State:''' Control whether the linked monitors should be on or off as a result of this event's on response.&lt;br /&gt;
* '''Cycle Delay:''' Time, in seconds, that linked monitors display a given video feed. If this parameter is set to 1.0 for example, the feed will cycle to the next linked camera every 1 second.&lt;br /&gt;
* '''Continuously update monitor:''' If ticked, monitor will constantly be updated. Severe performance impact, but is needed for video feeds of dynamic scenes.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Music_Start&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = Plays a specified music track.&lt;br /&gt;
|on             = Start playing the music track specified in the event's properties.&lt;br /&gt;
|params         = * '''Filename:''' Filename (.wav) of the music track to play.&lt;br /&gt;
* '''Use Effects Volume:''' If ticked, the music track volume is scaled using the Sound Effects volume slider, rather than the Music slider.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Music_Stop&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event stops all music currently being played.&lt;br /&gt;
|on             = Stop playing all music tracks (after fading them out according to this event's properties).&lt;br /&gt;
|params         = * '''Fade Time:''' Length of time any currently playing music tracks will take to fade out to silence. (if set to 0, music will immediately stop playing)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Play_Sound&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause a sound to play.  The sound can be a 3D or 2D sound, and it can be made to loop.&lt;br /&gt;
|on             = Start playing the sound.&lt;br /&gt;
|off            = Stop the sound, if it is playing.&lt;br /&gt;
|params         = * '''Sound Filename:''' Disk filename of the sound to play (including .wav extension). &lt;br /&gt;
* '''Min Distance:''' Distance (in meters) where the sound begins to drop off in volume.  If you don’t want the sound to be 3D, set the Min Distance to zero.&lt;br /&gt;
* '''Looping:''' If true, the sound will play looping (until you stop it by sending an Off message to this Event).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Play_Vclip&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event is used to play a specified vclip (from [[vclip.tbl]])&lt;br /&gt;
|on             = Play the specified vclip at the event location.&lt;br /&gt;
|params         = * '''Vclip Name:''' Specify the vclip to play.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Remove_Object&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will destroy all objects linked to the event.  Objects will disappear instantly (i.e., without their death sequence).&lt;br /&gt;
|on             = Kill all linked objects immediately.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Slay_Object&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will kill all linked objects, and allow their death sequence to play.&lt;br /&gt;
|on             = Kill all linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Spawn_Object&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause a specific object type to be created.  The object is created at the event location, with an identity matrix orientation.&lt;br /&gt;
|on             = Spawn the object at the Event location.&lt;br /&gt;
|params         = * '''Object Type:''' Entity, Clutter, Item.  Selectable from a drop-down list.&lt;br /&gt;
* '''Object Class:''' The classname of the object.  Selectable from a drop-down list.  The choice here depends on the Object Type that has been selected.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Swap_Textures&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause the specified textures (up to 2 per event) to be used on all linked objects.&lt;br /&gt;
|on             = Swap the textures.&lt;br /&gt;
|params         = * '''Texture Num:''' Texture index to swap (starts from 0).&lt;br /&gt;
* '''Texture Filename:''' Disk filename (including extension) of the texture bitmap to use.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Modifiers==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Armor&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event adds or subtracts from the armor of all linked objects.&lt;br /&gt;
|on             = Apply the Armor Delta specified in this event's properties to all linked objects.&lt;br /&gt;
|params         = * '''Armor Delta:''' Modification to perform to armor. Negative values subtract armor, positive values add armor.&lt;br /&gt;
* '''Apply to player:''' If ticked, apply the Armor Delta to the player as the On response, rather than applying it to linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Black_Out_Player&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Fade the player's camera out to, or in from, full black.&lt;br /&gt;
|on             = Linearly fade the player's camera to full black over the time specified in the event properties.&lt;br /&gt;
|off            = Immediately set the player's camera to full black and then linearly fade in to full visibility over the time specified in the event properties.&lt;br /&gt;
|params         = * '''Blackout Time:''' Specify the time over which the blackout occurs.&lt;br /&gt;
* '''Kill Player After Blackout:''' If ticked, the player will be killed after the Blackout Time has elapsed.&lt;br /&gt;
* '''End Level After Blackout:''' If ticked, the level will end after the Blackout Time has elapsed, with a scrolling endgame message pulled from [[endgame.tbl]]. The Script Name for the Black_Out_Player event is used to specify the endgame.tbl entry that is displayed.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Bolt_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the active state of linked [[RED Objects#Bolt Emitter|bolt emitters]]. The default state for bolt emitters is controlled by the &amp;quot;Emitter is initially on&amp;quot; flag in the emitter properties.&lt;br /&gt;
|on             = Set all linked bolt emitters to active/enabled.&lt;br /&gt;
|off            = Set all linked bolt emitters to inactive/disabled.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Clear_Endgame_If_Killed&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to allow [[RED Objects#Entity|entities]] which would ordinarily trigger an endgame sequence when killed, to be killed without triggering that sequence.&lt;br /&gt;
|on             = Remove the &amp;quot;End Game If Killed&amp;quot; flag from all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Continuous_Damage&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Cause the AI or Player which triggered the event to receive damage (use a trigger reset time of 0 to make the damage continuous).&lt;br /&gt;
|on             = Apply damage to the entity who triggered the event. Any linked objects will also receive damage.&lt;br /&gt;
|params         = * '''Damage Per Sec:''' Damage per second applied. (0 is instant death)&lt;br /&gt;
* '''Damage Type:''' melee, bullet, armor piercing bullet, explosive, fire, energy, electrical, acid, scalding.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Detach&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event controls whether linked objects (normally [[RED Objects#Entity|entities]]) are attached to [[RED Groups#Moving Groups|movers]] they intersect (like cranes, elevators, etc.)&lt;br /&gt;
|on             = Detach linked objects from moving groups they intersect.&lt;br /&gt;
|off            = Attach linked objects to moving groups they intersect.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Fog_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the active state of the level's distance-based fog (fog uses the settings configured in [[RED_User_Guide#Level_Properties|Level Properties]], and the default behaviour is for fog to be enabled).&lt;br /&gt;
|on             = Set fog to enabled/active.&lt;br /&gt;
|off            = Set fog to disabled/inactive.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Force_Monitor_Update&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event forces linked monitors to refresh their displayed image.&lt;br /&gt;
|on             = Force an image update on all linked monitors.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Give_Item_To_Player&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will make the player pick up a specific item.  Items are normally automatically picked up by the player when they get close enough to them.  All game items are specified in items.tbl.&lt;br /&gt;
|on             = Give the player the specified item.&lt;br /&gt;
|params         = * '''Item:''' Item class name, which is selectable from a drop-down list of all items from items.tbl.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Go_Undercover&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to put the player into undercover mode (as used in the RF campaign stealth sequences).&lt;br /&gt;
|on             = Set player to undercover.&lt;br /&gt;
|off            = Remove the undercover status of the player.&lt;br /&gt;
|params         = * '''Cover:''' Specify whether the undercover type is executive (as used in [[L6: Corporate HQ|Corporate HQ]]) or scientist (as used in [[L8: Medical Research|Medical Research]]).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Heal&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event adds or subtracts from the health of all linked objects.&lt;br /&gt;
|on             = Apply the Life Delta specified in this event's properties to all linked objects.&lt;br /&gt;
|params         = * '''Life Delta:''' Modification to perform to life. Negative values subtract life, positive values add life.&lt;br /&gt;
* '''Apply to player:''' If ticked, apply the Life Delta to the player as the On response, rather than applying it to linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Ignite_Entity&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to ignite linked [[RED Objects#Entity|entities]].&lt;br /&gt;
|on             = Ignite all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Make_Fly&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will make the linked AI enter fly mode.  If the AI is already flying, this event does nothing.  This event can only make AI fly if it normally has the ability (i.e., this event can’t make a Cave Slug fly).&lt;br /&gt;
|on             = Make linked AI enter fly mode.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Make_Invulnerable&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the invulnerability state of linked objects. By default, all objects are vulnerable.&lt;br /&gt;
|on             = Set all linked objects to invulnerable for the duration specified in the event properties.&lt;br /&gt;
|off            = Set all linked objects to vulnerable (ie. revert the effect of any previously applied Make_Invulnerable events)&lt;br /&gt;
|params         = * '''Duration:''' Specify a duration for the invulnerability. If 0, invulnerability lasts indefinitely.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Make_Walk&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will make the linked AI enter walk mode.  If the AI is already walking, this event does nothing.  This event can only make AI walk if it normally has the ability (i.e., this event can’t make a Grabber walk).&lt;br /&gt;
|on             = Make linked AI enter walk mode.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Modify_Rotating_Mover&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Speed up or slow down the movement of all linked rotating movers.&lt;br /&gt;
|on             = Apply the modification specified in the event properties to all linked rotating movers.&lt;br /&gt;
|params         = * '''Settings:''' Configure settings to increase or decrease all linked rotating movers by the percentage specified.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Mover_Pause&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event toggles the active state of linked movers.&lt;br /&gt;
|on             = Immediately pause all linked movers at their current position.&lt;br /&gt;
|off            = Resume the movement of all linked movers (ie. revert the effect of a previously applied Mover_Pause)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Particle_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the active state of linked [[RED Objects#Particle Emitter|particle emitters]]. The default state for particle emitters is controlled by the &amp;quot;Emitter is initially on&amp;quot; flag in the emitter properties.&lt;br /&gt;
|on             = Set all linked particle emitters to active/enabled.&lt;br /&gt;
|off            = Set all linked particle emitters to inactive/disabled.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Push_Region_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the active state of linked [[RED Objects#Push Region|push regions]]. The default state for push regions is active/enabled.&lt;br /&gt;
|on             = Set all linked push regions to active/enabled.&lt;br /&gt;
|off            = Set all linked push regions to inactive/disabled.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Reverse_Mover&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to immediately reverse the direction in which linked movers are currently moving. This event is linked to a [[RED Objects#Keyframe|keyframe]] object.&lt;br /&gt;
|on             = Reverse the direction of all linked movers that meet the condition specified in the event parameters.&lt;br /&gt;
|params         = * '''If Moving:''' Specify the directional condition for the application of the event. ie. This event will only take effect if the linked mover is moving in the specified direction when the event receives an On message.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Gravity&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Set the downward acceleration due to gravity applied to all objects in the world.&lt;br /&gt;
|on             = Override the default gravity (-9.8 m/s^2) with the value specified in the event properties.&lt;br /&gt;
|params         = * '''Gravity:''' Value for acceleration due to gravity, specified in m/s^2, and applied in the Y axis.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Liquid_Depth&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Linearly transition the liquid depth of the linked [[RED Objects#Room Effect|Room Effect]] object to a specified new depth over time.&lt;br /&gt;
|on             = Begin transitioning liquid depth according to settings configured in properties.&lt;br /&gt;
|params         = * '''Depth:''' Set the desired depth after the transition has completed.&lt;br /&gt;
* '''Time:''' How long in seconds it takes the liquid depth to transition to the event-configured depth from the configured depth value in the properties of the linked [[RED Objects#Room Effect|Room Effect]].&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Shake_Player&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will shake the viewpoint of the Player.&lt;br /&gt;
|on             = Start shaking the Player camera.&lt;br /&gt;
|params         = * '''Magnitude:''' How strong to make the shaking.  This value is the max amplitude of the shake in meters. &lt;br /&gt;
* '''Time:''' How long to shake the camera in seconds.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Skybox_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Can be used to rotate the skybox around the camera.&lt;br /&gt;
|on             = Start rotating as per values specified in the event properties. Rotation is always from -360 to 360, then loops.&lt;br /&gt;
|params         = * '''Axis:''' Axis to rotate the skybox around.&lt;br /&gt;
* '''Velocity:''' Velocity/speed of the rotation, specified in degrees-per-second (degrees/sec).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Strip_Player_Weapons&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Used to remove weapons from the player's inventory.&lt;br /&gt;
|on             = Remove all weapons and ammo the player currently has.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Switch_Model&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will change the model of all linked objects to the model filename that is contained in the event.&lt;br /&gt;
|on             = Change the model.&lt;br /&gt;
|params         = * '''Model filename:''' Disk filename (with extension) of the model to switch to.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Teleport&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will teleport all linked objects to the event location.  There are no special effects associated with the teleportation.&lt;br /&gt;
|on             = Teleport all linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Teleport_Player&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Teleports the player. This is the only event for which pitch/yaw is relevant, so the event displays a small red arrow showing you which direction it is facing.&lt;br /&gt;
|on             = Teleport the player to the event, setting their position (xyz) and rotation (pitch/yaw) to that of the Teleport_Player event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Turn_Off_Physics&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event controls whether linked [[RED Objects#Entity|entities]] have physics applied. Typically, this event is used alongside [[RED Event List#Detach|Detach]] to move entities via cranes or similar. Physics is enabled by default.&lt;br /&gt;
|on             = Turn off physics for all linked entities.&lt;br /&gt;
|off            = Turn on physics for all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Unhide&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Manipulate the visibility of linked object(s). Note that if this event is used to unhide an entity, the entity will not be &amp;quot;unhidden&amp;quot; until the next time its' root bone is out of the player's line of sight. Because of this, you will normally want to be sure to send an on message to an unhide event at a time the linked entity is out of the player's view.&lt;br /&gt;
|on             = Unhide all linked objects.&lt;br /&gt;
|off            = Hide all linked objects.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Special==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Activate_Capek_Shield&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event can be used to activate a Capek nanotech shield on-demand for entities that support it.&lt;br /&gt;
|on             = Activate nanotech shield for all linked entities (provided they are allowed to use it).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Countdown_Begin&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event is used to start an on-HUD countdown.&lt;br /&gt;
|on             = Start the countdown&lt;br /&gt;
|params         = * '''Time:''' Specify duration for the countdown (in seconds).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Countdown_End&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event is used to forcibly end an active countdown.&lt;br /&gt;
|on             = End the active countdown.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Defuse_Nuke&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event brings up the RF1 campaign endgame nuke puzzle sequence.&lt;br /&gt;
|on             = Display nuke puzzle.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Display_Fullscreen_Image&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = Displays a specified image/texture filename stretched to the player's window resolution. Note that [[Dash Faction]] is required for alpha channels on fullscreen images to function correctly.&lt;br /&gt;
|on             = Display the specified filename as a fullscreen image.&lt;br /&gt;
|off            = Stop displaying the fullscreen image.&lt;br /&gt;
|params         = * '''Filename:''' Image to display (normally .tga or .vbm). It's very important to ensure the data in this field is correct - a Display_Fullscreen_Image event that receives an on message but has no valid filename specified will result in an unrecoverable error (crash).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Fire_Weapon_No_Anim&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event is used in very niche circumstances to force a gun to fire without playing its normal animation. Typically, you would do this while already playing a properly-timed custom animation.&lt;br /&gt;
|on             = Force linked entities to fire their equipped weapon without playing a fire animation.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Never_Leave_Vehicle&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event stops the player from being able to leave a vehicle they're piloting.&lt;br /&gt;
|on             = Stop the player from being able to leave a vehicle.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Win_PS2_Demo&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event triggers the PS2 demo endgame sequence, which involves 3 demo upsell graphics (demo-upsell1.tga, demo-upsell2.tga, demo-upsell3.tga) and then drops back to the main menu.&lt;br /&gt;
|on             = Initiate PS2 demo endgame sequence.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Deprecated==&lt;br /&gt;
*The below events are not readily accessible via the [[RED Objects#Events|Events]] section of [[RED Functionality Overview#Object Mode|Object Mode]], but are referenced in '''events.tbl''' and/or [[RED]] documentation.&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Follow_Player&lt;br /&gt;
|category       = Deprecated&lt;br /&gt;
|description    = This Event will force all linked objects to follow and protect the Player.  This should only be used to make Hendrix follow (or stop following) the Player.&lt;br /&gt;
|on             = Make linked entities follow the Player.&lt;br /&gt;
|off            = Make linked entities stop following the Player.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Level_Transition_Marker&lt;br /&gt;
|category       = Deprecated&lt;br /&gt;
|description    = This is a special type of event which doesn’t respond to On or Off messages.  This event is used to maintain the correct positions and orientations off all objects in the transition areas between levels.  This event needs to be placed in the location of the trigger which causes level loading in the other level involved in the transition.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Light_State&lt;br /&gt;
|category       = Deprecated&lt;br /&gt;
|description    = This Event will set the state of any linked lights.  Currently this event can set a light on or off, but any light related changes (like making a light flash, change color, etc.) can be data within this event.&lt;br /&gt;
|on             = Change the state of all linked lights.&lt;br /&gt;
|params         = * '''State:''' On or Off.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Shield&lt;br /&gt;
|category       = Deprecated&lt;br /&gt;
|description    = This event will add the Shield Delta value to the shield of all linked objects. (this event was likely replaced by [[RED Event List#Armor|Armor]])&lt;br /&gt;
|on             = Add Shield Delta to all linked objects shields.&lt;br /&gt;
|params         = * '''Shield Delta:''' The amount of shield to add (you can decrease shield by using a negative number here).&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: RF1 Editing]]&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
[[Category: Archived RF1 Content]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Mapping_with_Control_Points&amp;diff=15085</id>
		<title>Mapping with Control Points</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Mapping_with_Control_Points&amp;diff=15085"/>
		<updated>2025-12-19T11:34:48Z</updated>

		<summary type="html">&lt;p&gt;Goober: /* Control Point Events */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{RF1Tutorial|Goober}}&lt;br /&gt;
'''Control Points''' are used as objectives in the '''[[King of the Hill]]''', '''[[Damage Control]]''', and '''[[Revolt]]''' game types added in [[Alpine Faction|Alpine Faction]] v1.2.&lt;br /&gt;
&lt;br /&gt;
The process to create these is very straightforward.&lt;br /&gt;
&lt;br /&gt;
== Basic Setup ==&lt;br /&gt;
# Create a [[RED Objects#Triggers|trigger]]. This can be a box or a sphere. The only properties of the trigger that matter for control points are the dimensions and the shape.&lt;br /&gt;
# Create a [[RED Event List#Capture_Point_Handler|Capture_Point_Handler]] event (under the '''AF_Gameplay''' category).&lt;br /&gt;
# Link the Capture_Point_Handler event to the trigger.&lt;br /&gt;
&lt;br /&gt;
That's the minimum you need to do to make a control point.&lt;br /&gt;
&lt;br /&gt;
If you want a cylindrical control point, tick the ''Cylindrical Trigger'' checkbox in the properties for the Capture_Point_Handler.  &lt;br /&gt;
* If the trigger is a sphere, the cylinder will have the same radius as the sphere.  &lt;br /&gt;
* If the trigger is a box, the cylinder will have the same diameter as the longest edge of the box.&lt;br /&gt;
&lt;br /&gt;
== Label/Progress Sprite ==&lt;br /&gt;
The location of the Capture_Point_Handler event is the location of the progress/label sprite for the control point.&lt;br /&gt;
&lt;br /&gt;
It’s best to position the Capture_Point_Handler:&lt;br /&gt;
* Directly above the center of the trigger&lt;br /&gt;
* At a height that is unlikely to result in the sprite blocking important sightlines for combat&lt;br /&gt;
&lt;br /&gt;
== Event Properties ==&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Capture_Point_Handler&lt;br /&gt;
|category       = AF_Gameplay&lt;br /&gt;
|description    = Controls the behaviour of a multiplayer control point (capture zone) for [[King of the Hill]], [[Damage Control]], and [[Revolt]]. Uses a linked [[RED Objects#Triggers|trigger]] to define the capture area and manages capture progress, ownership, and HUD display.&lt;br /&gt;
|params         = * '''Name:''' (str1) Display name for the control point.&lt;br /&gt;
* '''Outline offset:''' (float1) Vertical offset for the circular outline drawn on the ground around the capture area. Useful for keeping the outline visible above uneven terrain.&lt;br /&gt;
* '''Cap rate multiplier:''' (float2) Multiplier applied to the base capture rate. '''0.0''' = no multiplier (same as '''1.0'''). Higher values capture faster; values between '''0.0''' and '''1.0''' capture slower.&lt;br /&gt;
* '''Stage:''' Specify stage for this point. Only used in [[Revolt]].&lt;br /&gt;
* '''Cylindrical Trigger:''' If true, treat the linked trigger as a vertical cylinder instead of using its raw shape. For sphere triggers, the cylinder radius matches the sphere radius. For box triggers, the cylinder diameter uses the longest edge of the box.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
== Advanced Mechanics ==&lt;br /&gt;
=== Linking to Respawn Points ===&lt;br /&gt;
Link the Capture_Point_Handler to [[RED_Objects#Multiplayer_Respawn_Point|respawn points]] to let Alpine Faction automatically manage spawn activation and team assignment depending on the gametype.&lt;br /&gt;
&lt;br /&gt;
==== Behaviour per Gametype ====&lt;br /&gt;
* '''King of the Hill''' &amp;amp; '''Damage Control''': Linked respawn points are synced to the owner of the control point. Only that team will be able to spawn at those respawn points. Use of this in KOTH is generally not needed/recommended&lt;br /&gt;
* '''Revolt''': Linked respawn points are enabled when their control point’s stage is active, and disabled when the game moves to the next stage. The teams assigned to each respawn point never changes, so you should set the red/blue checkboxes on each respawn point to match the intended defending/attacking team for that stage.&lt;br /&gt;
* '''Escalation''': Linked respawn points are enabled when their control point is the current defense hill for that team. The teams assigned to each respawn point never changes, so you should set the red/blue checkboxes on each respawn point to match the intended defending/attacking team for that stage. For example, in a 5-point Escalation map, if red controls their own base, their own forward point, and the center point, while blue only controls their own forward point and their own base, only blue spawn points associated with the blue forward point will be enabled, because that's the point blue is defending; while only red spawn points associated with the center point will be enabled, because that's the point red is defending. The only exception to this rule is when the map first starts and the center point is neutral - in that case, both team's spawns associated with the center point will be enabled until the center point is captured by a team.&lt;br /&gt;
&lt;br /&gt;
Additionally, the [[RED Event List#Respawn_Point_State|Respawn_Point_State]] and [[RED Event List#Modify_Respawn_Point|Modify_Respawn_Point]] events can be used to manually adjust the behaviour of respawn points in all gametypes.&lt;br /&gt;
&lt;br /&gt;
=== Control Point Events ===&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Captured&lt;br /&gt;
|category       = AF_Catalysts&lt;br /&gt;
|description    = Fires a message to all linked triggers, movers, and events whenever a linked control point is captured by either team.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Capture_Point_Owner&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Forces linked control points to a specific ownership state. Must be run on the server, ignored when run on a client.&lt;br /&gt;
|on             = Set all linked control points to the specified owner.&lt;br /&gt;
|params         = * '''Owner:''' (int1) Desired owner.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Owner_Gate&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Tests whether a specific control point has a specified owner.&lt;br /&gt;
|params         = * '''Handler UID:''' (int1) UID of the Capture_Point_Handler to test.&lt;br /&gt;
* '''Required owner:''' (int2) Owner to check.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: RF1 Editing]]&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
[[Category: Alpine Faction]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=RED_Event_List&amp;diff=15084</id>
		<title>RED Event List</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=RED_Event_List&amp;diff=15084"/>
		<updated>2025-12-19T11:34:00Z</updated>

		<summary type="html">&lt;p&gt;Goober: /* AF_Flow */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BubbleNav|RF1Modding}}&lt;br /&gt;
This page lists all event scripting objects available in [[RED]]. To read more about how the scripting system itself works, see [[RED Objects#Events|Events]].&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction==&lt;br /&gt;
The events in categories prefixed with &amp;quot;AF_&amp;quot; are only available in [[Alpine Faction]]. If you don't see them listed, you should install [https://alpinefaction.com Alpine Faction] and launch RED through the Alpine Faction launcher.&lt;br /&gt;
&lt;br /&gt;
* For other level editing features and improvements that are specific to Alpine Faction, see [[Alpine Level Design]]&lt;br /&gt;
&lt;br /&gt;
==AF_Catalysts==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = AF_When_Dead&lt;br /&gt;
|category       = AF_Catalysts&lt;br /&gt;
|description    = Upgraded version of the stock &amp;quot;When_Dead&amp;quot; event. Does not require a slot in the savegame file, so there is no limit on the number of '''AF_When_Dead''' events that you can use in a single map. Also supports repeated activations, unlike the stock event.&lt;br /&gt;
|params         = * '''Activate on any dead:''' (bool1) If true, this event sends an on message each time a linked entity or clutter dies. If false, this event only sends a single on message at the time that all linked entities/clutter are dead.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Captured&lt;br /&gt;
|category       = AF_Catalysts&lt;br /&gt;
|description    = Fires a message to all linked triggers, movers, and events whenever a linked control point is captured by either team.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Picked_Up&lt;br /&gt;
|category       = AF_Catalysts&lt;br /&gt;
|description    = Fires a message to all linked triggers, movers, and events whenever a linked item is picked up by the player. Single player only.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AF_Flow==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Sequence&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Each activation of this event routes the message to the next link in sequential order. After the last link, the cycle resets and the first link is called. Note the order of links is determined by the order in which you add them.&lt;br /&gt;
|on             = Send an on signal to the next link in the sequence.&lt;br /&gt;
|params         = * '''Next index to activate:''' (int1) Next link index to be activated when this event processes an on message. This setting essentially allows you to jump to a specific point in the sequence when you wish.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Difficulty_Gate&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Tests if the game is set to the specified difficulty and forwards messages only if true.&lt;br /&gt;
|on             = Forward on signal to all links, if the game is set to the specified difficulty.&lt;br /&gt;
|params         = * '''Difficulty:''' (int1&amp;quot;) Difficulty to test against.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Valid_Gate&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Tests if the specified UID is a valid object and forwards messages only if true. In the case of objects that have life values (ie. clutter and entities), &amp;quot;valid&amp;quot; means alive.&lt;br /&gt;
|on             = Forward on signal to all links, if the specified object is valid.&lt;br /&gt;
|params         = * '''Object UID to test:''' (int1&amp;quot;) Object UID to be checked.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Inside_Gate&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Tests if an object (default: the player who activated the event) is in a specified area of the map. Forwards messages if true.&lt;br /&gt;
|on             = Forward on signal to all links if test passes.&lt;br /&gt;
|params         = * '''UID (trigger/room) to check:''' (int1) Region to be checked. Can be a trigger UID or a room UID (Room Effect).&lt;br /&gt;
* '''What to check for:''' (int2) Object to be checked. If not specified, defaults to the player who activated the event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Owner_Gate&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Tests whether a specific control point has a specified owner.&lt;br /&gt;
|params         = * '''Handler UID:''' (int1) UID of the Capture_Point_Handler to test.&lt;br /&gt;
* '''Required owner:''' (int2) Owner to check.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Switch_Random&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Randomly select one of this event's links and send an on message to it.&lt;br /&gt;
|on             = Send an on message to a randomly selected link.&lt;br /&gt;
|params         = * '''No repeats until all used:''' (bool1) Never choose the same link twice until all links have been chosen at least once.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Route_Node&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = In-line multi-purpose flow control node. Has several options to control what the processed message looks like.&lt;br /&gt;
|params         = * '''Node behavior:''' (int1) What should the Route_Node do to the message?&lt;br /&gt;
* '''Non-retriggerable delay:''' (bool1) If true, ignore any received messages while a message is currently queued on this Route_Node. Has no effect unless a delay is specified.&lt;br /&gt;
* '''Clear trigger info:''' (bool2) If true, clear information about the trigger and object that initiated the message when passing through this Route_Node.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Gate&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Performs a test on a specified goal (integer variable). Forwards message to links only if test passes.&lt;br /&gt;
|on             = Perform test and forward message if passed.&lt;br /&gt;
|params         = * '''Goal to test:''' (str1) Specify the goal name to which the test is applied.&lt;br /&gt;
* '''Test to run:''' (int1)&lt;br /&gt;
* '''Value to test against:''' (int2) Note: ignored if testing against initial value.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Scope_Gate&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Performs a test on various aspects of the game. Forwards message to links only if test passes.&lt;br /&gt;
|on             = Perform test and forward message if passed.&lt;br /&gt;
|params         = * '''Scope to test against:''' (int1) Test to run&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Gametype_Gate&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Performs a test on the gametype of the game. Forwards message to links only if test passes. Works only in multiplayer (test will always fail in single player).&lt;br /&gt;
|on             = Perform test and forward message if passed.&lt;br /&gt;
|params         = * '''Check for gametype:''' (int1) Gametype to test against.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AF_Gameplay==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Capture_Point_Handler&lt;br /&gt;
|category       = AF_Gameplay&lt;br /&gt;
|description    = Controls the behaviour of a multiplayer control point (capture zone) for [[King of the Hill]], [[Damage Control]], and [[Revolt]]. Uses a linked [[RED Objects#Triggers|trigger]] to define the capture area and manages capture progress, ownership, and HUD display.&lt;br /&gt;
|params         = * '''Name:''' (str1) Display name for the control point.&lt;br /&gt;
* '''Outline offset:''' (float1) Vertical offset for the circular outline drawn on the ground around the capture area. Useful for keeping the outline visible above uneven terrain.&lt;br /&gt;
* '''Cap rate multiplier:''' (float2) Multiplier applied to the base capture rate. '''0.0''' = no multiplier (same as '''1.0'''). Higher values capture faster; values between '''0.0''' and '''1.0''' capture slower.&lt;br /&gt;
* '''Stage:''' Specify stage for this point. Only used in [[Revolt]].&lt;br /&gt;
* '''Cylindrical Trigger:''' If true, treat the linked trigger as a vertical cylinder instead of using its raw shape. For sphere triggers, the cylinder radius matches the sphere radius. For box triggers, the cylinder diameter uses the longest edge of the box.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AF_General==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Clone_Entity&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Creates a clone of the linked entity with the same properties and settings as its source.&lt;br /&gt;
|on             = Create a clone at the event's position, and with the event's orientation.&lt;br /&gt;
|params         = * '''Clone is hostile to player:''' (bool1) If true, clone is actively hostile to player and will engage if it spots the player.&lt;br /&gt;
* '''Go to player:''' (bool2) If true, the clone will begin running to the player immediately when created. Assuming there is a valid route to the player's position, it will find them.&lt;br /&gt;
* '''Link event UID to clone:''' (int1) If specified, when a clone is created, a link will be created between the specified event UID and the clone.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Player_World_Collide&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Control whether the player collides with level geometry.&lt;br /&gt;
|on             = Collision = true (default)&lt;br /&gt;
|off            = Collision = false&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Level_Hardness&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Set the hardness for the loaded level (size of geo craters).&lt;br /&gt;
|on             = Set hardness to the specified value.&lt;br /&gt;
|params         = * '''Hardness:''' (int1) The hardness value to set.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Difficulty&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Set the difficulty level of the game.&lt;br /&gt;
|on             = Set difficulty to the specified value.&lt;br /&gt;
|params         = * '''Difficulty:''' (int1) Set the game's difficulty.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Skybox&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Set the room to project as skybox.&lt;br /&gt;
|on             = Set skybox information as configured.&lt;br /&gt;
|params         = * '''Skybox room UID:''' (int1) Specify the room UID (by ''Room Effect'') to set as the sky room.&lt;br /&gt;
* '''Eye anchor UID:''' (int2) Specify the ''Anchor_Marker'' event to use as the eye position inside the sky room.&lt;br /&gt;
* '''Use relative position:''' (bool1) If true, apply relative position mapping camera position in world space to eye position in the sky room.&lt;br /&gt;
* '''Relative position scale:''' (float1) Scale/ratio to apply to relative position camera mapping.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Item_Drop&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Changes the configured item drop for linked entities.&lt;br /&gt;
|on             = Set item drop.&lt;br /&gt;
|params         = * '''Item class to drop:''' (str1) Item name to drop. Event will have no effect unless this is a valid item name (from [[items.tbl]])&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Life&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Changes the base life value of linked clutter and/or entities.&lt;br /&gt;
|on             = Set the base life value.&lt;br /&gt;
|params         = *'''New life value:''' (int1)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = AF_Heal&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Heal or damage the player (or multiple players in multiplayer) by a specific amount. Can also apply to armour.&lt;br /&gt;
|on             = Apply the configured change.&lt;br /&gt;
|params         = * '''Amount:''' (int1) What numeric change should be applied&lt;br /&gt;
* '''Apply change to:''' (int2) Who should it be applied to?&lt;br /&gt;
* '''Apply to armor instead:''' (bool1) If true, apply the change to armour rather than health.&lt;br /&gt;
* '''Allow super values:''' (bool2) If true, accomodate for super health/super armour. If false, the resulting health or armour after applying the change is clamped to 0-100. If true, it's clamped to 0-200.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = World_HUD_Sprite&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Display a sprite in the world, most often used for providing the player with directions (for example, to an objective).&lt;br /&gt;
|on             = Enable the sprite.&lt;br /&gt;
|off            = Disable the sprite.&lt;br /&gt;
|params         = * '''Start enabled:''' (bool1) Is the sprite initially enabled when the map loads?&lt;br /&gt;
* '''Render mode:''' (int1) How is the sprite rendered? Overdraw means players can see the sprite through all level geometry.&lt;br /&gt;
* '''Render scale:''' (float1) Adjust the scale of the sprite (1.0 for normal size).&lt;br /&gt;
* '''Sprite filename:''' (str1) Specify the filename to use for the sprite when rendered. If ''Sprite filename blue'' is also specified, this field is the sprite rendered for the red team in multiplayer.&lt;br /&gt;
* '''Sprite filename blue:''' (str2) Specify the filename to use for the sprite when rendered for the blue team only (in multiplayer). If this field isn't specified, the sprite filename specified for ''Sprite filename'' will be shown to all players regardless of team.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = HUD_Message&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Display a green HUD message in the bottom middle of the screen (like the helper text when you pick up items).&lt;br /&gt;
|on             = Display the HUD message for the configured duration.&lt;br /&gt;
|params         = * '''Message text:''' (str1) The message to display.&lt;br /&gt;
* '''Duration:''' (float1) Duration in seconds the message will be displayed. Note the message will go away quicker if another HUD message is displayed (such as from another HUD_Message event, or from the player picking up an item)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Play_Video&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Play a .bik format video.&lt;br /&gt;
|on             = Play the video specified.&lt;br /&gt;
|params         = * '''Video filename:''' (str1) The filename of the video to play.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Force_Unhide&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Force unhide/hide an object with no conditions. Virtually identical to the stock &amp;quot;Unhide&amp;quot; event, except this one will always do it, regardless of player line of sight or any other factors.&lt;br /&gt;
|on             = Unhide linked objects.&lt;br /&gt;
|off            = Hide linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Fog_Far_Clip&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Sets the far clip plane used for distance fog.&lt;br /&gt;
|on             = Set far clip plane to specified value (in metres).&lt;br /&gt;
|params         = * '''Far clip distance:''' (int1) Far clip plane distance.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Entity_Flag&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Turn on or off entity flags on linked entities.&lt;br /&gt;
|on             = Turn selected flag on.&lt;br /&gt;
|off            = Turn selected flag off.&lt;br /&gt;
|params         = * '''Flag to set:''' (int1)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Debris&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Set the debris and explosion parameters for linked clutter and/or entities.&lt;br /&gt;
|on             = Set values as specified.&lt;br /&gt;
|params         = * '''Debris filename:''' (str1) Filename of debris to set.&lt;br /&gt;
* '''Explosion VClip index:''' (int1) Index of VClip to play when object dies (from [[vclip.tbl]]).&lt;br /&gt;
* '''Explosion VClip radius:''' (float1)&lt;br /&gt;
* '''Debris sound set:''' (str2) Sound set to use for debris collision (from [[foley.tbl]]). (Only supported on clutter)&lt;br /&gt;
* '''Debris velocity:''' (float2) Velocity of debris. (Only supported on clutter)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = AF_Teleport_Player&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Teleport player to the event's position, with the event's orientation.&lt;br /&gt;
|on             = Teleport player.&lt;br /&gt;
|params         = * '''Reset player velocity:''' (bool1) If true, set player velocity to 0 m/s after teleporting. If false, player details velocity, but it is translated based on the orientation of the event.&lt;br /&gt;
* '''Eject player from vehicle:''' (bool2) If true, if the player is in a vehicle, eject them from the vehicle and teleport them just as a player. If false, teleport their vehicle. Has no effect in multiplayer or if the player is not in a vehicle.&lt;br /&gt;
* '''Entrance VClip:''' (str1) VClip name (from [[vclip.tbl]]) to play at the player's position just before they teleport.&lt;br /&gt;
* '''Exit VClip:''' (str2) VClip name (from [[vclip.tbl]]) to play at the teleport destination when the player arrives.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Fog_Color&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Sets the distance fog colour.&lt;br /&gt;
|on             = Set configured fog colour.&lt;br /&gt;
|params         = * '''Fog color:''' (str1) Specify fog colour to set. Uses the same format as Level Properties - e.g. specifying &amp;quot;&amp;lt;255, 255, 255&amp;gt;&amp;quot; would result in pure white fog.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Light_Color&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Sets the colour of dynamic lights&lt;br /&gt;
|on             = Set light colour.&lt;br /&gt;
|params         = * '''Light color:''' (str1) Specify light colour to set. Uses the same format as Light properties - e.g. specifying &amp;quot;&amp;lt;255, 255, 255&amp;gt;&amp;quot; would result in pure white light.&lt;br /&gt;
* '''Random color instead:''' (bool1) If true, generate a random color instead.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AF_Utility==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Variable&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Reconfigure a variable on linked Alpine Faction event(s).&lt;br /&gt;
|on             = Updates the variable of the linked event(s) based on the provided configuration.&lt;br /&gt;
|params         = * '''Variable handle:''' The variable to be set. This corresponds to the variable names provided in parentheses on the properties panel for Alpine events.&lt;br /&gt;
* '''Value for int1 or int2:''' If variable handle is int1 or int2, set the variable on the linked event(s) to this value.&lt;br /&gt;
* '''Value for delay, float1, or float2:''' If variable handle is delay, float1, or float2, set the variable on the linked event(s) to this value.&lt;br /&gt;
* '''Value for bool1 or bool2:''' If variable handle is bool1 or bool2, set the variable on the linked event(s) to this value.&lt;br /&gt;
* '''Value for str1 or str2:''' If variable handle is str1 or str2, set the variable on the linked event(s) to this value.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Remove_Link&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Used to remove links between objects. By default (with &amp;quot;Purge all links&amp;quot; turned off), removes links between objects this event is linked to.&lt;br /&gt;
|on             = Remove links.&lt;br /&gt;
|params         = * '''Purge all links:''' (bool1) Instead, remove all links between every object this event is linked to and any other objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Math&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Used to perform math operations on goals (integer variables). Applies the operation to level (non-persistent) goals, as well as persistent goals that are loaded.&lt;br /&gt;
|on             = Apply the operation.&lt;br /&gt;
|params         = * '''Goal to edit:''' (str1) Specify the goal name to apply the operation.&lt;br /&gt;
* '''Operation to perform:''' (int1)&lt;br /&gt;
* '''Value to use for operation:''' (int2)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Anchor_Marker_Orient&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Same as the '''Anchor_Marker''' event, except this one respect the orientation (direction) of the event. Can be used to, among other things, rotate particle emitters or push regions using movers.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Clear_Queued&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Clears queued message (if any) on all linked events. Queued messages are messages that are queued per a configured delay value on that event.&lt;br /&gt;
|on             = Clear queued messages.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Add_Link&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Adds links from the specified source event to each object this event is linked to.&lt;br /&gt;
|on             = Add links.&lt;br /&gt;
|params         = * '''Source event UID:''' (int1) Source event for the links.&lt;br /&gt;
* '''Link inbound:''' (bool1) Reverse the operation - create links from each object this event is linked to, inbound to the specified source event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Anchor_Marker&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Used to &amp;quot;drag along&amp;quot; some object types that can't normally be added to moving groups. Simply add the Anchor Marker to the moving group, then link the Anchor_Marker to the objects you want to bring. That object/those objects will have their position locked to the position of the Anchor_Marker event as it travels with the mover. Supports Lights (Dynamic only), Particle Emitters, and Push Regions. Can also be used in conjunction with '''Set_Skybox''' to specify the &amp;quot;eye&amp;quot; location within the skybox.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Light_State&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Used to toggle Lights (Dynamic only) on/off as desired.&lt;br /&gt;
|on             = Turn linked lights on.&lt;br /&gt;
|off            = Turn linked lights off.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AI_Actions==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Attack&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = Used to force AI entities to attack objects.&lt;br /&gt;
|on             = Make attacker specified by attacker uid param attack the object the Attack event is linked to.&lt;br /&gt;
|params         = * '''Attacker UID:''' Primary, Secondary, Flare.  What type of weapon to use.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Drop_Point_Marker&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This is a special type of Event which doesn’t respond to On or Off messages.  This event is used as a position where AI will drop off objects while in AI_COLLECTING_MODE. This is how Grabber robots can drop their rocks off at a specific location.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Drop_Weapon&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event is used to force linked [[RED Objects#Entity|entities]] to drop any weapons they may be holding.&lt;br /&gt;
|on             = Force all linked entities to drop their equipped weapon.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Follow_Waypoints&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will force all linked objects to follow a specified waypoint list, with a specific following method.&lt;br /&gt;
|on             = Begin following the waypoints.  An AI will use the closest waypoint as the location to begin the path following.&lt;br /&gt;
|off            = Stop following the current waypoint path.&lt;br /&gt;
|params         = * '''Waypoint List:''' Name of the waypoint list that the AI should follow.&lt;br /&gt;
* '''Always Face Player:''' If true, the AI will always face the player while following their waypoints.&lt;br /&gt;
* '''Follow Method:''' This determines how the AI will behave when the last waypoint node is reached.  The choices are: &lt;br /&gt;
*# One way:	follow the waypoints to the last node and stop.&lt;br /&gt;
*# Loop: follow the waypoints to the last node, then return to the start and repeat.&lt;br /&gt;
*# Ping Pong: follow the waypoints to the last node, then follow the nodes back to the start (repeat).&lt;br /&gt;
* '''Run:''' If ticked, the linked objects will attempt to run rather than walk while following the waypoint list.&lt;br /&gt;
* '''Always Face Player:''' If ticked, the linked objects will always look at the player while following the waypoint list.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goto&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will make all linked entities travel to the Event location.&lt;br /&gt;
|on             = Make linked entities start moving towards Event location.&lt;br /&gt;
|params         = * '''Run:''' If ticked, the linked objects will attempt to run rather than walk.&lt;br /&gt;
* '''Always Face Player:''' If ticked, the linked objects will always look at the player while following the path.&lt;br /&gt;
* '''Face Player When Finished:''' If ticked, AI will face the player immediately when they get to the Goto event location. &lt;br /&gt;
* '''Override Current Behavior:''' If ticked, AI will ignore any other pathing until reaching the Goto event location. This includes the AI not chasing the player.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goto_Player&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will make all linked entities travel to the Player position.  The linked entities will continue to pathfind to the Player until they have line-of-sight.  When the entities can see the Player, they will return to their default AI.&lt;br /&gt;
|on             = Make linked entities start moving towards the Player.&lt;br /&gt;
|params         = * '''Run:''' If ticked, the linked objects will attempt to run rather than walk.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Headlamp_State&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event toggles the headlamp state of all linked [[RED Objects#Entity|entities]] (realistically, vehicles). Default state is for headlamps to be disabled.&lt;br /&gt;
|on             = Turn on headlamps for all linked entities.&lt;br /&gt;
|off            = Turn off headlamps for all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Holster_Player_Weapon&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will forcefully holster the player's weapon.&lt;br /&gt;
|on             = Holster the player weapon.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Holster_Weapon&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will forcefully holster the weapon of any linked entities.&lt;br /&gt;
|on             = Holster the weapons of all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Look_At&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This Event will cause any linked AI to turn and face the Event location.&lt;br /&gt;
|on             = Make linked AI look at the Event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Play_Animation&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will cause a linked AI to play a specific animation.  If the animation is a state animation (i.e., a looping animation) then it will replace the current animation state for the AI.  If the animation is an action animation (i.e., a one-time animation) then it is blended with the current state.&lt;br /&gt;
|on             = Play the animation.&lt;br /&gt;
|params         = * '''Animation:''' Name of the animation. This is selectable from a list of possible animations for the object that is linked. &lt;br /&gt;
* '''Hold Last Frame:''' If true, the model will stay in the last frame of animation. This is only valid if the animation is defined as an action animation.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_AI_Mode&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event is used to set the AI mode of all linked [[RED Objects#Entity|entities]], overriding the AI mode configured in the properties of those entities.&lt;br /&gt;
|on             = Set AI mode of linked entities to the mode specified in the event paramets. &lt;br /&gt;
|params         = * '''AI Mode:''' Specify desired AI mode.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Friendliness&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will set the Friendliness of all linked objects.&lt;br /&gt;
|on             = Change the Friendliness of an entity.&lt;br /&gt;
|params         = * '''Friendliness:''' The friendliness is selectable from a drop-down list, and consists of the following choices:&lt;br /&gt;
*# Unfriendly: AI will attack the player on sight.&lt;br /&gt;
*# Neutral: AI will only attack the player if provoked.&lt;br /&gt;
*# Friendly: AI will not attack the player, and may attack entities that are attacking the player.&lt;br /&gt;
*# Outcast: AI will attack anything it sees.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Shoot_At&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will cause all linked AI to shoot at the Event location.  The AI will continue to shoot at the Event until an Off message is received.&lt;br /&gt;
|on             = Make all linked AI attack the Event location.&lt;br /&gt;
|off            = Make all linked AI stop attacking the Event location.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Shoot_Once&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will make all linked AI shoot once in the direction they are currently facing.&lt;br /&gt;
|on             = Fire a single time.&lt;br /&gt;
|params         = * '''Shoot Type:''' Primary, Secondary, Flare.  What type of weapon to use.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Catalysts==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Cyclic_Timer&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event will send an On message to all linked Events at a specified interval.  This Event has to receive an On Message before it will begin sending out messages.&lt;br /&gt;
|on             = Begin sending On messages at the specified interval.&lt;br /&gt;
|params         = * '''Time:''' The interval in seconds between sending On messages to all linked events.&lt;br /&gt;
* '''Max Sends:''' The number of times the Event will send out On messages.&lt;br /&gt;
* '''Send Forever:''' If true, the Max Sends field is ignored, and the Cyclic Timer sends On messages forever.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Delay&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = Forwards a response it receives to all linked events after the specified delay duration.&lt;br /&gt;
|on             = Send (forward) an on response to all linked events following the delay duration.&lt;br /&gt;
|off            = Send (forward) an off response to all linked events following the delay duration.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Invert&lt;br /&gt;
|image          = Icon_Event_L.png&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event will change On messages to Off messages (and Off to On) before forwarding them to any linked Events.&lt;br /&gt;
|on             = Change message to off and forward to all linked events.&lt;br /&gt;
|off            = Change message to on and forward to all linked events.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Switch&lt;br /&gt;
|image          = Icon_Event_C.png&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event behaves like a switch that remembers it’s state (on or off).  This Event can be used to turn lights on or off, and can be used to let the player activate special events.  If the Event is linked to a VFX, this VFX is used as the model for the switch (the default state of the VFX should be off, with the animation taking the VFX to the on state).&lt;br /&gt;
|on             = Toggle the state of the switch.  The behavior of the switch is controlled through the Event parameters.&lt;br /&gt;
|params         = * '''Initial State:''' The initial state of the switch (either on or off).&lt;br /&gt;
* '''Behavior:''' This says what kind of signal the switch will send (toggle between on and off, always send an on, always send an off).&lt;br /&gt;
* '''Sound:''' Disk filename (including the .wav extension) of the sound to play when the switch is thrown.&lt;br /&gt;
* '''Max Throws:''' How many times the switch can be thrown. &lt;br /&gt;
* '''Infinite Throws:''' If true, the Max Throws parameter is ignored, and the switch can be thrown an infinite number of times.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Armor_Reaches&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when the object to which the When_Armor_Reaches event is linked reaches the specified amount of armor, either by armor being added or by suffering damage.&lt;br /&gt;
|params         = * '''Armor:''' Specify amount of armor (integer) at which the event will activate (send an On message).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Countdown_Over&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when a countdown ends. (countdowns are started with [[RED Event List#Countdown_Begin|Countdown_Begin]])&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Countdown_Reaches&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when a countdown reaches the specified value. (countdowns are started with [[RED Event List#Countdown_Begin|Countdown_Begin]])&lt;br /&gt;
|params         = * '''Time:''' Specify the desired time remaining at which this event should activate (send an On message).&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Cutscene_Over&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when a cutscene ends. (cutscenes are started with [[RED Event List#Cutscene|Cutscene]])&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Dead&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event will send an On message to all linked Events when all linked objects have died.  This Event is used when you want to do something when a specific object has been destroyed. Note that savegame files can store only 20 When_Dead events in a given level, so if you're mapping for single player, it's highly recommended to include no more than 20 When_Dead events in a single map.&lt;br /&gt;
|params         = * '''Activate When Any Dead:''' Modifies the default behaviour of the event such that it sends an On message each time a linked object dies, rather than the default behaviour of only sending a single On message when all linked objects have been destroyed.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Enter_Vehicle&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when the player enters the linked vehicle [[RED Objects#Entity|entity]].&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Hit&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event will send an On message to all linked Events when a linked object (normally an [[RED Objects#Entity|entity]]) suffers damage from a weapon (normally due to being shot by the player).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Life_Reaches&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when the object to which the When_Life_Reaches event is linked reaches the specified amount of life, either by being healed or by suffering damage.&lt;br /&gt;
|params         = * '''Life:''' Specify amount of life (integer) at which the event will activate (send an On message).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Try_Exit_Vehicle&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when the player attempts to leave a vehicle [[RED Objects#Entity|entity]] they are piloting.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Level==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Alarm&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event toggles the level alarm.&lt;br /&gt;
|on             = Turn alarm on.&lt;br /&gt;
|off            = Turn alarm off.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Alarm_Siren&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event plays an audible alarm sound, without turning the level alarm on (as the [[RED Event List#Alarm|Alarm]] event does).&lt;br /&gt;
|on             = Play an alarm sound.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Cutscene&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event is used to activate an in-game cutscene. This event is very powerful, but also very complicated, with loads of options configured in the event properties. Please refer to the [[RF1_Editing_Main_Page#Events_and_Scripting|cutscene tutorials on the RF1 Editing Main Page]] for information on how to use cutscenes.&lt;br /&gt;
|on             = Play the cutscene.&lt;br /&gt;
|params         = * Many - please see tutorials linked in Description above.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Enable_Navpoint&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event toggles the active state of all linked [[RED Objects#Nav Point|Nav Points]].&lt;br /&gt;
|on             = Enables all linked Nav Points.&lt;br /&gt;
|off            = Disables all linked Nav Points.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Endgame&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event triggers an endgame sequence, and displays text from [[endgame.tbl]]. The Script Name parameter of the Endgame event is used to specify which entry from endgame.tbl is displayed to the player as an on response from this event.&lt;br /&gt;
|on             = End the game, and display scrolling text from endgame.tbl that corresponds to the Script Name of this event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Explode&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause an explosion to occur at the event location.  The explosion can be made to cause a geomod, and you can control the amount of damage caused by the explosion.&lt;br /&gt;
|on             = Make the explosion happen.&lt;br /&gt;
|params         = * '''Damage:''' The amount of damage caused by the explosion.  This is the damage that is applied to any object within the explosion range.&lt;br /&gt;
* '''Type:''' Small, Medium, Large.  This field isn’t properly supported yet.  We need to list a selection of different explosions to choose from. &lt;br /&gt;
* '''Geomod:''' If true, the explosion will apply a geomod at the center of the explosion.  The hardness of the rock where the explosion occurs is used to determine if a geomod is possible.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Check&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event can either block or forward On messages, depending on the state of an associated goal_set Event.&lt;br /&gt;
|on             = Foward On messages if min_count exceeds the current count value of the associated goal_set Event&lt;br /&gt;
|params         = * '''Goal to Check:''' Script name for the associated Goal_Create Event.&lt;br /&gt;
* '''Minimum Count:''' The miniumum value that the associated goal variable must have before forwarding messages.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Create&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will create a goal variable (integer) when it receives an On message. The variable name will be the script name of the Goal_Create event.&lt;br /&gt;
|on             = Create a goal variable.&lt;br /&gt;
|params         = * '''Start Count:''' The inital value of the goal variable (this will be zero in most cases). &lt;br /&gt;
* '''Persistent:''' If ticked, the goal variable will be available to be set/checked in future levels, and will be saved in savegame files perpetually. Note that there is a maximum of 64 persistent goal variables that may be saved in savegame files.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Set&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will increment a goal variable every time it receives an On message (Off messages will cause the count value to decrement).&lt;br /&gt;
|on             = Increment count by one.&lt;br /&gt;
|off            = Decrement count by one.&lt;br /&gt;
|params         = * '''Goal to Set:''' The goal variable name to set.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Item_Pickup_State&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event is used to toggle the active state of linked [[RED_Objects#Item|Items]] (ie. whether they can be picked up). The default behaviour of Items is enabled (they can be picked up).&lt;br /&gt;
|on             = Set all linked items to enabled (they can be picked up).&lt;br /&gt;
|off            = Set all linked items to disabled (they cannot be picked up).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Load_Level&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause the specified level to load.  The Player will be taken to the new level seamlessly. Note that a level cannot have two Load_Level events with the same Script Name, so you should change the Script Name for each Load_Level event you place to something that makes sense to you.&lt;br /&gt;
|on             = Load the specified level.&lt;br /&gt;
|params         = * '''Filename:''' Disk filename (including the .rfl or .d4l extension) of the level to load.&lt;br /&gt;
* '''Hard Level Break:''' Force the player to the [[RED Objects#Player Start|Player Start]] position in the destination level, rather than the default behaviour of attempting a seamless transition.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Message&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will make a sound file play and display the associated text on the Player HUD.&lt;br /&gt;
|on             = Play the message.&lt;br /&gt;
|params         = * '''Persona:''' Selectable from drop-down list of names which is generated from personas.tbl. Select &amp;quot;none&amp;quot; if you don’t want the message to be from a persona.&lt;br /&gt;
* '''Voice Filename:''' Disk filename (including .wav extension) of the sound file to play.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Monitor_State&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event is used for initializing and configuring security monitors and mirrors.&lt;br /&gt;
|on             = Set all screen [[RED Objects#Clutter|clutter objects]] this event is linked to to cycle between video feeds from all camera [[RED Objects#Entity|entities]] this event is linked to, according to the parameters configured in the event properties.&lt;br /&gt;
|params         = * '''Initial State:''' Control whether the linked monitors should be on or off as a result of this event's on response.&lt;br /&gt;
* '''Cycle Delay:''' Time, in seconds, that linked monitors display a given video feed. If this parameter is set to 1.0 for example, the feed will cycle to the next linked camera every 1 second.&lt;br /&gt;
* '''Continuously update monitor:''' If ticked, monitor will constantly be updated. Severe performance impact, but is needed for video feeds of dynamic scenes.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Music_Start&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = Plays a specified music track.&lt;br /&gt;
|on             = Start playing the music track specified in the event's properties.&lt;br /&gt;
|params         = * '''Filename:''' Filename (.wav) of the music track to play.&lt;br /&gt;
* '''Use Effects Volume:''' If ticked, the music track volume is scaled using the Sound Effects volume slider, rather than the Music slider.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Music_Stop&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event stops all music currently being played.&lt;br /&gt;
|on             = Stop playing all music tracks (after fading them out according to this event's properties).&lt;br /&gt;
|params         = * '''Fade Time:''' Length of time any currently playing music tracks will take to fade out to silence. (if set to 0, music will immediately stop playing)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Play_Sound&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause a sound to play.  The sound can be a 3D or 2D sound, and it can be made to loop.&lt;br /&gt;
|on             = Start playing the sound.&lt;br /&gt;
|off            = Stop the sound, if it is playing.&lt;br /&gt;
|params         = * '''Sound Filename:''' Disk filename of the sound to play (including .wav extension). &lt;br /&gt;
* '''Min Distance:''' Distance (in meters) where the sound begins to drop off in volume.  If you don’t want the sound to be 3D, set the Min Distance to zero.&lt;br /&gt;
* '''Looping:''' If true, the sound will play looping (until you stop it by sending an Off message to this Event).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Play_Vclip&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event is used to play a specified vclip (from [[vclip.tbl]])&lt;br /&gt;
|on             = Play the specified vclip at the event location.&lt;br /&gt;
|params         = * '''Vclip Name:''' Specify the vclip to play.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Remove_Object&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will destroy all objects linked to the event.  Objects will disappear instantly (i.e., without their death sequence).&lt;br /&gt;
|on             = Kill all linked objects immediately.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Slay_Object&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will kill all linked objects, and allow their death sequence to play.&lt;br /&gt;
|on             = Kill all linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Spawn_Object&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause a specific object type to be created.  The object is created at the event location, with an identity matrix orientation.&lt;br /&gt;
|on             = Spawn the object at the Event location.&lt;br /&gt;
|params         = * '''Object Type:''' Entity, Clutter, Item.  Selectable from a drop-down list.&lt;br /&gt;
* '''Object Class:''' The classname of the object.  Selectable from a drop-down list.  The choice here depends on the Object Type that has been selected.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Swap_Textures&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause the specified textures (up to 2 per event) to be used on all linked objects.&lt;br /&gt;
|on             = Swap the textures.&lt;br /&gt;
|params         = * '''Texture Num:''' Texture index to swap (starts from 0).&lt;br /&gt;
* '''Texture Filename:''' Disk filename (including extension) of the texture bitmap to use.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Modifiers==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Armor&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event adds or subtracts from the armor of all linked objects.&lt;br /&gt;
|on             = Apply the Armor Delta specified in this event's properties to all linked objects.&lt;br /&gt;
|params         = * '''Armor Delta:''' Modification to perform to armor. Negative values subtract armor, positive values add armor.&lt;br /&gt;
* '''Apply to player:''' If ticked, apply the Armor Delta to the player as the On response, rather than applying it to linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Black_Out_Player&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Fade the player's camera out to, or in from, full black.&lt;br /&gt;
|on             = Linearly fade the player's camera to full black over the time specified in the event properties.&lt;br /&gt;
|off            = Immediately set the player's camera to full black and then linearly fade in to full visibility over the time specified in the event properties.&lt;br /&gt;
|params         = * '''Blackout Time:''' Specify the time over which the blackout occurs.&lt;br /&gt;
* '''Kill Player After Blackout:''' If ticked, the player will be killed after the Blackout Time has elapsed.&lt;br /&gt;
* '''End Level After Blackout:''' If ticked, the level will end after the Blackout Time has elapsed, with a scrolling endgame message pulled from [[endgame.tbl]]. The Script Name for the Black_Out_Player event is used to specify the endgame.tbl entry that is displayed.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Bolt_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the active state of linked [[RED Objects#Bolt Emitter|bolt emitters]]. The default state for bolt emitters is controlled by the &amp;quot;Emitter is initially on&amp;quot; flag in the emitter properties.&lt;br /&gt;
|on             = Set all linked bolt emitters to active/enabled.&lt;br /&gt;
|off            = Set all linked bolt emitters to inactive/disabled.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Clear_Endgame_If_Killed&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to allow [[RED Objects#Entity|entities]] which would ordinarily trigger an endgame sequence when killed, to be killed without triggering that sequence.&lt;br /&gt;
|on             = Remove the &amp;quot;End Game If Killed&amp;quot; flag from all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Continuous_Damage&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Cause the AI or Player which triggered the event to receive damage (use a trigger reset time of 0 to make the damage continuous).&lt;br /&gt;
|on             = Apply damage to the entity who triggered the event. Any linked objects will also receive damage.&lt;br /&gt;
|params         = * '''Damage Per Sec:''' Damage per second applied. (0 is instant death)&lt;br /&gt;
* '''Damage Type:''' melee, bullet, armor piercing bullet, explosive, fire, energy, electrical, acid, scalding.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Detach&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event controls whether linked objects (normally [[RED Objects#Entity|entities]]) are attached to [[RED Groups#Moving Groups|movers]] they intersect (like cranes, elevators, etc.)&lt;br /&gt;
|on             = Detach linked objects from moving groups they intersect.&lt;br /&gt;
|off            = Attach linked objects to moving groups they intersect.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Fog_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the active state of the level's distance-based fog (fog uses the settings configured in [[RED_User_Guide#Level_Properties|Level Properties]], and the default behaviour is for fog to be enabled).&lt;br /&gt;
|on             = Set fog to enabled/active.&lt;br /&gt;
|off            = Set fog to disabled/inactive.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Force_Monitor_Update&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event forces linked monitors to refresh their displayed image.&lt;br /&gt;
|on             = Force an image update on all linked monitors.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Give_Item_To_Player&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will make the player pick up a specific item.  Items are normally automatically picked up by the player when they get close enough to them.  All game items are specified in items.tbl.&lt;br /&gt;
|on             = Give the player the specified item.&lt;br /&gt;
|params         = * '''Item:''' Item class name, which is selectable from a drop-down list of all items from items.tbl.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Go_Undercover&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to put the player into undercover mode (as used in the RF campaign stealth sequences).&lt;br /&gt;
|on             = Set player to undercover.&lt;br /&gt;
|off            = Remove the undercover status of the player.&lt;br /&gt;
|params         = * '''Cover:''' Specify whether the undercover type is executive (as used in [[L6: Corporate HQ|Corporate HQ]]) or scientist (as used in [[L8: Medical Research|Medical Research]]).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Heal&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event adds or subtracts from the health of all linked objects.&lt;br /&gt;
|on             = Apply the Life Delta specified in this event's properties to all linked objects.&lt;br /&gt;
|params         = * '''Life Delta:''' Modification to perform to life. Negative values subtract life, positive values add life.&lt;br /&gt;
* '''Apply to player:''' If ticked, apply the Life Delta to the player as the On response, rather than applying it to linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Ignite_Entity&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to ignite linked [[RED Objects#Entity|entities]].&lt;br /&gt;
|on             = Ignite all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Make_Fly&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will make the linked AI enter fly mode.  If the AI is already flying, this event does nothing.  This event can only make AI fly if it normally has the ability (i.e., this event can’t make a Cave Slug fly).&lt;br /&gt;
|on             = Make linked AI enter fly mode.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Make_Invulnerable&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the invulnerability state of linked objects. By default, all objects are vulnerable.&lt;br /&gt;
|on             = Set all linked objects to invulnerable for the duration specified in the event properties.&lt;br /&gt;
|off            = Set all linked objects to vulnerable (ie. revert the effect of any previously applied Make_Invulnerable events)&lt;br /&gt;
|params         = * '''Duration:''' Specify a duration for the invulnerability. If 0, invulnerability lasts indefinitely.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Make_Walk&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will make the linked AI enter walk mode.  If the AI is already walking, this event does nothing.  This event can only make AI walk if it normally has the ability (i.e., this event can’t make a Grabber walk).&lt;br /&gt;
|on             = Make linked AI enter walk mode.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Modify_Rotating_Mover&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Speed up or slow down the movement of all linked rotating movers.&lt;br /&gt;
|on             = Apply the modification specified in the event properties to all linked rotating movers.&lt;br /&gt;
|params         = * '''Settings:''' Configure settings to increase or decrease all linked rotating movers by the percentage specified.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Mover_Pause&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event toggles the active state of linked movers.&lt;br /&gt;
|on             = Immediately pause all linked movers at their current position.&lt;br /&gt;
|off            = Resume the movement of all linked movers (ie. revert the effect of a previously applied Mover_Pause)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Particle_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the active state of linked [[RED Objects#Particle Emitter|particle emitters]]. The default state for particle emitters is controlled by the &amp;quot;Emitter is initially on&amp;quot; flag in the emitter properties.&lt;br /&gt;
|on             = Set all linked particle emitters to active/enabled.&lt;br /&gt;
|off            = Set all linked particle emitters to inactive/disabled.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Push_Region_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the active state of linked [[RED Objects#Push Region|push regions]]. The default state for push regions is active/enabled.&lt;br /&gt;
|on             = Set all linked push regions to active/enabled.&lt;br /&gt;
|off            = Set all linked push regions to inactive/disabled.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Reverse_Mover&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to immediately reverse the direction in which linked movers are currently moving. This event is linked to a [[RED Objects#Keyframe|keyframe]] object.&lt;br /&gt;
|on             = Reverse the direction of all linked movers that meet the condition specified in the event parameters.&lt;br /&gt;
|params         = * '''If Moving:''' Specify the directional condition for the application of the event. ie. This event will only take effect if the linked mover is moving in the specified direction when the event receives an On message.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Gravity&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Set the downward acceleration due to gravity applied to all objects in the world.&lt;br /&gt;
|on             = Override the default gravity (-9.8 m/s^2) with the value specified in the event properties.&lt;br /&gt;
|params         = * '''Gravity:''' Value for acceleration due to gravity, specified in m/s^2, and applied in the Y axis.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Liquid_Depth&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Linearly transition the liquid depth of the linked [[RED Objects#Room Effect|Room Effect]] object to a specified new depth over time.&lt;br /&gt;
|on             = Begin transitioning liquid depth according to settings configured in properties.&lt;br /&gt;
|params         = * '''Depth:''' Set the desired depth after the transition has completed.&lt;br /&gt;
* '''Time:''' How long in seconds it takes the liquid depth to transition to the event-configured depth from the configured depth value in the properties of the linked [[RED Objects#Room Effect|Room Effect]].&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Shake_Player&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will shake the viewpoint of the Player.&lt;br /&gt;
|on             = Start shaking the Player camera.&lt;br /&gt;
|params         = * '''Magnitude:''' How strong to make the shaking.  This value is the max amplitude of the shake in meters. &lt;br /&gt;
* '''Time:''' How long to shake the camera in seconds.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Skybox_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Can be used to rotate the skybox around the camera.&lt;br /&gt;
|on             = Start rotating as per values specified in the event properties. Rotation is always from -360 to 360, then loops.&lt;br /&gt;
|params         = * '''Axis:''' Axis to rotate the skybox around.&lt;br /&gt;
* '''Velocity:''' Velocity/speed of the rotation, specified in degrees-per-second (degrees/sec).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Strip_Player_Weapons&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Used to remove weapons from the player's inventory.&lt;br /&gt;
|on             = Remove all weapons and ammo the player currently has.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Switch_Model&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will change the model of all linked objects to the model filename that is contained in the event.&lt;br /&gt;
|on             = Change the model.&lt;br /&gt;
|params         = * '''Model filename:''' Disk filename (with extension) of the model to switch to.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Teleport&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will teleport all linked objects to the event location.  There are no special effects associated with the teleportation.&lt;br /&gt;
|on             = Teleport all linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Teleport_Player&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Teleports the player. This is the only event for which pitch/yaw is relevant, so the event displays a small red arrow showing you which direction it is facing.&lt;br /&gt;
|on             = Teleport the player to the event, setting their position (xyz) and rotation (pitch/yaw) to that of the Teleport_Player event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Turn_Off_Physics&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event controls whether linked [[RED Objects#Entity|entities]] have physics applied. Typically, this event is used alongside [[RED Event List#Detach|Detach]] to move entities via cranes or similar. Physics is enabled by default.&lt;br /&gt;
|on             = Turn off physics for all linked entities.&lt;br /&gt;
|off            = Turn on physics for all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Unhide&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Manipulate the visibility of linked object(s). Note that if this event is used to unhide an entity, the entity will not be &amp;quot;unhidden&amp;quot; until the next time its' root bone is out of the player's line of sight. Because of this, you will normally want to be sure to send an on message to an unhide event at a time the linked entity is out of the player's view.&lt;br /&gt;
|on             = Unhide all linked objects.&lt;br /&gt;
|off            = Hide all linked objects.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Special==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Activate_Capek_Shield&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event can be used to activate a Capek nanotech shield on-demand for entities that support it.&lt;br /&gt;
|on             = Activate nanotech shield for all linked entities (provided they are allowed to use it).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Countdown_Begin&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event is used to start an on-HUD countdown.&lt;br /&gt;
|on             = Start the countdown&lt;br /&gt;
|params         = * '''Time:''' Specify duration for the countdown (in seconds).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Countdown_End&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event is used to forcibly end an active countdown.&lt;br /&gt;
|on             = End the active countdown.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Defuse_Nuke&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event brings up the RF1 campaign endgame nuke puzzle sequence.&lt;br /&gt;
|on             = Display nuke puzzle.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Display_Fullscreen_Image&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = Displays a specified image/texture filename stretched to the player's window resolution. Note that [[Dash Faction]] is required for alpha channels on fullscreen images to function correctly.&lt;br /&gt;
|on             = Display the specified filename as a fullscreen image.&lt;br /&gt;
|off            = Stop displaying the fullscreen image.&lt;br /&gt;
|params         = * '''Filename:''' Image to display (normally .tga or .vbm). It's very important to ensure the data in this field is correct - a Display_Fullscreen_Image event that receives an on message but has no valid filename specified will result in an unrecoverable error (crash).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Fire_Weapon_No_Anim&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event is used in very niche circumstances to force a gun to fire without playing its normal animation. Typically, you would do this while already playing a properly-timed custom animation.&lt;br /&gt;
|on             = Force linked entities to fire their equipped weapon without playing a fire animation.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Never_Leave_Vehicle&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event stops the player from being able to leave a vehicle they're piloting.&lt;br /&gt;
|on             = Stop the player from being able to leave a vehicle.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Win_PS2_Demo&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event triggers the PS2 demo endgame sequence, which involves 3 demo upsell graphics (demo-upsell1.tga, demo-upsell2.tga, demo-upsell3.tga) and then drops back to the main menu.&lt;br /&gt;
|on             = Initiate PS2 demo endgame sequence.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Deprecated==&lt;br /&gt;
*The below events are not readily accessible via the [[RED Objects#Events|Events]] section of [[RED Functionality Overview#Object Mode|Object Mode]], but are referenced in '''events.tbl''' and/or [[RED]] documentation.&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Follow_Player&lt;br /&gt;
|category       = Deprecated&lt;br /&gt;
|description    = This Event will force all linked objects to follow and protect the Player.  This should only be used to make Hendrix follow (or stop following) the Player.&lt;br /&gt;
|on             = Make linked entities follow the Player.&lt;br /&gt;
|off            = Make linked entities stop following the Player.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Level_Transition_Marker&lt;br /&gt;
|category       = Deprecated&lt;br /&gt;
|description    = This is a special type of event which doesn’t respond to On or Off messages.  This event is used to maintain the correct positions and orientations off all objects in the transition areas between levels.  This event needs to be placed in the location of the trigger which causes level loading in the other level involved in the transition.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Light_State&lt;br /&gt;
|category       = Deprecated&lt;br /&gt;
|description    = This Event will set the state of any linked lights.  Currently this event can set a light on or off, but any light related changes (like making a light flash, change color, etc.) can be data within this event.&lt;br /&gt;
|on             = Change the state of all linked lights.&lt;br /&gt;
|params         = * '''State:''' On or Off.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Shield&lt;br /&gt;
|category       = Deprecated&lt;br /&gt;
|description    = This event will add the Shield Delta value to the shield of all linked objects. (this event was likely replaced by [[RED Event List#Armor|Armor]])&lt;br /&gt;
|on             = Add Shield Delta to all linked objects shields.&lt;br /&gt;
|params         = * '''Shield Delta:''' The amount of shield to add (you can decrease shield by using a negative number here).&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: RF1 Editing]]&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
[[Category: Archived RF1 Content]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=RED_Event_List&amp;diff=15083</id>
		<title>RED Event List</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=RED_Event_List&amp;diff=15083"/>
		<updated>2025-12-19T11:33:10Z</updated>

		<summary type="html">&lt;p&gt;Goober: /* AF_Catalysts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BubbleNav|RF1Modding}}&lt;br /&gt;
This page lists all event scripting objects available in [[RED]]. To read more about how the scripting system itself works, see [[RED Objects#Events|Events]].&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction==&lt;br /&gt;
The events in categories prefixed with &amp;quot;AF_&amp;quot; are only available in [[Alpine Faction]]. If you don't see them listed, you should install [https://alpinefaction.com Alpine Faction] and launch RED through the Alpine Faction launcher.&lt;br /&gt;
&lt;br /&gt;
* For other level editing features and improvements that are specific to Alpine Faction, see [[Alpine Level Design]]&lt;br /&gt;
&lt;br /&gt;
==AF_Catalysts==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = AF_When_Dead&lt;br /&gt;
|category       = AF_Catalysts&lt;br /&gt;
|description    = Upgraded version of the stock &amp;quot;When_Dead&amp;quot; event. Does not require a slot in the savegame file, so there is no limit on the number of '''AF_When_Dead''' events that you can use in a single map. Also supports repeated activations, unlike the stock event.&lt;br /&gt;
|params         = * '''Activate on any dead:''' (bool1) If true, this event sends an on message each time a linked entity or clutter dies. If false, this event only sends a single on message at the time that all linked entities/clutter are dead.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Captured&lt;br /&gt;
|category       = AF_Catalysts&lt;br /&gt;
|description    = Fires a message to all linked triggers, movers, and events whenever a linked control point is captured by either team.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Picked_Up&lt;br /&gt;
|category       = AF_Catalysts&lt;br /&gt;
|description    = Fires a message to all linked triggers, movers, and events whenever a linked item is picked up by the player. Single player only.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AF_Flow==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Sequence&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Each activation of this event routes the message to the next link in sequential order. After the last link, the cycle resets and the first link is called. Note the order of links is determined by the order in which you add them.&lt;br /&gt;
|on             = Send an on signal to the next link in the sequence.&lt;br /&gt;
|params         = * '''Next index to activate:''' (int1) Next link index to be activated when this event processes an on message. This setting essentially allows you to jump to a specific point in the sequence when you wish.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Difficulty_Gate&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Tests if the game is set to the specified difficulty and forwards messages only if true.&lt;br /&gt;
|on             = Forward on signal to all links, if the game is set to the specified difficulty.&lt;br /&gt;
|params         = * '''Difficulty:''' (int1&amp;quot;) Difficulty to test against.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Valid_Gate&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Tests if the specified UID is a valid object and forwards messages only if true. In the case of objects that have life values (ie. clutter and entities), &amp;quot;valid&amp;quot; means alive.&lt;br /&gt;
|on             = Forward on signal to all links, if the specified object is valid.&lt;br /&gt;
|params         = * '''Object UID to test:''' (int1&amp;quot;) Object UID to be checked.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Inside_Gate&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Tests if an object (default: the player who activated the event) is in a specified area of the map. Forwards messages if true.&lt;br /&gt;
|on             = Forward on signal to all links if test passes.&lt;br /&gt;
|params         = * '''UID (trigger/room) to check:''' (int1) Region to be checked. Can be a trigger UID or a room UID (Room Effect).&lt;br /&gt;
* '''What to check for:''' (int2) Object to be checked. If not specified, defaults to the player who activated the event.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Switch_Random&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Randomly select one of this event's links and send an on message to it.&lt;br /&gt;
|on             = Send an on message to a randomly selected link.&lt;br /&gt;
|params         = * '''No repeats until all used:''' (bool1) Never choose the same link twice until all links have been chosen at least once.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Route_Node&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = In-line multi-purpose flow control node. Has several options to control what the processed message looks like.&lt;br /&gt;
|params         = * '''Node behavior:''' (int1) What should the Route_Node do to the message?&lt;br /&gt;
* '''Non-retriggerable delay:''' (bool1) If true, ignore any received messages while a message is currently queued on this Route_Node. Has no effect unless a delay is specified.&lt;br /&gt;
* '''Clear trigger info:''' (bool2) If true, clear information about the trigger and object that initiated the message when passing through this Route_Node.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Gate&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Performs a test on a specified goal (integer variable). Forwards message to links only if test passes.&lt;br /&gt;
|on             = Perform test and forward message if passed.&lt;br /&gt;
|params         = * '''Goal to test:''' (str1) Specify the goal name to which the test is applied.&lt;br /&gt;
* '''Test to run:''' (int1)&lt;br /&gt;
* '''Value to test against:''' (int2) Note: ignored if testing against initial value.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Scope_Gate&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Performs a test on various aspects of the game. Forwards message to links only if test passes.&lt;br /&gt;
|on             = Perform test and forward message if passed.&lt;br /&gt;
|params         = * '''Scope to test against:''' (int1) Test to run&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Gametype_Gate&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Performs a test on the gametype of the game. Forwards message to links only if test passes. Works only in multiplayer (test will always fail in single player).&lt;br /&gt;
|on             = Perform test and forward message if passed.&lt;br /&gt;
|params         = * '''Check for gametype:''' (int1) Gametype to test against.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AF_Gameplay==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Capture_Point_Handler&lt;br /&gt;
|category       = AF_Gameplay&lt;br /&gt;
|description    = Controls the behaviour of a multiplayer control point (capture zone) for [[King of the Hill]], [[Damage Control]], and [[Revolt]]. Uses a linked [[RED Objects#Triggers|trigger]] to define the capture area and manages capture progress, ownership, and HUD display.&lt;br /&gt;
|params         = * '''Name:''' (str1) Display name for the control point.&lt;br /&gt;
* '''Outline offset:''' (float1) Vertical offset for the circular outline drawn on the ground around the capture area. Useful for keeping the outline visible above uneven terrain.&lt;br /&gt;
* '''Cap rate multiplier:''' (float2) Multiplier applied to the base capture rate. '''0.0''' = no multiplier (same as '''1.0'''). Higher values capture faster; values between '''0.0''' and '''1.0''' capture slower.&lt;br /&gt;
* '''Stage:''' Specify stage for this point. Only used in [[Revolt]].&lt;br /&gt;
* '''Cylindrical Trigger:''' If true, treat the linked trigger as a vertical cylinder instead of using its raw shape. For sphere triggers, the cylinder radius matches the sphere radius. For box triggers, the cylinder diameter uses the longest edge of the box.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AF_General==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Clone_Entity&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Creates a clone of the linked entity with the same properties and settings as its source.&lt;br /&gt;
|on             = Create a clone at the event's position, and with the event's orientation.&lt;br /&gt;
|params         = * '''Clone is hostile to player:''' (bool1) If true, clone is actively hostile to player and will engage if it spots the player.&lt;br /&gt;
* '''Go to player:''' (bool2) If true, the clone will begin running to the player immediately when created. Assuming there is a valid route to the player's position, it will find them.&lt;br /&gt;
* '''Link event UID to clone:''' (int1) If specified, when a clone is created, a link will be created between the specified event UID and the clone.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Player_World_Collide&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Control whether the player collides with level geometry.&lt;br /&gt;
|on             = Collision = true (default)&lt;br /&gt;
|off            = Collision = false&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Level_Hardness&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Set the hardness for the loaded level (size of geo craters).&lt;br /&gt;
|on             = Set hardness to the specified value.&lt;br /&gt;
|params         = * '''Hardness:''' (int1) The hardness value to set.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Difficulty&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Set the difficulty level of the game.&lt;br /&gt;
|on             = Set difficulty to the specified value.&lt;br /&gt;
|params         = * '''Difficulty:''' (int1) Set the game's difficulty.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Skybox&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Set the room to project as skybox.&lt;br /&gt;
|on             = Set skybox information as configured.&lt;br /&gt;
|params         = * '''Skybox room UID:''' (int1) Specify the room UID (by ''Room Effect'') to set as the sky room.&lt;br /&gt;
* '''Eye anchor UID:''' (int2) Specify the ''Anchor_Marker'' event to use as the eye position inside the sky room.&lt;br /&gt;
* '''Use relative position:''' (bool1) If true, apply relative position mapping camera position in world space to eye position in the sky room.&lt;br /&gt;
* '''Relative position scale:''' (float1) Scale/ratio to apply to relative position camera mapping.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Item_Drop&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Changes the configured item drop for linked entities.&lt;br /&gt;
|on             = Set item drop.&lt;br /&gt;
|params         = * '''Item class to drop:''' (str1) Item name to drop. Event will have no effect unless this is a valid item name (from [[items.tbl]])&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Life&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Changes the base life value of linked clutter and/or entities.&lt;br /&gt;
|on             = Set the base life value.&lt;br /&gt;
|params         = *'''New life value:''' (int1)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = AF_Heal&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Heal or damage the player (or multiple players in multiplayer) by a specific amount. Can also apply to armour.&lt;br /&gt;
|on             = Apply the configured change.&lt;br /&gt;
|params         = * '''Amount:''' (int1) What numeric change should be applied&lt;br /&gt;
* '''Apply change to:''' (int2) Who should it be applied to?&lt;br /&gt;
* '''Apply to armor instead:''' (bool1) If true, apply the change to armour rather than health.&lt;br /&gt;
* '''Allow super values:''' (bool2) If true, accomodate for super health/super armour. If false, the resulting health or armour after applying the change is clamped to 0-100. If true, it's clamped to 0-200.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = World_HUD_Sprite&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Display a sprite in the world, most often used for providing the player with directions (for example, to an objective).&lt;br /&gt;
|on             = Enable the sprite.&lt;br /&gt;
|off            = Disable the sprite.&lt;br /&gt;
|params         = * '''Start enabled:''' (bool1) Is the sprite initially enabled when the map loads?&lt;br /&gt;
* '''Render mode:''' (int1) How is the sprite rendered? Overdraw means players can see the sprite through all level geometry.&lt;br /&gt;
* '''Render scale:''' (float1) Adjust the scale of the sprite (1.0 for normal size).&lt;br /&gt;
* '''Sprite filename:''' (str1) Specify the filename to use for the sprite when rendered. If ''Sprite filename blue'' is also specified, this field is the sprite rendered for the red team in multiplayer.&lt;br /&gt;
* '''Sprite filename blue:''' (str2) Specify the filename to use for the sprite when rendered for the blue team only (in multiplayer). If this field isn't specified, the sprite filename specified for ''Sprite filename'' will be shown to all players regardless of team.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = HUD_Message&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Display a green HUD message in the bottom middle of the screen (like the helper text when you pick up items).&lt;br /&gt;
|on             = Display the HUD message for the configured duration.&lt;br /&gt;
|params         = * '''Message text:''' (str1) The message to display.&lt;br /&gt;
* '''Duration:''' (float1) Duration in seconds the message will be displayed. Note the message will go away quicker if another HUD message is displayed (such as from another HUD_Message event, or from the player picking up an item)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Play_Video&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Play a .bik format video.&lt;br /&gt;
|on             = Play the video specified.&lt;br /&gt;
|params         = * '''Video filename:''' (str1) The filename of the video to play.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Force_Unhide&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Force unhide/hide an object with no conditions. Virtually identical to the stock &amp;quot;Unhide&amp;quot; event, except this one will always do it, regardless of player line of sight or any other factors.&lt;br /&gt;
|on             = Unhide linked objects.&lt;br /&gt;
|off            = Hide linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Fog_Far_Clip&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Sets the far clip plane used for distance fog.&lt;br /&gt;
|on             = Set far clip plane to specified value (in metres).&lt;br /&gt;
|params         = * '''Far clip distance:''' (int1) Far clip plane distance.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Entity_Flag&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Turn on or off entity flags on linked entities.&lt;br /&gt;
|on             = Turn selected flag on.&lt;br /&gt;
|off            = Turn selected flag off.&lt;br /&gt;
|params         = * '''Flag to set:''' (int1)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Debris&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Set the debris and explosion parameters for linked clutter and/or entities.&lt;br /&gt;
|on             = Set values as specified.&lt;br /&gt;
|params         = * '''Debris filename:''' (str1) Filename of debris to set.&lt;br /&gt;
* '''Explosion VClip index:''' (int1) Index of VClip to play when object dies (from [[vclip.tbl]]).&lt;br /&gt;
* '''Explosion VClip radius:''' (float1)&lt;br /&gt;
* '''Debris sound set:''' (str2) Sound set to use for debris collision (from [[foley.tbl]]). (Only supported on clutter)&lt;br /&gt;
* '''Debris velocity:''' (float2) Velocity of debris. (Only supported on clutter)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = AF_Teleport_Player&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Teleport player to the event's position, with the event's orientation.&lt;br /&gt;
|on             = Teleport player.&lt;br /&gt;
|params         = * '''Reset player velocity:''' (bool1) If true, set player velocity to 0 m/s after teleporting. If false, player details velocity, but it is translated based on the orientation of the event.&lt;br /&gt;
* '''Eject player from vehicle:''' (bool2) If true, if the player is in a vehicle, eject them from the vehicle and teleport them just as a player. If false, teleport their vehicle. Has no effect in multiplayer or if the player is not in a vehicle.&lt;br /&gt;
* '''Entrance VClip:''' (str1) VClip name (from [[vclip.tbl]]) to play at the player's position just before they teleport.&lt;br /&gt;
* '''Exit VClip:''' (str2) VClip name (from [[vclip.tbl]]) to play at the teleport destination when the player arrives.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Fog_Color&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Sets the distance fog colour.&lt;br /&gt;
|on             = Set configured fog colour.&lt;br /&gt;
|params         = * '''Fog color:''' (str1) Specify fog colour to set. Uses the same format as Level Properties - e.g. specifying &amp;quot;&amp;lt;255, 255, 255&amp;gt;&amp;quot; would result in pure white fog.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Light_Color&lt;br /&gt;
|category       = AF_General&lt;br /&gt;
|description    = Sets the colour of dynamic lights&lt;br /&gt;
|on             = Set light colour.&lt;br /&gt;
|params         = * '''Light color:''' (str1) Specify light colour to set. Uses the same format as Light properties - e.g. specifying &amp;quot;&amp;lt;255, 255, 255&amp;gt;&amp;quot; would result in pure white light.&lt;br /&gt;
* '''Random color instead:''' (bool1) If true, generate a random color instead.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AF_Utility==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Variable&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Reconfigure a variable on linked Alpine Faction event(s).&lt;br /&gt;
|on             = Updates the variable of the linked event(s) based on the provided configuration.&lt;br /&gt;
|params         = * '''Variable handle:''' The variable to be set. This corresponds to the variable names provided in parentheses on the properties panel for Alpine events.&lt;br /&gt;
* '''Value for int1 or int2:''' If variable handle is int1 or int2, set the variable on the linked event(s) to this value.&lt;br /&gt;
* '''Value for delay, float1, or float2:''' If variable handle is delay, float1, or float2, set the variable on the linked event(s) to this value.&lt;br /&gt;
* '''Value for bool1 or bool2:''' If variable handle is bool1 or bool2, set the variable on the linked event(s) to this value.&lt;br /&gt;
* '''Value for str1 or str2:''' If variable handle is str1 or str2, set the variable on the linked event(s) to this value.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Remove_Link&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Used to remove links between objects. By default (with &amp;quot;Purge all links&amp;quot; turned off), removes links between objects this event is linked to.&lt;br /&gt;
|on             = Remove links.&lt;br /&gt;
|params         = * '''Purge all links:''' (bool1) Instead, remove all links between every object this event is linked to and any other objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Math&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Used to perform math operations on goals (integer variables). Applies the operation to level (non-persistent) goals, as well as persistent goals that are loaded.&lt;br /&gt;
|on             = Apply the operation.&lt;br /&gt;
|params         = * '''Goal to edit:''' (str1) Specify the goal name to apply the operation.&lt;br /&gt;
* '''Operation to perform:''' (int1)&lt;br /&gt;
* '''Value to use for operation:''' (int2)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Anchor_Marker_Orient&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Same as the '''Anchor_Marker''' event, except this one respect the orientation (direction) of the event. Can be used to, among other things, rotate particle emitters or push regions using movers.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Clear_Queued&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Clears queued message (if any) on all linked events. Queued messages are messages that are queued per a configured delay value on that event.&lt;br /&gt;
|on             = Clear queued messages.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Add_Link&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Adds links from the specified source event to each object this event is linked to.&lt;br /&gt;
|on             = Add links.&lt;br /&gt;
|params         = * '''Source event UID:''' (int1) Source event for the links.&lt;br /&gt;
* '''Link inbound:''' (bool1) Reverse the operation - create links from each object this event is linked to, inbound to the specified source event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Anchor_Marker&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Used to &amp;quot;drag along&amp;quot; some object types that can't normally be added to moving groups. Simply add the Anchor Marker to the moving group, then link the Anchor_Marker to the objects you want to bring. That object/those objects will have their position locked to the position of the Anchor_Marker event as it travels with the mover. Supports Lights (Dynamic only), Particle Emitters, and Push Regions. Can also be used in conjunction with '''Set_Skybox''' to specify the &amp;quot;eye&amp;quot; location within the skybox.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Light_State&lt;br /&gt;
|category       = AF_Utility&lt;br /&gt;
|description    = Used to toggle Lights (Dynamic only) on/off as desired.&lt;br /&gt;
|on             = Turn linked lights on.&lt;br /&gt;
|off            = Turn linked lights off.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AI_Actions==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Attack&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = Used to force AI entities to attack objects.&lt;br /&gt;
|on             = Make attacker specified by attacker uid param attack the object the Attack event is linked to.&lt;br /&gt;
|params         = * '''Attacker UID:''' Primary, Secondary, Flare.  What type of weapon to use.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Drop_Point_Marker&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This is a special type of Event which doesn’t respond to On or Off messages.  This event is used as a position where AI will drop off objects while in AI_COLLECTING_MODE. This is how Grabber robots can drop their rocks off at a specific location.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Drop_Weapon&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event is used to force linked [[RED Objects#Entity|entities]] to drop any weapons they may be holding.&lt;br /&gt;
|on             = Force all linked entities to drop their equipped weapon.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Follow_Waypoints&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will force all linked objects to follow a specified waypoint list, with a specific following method.&lt;br /&gt;
|on             = Begin following the waypoints.  An AI will use the closest waypoint as the location to begin the path following.&lt;br /&gt;
|off            = Stop following the current waypoint path.&lt;br /&gt;
|params         = * '''Waypoint List:''' Name of the waypoint list that the AI should follow.&lt;br /&gt;
* '''Always Face Player:''' If true, the AI will always face the player while following their waypoints.&lt;br /&gt;
* '''Follow Method:''' This determines how the AI will behave when the last waypoint node is reached.  The choices are: &lt;br /&gt;
*# One way:	follow the waypoints to the last node and stop.&lt;br /&gt;
*# Loop: follow the waypoints to the last node, then return to the start and repeat.&lt;br /&gt;
*# Ping Pong: follow the waypoints to the last node, then follow the nodes back to the start (repeat).&lt;br /&gt;
* '''Run:''' If ticked, the linked objects will attempt to run rather than walk while following the waypoint list.&lt;br /&gt;
* '''Always Face Player:''' If ticked, the linked objects will always look at the player while following the waypoint list.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goto&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will make all linked entities travel to the Event location.&lt;br /&gt;
|on             = Make linked entities start moving towards Event location.&lt;br /&gt;
|params         = * '''Run:''' If ticked, the linked objects will attempt to run rather than walk.&lt;br /&gt;
* '''Always Face Player:''' If ticked, the linked objects will always look at the player while following the path.&lt;br /&gt;
* '''Face Player When Finished:''' If ticked, AI will face the player immediately when they get to the Goto event location. &lt;br /&gt;
* '''Override Current Behavior:''' If ticked, AI will ignore any other pathing until reaching the Goto event location. This includes the AI not chasing the player.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goto_Player&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will make all linked entities travel to the Player position.  The linked entities will continue to pathfind to the Player until they have line-of-sight.  When the entities can see the Player, they will return to their default AI.&lt;br /&gt;
|on             = Make linked entities start moving towards the Player.&lt;br /&gt;
|params         = * '''Run:''' If ticked, the linked objects will attempt to run rather than walk.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Headlamp_State&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event toggles the headlamp state of all linked [[RED Objects#Entity|entities]] (realistically, vehicles). Default state is for headlamps to be disabled.&lt;br /&gt;
|on             = Turn on headlamps for all linked entities.&lt;br /&gt;
|off            = Turn off headlamps for all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Holster_Player_Weapon&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will forcefully holster the player's weapon.&lt;br /&gt;
|on             = Holster the player weapon.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Holster_Weapon&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will forcefully holster the weapon of any linked entities.&lt;br /&gt;
|on             = Holster the weapons of all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Look_At&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This Event will cause any linked AI to turn and face the Event location.&lt;br /&gt;
|on             = Make linked AI look at the Event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Play_Animation&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will cause a linked AI to play a specific animation.  If the animation is a state animation (i.e., a looping animation) then it will replace the current animation state for the AI.  If the animation is an action animation (i.e., a one-time animation) then it is blended with the current state.&lt;br /&gt;
|on             = Play the animation.&lt;br /&gt;
|params         = * '''Animation:''' Name of the animation. This is selectable from a list of possible animations for the object that is linked. &lt;br /&gt;
* '''Hold Last Frame:''' If true, the model will stay in the last frame of animation. This is only valid if the animation is defined as an action animation.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_AI_Mode&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event is used to set the AI mode of all linked [[RED Objects#Entity|entities]], overriding the AI mode configured in the properties of those entities.&lt;br /&gt;
|on             = Set AI mode of linked entities to the mode specified in the event paramets. &lt;br /&gt;
|params         = * '''AI Mode:''' Specify desired AI mode.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Friendliness&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will set the Friendliness of all linked objects.&lt;br /&gt;
|on             = Change the Friendliness of an entity.&lt;br /&gt;
|params         = * '''Friendliness:''' The friendliness is selectable from a drop-down list, and consists of the following choices:&lt;br /&gt;
*# Unfriendly: AI will attack the player on sight.&lt;br /&gt;
*# Neutral: AI will only attack the player if provoked.&lt;br /&gt;
*# Friendly: AI will not attack the player, and may attack entities that are attacking the player.&lt;br /&gt;
*# Outcast: AI will attack anything it sees.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Shoot_At&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will cause all linked AI to shoot at the Event location.  The AI will continue to shoot at the Event until an Off message is received.&lt;br /&gt;
|on             = Make all linked AI attack the Event location.&lt;br /&gt;
|off            = Make all linked AI stop attacking the Event location.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Shoot_Once&lt;br /&gt;
|category       = AI_Actions&lt;br /&gt;
|description    = This event will make all linked AI shoot once in the direction they are currently facing.&lt;br /&gt;
|on             = Fire a single time.&lt;br /&gt;
|params         = * '''Shoot Type:''' Primary, Secondary, Flare.  What type of weapon to use.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Catalysts==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Cyclic_Timer&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event will send an On message to all linked Events at a specified interval.  This Event has to receive an On Message before it will begin sending out messages.&lt;br /&gt;
|on             = Begin sending On messages at the specified interval.&lt;br /&gt;
|params         = * '''Time:''' The interval in seconds between sending On messages to all linked events.&lt;br /&gt;
* '''Max Sends:''' The number of times the Event will send out On messages.&lt;br /&gt;
* '''Send Forever:''' If true, the Max Sends field is ignored, and the Cyclic Timer sends On messages forever.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Delay&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = Forwards a response it receives to all linked events after the specified delay duration.&lt;br /&gt;
|on             = Send (forward) an on response to all linked events following the delay duration.&lt;br /&gt;
|off            = Send (forward) an off response to all linked events following the delay duration.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Invert&lt;br /&gt;
|image          = Icon_Event_L.png&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event will change On messages to Off messages (and Off to On) before forwarding them to any linked Events.&lt;br /&gt;
|on             = Change message to off and forward to all linked events.&lt;br /&gt;
|off            = Change message to on and forward to all linked events.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Switch&lt;br /&gt;
|image          = Icon_Event_C.png&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event behaves like a switch that remembers it’s state (on or off).  This Event can be used to turn lights on or off, and can be used to let the player activate special events.  If the Event is linked to a VFX, this VFX is used as the model for the switch (the default state of the VFX should be off, with the animation taking the VFX to the on state).&lt;br /&gt;
|on             = Toggle the state of the switch.  The behavior of the switch is controlled through the Event parameters.&lt;br /&gt;
|params         = * '''Initial State:''' The initial state of the switch (either on or off).&lt;br /&gt;
* '''Behavior:''' This says what kind of signal the switch will send (toggle between on and off, always send an on, always send an off).&lt;br /&gt;
* '''Sound:''' Disk filename (including the .wav extension) of the sound to play when the switch is thrown.&lt;br /&gt;
* '''Max Throws:''' How many times the switch can be thrown. &lt;br /&gt;
* '''Infinite Throws:''' If true, the Max Throws parameter is ignored, and the switch can be thrown an infinite number of times.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Armor_Reaches&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when the object to which the When_Armor_Reaches event is linked reaches the specified amount of armor, either by armor being added or by suffering damage.&lt;br /&gt;
|params         = * '''Armor:''' Specify amount of armor (integer) at which the event will activate (send an On message).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Countdown_Over&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when a countdown ends. (countdowns are started with [[RED Event List#Countdown_Begin|Countdown_Begin]])&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Countdown_Reaches&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when a countdown reaches the specified value. (countdowns are started with [[RED Event List#Countdown_Begin|Countdown_Begin]])&lt;br /&gt;
|params         = * '''Time:''' Specify the desired time remaining at which this event should activate (send an On message).&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Cutscene_Over&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when a cutscene ends. (cutscenes are started with [[RED Event List#Cutscene|Cutscene]])&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Dead&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event will send an On message to all linked Events when all linked objects have died.  This Event is used when you want to do something when a specific object has been destroyed. Note that savegame files can store only 20 When_Dead events in a given level, so if you're mapping for single player, it's highly recommended to include no more than 20 When_Dead events in a single map.&lt;br /&gt;
|params         = * '''Activate When Any Dead:''' Modifies the default behaviour of the event such that it sends an On message each time a linked object dies, rather than the default behaviour of only sending a single On message when all linked objects have been destroyed.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Enter_Vehicle&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when the player enters the linked vehicle [[RED Objects#Entity|entity]].&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Hit&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event will send an On message to all linked Events when a linked object (normally an [[RED Objects#Entity|entity]]) suffers damage from a weapon (normally due to being shot by the player).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Life_Reaches&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when the object to which the When_Life_Reaches event is linked reaches the specified amount of life, either by being healed or by suffering damage.&lt;br /&gt;
|params         = * '''Life:''' Specify amount of life (integer) at which the event will activate (send an On message).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Try_Exit_Vehicle&lt;br /&gt;
|category       = Catalysts&lt;br /&gt;
|description    = This event sends an On message to all linked events when the player attempts to leave a vehicle [[RED Objects#Entity|entity]] they are piloting.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Level==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Alarm&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event toggles the level alarm.&lt;br /&gt;
|on             = Turn alarm on.&lt;br /&gt;
|off            = Turn alarm off.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Alarm_Siren&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event plays an audible alarm sound, without turning the level alarm on (as the [[RED Event List#Alarm|Alarm]] event does).&lt;br /&gt;
|on             = Play an alarm sound.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Cutscene&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event is used to activate an in-game cutscene. This event is very powerful, but also very complicated, with loads of options configured in the event properties. Please refer to the [[RF1_Editing_Main_Page#Events_and_Scripting|cutscene tutorials on the RF1 Editing Main Page]] for information on how to use cutscenes.&lt;br /&gt;
|on             = Play the cutscene.&lt;br /&gt;
|params         = * Many - please see tutorials linked in Description above.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Enable_Navpoint&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event toggles the active state of all linked [[RED Objects#Nav Point|Nav Points]].&lt;br /&gt;
|on             = Enables all linked Nav Points.&lt;br /&gt;
|off            = Disables all linked Nav Points.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Endgame&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event triggers an endgame sequence, and displays text from [[endgame.tbl]]. The Script Name parameter of the Endgame event is used to specify which entry from endgame.tbl is displayed to the player as an on response from this event.&lt;br /&gt;
|on             = End the game, and display scrolling text from endgame.tbl that corresponds to the Script Name of this event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Explode&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause an explosion to occur at the event location.  The explosion can be made to cause a geomod, and you can control the amount of damage caused by the explosion.&lt;br /&gt;
|on             = Make the explosion happen.&lt;br /&gt;
|params         = * '''Damage:''' The amount of damage caused by the explosion.  This is the damage that is applied to any object within the explosion range.&lt;br /&gt;
* '''Type:''' Small, Medium, Large.  This field isn’t properly supported yet.  We need to list a selection of different explosions to choose from. &lt;br /&gt;
* '''Geomod:''' If true, the explosion will apply a geomod at the center of the explosion.  The hardness of the rock where the explosion occurs is used to determine if a geomod is possible.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Check&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event can either block or forward On messages, depending on the state of an associated goal_set Event.&lt;br /&gt;
|on             = Foward On messages if min_count exceeds the current count value of the associated goal_set Event&lt;br /&gt;
|params         = * '''Goal to Check:''' Script name for the associated Goal_Create Event.&lt;br /&gt;
* '''Minimum Count:''' The miniumum value that the associated goal variable must have before forwarding messages.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Create&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will create a goal variable (integer) when it receives an On message. The variable name will be the script name of the Goal_Create event.&lt;br /&gt;
|on             = Create a goal variable.&lt;br /&gt;
|params         = * '''Start Count:''' The inital value of the goal variable (this will be zero in most cases). &lt;br /&gt;
* '''Persistent:''' If ticked, the goal variable will be available to be set/checked in future levels, and will be saved in savegame files perpetually. Note that there is a maximum of 64 persistent goal variables that may be saved in savegame files.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Goal_Set&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will increment a goal variable every time it receives an On message (Off messages will cause the count value to decrement).&lt;br /&gt;
|on             = Increment count by one.&lt;br /&gt;
|off            = Decrement count by one.&lt;br /&gt;
|params         = * '''Goal to Set:''' The goal variable name to set.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Item_Pickup_State&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event is used to toggle the active state of linked [[RED_Objects#Item|Items]] (ie. whether they can be picked up). The default behaviour of Items is enabled (they can be picked up).&lt;br /&gt;
|on             = Set all linked items to enabled (they can be picked up).&lt;br /&gt;
|off            = Set all linked items to disabled (they cannot be picked up).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Load_Level&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause the specified level to load.  The Player will be taken to the new level seamlessly. Note that a level cannot have two Load_Level events with the same Script Name, so you should change the Script Name for each Load_Level event you place to something that makes sense to you.&lt;br /&gt;
|on             = Load the specified level.&lt;br /&gt;
|params         = * '''Filename:''' Disk filename (including the .rfl or .d4l extension) of the level to load.&lt;br /&gt;
* '''Hard Level Break:''' Force the player to the [[RED Objects#Player Start|Player Start]] position in the destination level, rather than the default behaviour of attempting a seamless transition.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Message&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will make a sound file play and display the associated text on the Player HUD.&lt;br /&gt;
|on             = Play the message.&lt;br /&gt;
|params         = * '''Persona:''' Selectable from drop-down list of names which is generated from personas.tbl. Select &amp;quot;none&amp;quot; if you don’t want the message to be from a persona.&lt;br /&gt;
* '''Voice Filename:''' Disk filename (including .wav extension) of the sound file to play.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Monitor_State&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event is used for initializing and configuring security monitors and mirrors.&lt;br /&gt;
|on             = Set all screen [[RED Objects#Clutter|clutter objects]] this event is linked to to cycle between video feeds from all camera [[RED Objects#Entity|entities]] this event is linked to, according to the parameters configured in the event properties.&lt;br /&gt;
|params         = * '''Initial State:''' Control whether the linked monitors should be on or off as a result of this event's on response.&lt;br /&gt;
* '''Cycle Delay:''' Time, in seconds, that linked monitors display a given video feed. If this parameter is set to 1.0 for example, the feed will cycle to the next linked camera every 1 second.&lt;br /&gt;
* '''Continuously update monitor:''' If ticked, monitor will constantly be updated. Severe performance impact, but is needed for video feeds of dynamic scenes.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Music_Start&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = Plays a specified music track.&lt;br /&gt;
|on             = Start playing the music track specified in the event's properties.&lt;br /&gt;
|params         = * '''Filename:''' Filename (.wav) of the music track to play.&lt;br /&gt;
* '''Use Effects Volume:''' If ticked, the music track volume is scaled using the Sound Effects volume slider, rather than the Music slider.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Music_Stop&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event stops all music currently being played.&lt;br /&gt;
|on             = Stop playing all music tracks (after fading them out according to this event's properties).&lt;br /&gt;
|params         = * '''Fade Time:''' Length of time any currently playing music tracks will take to fade out to silence. (if set to 0, music will immediately stop playing)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Play_Sound&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause a sound to play.  The sound can be a 3D or 2D sound, and it can be made to loop.&lt;br /&gt;
|on             = Start playing the sound.&lt;br /&gt;
|off            = Stop the sound, if it is playing.&lt;br /&gt;
|params         = * '''Sound Filename:''' Disk filename of the sound to play (including .wav extension). &lt;br /&gt;
* '''Min Distance:''' Distance (in meters) where the sound begins to drop off in volume.  If you don’t want the sound to be 3D, set the Min Distance to zero.&lt;br /&gt;
* '''Looping:''' If true, the sound will play looping (until you stop it by sending an Off message to this Event).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Play_Vclip&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event is used to play a specified vclip (from [[vclip.tbl]])&lt;br /&gt;
|on             = Play the specified vclip at the event location.&lt;br /&gt;
|params         = * '''Vclip Name:''' Specify the vclip to play.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Remove_Object&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will destroy all objects linked to the event.  Objects will disappear instantly (i.e., without their death sequence).&lt;br /&gt;
|on             = Kill all linked objects immediately.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Slay_Object&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will kill all linked objects, and allow their death sequence to play.&lt;br /&gt;
|on             = Kill all linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Spawn_Object&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause a specific object type to be created.  The object is created at the event location, with an identity matrix orientation.&lt;br /&gt;
|on             = Spawn the object at the Event location.&lt;br /&gt;
|params         = * '''Object Type:''' Entity, Clutter, Item.  Selectable from a drop-down list.&lt;br /&gt;
* '''Object Class:''' The classname of the object.  Selectable from a drop-down list.  The choice here depends on the Object Type that has been selected.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Swap_Textures&lt;br /&gt;
|category       = Level&lt;br /&gt;
|description    = This event will cause the specified textures (up to 2 per event) to be used on all linked objects.&lt;br /&gt;
|on             = Swap the textures.&lt;br /&gt;
|params         = * '''Texture Num:''' Texture index to swap (starts from 0).&lt;br /&gt;
* '''Texture Filename:''' Disk filename (including extension) of the texture bitmap to use.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Modifiers==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Armor&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event adds or subtracts from the armor of all linked objects.&lt;br /&gt;
|on             = Apply the Armor Delta specified in this event's properties to all linked objects.&lt;br /&gt;
|params         = * '''Armor Delta:''' Modification to perform to armor. Negative values subtract armor, positive values add armor.&lt;br /&gt;
* '''Apply to player:''' If ticked, apply the Armor Delta to the player as the On response, rather than applying it to linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Black_Out_Player&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Fade the player's camera out to, or in from, full black.&lt;br /&gt;
|on             = Linearly fade the player's camera to full black over the time specified in the event properties.&lt;br /&gt;
|off            = Immediately set the player's camera to full black and then linearly fade in to full visibility over the time specified in the event properties.&lt;br /&gt;
|params         = * '''Blackout Time:''' Specify the time over which the blackout occurs.&lt;br /&gt;
* '''Kill Player After Blackout:''' If ticked, the player will be killed after the Blackout Time has elapsed.&lt;br /&gt;
* '''End Level After Blackout:''' If ticked, the level will end after the Blackout Time has elapsed, with a scrolling endgame message pulled from [[endgame.tbl]]. The Script Name for the Black_Out_Player event is used to specify the endgame.tbl entry that is displayed.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Bolt_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the active state of linked [[RED Objects#Bolt Emitter|bolt emitters]]. The default state for bolt emitters is controlled by the &amp;quot;Emitter is initially on&amp;quot; flag in the emitter properties.&lt;br /&gt;
|on             = Set all linked bolt emitters to active/enabled.&lt;br /&gt;
|off            = Set all linked bolt emitters to inactive/disabled.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Clear_Endgame_If_Killed&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to allow [[RED Objects#Entity|entities]] which would ordinarily trigger an endgame sequence when killed, to be killed without triggering that sequence.&lt;br /&gt;
|on             = Remove the &amp;quot;End Game If Killed&amp;quot; flag from all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Continuous_Damage&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Cause the AI or Player which triggered the event to receive damage (use a trigger reset time of 0 to make the damage continuous).&lt;br /&gt;
|on             = Apply damage to the entity who triggered the event. Any linked objects will also receive damage.&lt;br /&gt;
|params         = * '''Damage Per Sec:''' Damage per second applied. (0 is instant death)&lt;br /&gt;
* '''Damage Type:''' melee, bullet, armor piercing bullet, explosive, fire, energy, electrical, acid, scalding.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Detach&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event controls whether linked objects (normally [[RED Objects#Entity|entities]]) are attached to [[RED Groups#Moving Groups|movers]] they intersect (like cranes, elevators, etc.)&lt;br /&gt;
|on             = Detach linked objects from moving groups they intersect.&lt;br /&gt;
|off            = Attach linked objects to moving groups they intersect.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Fog_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the active state of the level's distance-based fog (fog uses the settings configured in [[RED_User_Guide#Level_Properties|Level Properties]], and the default behaviour is for fog to be enabled).&lt;br /&gt;
|on             = Set fog to enabled/active.&lt;br /&gt;
|off            = Set fog to disabled/inactive.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Force_Monitor_Update&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event forces linked monitors to refresh their displayed image.&lt;br /&gt;
|on             = Force an image update on all linked monitors.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Give_Item_To_Player&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will make the player pick up a specific item.  Items are normally automatically picked up by the player when they get close enough to them.  All game items are specified in items.tbl.&lt;br /&gt;
|on             = Give the player the specified item.&lt;br /&gt;
|params         = * '''Item:''' Item class name, which is selectable from a drop-down list of all items from items.tbl.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Go_Undercover&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to put the player into undercover mode (as used in the RF campaign stealth sequences).&lt;br /&gt;
|on             = Set player to undercover.&lt;br /&gt;
|off            = Remove the undercover status of the player.&lt;br /&gt;
|params         = * '''Cover:''' Specify whether the undercover type is executive (as used in [[L6: Corporate HQ|Corporate HQ]]) or scientist (as used in [[L8: Medical Research|Medical Research]]).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Heal&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event adds or subtracts from the health of all linked objects.&lt;br /&gt;
|on             = Apply the Life Delta specified in this event's properties to all linked objects.&lt;br /&gt;
|params         = * '''Life Delta:''' Modification to perform to life. Negative values subtract life, positive values add life.&lt;br /&gt;
* '''Apply to player:''' If ticked, apply the Life Delta to the player as the On response, rather than applying it to linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Ignite_Entity&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to ignite linked [[RED Objects#Entity|entities]].&lt;br /&gt;
|on             = Ignite all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Make_Fly&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will make the linked AI enter fly mode.  If the AI is already flying, this event does nothing.  This event can only make AI fly if it normally has the ability (i.e., this event can’t make a Cave Slug fly).&lt;br /&gt;
|on             = Make linked AI enter fly mode.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Make_Invulnerable&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the invulnerability state of linked objects. By default, all objects are vulnerable.&lt;br /&gt;
|on             = Set all linked objects to invulnerable for the duration specified in the event properties.&lt;br /&gt;
|off            = Set all linked objects to vulnerable (ie. revert the effect of any previously applied Make_Invulnerable events)&lt;br /&gt;
|params         = * '''Duration:''' Specify a duration for the invulnerability. If 0, invulnerability lasts indefinitely.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Make_Walk&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will make the linked AI enter walk mode.  If the AI is already walking, this event does nothing.  This event can only make AI walk if it normally has the ability (i.e., this event can’t make a Grabber walk).&lt;br /&gt;
|on             = Make linked AI enter walk mode.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Modify_Rotating_Mover&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Speed up or slow down the movement of all linked rotating movers.&lt;br /&gt;
|on             = Apply the modification specified in the event properties to all linked rotating movers.&lt;br /&gt;
|params         = * '''Settings:''' Configure settings to increase or decrease all linked rotating movers by the percentage specified.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Mover_Pause&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event toggles the active state of linked movers.&lt;br /&gt;
|on             = Immediately pause all linked movers at their current position.&lt;br /&gt;
|off            = Resume the movement of all linked movers (ie. revert the effect of a previously applied Mover_Pause)&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Particle_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the active state of linked [[RED Objects#Particle Emitter|particle emitters]]. The default state for particle emitters is controlled by the &amp;quot;Emitter is initially on&amp;quot; flag in the emitter properties.&lt;br /&gt;
|on             = Set all linked particle emitters to active/enabled.&lt;br /&gt;
|off            = Set all linked particle emitters to inactive/disabled.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Push_Region_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to toggle the active state of linked [[RED Objects#Push Region|push regions]]. The default state for push regions is active/enabled.&lt;br /&gt;
|on             = Set all linked push regions to active/enabled.&lt;br /&gt;
|off            = Set all linked push regions to inactive/disabled.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Reverse_Mover&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event is used to immediately reverse the direction in which linked movers are currently moving. This event is linked to a [[RED Objects#Keyframe|keyframe]] object.&lt;br /&gt;
|on             = Reverse the direction of all linked movers that meet the condition specified in the event parameters.&lt;br /&gt;
|params         = * '''If Moving:''' Specify the directional condition for the application of the event. ie. This event will only take effect if the linked mover is moving in the specified direction when the event receives an On message.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Gravity&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Set the downward acceleration due to gravity applied to all objects in the world.&lt;br /&gt;
|on             = Override the default gravity (-9.8 m/s^2) with the value specified in the event properties.&lt;br /&gt;
|params         = * '''Gravity:''' Value for acceleration due to gravity, specified in m/s^2, and applied in the Y axis.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Liquid_Depth&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Linearly transition the liquid depth of the linked [[RED Objects#Room Effect|Room Effect]] object to a specified new depth over time.&lt;br /&gt;
|on             = Begin transitioning liquid depth according to settings configured in properties.&lt;br /&gt;
|params         = * '''Depth:''' Set the desired depth after the transition has completed.&lt;br /&gt;
* '''Time:''' How long in seconds it takes the liquid depth to transition to the event-configured depth from the configured depth value in the properties of the linked [[RED Objects#Room Effect|Room Effect]].&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Shake_Player&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will shake the viewpoint of the Player.&lt;br /&gt;
|on             = Start shaking the Player camera.&lt;br /&gt;
|params         = * '''Magnitude:''' How strong to make the shaking.  This value is the max amplitude of the shake in meters. &lt;br /&gt;
* '''Time:''' How long to shake the camera in seconds.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Skybox_State&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Can be used to rotate the skybox around the camera.&lt;br /&gt;
|on             = Start rotating as per values specified in the event properties. Rotation is always from -360 to 360, then loops.&lt;br /&gt;
|params         = * '''Axis:''' Axis to rotate the skybox around.&lt;br /&gt;
* '''Velocity:''' Velocity/speed of the rotation, specified in degrees-per-second (degrees/sec).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Strip_Player_Weapons&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Used to remove weapons from the player's inventory.&lt;br /&gt;
|on             = Remove all weapons and ammo the player currently has.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Switch_Model&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will change the model of all linked objects to the model filename that is contained in the event.&lt;br /&gt;
|on             = Change the model.&lt;br /&gt;
|params         = * '''Model filename:''' Disk filename (with extension) of the model to switch to.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Teleport&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event will teleport all linked objects to the event location.  There are no special effects associated with the teleportation.&lt;br /&gt;
|on             = Teleport all linked objects.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Teleport_Player&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Teleports the player. This is the only event for which pitch/yaw is relevant, so the event displays a small red arrow showing you which direction it is facing.&lt;br /&gt;
|on             = Teleport the player to the event, setting their position (xyz) and rotation (pitch/yaw) to that of the Teleport_Player event.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Turn_Off_Physics&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = This event controls whether linked [[RED Objects#Entity|entities]] have physics applied. Typically, this event is used alongside [[RED Event List#Detach|Detach]] to move entities via cranes or similar. Physics is enabled by default.&lt;br /&gt;
|on             = Turn off physics for all linked entities.&lt;br /&gt;
|off            = Turn on physics for all linked entities.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Unhide&lt;br /&gt;
|category       = Modifiers&lt;br /&gt;
|description    = Manipulate the visibility of linked object(s). Note that if this event is used to unhide an entity, the entity will not be &amp;quot;unhidden&amp;quot; until the next time its' root bone is out of the player's line of sight. Because of this, you will normally want to be sure to send an on message to an unhide event at a time the linked entity is out of the player's view.&lt;br /&gt;
|on             = Unhide all linked objects.&lt;br /&gt;
|off            = Hide all linked objects.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Special==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Activate_Capek_Shield&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event can be used to activate a Capek nanotech shield on-demand for entities that support it.&lt;br /&gt;
|on             = Activate nanotech shield for all linked entities (provided they are allowed to use it).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Countdown_Begin&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event is used to start an on-HUD countdown.&lt;br /&gt;
|on             = Start the countdown&lt;br /&gt;
|params         = * '''Time:''' Specify duration for the countdown (in seconds).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Countdown_End&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event is used to forcibly end an active countdown.&lt;br /&gt;
|on             = End the active countdown.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Defuse_Nuke&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event brings up the RF1 campaign endgame nuke puzzle sequence.&lt;br /&gt;
|on             = Display nuke puzzle.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Display_Fullscreen_Image&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = Displays a specified image/texture filename stretched to the player's window resolution. Note that [[Dash Faction]] is required for alpha channels on fullscreen images to function correctly.&lt;br /&gt;
|on             = Display the specified filename as a fullscreen image.&lt;br /&gt;
|off            = Stop displaying the fullscreen image.&lt;br /&gt;
|params         = * '''Filename:''' Image to display (normally .tga or .vbm). It's very important to ensure the data in this field is correct - a Display_Fullscreen_Image event that receives an on message but has no valid filename specified will result in an unrecoverable error (crash).&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Fire_Weapon_No_Anim&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event is used in very niche circumstances to force a gun to fire without playing its normal animation. Typically, you would do this while already playing a properly-timed custom animation.&lt;br /&gt;
|on             = Force linked entities to fire their equipped weapon without playing a fire animation.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Never_Leave_Vehicle&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event stops the player from being able to leave a vehicle they're piloting.&lt;br /&gt;
|on             = Stop the player from being able to leave a vehicle.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Win_PS2_Demo&lt;br /&gt;
|category       = Special&lt;br /&gt;
|description    = This event triggers the PS2 demo endgame sequence, which involves 3 demo upsell graphics (demo-upsell1.tga, demo-upsell2.tga, demo-upsell3.tga) and then drops back to the main menu.&lt;br /&gt;
|on             = Initiate PS2 demo endgame sequence.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Deprecated==&lt;br /&gt;
*The below events are not readily accessible via the [[RED Objects#Events|Events]] section of [[RED Functionality Overview#Object Mode|Object Mode]], but are referenced in '''events.tbl''' and/or [[RED]] documentation.&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Follow_Player&lt;br /&gt;
|category       = Deprecated&lt;br /&gt;
|description    = This Event will force all linked objects to follow and protect the Player.  This should only be used to make Hendrix follow (or stop following) the Player.&lt;br /&gt;
|on             = Make linked entities follow the Player.&lt;br /&gt;
|off            = Make linked entities stop following the Player.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Level_Transition_Marker&lt;br /&gt;
|category       = Deprecated&lt;br /&gt;
|description    = This is a special type of event which doesn’t respond to On or Off messages.  This event is used to maintain the correct positions and orientations off all objects in the transition areas between levels.  This event needs to be placed in the location of the trigger which causes level loading in the other level involved in the transition.&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;column&amp;gt;&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Light_State&lt;br /&gt;
|category       = Deprecated&lt;br /&gt;
|description    = This Event will set the state of any linked lights.  Currently this event can set a light on or off, but any light related changes (like making a light flash, change color, etc.) can be data within this event.&lt;br /&gt;
|on             = Change the state of all linked lights.&lt;br /&gt;
|params         = * '''State:''' On or Off.&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Shield&lt;br /&gt;
|category       = Deprecated&lt;br /&gt;
|description    = This event will add the Shield Delta value to the shield of all linked objects. (this event was likely replaced by [[RED Event List#Armor|Armor]])&lt;br /&gt;
|on             = Add Shield Delta to all linked objects shields.&lt;br /&gt;
|params         = * '''Shield Delta:''' The amount of shield to add (you can decrease shield by using a negative number here).&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: RF1 Editing]]&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
[[Category: Archived RF1 Content]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Mapping_with_Control_Points&amp;diff=15082</id>
		<title>Mapping with Control Points</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Mapping_with_Control_Points&amp;diff=15082"/>
		<updated>2025-12-19T11:33:00Z</updated>

		<summary type="html">&lt;p&gt;Goober: /* Control Point Events */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{RF1Tutorial|Goober}}&lt;br /&gt;
'''Control Points''' are used as objectives in the '''[[King of the Hill]]''', '''[[Damage Control]]''', and '''[[Revolt]]''' game types added in [[Alpine Faction|Alpine Faction]] v1.2.&lt;br /&gt;
&lt;br /&gt;
The process to create these is very straightforward.&lt;br /&gt;
&lt;br /&gt;
== Basic Setup ==&lt;br /&gt;
# Create a [[RED Objects#Triggers|trigger]]. This can be a box or a sphere. The only properties of the trigger that matter for control points are the dimensions and the shape.&lt;br /&gt;
# Create a [[RED Event List#Capture_Point_Handler|Capture_Point_Handler]] event (under the '''AF_Gameplay''' category).&lt;br /&gt;
# Link the Capture_Point_Handler event to the trigger.&lt;br /&gt;
&lt;br /&gt;
That's the minimum you need to do to make a control point.&lt;br /&gt;
&lt;br /&gt;
If you want a cylindrical control point, tick the ''Cylindrical Trigger'' checkbox in the properties for the Capture_Point_Handler.  &lt;br /&gt;
* If the trigger is a sphere, the cylinder will have the same radius as the sphere.  &lt;br /&gt;
* If the trigger is a box, the cylinder will have the same diameter as the longest edge of the box.&lt;br /&gt;
&lt;br /&gt;
== Label/Progress Sprite ==&lt;br /&gt;
The location of the Capture_Point_Handler event is the location of the progress/label sprite for the control point.&lt;br /&gt;
&lt;br /&gt;
It’s best to position the Capture_Point_Handler:&lt;br /&gt;
* Directly above the center of the trigger&lt;br /&gt;
* At a height that is unlikely to result in the sprite blocking important sightlines for combat&lt;br /&gt;
&lt;br /&gt;
== Event Properties ==&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Capture_Point_Handler&lt;br /&gt;
|category       = AF_Gameplay&lt;br /&gt;
|description    = Controls the behaviour of a multiplayer control point (capture zone) for [[King of the Hill]], [[Damage Control]], and [[Revolt]]. Uses a linked [[RED Objects#Triggers|trigger]] to define the capture area and manages capture progress, ownership, and HUD display.&lt;br /&gt;
|params         = * '''Name:''' (str1) Display name for the control point.&lt;br /&gt;
* '''Outline offset:''' (float1) Vertical offset for the circular outline drawn on the ground around the capture area. Useful for keeping the outline visible above uneven terrain.&lt;br /&gt;
* '''Cap rate multiplier:''' (float2) Multiplier applied to the base capture rate. '''0.0''' = no multiplier (same as '''1.0'''). Higher values capture faster; values between '''0.0''' and '''1.0''' capture slower.&lt;br /&gt;
* '''Stage:''' Specify stage for this point. Only used in [[Revolt]].&lt;br /&gt;
* '''Cylindrical Trigger:''' If true, treat the linked trigger as a vertical cylinder instead of using its raw shape. For sphere triggers, the cylinder radius matches the sphere radius. For box triggers, the cylinder diameter uses the longest edge of the box.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
== Advanced Mechanics ==&lt;br /&gt;
=== Linking to Respawn Points ===&lt;br /&gt;
Link the Capture_Point_Handler to [[RED_Objects#Multiplayer_Respawn_Point|respawn points]] to let Alpine Faction automatically manage spawn activation and team assignment depending on the gametype.&lt;br /&gt;
&lt;br /&gt;
==== Behaviour per Gametype ====&lt;br /&gt;
* '''King of the Hill''' &amp;amp; '''Damage Control''': Linked respawn points are synced to the owner of the control point. Only that team will be able to spawn at those respawn points. Use of this in KOTH is generally not needed/recommended&lt;br /&gt;
* '''Revolt''': Linked respawn points are enabled when their control point’s stage is active, and disabled when the game moves to the next stage. The teams assigned to each respawn point never changes, so you should set the red/blue checkboxes on each respawn point to match the intended defending/attacking team for that stage.&lt;br /&gt;
* '''Escalation''': Linked respawn points are enabled when their control point is the current defense hill for that team. The teams assigned to each respawn point never changes, so you should set the red/blue checkboxes on each respawn point to match the intended defending/attacking team for that stage. For example, in a 5-point Escalation map, if red controls their own base, their own forward point, and the center point, while blue only controls their own forward point and their own base, only blue spawn points associated with the blue forward point will be enabled, because that's the point blue is defending; while only red spawn points associated with the center point will be enabled, because that's the point red is defending. The only exception to this rule is when the map first starts and the center point is neutral - in that case, both team's spawns associated with the center point will be enabled until the center point is captured by a team.&lt;br /&gt;
&lt;br /&gt;
Additionally, the [[RED Event List#Respawn_Point_State|Respawn_Point_State]] and [[RED Event List#Modify_Respawn_Point|Modify_Respawn_Point]] events can be used to manually adjust the behaviour of respawn points in all gametypes.&lt;br /&gt;
&lt;br /&gt;
=== Control Point Events ===&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Captured&lt;br /&gt;
|category       = AF_Catalysts&lt;br /&gt;
|description    = Fires a message to all linked triggers, movers, and events whenever a linked control point is captured by either team.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Capture_Point_Owner&lt;br /&gt;
|category       = AF_Gameplay&lt;br /&gt;
|description    = Forces linked control points to a specific ownership state. Must be run on the server, ignored when run on a client.&lt;br /&gt;
|on             = Set all linked control points to the specified owner.&lt;br /&gt;
|params         = * '''Owner:''' (int1) Desired owner.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Owner_Gate&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Tests whether a specific control point has a specified owner.&lt;br /&gt;
|params         = * '''Handler UID:''' (int1) UID of the Capture_Point_Handler to test.&lt;br /&gt;
* '''Required owner:''' (int2) Owner to check.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: RF1 Editing]]&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
[[Category: Alpine Faction]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Mapping_with_Control_Points&amp;diff=15081</id>
		<title>Mapping with Control Points</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Mapping_with_Control_Points&amp;diff=15081"/>
		<updated>2025-12-19T11:32:05Z</updated>

		<summary type="html">&lt;p&gt;Goober: /* Advanced Mechanics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{RF1Tutorial|Goober}}&lt;br /&gt;
'''Control Points''' are used as objectives in the '''[[King of the Hill]]''', '''[[Damage Control]]''', and '''[[Revolt]]''' game types added in [[Alpine Faction|Alpine Faction]] v1.2.&lt;br /&gt;
&lt;br /&gt;
The process to create these is very straightforward.&lt;br /&gt;
&lt;br /&gt;
== Basic Setup ==&lt;br /&gt;
# Create a [[RED Objects#Triggers|trigger]]. This can be a box or a sphere. The only properties of the trigger that matter for control points are the dimensions and the shape.&lt;br /&gt;
# Create a [[RED Event List#Capture_Point_Handler|Capture_Point_Handler]] event (under the '''AF_Gameplay''' category).&lt;br /&gt;
# Link the Capture_Point_Handler event to the trigger.&lt;br /&gt;
&lt;br /&gt;
That's the minimum you need to do to make a control point.&lt;br /&gt;
&lt;br /&gt;
If you want a cylindrical control point, tick the ''Cylindrical Trigger'' checkbox in the properties for the Capture_Point_Handler.  &lt;br /&gt;
* If the trigger is a sphere, the cylinder will have the same radius as the sphere.  &lt;br /&gt;
* If the trigger is a box, the cylinder will have the same diameter as the longest edge of the box.&lt;br /&gt;
&lt;br /&gt;
== Label/Progress Sprite ==&lt;br /&gt;
The location of the Capture_Point_Handler event is the location of the progress/label sprite for the control point.&lt;br /&gt;
&lt;br /&gt;
It’s best to position the Capture_Point_Handler:&lt;br /&gt;
* Directly above the center of the trigger&lt;br /&gt;
* At a height that is unlikely to result in the sprite blocking important sightlines for combat&lt;br /&gt;
&lt;br /&gt;
== Event Properties ==&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Capture_Point_Handler&lt;br /&gt;
|category       = AF_Gameplay&lt;br /&gt;
|description    = Controls the behaviour of a multiplayer control point (capture zone) for [[King of the Hill]], [[Damage Control]], and [[Revolt]]. Uses a linked [[RED Objects#Triggers|trigger]] to define the capture area and manages capture progress, ownership, and HUD display.&lt;br /&gt;
|params         = * '''Name:''' (str1) Display name for the control point.&lt;br /&gt;
* '''Outline offset:''' (float1) Vertical offset for the circular outline drawn on the ground around the capture area. Useful for keeping the outline visible above uneven terrain.&lt;br /&gt;
* '''Cap rate multiplier:''' (float2) Multiplier applied to the base capture rate. '''0.0''' = no multiplier (same as '''1.0'''). Higher values capture faster; values between '''0.0''' and '''1.0''' capture slower.&lt;br /&gt;
* '''Stage:''' Specify stage for this point. Only used in [[Revolt]].&lt;br /&gt;
* '''Cylindrical Trigger:''' If true, treat the linked trigger as a vertical cylinder instead of using its raw shape. For sphere triggers, the cylinder radius matches the sphere radius. For box triggers, the cylinder diameter uses the longest edge of the box.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
== Advanced Mechanics ==&lt;br /&gt;
=== Linking to Respawn Points ===&lt;br /&gt;
Link the Capture_Point_Handler to [[RED_Objects#Multiplayer_Respawn_Point|respawn points]] to let Alpine Faction automatically manage spawn activation and team assignment depending on the gametype.&lt;br /&gt;
&lt;br /&gt;
==== Behaviour per Gametype ====&lt;br /&gt;
* '''King of the Hill''' &amp;amp; '''Damage Control''': Linked respawn points are synced to the owner of the control point. Only that team will be able to spawn at those respawn points. Use of this in KOTH is generally not needed/recommended&lt;br /&gt;
* '''Revolt''': Linked respawn points are enabled when their control point’s stage is active, and disabled when the game moves to the next stage. The teams assigned to each respawn point never changes, so you should set the red/blue checkboxes on each respawn point to match the intended defending/attacking team for that stage.&lt;br /&gt;
* '''Escalation''': Linked respawn points are enabled when their control point is the current defense hill for that team. The teams assigned to each respawn point never changes, so you should set the red/blue checkboxes on each respawn point to match the intended defending/attacking team for that stage. For example, in a 5-point Escalation map, if red controls their own base, their own forward point, and the center point, while blue only controls their own forward point and their own base, only blue spawn points associated with the blue forward point will be enabled, because that's the point blue is defending; while only red spawn points associated with the center point will be enabled, because that's the point red is defending. The only exception to this rule is when the map first starts and the center point is neutral - in that case, both team's spawns associated with the center point will be enabled until the center point is captured by a team.&lt;br /&gt;
&lt;br /&gt;
Additionally, the [[RED Event List#Respawn_Point_State|Respawn_Point_State]] and [[RED Event List#Modify_Respawn_Point|Modify_Respawn_Point]] events can be used to manually adjust the behaviour of respawn points in all gametypes.&lt;br /&gt;
&lt;br /&gt;
=== Control Point Events ===&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Captured&lt;br /&gt;
|category       = AF_Catalysts&lt;br /&gt;
|description    = Fires when a linked control point is captured by either team.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Capture_Point_Owner&lt;br /&gt;
|category       = AF_Gameplay&lt;br /&gt;
|description    = Forces linked control points to a specific ownership state. Must be run on the server, ignored when run on a client.&lt;br /&gt;
|on             = Set all linked control points to the specified owner.&lt;br /&gt;
|params         = * '''Owner:''' (int1) Desired owner.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Owner_Gate&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Tests whether a specific control point has a specified owner.&lt;br /&gt;
|params         = * '''Handler UID:''' (int1) UID of the Capture_Point_Handler to test.&lt;br /&gt;
* '''Required owner:''' (int2) Owner to check.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: RF1 Editing]]&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
[[Category: Alpine Faction]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Mapping_with_Control_Points&amp;diff=15080</id>
		<title>Mapping with Control Points</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Mapping_with_Control_Points&amp;diff=15080"/>
		<updated>2025-12-19T11:30:50Z</updated>

		<summary type="html">&lt;p&gt;Goober: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{RF1Tutorial|Goober}}&lt;br /&gt;
'''Control Points''' are used as objectives in the '''[[King of the Hill]]''', '''[[Damage Control]]''', and '''[[Revolt]]''' game types added in [[Alpine Faction|Alpine Faction]] v1.2.&lt;br /&gt;
&lt;br /&gt;
The process to create these is very straightforward.&lt;br /&gt;
&lt;br /&gt;
== Basic Setup ==&lt;br /&gt;
# Create a [[RED Objects#Triggers|trigger]]. This can be a box or a sphere. The only properties of the trigger that matter for control points are the dimensions and the shape.&lt;br /&gt;
# Create a [[RED Event List#Capture_Point_Handler|Capture_Point_Handler]] event (under the '''AF_Gameplay''' category).&lt;br /&gt;
# Link the Capture_Point_Handler event to the trigger.&lt;br /&gt;
&lt;br /&gt;
That's the minimum you need to do to make a control point.&lt;br /&gt;
&lt;br /&gt;
If you want a cylindrical control point, tick the ''Cylindrical Trigger'' checkbox in the properties for the Capture_Point_Handler.  &lt;br /&gt;
* If the trigger is a sphere, the cylinder will have the same radius as the sphere.  &lt;br /&gt;
* If the trigger is a box, the cylinder will have the same diameter as the longest edge of the box.&lt;br /&gt;
&lt;br /&gt;
== Label/Progress Sprite ==&lt;br /&gt;
The location of the Capture_Point_Handler event is the location of the progress/label sprite for the control point.&lt;br /&gt;
&lt;br /&gt;
It’s best to position the Capture_Point_Handler:&lt;br /&gt;
* Directly above the center of the trigger&lt;br /&gt;
* At a height that is unlikely to result in the sprite blocking important sightlines for combat&lt;br /&gt;
&lt;br /&gt;
== Event Properties ==&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Capture_Point_Handler&lt;br /&gt;
|category       = AF_Gameplay&lt;br /&gt;
|description    = Controls the behaviour of a multiplayer control point (capture zone) for [[King of the Hill]], [[Damage Control]], and [[Revolt]]. Uses a linked [[RED Objects#Triggers|trigger]] to define the capture area and manages capture progress, ownership, and HUD display.&lt;br /&gt;
|params         = * '''Name:''' (str1) Display name for the control point.&lt;br /&gt;
* '''Outline offset:''' (float1) Vertical offset for the circular outline drawn on the ground around the capture area. Useful for keeping the outline visible above uneven terrain.&lt;br /&gt;
* '''Cap rate multiplier:''' (float2) Multiplier applied to the base capture rate. '''0.0''' = no multiplier (same as '''1.0'''). Higher values capture faster; values between '''0.0''' and '''1.0''' capture slower.&lt;br /&gt;
* '''Stage:''' Specify stage for this point. Only used in [[Revolt]].&lt;br /&gt;
* '''Cylindrical Trigger:''' If true, treat the linked trigger as a vertical cylinder instead of using its raw shape. For sphere triggers, the cylinder radius matches the sphere radius. For box triggers, the cylinder diameter uses the longest edge of the box.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
== Advanced Mechanics ==&lt;br /&gt;
=== Linking to Respawn Points ===&lt;br /&gt;
Link the Capture_Point_Handler to [[RED_Objects#Multiplayer_Respawn_Point|respawn points]] to let Alpine Faction automatically manage spawn activation and team assignment depending on the gametype.&lt;br /&gt;
&lt;br /&gt;
==== Behaviour per Gametype ====&lt;br /&gt;
* '''King of the Hill''' &amp;amp; '''Damage Control''': Linked respawn points are synced to the owner of the control point. Only that team will be able to spawn at those respawn points. Use of this in KOTH is generally not needed/recommended&lt;br /&gt;
* '''Revolt''': Linked respawn points are enabled when their control point’s stage is active, and disabled when the game moves to the next stage. The teams assigned to each respawn point never changes, so you should set the red/blue checkboxes on each respawn point to match the intended defending/attacking team for that stage.&lt;br /&gt;
* '''Escalation''': Linked respawn points are enabled when their control point is the current defense hill for that team. The teams assigned to each respawn point never changes, so you should set the red/blue checkboxes on each respawn point to match the intended defending/attacking team for that stage. For example, in a 5-point Escalation map, if red controls their own base, their own forward point, and the center point, while blue only controls their own forward point and their own base, only blue spawn points associated with the blue forward point will be enabled, because that's the point blue is defending; while only red spawn points associated with the center point will be enabled, because that's the point red is defending. The only exception to this rule is when the map first starts and the center point is neutral - in that case, both team's spawns associated with the center point will be enabled until the center point is captured by a team.&lt;br /&gt;
&lt;br /&gt;
Additionally, the [[RED Event List#Respawn_Point_State|Respawn_Point_State]] and [[RED Event List#Modify_Respawn_Point|Modify_Respawn_Point]] events can be used to manually adjust the behaviour of respawn points in all modes.&lt;br /&gt;
&lt;br /&gt;
=== Control Point Events ===&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = When_Captured&lt;br /&gt;
|category       = AF_Catalysts&lt;br /&gt;
|description    = Fires when a linked control point is captured by either team.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Set_Capture_Point_Owner&lt;br /&gt;
|category       = AF_Gameplay&lt;br /&gt;
|description    = Forces linked control points to a specific ownership state. Must be run on the server, ignored when run on a client.&lt;br /&gt;
|on             = Set all linked control points to the specified owner.&lt;br /&gt;
|params         = * '''Owner:''' (int1) Desired owner.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox RF1Event&lt;br /&gt;
|eventname      = Owner_Gate&lt;br /&gt;
|category       = AF_Flow&lt;br /&gt;
|description    = Tests whether a specific control point has a specified owner.&lt;br /&gt;
|params         = * '''Handler UID:''' (int1) UID of the Capture_Point_Handler to test.&lt;br /&gt;
* '''Required owner:''' (int2) Owner to check.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: RF1 Editing]]&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
[[Category: Alpine Faction]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Dash_Faction_Installation_Guide&amp;diff=15071</id>
		<title>Dash Faction Installation Guide</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Dash_Faction_Installation_Guide&amp;diff=15071"/>
		<updated>2025-12-08T20:02:29Z</updated>

		<summary type="html">&lt;p&gt;Goober: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{{Tile|Dashlogo1.png|||322|82}}&lt;br /&gt;
{|&lt;br /&gt;
|{{DashInstallTranslations|Installation guide translations}}&lt;br /&gt;
|{{DashInstallDiscord|Click here to join the FactionFiles Community Discord|If you have any questions or concerns, please join the '''FactionFiles Community Discord''' for assistance. The FactionFiles Discord is also the place to go to participate in organized community game night events, and get help with anything else related to the Red Faction series.}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==What is Dash Faction?==&lt;br /&gt;
'''Dash Faction''' is a free and open source Red Faction game patch designed to fix original game bugs, improve compatibility with modern hardware and software, extend functionality, enhance graphics quality, and improve engine performance.&lt;br /&gt;
&lt;br /&gt;
If you'd like to install Dash Faction, you can download and run the [https://ff.dashfaction.com installer program] from FactionFiles.com.&lt;br /&gt;
&lt;br /&gt;
==I'm having an issue or have questions, What do I do?==&lt;br /&gt;
* '''Join the [https://discord.gg/factionfiles FactionFiles community Discord]''' - the community hub through which virtually all community activity is discussed and organized - including game night events, competitive matchmaking, and development initiatives.&lt;br /&gt;
* Dash Faction's developer has left the community Discord. To report an issue specific to Dash Faction, open an issue on the [https://github.com/rafalh/dashfaction/issues GitHub repository].&lt;br /&gt;
* '''[https://alpinefaction.com Alpine Faction]''' is a fork of Dash Faction which adds many additional features, fixes, and enhancements, and is actively supported by the community on Discord.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional useful resources:'''&lt;br /&gt;
*[[Red Faction Console Commands]] - Complete listing of all available '''console commands''' in Red Faction.&lt;br /&gt;
*[[Red Faction Command Line Parameters]] - Complete listing of all available '''command line parameters''' in Red Faction.&lt;br /&gt;
*[[Red_Faction_Quick_Start_Guide#Settings|Red Faction Settings]] - Breakdown and explanation of all available Red Faction and Dash Faction settings.&lt;br /&gt;
*[[RF1 Editing Main Page]] - Comprehensive community knowledgebase on custom level creation via the [[RED|Red Faction Level Editor]], and modification development.&lt;br /&gt;
*[[Red Faction Multiplayer Guide]] - Overview of the most important aspects of RF multiplayer.&lt;br /&gt;
*[[Red Faction FAQ]] - FAQ providing answers to common questions and solutions to common issues.&lt;br /&gt;
*[https://factionfiles.com FactionFiles.com] - FactionFiles community file host, offering thousands of custom maps and mods.&lt;br /&gt;
&amp;lt;!-- Translation end point --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=RF_Client_Versions&amp;diff=15070</id>
		<title>RF Client Versions</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=RF_Client_Versions&amp;diff=15070"/>
		<updated>2025-12-08T19:51:26Z</updated>

		<summary type="html">&lt;p&gt;Goober: /* Alpine Faction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will list all known publicly-available Red Faction versions/clients, both official and community-made.&lt;br /&gt;
&amp;lt;!---==Feature Comparison of Commonly-Used Client Versions==&lt;br /&gt;
* [[RF Client Comparison]]---&amp;gt;&lt;br /&gt;
==Full Game==&lt;br /&gt;
===Official Clients===&lt;br /&gt;
====v1.00====&lt;br /&gt;
* Distributed as rf.exe in all retail versions of the game.&lt;br /&gt;
* Suffers from many known issues ranging from security vulnerabilities, to compatibility issues, to multiplayer cheating potential.&lt;br /&gt;
* 3 known variants available:&lt;br /&gt;
** v1.00 North America&lt;br /&gt;
** v1.00 French&lt;br /&gt;
** v1.00 German&lt;br /&gt;
&lt;br /&gt;
====v1.10====&lt;br /&gt;
* Created by using the corresponding officially-distributed patching utility on a v1.00 rf.exe.&lt;br /&gt;
* Small bug fix version. Ironically, at least one [[Red_Faction_FAQ#Character_reflection_in_mirrors_is_broken|known issue]] was introduced in this version.&lt;br /&gt;
* Still suffers from many known issues ranging from security vulnerabilities, to compatibility issues, to multiplayer cheating potential.&lt;br /&gt;
* 3 known variants available:&lt;br /&gt;
** v1.10 North America&lt;br /&gt;
** v1.10 French&lt;br /&gt;
** v1.10 German&lt;br /&gt;
&lt;br /&gt;
====v1.20====&lt;br /&gt;
* Created by using the corresponding officially-distributed patching utility on a v1.00 or v1.10 rf.exe.&lt;br /&gt;
* Latest officially released version for the retail game.&lt;br /&gt;
* Fixes some bugs, makes some balance changes.&lt;br /&gt;
* While some issues were fixed, still suffers from many known issues ranging from security vulnerabilities, to compatibility issues, to multiplayer cheating potential.&lt;br /&gt;
* 3 known variants available:&lt;br /&gt;
** v1.20 North America&lt;br /&gt;
** v1.20 French&lt;br /&gt;
** v1.20 German&lt;br /&gt;
&lt;br /&gt;
====v1.21====&lt;br /&gt;
* Distributed as rf.exe in all digital versions of the game.&lt;br /&gt;
* Recompiled version of v1.20 North America with a small number of bugs fixed. Ironically, at least one [[Red_Faction_FAQ#Game_crashes_when_I_pick_up_items|known issue]] was introduced in this version.&lt;br /&gt;
* Some major compatibility issues were fixed, and this version will launch on most modern systems.&lt;br /&gt;
* 2 known variants available:&lt;br /&gt;
** v1.21 Steam&lt;br /&gt;
** v1.21 GoG&lt;br /&gt;
&lt;br /&gt;
===Community-Made Clients===&lt;br /&gt;
====Alpine Faction====&lt;br /&gt;
[[File:Alpinelogo1.png]]&lt;br /&gt;
* [https://alpinefaction.com Alpine Faction Website]&lt;br /&gt;
* Created by Goober. Is an open source project, and a fork of [[#Dash Faction|Dash Faction]]&lt;br /&gt;
* Distributed as an installer.&lt;br /&gt;
* Consists of a custom launcher and 2 .dll files - AlpineFaction.dll and AlpineEditor.dll. When the game or editor is launched via the custom launcher, it injects the respective .dll into the v1.20 North America versions of rf.exe or RED.exe.&lt;br /&gt;
* In active development and support is provided.&lt;br /&gt;
* Includes everything offered by [[#Dash Faction|Dash Faction]] plus many additional modern features and bug fixes (see [https://alpinefaction.com Alpine Faction Website] for more information)&lt;br /&gt;
* Optionally [[Link_Alpine_Faction_to_a_FactionFiles_Account|integrates with a FactionFiles account]] to offer additional features, including achievements and in-game multiplayer map ratings.&lt;br /&gt;
* Major version releases (as of April 2025):&lt;br /&gt;
** v1.0.0 Maple (and previously v0.0.4_beta)&lt;br /&gt;
** v1.1.0 Tamarack (and previously v1.1.0_beta1 and v1.1.0_rc1)&lt;br /&gt;
** v1.2.0 Willow (and previously v1.2.0_beta1 and v1.2.0_rc1)&lt;br /&gt;
&lt;br /&gt;
====Dash Faction====&lt;br /&gt;
[[File:Dashlogo1.png]]&lt;br /&gt;
* [[Dash Faction Installation Guide]]&lt;br /&gt;
* Created by rafalh, and is an open source project&lt;br /&gt;
* Distributed as an installer since v1.50. Prior, was distributed as a .zip archive.&lt;br /&gt;
* Consists of a custom launcher and 2 .dll files - DashFaction.dll and DashEditor.dll. When the game or editor is launched via the custom launcher, it injects the respective .dll into the v1.20 North America versions of rf.exe or RED.exe.&lt;br /&gt;
* Fixes the vast majority of known issues (including security vulnerabilities and compatibility issues), provides the minimum playable base game experience on modern systems.&lt;br /&gt;
* Some limited support is still provided, but has been virtually completely feature eclipsed by [[RF Clients#Alpine Faction|Alpine Faction]].&lt;br /&gt;
* Major version releases (as of April 2025):&lt;br /&gt;
** v1.2.0&lt;br /&gt;
** v1.3.0&lt;br /&gt;
** v1.4.0 (and subsequently v1.4.1 and v1.4.2)&lt;br /&gt;
** v1.5.0 (and previously v1.5.0-rc1 and v1.5.0-rc2)&lt;br /&gt;
** v1.6.0 (and previously v1.6.0-beta and v1.6.0-rc1, subsequently v1.6.1-rc1 and v1.6.1)&lt;br /&gt;
** v1.7.0 (and previously v1.7.0-beta and v1.7.0-rc1)&lt;br /&gt;
** v1.8.0 (and previously v1.8.0-rc1)&lt;br /&gt;
** v1.9.0&lt;br /&gt;
&lt;br /&gt;
====Pure Faction====&lt;br /&gt;
[[Image:Purelogo.jpg|425px]]&lt;br /&gt;
* De facto standard RF client until roughly 2017, now considered deprecated&lt;br /&gt;
* [[Pure Faction Installation Guide]]&lt;br /&gt;
* Created by TrotSkie and digi, with contributions from S&lt;br /&gt;
* Distributed as an installer&lt;br /&gt;
* Consists of a custom launcher, custom modified version of rf.exe (named PF.exe), custom modified version of RED.exe (named REDPF.exe), and 2 .dll files - PF.dll and REDPF.dll&lt;br /&gt;
* Active development ceased roughly around 2016, last bugfix version (3.0e) released March 2018). Some limited support is still provided, but has been virtually completely feature eclipsed by [[RF Clients#Alpine Faction|Alpine Faction]].&lt;br /&gt;
* Fixes a number of known issues (including most security vulnerabilities and compatibility issues that existed as of cessation of active development), adds features such as custom resolutions, window modes, and automatic map downloader.&lt;br /&gt;
* Major version releases (as of March 2018):&lt;br /&gt;
** v1.0 (and previously b1)&lt;br /&gt;
** v2.1 (and subsequently v2.1qf1 and v2.1qf2)&lt;br /&gt;
** v3.0 (and subsequently v3.0c, v3.0d, v3.0du1, and v3.0e)&lt;br /&gt;
&lt;br /&gt;
====v1.30====&lt;br /&gt;
* Fan-made unofficial patch designed to stop cheating, now considered deprecated&lt;br /&gt;
* Created by harmLE$$, [JD]SubZ, and [JD]TrotSkie&lt;br /&gt;
* Distributed as an edited version of the [[RF Clients#v1.20|v1.20]] rf.exe file&lt;br /&gt;
* Active development ceased roughly around 2003.&lt;br /&gt;
* Fixes a few basic bugs and contains anticheat functionality that, while still rudimentary by modern standards, was enhanced when compared to the latest official retail version ([[RF Clients#v1.20|v1.20]])&lt;br /&gt;
* Still suffers from many known issues ranging from security vulnerabilities, to compatibility issues, to multiplayer cheating potential.&lt;br /&gt;
* 3 known variants available:&lt;br /&gt;
** (Unofficial) v1.30 North America&lt;br /&gt;
** (Unofficial) v1.30 French&lt;br /&gt;
** (Unofficial) v1.30 German&lt;br /&gt;
* Most recognizable feature was that to v1.3 clients, v1.3 servers would animate in the server list&lt;br /&gt;
&lt;br /&gt;
[[Image:1.3fade.gif|600px|left|thumb|A version 1.3 animated in the serverlist]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Spectator====&lt;br /&gt;
* SubZ&lt;br /&gt;
* Distributed as an edited version of the [[RF Clients#v1.20|v1.20]] rf.exe file (named spect.exe)&lt;br /&gt;
* One-time release with no known continued development&lt;br /&gt;
* When run on a server, allowed joining clients who were also running Spectator to free look spectate&lt;br /&gt;
* Still suffers from many known issues ranging from security vulnerabilities, to compatibility issues, to multiplayer cheating potential.&lt;br /&gt;
&lt;br /&gt;
[[Category:Red Faction]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
	<entry>
		<id>https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_Release_Highlights&amp;diff=15069</id>
		<title>Alpine Faction Release Highlights</title>
		<link rel="alternate" type="text/html" href="https://www.redfactionwiki.com/w/index.php?title=Alpine_Faction_Release_Highlights&amp;diff=15069"/>
		<updated>2025-12-07T05:52:10Z</updated>

		<summary type="html">&lt;p&gt;Goober: /* Alpine Faction 1.2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:Alpinelogo1.png|center]]&lt;br /&gt;
{|&lt;br /&gt;
|{{AlpineInstallDiscord|Click here to join the FactionFiles Community Discord|If you have any questions or concerns, please join the '''FactionFiles Community Discord''' for assistance. The FactionFiles Discord is also the place to go to participate in organized community game night events, and get help with anything else related to the Red Faction series.}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below are the most important highlights from each major [https://alpinefaction.com Alpine Faction] release. This page assumes you are already familiar with Red Faction, and prior versions of Alpine Faction, and is intended just as a &amp;quot;quick start guide&amp;quot; to summarize key features for each release.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT: This is not an exhaustive changelog!'''&lt;br /&gt;
&lt;br /&gt;
This page only has what I feel are the most important aspects of each release. For a full changelog at any given time, visit [https://github.com/GooberRF/alpinefaction/blob/master/docs/CHANGELOG.md CHANGELOG.md] on the Alpine Faction repository.&lt;br /&gt;
&lt;br /&gt;
==Alpine Faction 1.2==&lt;br /&gt;
* Released 06 Dec 2025&lt;br /&gt;
===General===&lt;br /&gt;
* Suppress autoswitch bind, &amp;lt;code&amp;gt;cl_autoswitchfirewait&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;cl_autoswitchempty&amp;lt;/code&amp;gt; can be used to customize autoswitch behaviour&lt;br /&gt;
* &amp;lt;code&amp;gt;sp_exposuredamage&amp;lt;/code&amp;gt; or the associated option in the advanced options menu can be used to turn off the &amp;quot;take damage when outside&amp;quot; mechanic in single player&lt;br /&gt;
* &amp;lt;code&amp;gt;-afs FILENAME&amp;lt;/code&amp;gt; can be used on the command line to specify a particular ini file to use instead of alpine_settings.ini. Allows players to manage multiple config files launched via different shortcuts&lt;br /&gt;
* You can now use the scroll wheel to scroll through lists in the menus&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
* New gametypes&lt;br /&gt;
** King of the Hill (KOTH)&lt;br /&gt;
** Damage Control (DC)&lt;br /&gt;
** Revolt (REV)&lt;br /&gt;
** Escalation (ESC)&lt;br /&gt;
** Run (RUN)&lt;br /&gt;
* Servers can now configure gametype and most other server settings on a per-level basis. Servers can run multiple gametypes in the same rotation seamlessly.&lt;br /&gt;
* Votes to start a match and change the level can now name rule presets (if configured by the server). This means players can vote for the ruleset they want when voting for a match/level.&lt;br /&gt;
* First-person spectate view now shows the spectated player's name with their team colour&lt;br /&gt;
* Chat menus now scale appropriately when &amp;lt;code&amp;gt;bighud&amp;lt;/code&amp;gt; is enabled&lt;br /&gt;
* The &amp;quot;Remote Server Config&amp;quot; bind can be used to display the server's current ruleset and map rotation&lt;br /&gt;
* &amp;lt;code&amp;gt;mp_handicap&amp;lt;/code&amp;gt; can be used to impose a damage reduction handicap on yourself&lt;br /&gt;
* You can now call gametype votes using &amp;lt;code&amp;gt;vote gametype TYPE MAP&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;vote gt TYPE MAP&amp;lt;/code&amp;gt;, where TYPE is a gametype abbreviation (i.e. CTF, KOTH, etc.) and MAP is a level filename.&lt;br /&gt;
* &amp;quot;One minute remaining&amp;quot; and other countdown sounds will now play a second time if the time is extended after they play (like due to overtime)&lt;br /&gt;
* &amp;quot;Winner&amp;quot; and &amp;quot;Game Over&amp;quot; at the end of the map fixed&lt;br /&gt;
* Scoreboard now identifies players as alive, dead, idle, bot, spectator, browser&lt;br /&gt;
===Graphics===&lt;br /&gt;
* Direct3D 11 Renderer improvements&lt;br /&gt;
** Colorblind mode rendering filter (&amp;lt;code&amp;gt;r_colorblind&amp;lt;/code&amp;gt;)&lt;br /&gt;
** Improved skybox rendering&lt;br /&gt;
** Picmip (&amp;lt;code&amp;gt;r_picmip&amp;lt;/code&amp;gt;)&lt;br /&gt;
** Vertex lighting for meshes&lt;br /&gt;
** Dynamic lighting for meshes and movers&lt;br /&gt;
** Support &amp;lt;code&amp;gt;r_fullbright&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;r_lightmaps&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;r_nearest&amp;lt;/code&amp;gt;&lt;br /&gt;
===Dedicated Servers===&lt;br /&gt;
* Dedicated servers should now be configured using one or more TOML files - web-based config builder is available [https://dedi.alpinefaction.com here]&lt;br /&gt;
* Framerates are now far more consistent, improving the overall play experience&lt;br /&gt;
* You can now configure gameplay rules (including gametype) on a per-level basis&lt;br /&gt;
* You can use the &amp;lt;code&amp;gt;sv_gametype TYPE MAP&amp;lt;/code&amp;gt; command to change the gametype on your server at any time. TYPE is a gametype abbreviation (i.e. CTF, KOTH, etc.) and MAP is a level filename.&lt;br /&gt;
* Much more useful information is now displayed when new players join your server, and when you run the &amp;lt;code&amp;gt;info&amp;lt;/code&amp;gt; command&lt;br /&gt;
* You can now use the &amp;lt;code&amp;gt;sv_restrict_status&amp;lt;/code&amp;gt; command to display the current client restriction status on the current level, with the current ruleset&lt;br /&gt;
* Clients are now restricted from voting if they are not able to play in your server.&lt;br /&gt;
* Server console now displays attempted joins that were rejected, and the reason for the rejection (e.g. &amp;quot;between levels&amp;quot;, &amp;quot;data incompatible&amp;quot;, etc.)&lt;br /&gt;
* Server console now alerts on failed &amp;lt;code&amp;gt;rcon_request&amp;lt;/code&amp;gt; attempts&lt;br /&gt;
* Vote config now supports &amp;quot;Ignore nonvoters&amp;quot; as an option&lt;br /&gt;
* &amp;lt;code&amp;gt;sv_loadconfig&amp;lt;/code&amp;gt; can be used to reload your server config (after you made changes to the files) without needing a server restart&lt;br /&gt;
* &amp;lt;code&amp;gt;sv_printconfig&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;sv_printrules&amp;lt;/code&amp;gt; can be used to display server information at any time&lt;br /&gt;
* &amp;lt;code&amp;gt;-min&amp;lt;/code&amp;gt; can be used on the command line to have your server console display only the minimum amount of information required&lt;br /&gt;
* &amp;lt;code&amp;gt;-log&amp;lt;/code&amp;gt; can be used to log all server console output to a log file in &amp;lt;code&amp;gt;RedFaction/logs&amp;lt;/code&amp;gt;&lt;br /&gt;
* If you run bots in your server, you can use &amp;lt;code&amp;gt;bot_shared_secret&amp;lt;/code&amp;gt; to ensure your bots are properly handled by your server (no spawning after ideal player count reached, exclude from votes, etc.)&lt;br /&gt;
===Mod / Map Development===&lt;br /&gt;
* You can now make maps for all of the new gametypes. For info on how to create control points (for KOTH, DC, REV, and ESC), see [[Mapping with Control Points]]&lt;br /&gt;
* &amp;quot;Play in multi (camera)&amp;quot; added to top toolbar&lt;br /&gt;
* F9 (Play in multi) and F10 (Play in multi (camera)) hotkeys added&lt;br /&gt;
* Playing in multi from RED will now launch on the correct gametype (based on map filename prefix)&lt;br /&gt;
* You can now link to multiple objects at once. When you select multiple objects and press &amp;quot;K&amp;quot;, the first object you selected will be linked to all other object you have selected.&lt;br /&gt;
* Respawn points can now be toggled on/off with the Respawn_Point_State event, and the associated team changed with the Modify_Respawn_Point event&lt;br /&gt;
* New settings in Level Properties&lt;br /&gt;
** &amp;quot;Legacy Cyclic_Timers&amp;quot; - If false, Cyclic_Timer events no longer double trigger on their first activation&lt;br /&gt;
** &amp;quot;Legacy movers&amp;quot; - If false, use new Alpine Faction mover functionality: fixed low velocity movers not working, fixed travel and ramp time calculations, fixed &amp;quot;Force Orient&amp;quot;, fixed &amp;quot;Lift&amp;quot; movement type, fixed &amp;quot;Ping Pong Infinite&amp;quot;/&amp;quot;Loop Once&amp;quot;/&amp;quot;Loop Infinite&amp;quot; movement types for rotating movers&lt;br /&gt;
** &amp;quot;Player starts with headlamp&amp;quot; - If false, do not allow the player to use the headlamp (until allowed via Set_Gameplay_Rule event)&lt;br /&gt;
** &amp;quot;Override static mesh ambient light scale&amp;quot; - If true, use the specified scale value. If false, use stock game behaviour (2.0 for SP, 3.2 for MP).&lt;br /&gt;
* New events&lt;br /&gt;
** Capture_Point_Handler&lt;br /&gt;
** Respawn_Point_State&lt;br /&gt;
** Modify_Respawn_Point&lt;br /&gt;
** When_Captured&lt;br /&gt;
** Set_Capture_Point_Owner&lt;br /&gt;
** Owner_Gate&lt;br /&gt;
** Set_Gameplay_Rule&lt;br /&gt;
&lt;br /&gt;
==[https://www.factionfiles.com/ff.php?action=file&amp;amp;id=8155&amp;amp;viewoldrev=1 Alpine Faction 1.1]==&lt;br /&gt;
* Released 19 Apr 2025&lt;br /&gt;
&lt;br /&gt;
==[https://www.factionfiles.com/ff.php?action=file&amp;amp;id=8085&amp;amp;viewoldrev=1 Alpine Faction 1.0]==&lt;br /&gt;
* Released 25 Jan 2025&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
* [[Alpine Faction Information]]&lt;br /&gt;
* [[Link Alpine Faction to a FactionFiles Account|How to Link Alpine Faction to your FactionFiles Account]]&lt;br /&gt;
* [[Red_Faction_Console_Commands#Alpine_Faction|Alpine Faction Console Commands]]&lt;br /&gt;
* [[Alpine Faction Level Design|Alpine Faction Level Design Information]]&lt;br /&gt;
* [[Alpine Faction Mod Development|Alpine Faction Mod Development Information]]&lt;br /&gt;
* [[Alpine Faction Dedicated Server Config]]&lt;br /&gt;
* [[Red_Faction_Command_Line_Parameters#Alpine_Faction|Alpine Faction Command Line Parameters]]&lt;br /&gt;
 &lt;br /&gt;
[[Category: Red Faction]]&lt;br /&gt;
[[Category: Alpine Faction]]&lt;/div&gt;</summary>
		<author><name>Goober</name></author>
	</entry>
</feed>