<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.swrc-modding.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Plasma</id>
	<title>SWRC Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.swrc-modding.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Plasma"/>
	<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Special:Contributions/Plasma"/>
	<updated>2026-05-06T12:56:41Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Game_Versions&amp;diff=378</id>
		<title>Game Versions</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Game_Versions&amp;diff=378"/>
		<updated>2026-03-09T15:25:06Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Retail/Steam/GoG PC Version (NA/EU) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;139&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Jan 25 2005&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;PDB Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;C:\CT\BuildTemp\Win32Release\Launch\Launch.pdb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Long believed to be the only known build of the game (except recent Amazon/Aspyr rereleases), it turns out the Japanese and Thai versions were built in a different environment. The demo version uses the same binaries as the retail one, just strips away most of its content.&lt;br /&gt;
&lt;br /&gt;
=== Retail XBOX Version (NA/EU) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;139&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Jan 25 2005&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;EXE Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;C:\CT\BuildTemp\XboxShipping\XBoxLaunch.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Most likely cross compiled with PC version.&lt;br /&gt;
&lt;br /&gt;
=== Japanese PC Version ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;138&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Jan 24 2005&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;PDB Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;e:\Swrc\Ct\BuildTemp\Win32Release\Launch\Launch.pdb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Compiled one day earlier than its international counterpart, it is not known why it was done nor why build number was changed. This version features full Japanese audio and text files, the only difference being some changes to code to make use of Japanese letters.&lt;br /&gt;
&lt;br /&gt;
=== Japanese XBOX Version ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;138&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Jan 26 2005&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;EXE Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;d:\Swrc\Ct\BuildTemp\XboxShipping\XBoxLaunch.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Compiled one day later than internation PC and XBOX versions and two days later than Japanese PC version.&lt;br /&gt;
&lt;br /&gt;
=== Thai PC Version ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;138&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Feb 18 2005&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;PDB Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;e:\Swrc\Ct\BuildTemp\Win32Release\Launch\Launch.pdb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Uses the Japanese PC version as foundation but got compiled 25 days later for unknown reasons. It features Thai text files for translation, audio remains in English. Currently unknown when this version got officially released, information on the internet are very hard to find.&lt;br /&gt;
&lt;br /&gt;
=== Nintendo Switch Version (Aspyr) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;139 Scalar&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Jan 12 2021&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;BIN Paths:&#039;&#039;&#039; &amp;lt;code&amp;gt;C:\actions-runner\_work\Project-RC-Cola��ô�swrc-NX\NX32\Publish&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;C:/Users/icculus/Desktop/swrc/SDL2/original-source-code/src/rb�ò�/opengles2/SDL_&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: File system is a mess, random files in random locations. Also several traces of [[Republic Commando UCC]] usage found without giving any credits. ;(&lt;br /&gt;
&lt;br /&gt;
=== Playstation 4 Version (Aspyr) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;147 RLS&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Mar 3 2021&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;BIN Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;D:/work/BuildTemp/ORBISRelease/eboot.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Same files and structure like PC version, just some Sony libraries included. Binary files compiled with &amp;lt;code&amp;gt;.prx&amp;lt;/code&amp;gt; extension, render device is &amp;lt;code&amp;gt;GNMDrv.GNMRenderDevice&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Amazon Version ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;139&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Unknown&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;PDB Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;C:\CT\BuildTemp\Win32Release_NoSSE\Launch\Launch.pdb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Binaries contain DRM which renders the Republic Commando Fix unavailable for this version! This version was released as a free gift for Twitch Prime members some time ago in 2022.&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=PlayStation_4_Game_Log&amp;diff=377</id>
		<title>PlayStation 4 Game Log</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=PlayStation_4_Game_Log&amp;diff=377"/>
		<updated>2026-03-09T15:23:16Z</updated>

		<summary type="html">&lt;p&gt;Plasma: Created page with &amp;quot;Game output when running it on PlayStation 4 emulator. It crashes when initializing main menu.  &amp;lt;pre&amp;gt; [Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Init: System language ID is 1. Used language code is &amp;#039;int&amp;#039;. [Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Uninitialized: Name subsystem initialized [Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Init: Build: 147 RLS [Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Init: Engine v...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Game output when running it on PlayStation 4 emulator. It crashes when initializing main menu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Init: System language ID is 1. Used language code is &#039;int&#039;.&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Uninitialized: Name subsystem initialized&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Init: Build: 147 RLS&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Init: Engine version: 2226&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Init: Compiled: Mar  3 2021&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Init: Command line: &lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Init: Base directory: /app0/System/&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Init: Character set: ANSI&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Loading script package XInterface&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Loading script package Engine&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Loading script package Core&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Loading script package XGame&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Loading script package CTMarkers&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Loading script package CTGame&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Loading script package Gameplay&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Loading script package OrbisDrv&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Loading script package ALAudio&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Loading script package GNMDrv&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Loading script package Transient&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Init: Object subsystem initialized&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Init: OS Type=PlayStation&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Init: Time Counter Frequency=3187.2 MHz&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Warning: Dynamic load Engine.GameEngine&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Init: Unreal engine initialized&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Loading native classes&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (SW:RC Trophy) logger.cpp:62 log_flush: [stdout] Error! Expected 32 trophies, but loaded trophy pack contains (null)&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (SW:RC Trophy) logger.cpp:62 log_flush: [stdout] Log: Error! Expected 32 trophies, but loaded trophy pack contains (null)&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Init: Client initialized.&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (SW:RC SaveData) logger.cpp:62 log_flush: [stdout] sceSaveDataMount2 failed in SaveDataRead() because save file &#039;userconfig&#039; does not exist&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (SW:RC SaveData) logger.cpp:62 log_flush: [stdout] Log: sceSaveDataMount2 failed in SaveDataRead() because save file &#039;userconfig&#039; does not exist&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (SW:RC SaveData) logger.cpp:62 log_flush: [stdout] sceSaveDataMount2 failed in SaveDataRead() because save file &#039;userconfig&#039; does not exist&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (SW:RC SaveData) logger.cpp:62 log_flush: [stdout] Log: sceSaveDataMount2 failed in SaveDataRead() because save file &#039;userconfig&#039; does not exist&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (SW:RC SaveData) logger.cpp:62 log_flush: [stdout] sceSaveDataMount2 failed in SaveDataRead() because save file &#039;userconfig&#039; does not exist&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (SW:RC SaveData) logger.cpp:62 log_flush: [stdout] Log: sceSaveDataMount2 failed in SaveDataRead() because save file &#039;userconfig&#039; does not exist&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (SW:RC SaveData) logger.cpp:62 log_flush: [stdout] sceSaveDataMount2 failed in SaveDataRead() because save file &#039;userconfig&#039; does not exist&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (SW:RC SaveData) logger.cpp:62 log_flush: [stdout] Log: sceSaveDataMount2 failed in SaveDataRead() because save file &#039;userconfig&#039; does not exist&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Init: GNM Driver: Using w- pixel fog&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Init: GNM Driver: Supports trilinear&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Init: GNM Device: using cubemaps [with mipmaps]&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Loading script package BumpTex&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Warning: Dynamic load BumpTex.StaticEnvmaps.StaticDiffuse&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Warning: Dynamic load BumpTex.StaticEnvmaps.StaticSpecularMatte&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Warning: Dynamic load BumpTex.StaticEnvmaps.StaticSpecularDull&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Warning: Dynamic load BumpTex.StaticEnvmaps.StaticSpecularPolished&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Warning: Dynamic load BumpTex.StaticEnvmaps.StaticSpecularShiny&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: (Karma): Beginning Karma for game.&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: (Karma): Creating MeAssetDB.&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: (Karma): Loading: ambient.ka&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: (Karma): Loading: clone.ka&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: (Karma): Loading: ct.kaw&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: (Karma): Loading: droid.ka&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: (Karma): Loading: geonosian.ka&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: (Karma): Loading: rasanimprops.ka&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: (Karma): Loading: trandoshan.ka&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: (Karma): Loading: turrets.ka&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: (Karma): Loading: vehicles.ka&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: (Karma): Loading: wookiee.ka&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: (Karma): Finished Creating MeAssetDB (27 Assets).&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Pre load memory watermark: 0&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Loading level verify&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Loading level&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: LoadMap: Entry &lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Pre load memory watermark: 1&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Warning: Dynamic load Entry.myLevel&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Entry load time: 0.003 sec total, 0.003 app&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log:  Entry init actor coll time: 0.000 sec total, 0.000 app&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Game class is &#039;GameInfo&#039;&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Level is Level Entry.myLevel&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: *** WARNING - PATHS MAY NOT BE VALID ***&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Bringing Level Entry.myLevel up for play (0) ...&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] ScriptLog: InitGame: &lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] ScriptLog: Base Mutator is Entry.InGameTempName&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] ScriptLog: GameInfo::InitGame : bEnableStatLogging False&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] ScriptLog: MusicStat is InGameTempName&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log:  Entry init BeginPlay time: 0.000 sec total, 0.000 app &lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Post load memory watermark: 2&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Entry init time: 0.011 sec total, 0.011 app&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Entry file load stats: Opens 0, Seeks 0, Skips 0, Reads 0 KB / 0, Serialize 0 KB / 0&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Exiting LoadMap &lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Loading script package UDebugMenu&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Warning: Dynamic load UDebugMenu.UDebugRootWindow&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Warning: Dynamic load UDebugMenu.UDebugBlueLookAndFeel&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Init: AL_VENDOR      : DLE&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Init: AL_RENDERER    : mojoAL for Orbis&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Init: AL_VERSION     : 1.1&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Init: AL_EXTENSIONS  : AL_EXT_FLOAT32&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: 16 AL Audio Sources Created!&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Init: ALAudio: subsystem initialized.&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] ScriptLog: Team 255&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: (Karma): KInitSkeletonKarma: Framework, but no world.&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Init: Input system initialized for InGameTempName&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Enter SetRes: 1920x1080 Fullscreen 1&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Using depth-buffer format sce::Gnm::kZFormat32Float, sce::Gnm::kSurfaceFormatInvalid&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Init: Game engine init time: 2.510147 seconds total, 2.510147 app&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Game init load stats: Opens 0, Seeks 0, Skips 0, Reads 0 KB / 0, Serialize 0 KB / 0&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] ScriptLog: MenuOpen: XInterfaceCTMenus.CTStartPSMenu (RESET  )&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Warning: Dynamic load GUIContent.Menu.RC_title_bg&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: ## AV_Player: PLAYBACK STARTED ##&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Static mesh batches: 0 vertex bytes, 0 index bytes&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (audio_output_thread) logger.cpp:62 log_flush: [stdout] SAMPLE RATE CHANGED TO 44100&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: ## AV_Player: PLAYBACK STOPPED ##&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (audio_output_thread) logger.cpp:62 log_flush: [stdout] my_output_thread : audio out thread finished.&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: ## AV_Player: PLAYBACK STARTED ##&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: ## AV_Player: PLAYBACK STOPPED ##&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (audio_output_thread) logger.cpp:62 log_flush: [stdout] my_output_thread : audio out thread finished.&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Precaching: Entry.LevelInfo0&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Log: Allocating 16384 byte dynamic index buffer.&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Warning: Dynamic load OrbitFonts.OrbitBold12&lt;br /&gt;
[Tty] &amp;lt;Info&amp;gt; (Game:Main) logger.cpp:62 log_flush: [stdout] Warning: Invalid source texture: w=0, h=0, mips=0, name=MovieTexture Transient.InGameTempName&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Main_Page&amp;diff=376</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Main_Page&amp;diff=376"/>
		<updated>2026-03-09T15:22:30Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Star Wars Republic Commando is a tactical first-person shooter video game, set in the Star Wars universe, released in March 2005. It was developed and published by LucasArts for the Xbox and Microsoft Windows. The game uses Epic Games Unreal Warfare game/engine as foundation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Engine version:&#039;&#039;&#039; 2226&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Build:&#039;&#039;&#039; 139 (138) - see [[Game Versions]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Core Differences:&#039;&#039;&#039;&lt;br /&gt;
* The UnrealEd editor has a different movement mode and a rotation gimbal&lt;br /&gt;
** This was done to closer match Autodesk Maya, as the 3D artists were used to that instead of the movement in UE&lt;br /&gt;
** This feature can be toggled off by going into the Advanced Options (View-&amp;gt;Advanced Options), going into Editor and turning on UseOldInterface&lt;br /&gt;
* Many smaller improvements like multiple actor properties windows and the ability to change the value of hidden properties&lt;br /&gt;
&lt;br /&gt;
* The game supports programmable shaders (vs 1.1, ps 1.1 and ps 1.4)&lt;br /&gt;
* Class property default values can be stored in separate packages in the Properties directory&lt;br /&gt;
* Config files in System are read only and overridden by the ones in Save&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Client ==&lt;br /&gt;
&lt;br /&gt;
[[Troubleshooting Client]]&lt;br /&gt;
&lt;br /&gt;
[[Cheats and Console Commands]]&lt;br /&gt;
&lt;br /&gt;
[[Files and Useful Stuff (Client)]]&lt;br /&gt;
&lt;br /&gt;
[[ini Files]]&lt;br /&gt;
&lt;br /&gt;
[[Directory Layout]]&lt;br /&gt;
&lt;br /&gt;
== Server ==&lt;br /&gt;
&lt;br /&gt;
[[Create Basic Server (Windows)]]&lt;br /&gt;
&lt;br /&gt;
[[Run Server on Linux]]&lt;br /&gt;
&lt;br /&gt;
[[Files and Useful Stuff (Server)]]&lt;br /&gt;
&lt;br /&gt;
== Unreal Editor ==&lt;br /&gt;
&lt;br /&gt;
[[Introduction]]&lt;br /&gt;
&lt;br /&gt;
[[Tutorial Series]]&lt;br /&gt;
&lt;br /&gt;
== Native Programming ==&lt;br /&gt;
&lt;br /&gt;
[[MS Visual Studio 2003]]&lt;br /&gt;
&lt;br /&gt;
[[Republic Commando UCC]]&lt;br /&gt;
&lt;br /&gt;
[[Binary decompilation]]&lt;br /&gt;
&lt;br /&gt;
[[Header files and useful links]]&lt;br /&gt;
&lt;br /&gt;
[[Writing Native Code]]&lt;br /&gt;
&lt;br /&gt;
[[Compiling with MS Visual Studio 2017]]&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
&lt;br /&gt;
[[Articles/Promotions/Reviews/Interviews/etc]]&lt;br /&gt;
&lt;br /&gt;
[[Cut Dialogue/Voicelines]]&lt;br /&gt;
&lt;br /&gt;
[[Gamespy in Republic Commando]]&lt;br /&gt;
&lt;br /&gt;
[[Hardware Shaders]]&lt;br /&gt;
&lt;br /&gt;
[[Nintendo Switch Game Log]]&lt;br /&gt;
&lt;br /&gt;
[[PlayStation 4 Game Log]]&lt;br /&gt;
&lt;br /&gt;
[[Replication De-Obfuscation]]&lt;br /&gt;
&lt;br /&gt;
[https://tcrf.net/Star_Wars:_Republic_Commando SWRC on TCRF]&lt;br /&gt;
&lt;br /&gt;
[[True-Type Font Importing]]&lt;br /&gt;
&lt;br /&gt;
[[Unreal Class Reference]]&lt;br /&gt;
&lt;br /&gt;
[[UnrealScript Language Reference]]&lt;br /&gt;
&lt;br /&gt;
[[XBOX MetaData]]&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Create_Basic_Server_(Windows)&amp;diff=375</id>
		<title>Create Basic Server (Windows)</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Create_Basic_Server_(Windows)&amp;diff=375"/>
		<updated>2025-11-05T10:40:18Z</updated>

		<summary type="html">&lt;p&gt;Plasma: /* Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note: This guide is intended for dedicated servers, not servers started from the ingame menu!&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Windows operating system (For Linux: [[Run Server on Linux]])&lt;br /&gt;
* Microsoft Visual C++ 2005 Redistributable x86 and x64&lt;br /&gt;
* Game files need to be present on host system&lt;br /&gt;
* [[Republic Commando UCC]]&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
&lt;br /&gt;
* Download Republic Commando UCC and install it into GameData/System folder&lt;br /&gt;
* Create a shortcut for UCC.exe and add this parameter on target line: &amp;lt;code&amp;gt;Engine.ServerCommandlet&amp;lt;/code&amp;gt;&lt;br /&gt;
* It should like below (absolute paths may be different depending on installation location):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;C:\Program Files (x86)\Steam\steamapps\common\Star Wars Republic Commando\GameData\System\UCC.exe&amp;quot; Engine.ServerCommandlet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Forward the server connect port (default 7777) for TCP and UDP in your router/firewall&lt;br /&gt;
* Optionally, forward the gamespy master server port 11138 for TCP and UDP if you want to see your server on the list&lt;br /&gt;
* If running multiple servers on same machine/network interface, the gamespy port increases by one automatically for each server instance. A second server would use 11139, a third server 11140 and so on&lt;br /&gt;
* There is a hardcoded limit on how many servers you can host on a single network/machine interface which is 100, the gamespy port therefore will automatically increase up to 11237.&lt;br /&gt;
&lt;br /&gt;
== Configure System\System.ini ==&lt;br /&gt;
&lt;br /&gt;
Open up GameData\System\System.ini file with notepad. (Notepad++ recommended)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[URL]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Change the lines&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Map=Entry.ctm&lt;br /&gt;
LocalMap=Entry.ctm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
to&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Map=DM_Siege?Game=MPGame.DMGame&lt;br /&gt;
LocalMap=DM_Siege?Game=MPGame.DMGame&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will boot the server into Arena A17 on DeathMatch gamemode.&lt;br /&gt;
&lt;br /&gt;
The commandline syntax is: Mapname, Gamemode, additional parameters.&lt;br /&gt;
* Parameters get seperated by &amp;quot;?&amp;quot; symbol&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Additional Parameters&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GoalScore=           -Set the score limit&lt;br /&gt;
Timelimit=           -Set the timelimit in minutes&lt;br /&gt;
MaxPlayers=          -Set max players for server&lt;br /&gt;
MaxSpectators=       -Set max spectators for server&lt;br /&gt;
RespawnWaitTime=     -Set respawn time, maximum are 7 seconds&lt;br /&gt;
MapListType=         -Tell the server to use this map list pool&lt;br /&gt;
NumRounds=           -For Assault gamemode, set the number of rounds until match ends&lt;br /&gt;
RoundTime=           -For Assault gamemode, set the round time in seconds&lt;br /&gt;
bEmptyTeamStart=     -Set to either True or False, tells the game to start even if only one player joined&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The following example will boot the server into Arena A17 (CTF version) with the gamemode capture the flag, goal limit set to 3 (captures), 60 minute timelimit per map, 32 player slots, 8 spectator slots, 4 second respawntime and ctf maplist:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CTF_Siege?Game=MPGame.CTFGame?GoalScore=3?Timelimit=60?MaxPlayers=32?MaxSpectators=8?RespawnWaitTime=4?MapListType=MPGame.MapListCaptureTheFlag&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Server Connect Port&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
By default, the client connect port for server is set to 7777. Change it if necessary.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Port=7777&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IpDrv.TcpNetDriver&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Change NetServerMaxTickRate attribute to 35 for smoother network play.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NetServerMaxTickRate=35&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IpDrv.MasterServerUplink&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Change the AdvertiseServer attribute accordingly if you want to announce server on LAN or internet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
;Set the below to broadcast on Lan&lt;br /&gt;
;Set this to 2 to broadcast to gamespy&lt;br /&gt;
AdvertiseServer=2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[Engine.GameReplicationInfo]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Change the server name being displayed on internet browser. Parameter &amp;quot;ShortName&amp;quot; is unused!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ServerName=My cool server&lt;br /&gt;
ShortName=RC Server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Default Gamemodes ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MPGame.DMGame        -Deathmatch&lt;br /&gt;
MPGame.TDGame        -TeamDeathmatch&lt;br /&gt;
MPGame.CTFGame       -Capture the flag&lt;br /&gt;
MPGame.ASGame        -Assault&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Default Maps ==&lt;br /&gt;
&lt;br /&gt;
Available Maps for DM/TDM: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DM_Canyon           -Gunship&lt;br /&gt;
DM_Detention        -Lockdown&lt;br /&gt;
DM_Engine           -Engine&lt;br /&gt;
DM_Hangar           -Hangar&lt;br /&gt;
DM_HangingGarden    -Garden&lt;br /&gt;
DM_Pow              -Garrison&lt;br /&gt;
DM_PowSmall         -Depot&lt;br /&gt;
DM_Siege            -Arena A17&lt;br /&gt;
DM_Trando           -Ghostship&lt;br /&gt;
DM_UnderPass        -Kachirho&lt;br /&gt;
DM_ZeroG            -Arena G9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Available Maps for CTF/AS: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CTF_Detention        -Lockdown&lt;br /&gt;
CTF_Engine           -Engine&lt;br /&gt;
CTF_Hangar           -Hangar&lt;br /&gt;
CTF_HangingGarden    -Garden&lt;br /&gt;
CTF_Pow              -Garrison&lt;br /&gt;
CTF_Siege            -Arena A17&lt;br /&gt;
CTF_Trando           -Ghostship&lt;br /&gt;
CTF_UnderPass        -Kachirho&lt;br /&gt;
CTF_ZeroG            -Arena G9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Map pools ==&lt;br /&gt;
&lt;br /&gt;
Map list pools are found at the end of System.ini file and are used to cycle through maps/gamemodes. &lt;br /&gt;
&lt;br /&gt;
This example switches maps and modes on each round end:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[MPGame.MapListCaptureTheFlag]&lt;br /&gt;
MapNum=0&lt;br /&gt;
Maps=DM_Siege?Game=MPGame.DMGame?GoalScore=50?timelimit=60&lt;br /&gt;
Maps+=CTF_Detention?Game=MPGame.ASGame?GoalScore=0?RoundTime=240?NumRounds=2?timelimit=0&lt;br /&gt;
Maps+=DM_Hangar?Game=MPGame.TDGame?GoalScore=40?timelimit=10?NumRounds=0?RoundTime=0&lt;br /&gt;
Maps+=CTF_HangingGarden.ctm?Game=MPGame.ASGame?GoalScore=0?RoundTime=240?NumRounds=2?timelimit=0&lt;br /&gt;
Maps+=DM_ZeroG?Game=MPGame.DMGame?GoalScore=25?timelimit=10?NumRounds=0?RoundTime=0&lt;br /&gt;
Maps+=CTF_Underpass?Game=MPGame.CTFGame?GoalScore=3?timelimit=10&lt;br /&gt;
Maps+=DM_POW?Game=MPGame.TDGame?GoalScore=35?timelimit=10&lt;br /&gt;
Maps+=DM_Canyon?Game=MPGame.DMGame?GoalScore=25?&lt;br /&gt;
Maps+=CTF_Trando?Game=MPGame.CTFGame?GoalScore=3?timelimit=10&lt;br /&gt;
Maps+=DM_Engine?Game=MPGame.TDGame?GoalScore=35?timelimit=10&lt;br /&gt;
Maps+=DM_Siege?Game=MPGame.DMGame?GoalScore=25?timelimit=10&lt;br /&gt;
Maps+=DM_Detention?Game=MPGame.TDGame?GoalScore=35&lt;br /&gt;
Maps+=CTF_Hangar?Game=MPGame.ASGame?GoalScore=0?RoundTime=240?NumRounds=2?timelimit=0&lt;br /&gt;
Maps+=DM_HangingGarden.ctm?Game=MPGame.TDGame?GoalScore=35?RoundTime=0?NumRounds=0?timelimit=10&lt;br /&gt;
Maps+=CTF_ZeroG?Game=MPGame.CTFGame?GoalScore=5?timelimit=10&lt;br /&gt;
Maps+=DM_Underpass?Game=MPGame.DMGame?GoalScore=25?timelimit=10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Game_Versions&amp;diff=374</id>
		<title>Game Versions</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Game_Versions&amp;diff=374"/>
		<updated>2025-11-05T09:42:00Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Retail/Steam/GoG PC Version (NA/EU) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;139&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Jan 25 2005&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;PDB Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;C:\CT\BuildTemp\Win32Release\Launch\Launch.pdb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Long believed to be the only known build of the game (except recent Amazon/Aspyr rereleases), it turns out the Japanese and Thai versions were built in a different environment. The demo version uses the same binaries as the retail one, just strips away most of its content.&lt;br /&gt;
&lt;br /&gt;
=== Retail XBOX Version (NA/EU) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;139&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Jan 25 2005&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;EXE Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;C:\CT\BuildTemp\XboxShipping\XBoxLaunch.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Most likely cross compiled with PC version.&lt;br /&gt;
&lt;br /&gt;
=== Japanese PC Version ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;138&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Jan 24 2005&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;PDB Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;e:\Swrc\Ct\BuildTemp\Win32Release\Launch\Launch.pdb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Compiled one day earlier than its international counterpart, it is not known why it was done nor why build number was changed. This version features full Japanese audio and text files, the only difference being some changes to code to make use of Japanese letters.&lt;br /&gt;
&lt;br /&gt;
=== Japanese XBOX Version ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;138&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Jan 26 2005&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;EXE Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;d:\Swrc\Ct\BuildTemp\XboxShipping\XBoxLaunch.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Compiled one day later than internation PC and XBOX versions and two days later than Japanese PC version.&lt;br /&gt;
&lt;br /&gt;
=== Thai PC Version ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;138&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Feb 18 2005&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;PDB Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;e:\Swrc\Ct\BuildTemp\Win32Release\Launch\Launch.pdb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Uses the Japanese PC version as foundation but got compiled 25 days later for unknown reasons. It features Thai text files for translation, audio remains in English. Currently unknown when this version got officially released, information on the internet are very hard to find.&lt;br /&gt;
&lt;br /&gt;
=== Nintendo Switch Version (Aspyr) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;139&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Jan 12 2021&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;BIN Paths:&#039;&#039;&#039; &amp;lt;code&amp;gt;C:\actions-runner\_work\Project-RC-Cola��ô�swrc-NX\NX32\Publish&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;C:/Users/icculus/Desktop/swrc/SDL2/original-source-code/src/rb�ò�/opengles2/SDL_&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: File system is a mess, random files in random locations. Also several traces of [[Republic Commando UCC]] usage found without giving any credits. ;(&lt;br /&gt;
&lt;br /&gt;
=== Playstation 4 Version (Aspyr) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;139&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Unknown&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;BIN Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;D:/work/BuildTemp/ORBISRelease/eboot.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Same files and structure like PC version, just some Sony libraries included. Binary files compiled with &amp;lt;code&amp;gt;.prx&amp;lt;/code&amp;gt; extension, render device is &amp;lt;code&amp;gt;GNMDrv.GNMRenderDevice&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Amazon Version ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;139&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Unknown&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;PDB Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;C:\CT\BuildTemp\Win32Release_NoSSE\Launch\Launch.pdb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Binaries contain DRM which renders the Republic Commando Fix unavailable for this version! This version was released as a free gift for Twitch Prime members some time ago in 2022.&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Game_Versions&amp;diff=373</id>
		<title>Game Versions</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Game_Versions&amp;diff=373"/>
		<updated>2025-11-05T09:30:13Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Retail/Steam/GoG PC Version (NA/EU) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;139&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Jan 25 2005&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;PDB Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;C:\CT\BuildTemp\Win32Release\Launch\Launch.pdb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Long believed to be the only known build of the game (except recent Amazon/Aspyr rereleases), it turns out the Japanese and Thai versions were built in a different environment. The demo version uses the same binaries as the retail one, just strips away most of its content.&lt;br /&gt;
&lt;br /&gt;
=== Retail XBOX Version (NA/EU) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;139&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Jan 25 2005&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;EXE Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;C:\CT\BuildTemp\XboxShipping\XBoxLaunch.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Likely cross compiled with PC version.&lt;br /&gt;
&lt;br /&gt;
=== Japanese PC Version ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;138&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Jan 24 2005&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;PDB Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;e:\Swrc\Ct\BuildTemp\Win32Release\Launch\Launch.pdb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Compiled one day earlier than its international counterpart, it is not known why it was done nor why build number was increased. This version features full japanese audio and text files, the only difference being some changes to code to make use of japanese letters.&lt;br /&gt;
&lt;br /&gt;
=== Japanese XBOX Version ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;138&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Jan 26 2005&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;EXE Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;d:\Swrc\Ct\BuildTemp\XboxShipping\XBoxLaunch.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Compiled one day later than internation PC and XBOX versions and two days later than japanese PC version.&lt;br /&gt;
&lt;br /&gt;
=== Thai PC Version ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;138&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Feb 18 2005&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;PDB Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;e:\Swrc\Ct\BuildTemp\Win32Release\Launch\Launch.pdb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Uses the japanese PC version as foundation but got compiled 25 days later for unknown reasons. It features thai text files for translation, audio remains in english. Currently unknown when this version got officially released, information on the internet are very sparse.&lt;br /&gt;
&lt;br /&gt;
=== Nintendo Switch Version (Aspyr) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;139&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Jan 12 2021&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;BIN Paths:&#039;&#039;&#039; &amp;lt;code&amp;gt;C:\actions-runner\_work\Project-RC-Cola��ô�swrc-NX\NX32\Publish&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;C:/Users/icculus/Desktop/swrc/SDL2/original-source-code/src/rb�ò�/opengles2/SDL_&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: File system is a mess, random files in random locations. Also several traces for [[Republic Commando UCC]] usage found without giving any credits. ;(&lt;br /&gt;
&lt;br /&gt;
=== Playstation 4 Version (Aspyr) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;Unknown&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Unknown&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;BIN Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;D:/work/BuildTemp/ORBISRelease/eboot.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Same files and structure like PC version, just some Sony libs included. Binary files compiled with &amp;lt;code&amp;gt;.prx&amp;lt;/code&amp;gt; extension, render device is &amp;lt;code&amp;gt;GNMDrv.GNMRenderDevice&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Amazon Version ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;139&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Unknown&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;PDB Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;C:\CT\BuildTemp\Win32Release_NoSSE\Launch\Launch.pdb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Binaries contain DRM which renders the Republic Commando Fix unavailable for this version! This version was released as a free gift for Twitch Prime members some time ago in 2022.&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Game_Versions&amp;diff=372</id>
		<title>Game Versions</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Game_Versions&amp;diff=372"/>
		<updated>2025-11-05T09:24:32Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Retail/Steam/GoG PC Version (NA/EU) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;139&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Jan 25 2005&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;PDB Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;C:\CT\BuildTemp\Win32Release\Launch\Launch.pdb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Long believed to be the only known build of the game (except recent Amazon/Aspyr rereleases), it turns out the Japanese and Thai versions were built in a different environment. The demo version uses the same binaries as the retail one, just strips away most of its content.&lt;br /&gt;
&lt;br /&gt;
=== Retail XBOX Version (NA/EU) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;139&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Jan 25 2005&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;EXE Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;C:\CT\BuildTemp\XboxShipping\XBoxLaunch.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Likely cross compiled with PC version.&lt;br /&gt;
&lt;br /&gt;
=== Japanese PC Version ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;138&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Jan 24 2005&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;PDB Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;e:\Swrc\Ct\BuildTemp\Win32Release\Launch\Launch.pdb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Compiled one day earlier than its international counterpart, it is not known why it was done nor why build number was increased. This version features full japanese audio and text files, the only difference being some changes to code to make use of japanese letters.&lt;br /&gt;
&lt;br /&gt;
=== Japanese XBOX Version ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;Unknown&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Jan 26 2005&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;EXE Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;d:\Swrc\Ct\BuildTemp\XboxShipping\XBoxLaunch.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Compiled one day later than internation PC and XBOX versions and two days later than japanese PC version.&lt;br /&gt;
&lt;br /&gt;
=== Thai PC Version ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;138&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Feb 18 2005&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;PDB Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;e:\Swrc\Ct\BuildTemp\Win32Release\Launch\Launch.pdb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Uses the japanese PC version as foundation but got compiled 25 days later for unknown reasons. It features thai text files for translation, audio remains in english. Currently unknown when this version got officially released, information on the internet are very sparse.&lt;br /&gt;
&lt;br /&gt;
=== Nintendo Switch Version (Aspyr) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;139&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Jan 12 2021&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;BIN Paths:&#039;&#039;&#039; &amp;lt;code&amp;gt;C:\actions-runner\_work\Project-RC-Cola��ô�swrc-NX\NX32\Publish&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;C:/Users/icculus/Desktop/swrc/SDL2/original-source-code/src/rb�ò�/opengles2/SDL_&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: File system is a mess, random files in random locations. Also several traces for [[Republic Commando UCC]] usage found without giving any credits. ;(&lt;br /&gt;
&lt;br /&gt;
=== Playstation 4 Version (Aspyr) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;Unknown&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Unknown&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;BIN Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;D:/work/BuildTemp/ORBISRelease/eboot.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Same files and structure like PC version, just some Sony libs included. Binary files compiled with &amp;lt;code&amp;gt;.prx&amp;lt;/code&amp;gt; extension, render device is &amp;lt;code&amp;gt;GNMDrv.GNMRenderDevice&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Amazon Version ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;139&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Unknown&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;PDB Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;C:\CT\BuildTemp\Win32Release_NoSSE\Launch\Launch.pdb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Binaries contain DRM which renders the Republic Commando Fix unavailable for this version! This version was released as a free gift for Twitch Prime members some time ago in 2022.&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Game_Versions&amp;diff=371</id>
		<title>Game Versions</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Game_Versions&amp;diff=371"/>
		<updated>2025-11-05T09:24:11Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Retail/Steam/GoG PC Version (NA/EU) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;139&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Jan 25 2005&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;PDB Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;C:\CT\BuildTemp\Win32Release\Launch\Launch.pdb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Long believed to be the only known build of the game (except recent Amazon/Aspyr rereleases), it turns out the Japanese and Thai versions were built in a different environment. The demo version uses the same binaries as the retail one, just strips away most of its content.&lt;br /&gt;
&lt;br /&gt;
=== Retail XBOX Version (NA/EU) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;Unknown&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Jan 25 2005&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;EXE Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;C:\CT\BuildTemp\XboxShipping\XBoxLaunch.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Likely cross compiled with PC version.&lt;br /&gt;
&lt;br /&gt;
=== Japanese PC Version ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;138&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Jan 24 2005&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;PDB Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;e:\Swrc\Ct\BuildTemp\Win32Release\Launch\Launch.pdb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Compiled one day earlier than its international counterpart, it is not known why it was done nor why build number was increased. This version features full japanese audio and text files, the only difference being some changes to code to make use of japanese letters.&lt;br /&gt;
&lt;br /&gt;
=== Japanese XBOX Version ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;Unknown&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Jan 26 2005&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;EXE Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;d:\Swrc\Ct\BuildTemp\XboxShipping\XBoxLaunch.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Compiled one day later than internation PC and XBOX versions and two days later than japanese PC version.&lt;br /&gt;
&lt;br /&gt;
=== Thai PC Version ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;138&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Feb 18 2005&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;PDB Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;e:\Swrc\Ct\BuildTemp\Win32Release\Launch\Launch.pdb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Uses the japanese PC version as foundation but got compiled 25 days later for unknown reasons. It features thai text files for translation, audio remains in english. Currently unknown when this version got officially released, information on the internet are very sparse.&lt;br /&gt;
&lt;br /&gt;
=== Nintendo Switch Version (Aspyr) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;139&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Jan 12 2021&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;BIN Paths:&#039;&#039;&#039; &amp;lt;code&amp;gt;C:\actions-runner\_work\Project-RC-Cola��ô�swrc-NX\NX32\Publish&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;C:/Users/icculus/Desktop/swrc/SDL2/original-source-code/src/rb�ò�/opengles2/SDL_&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: File system is a mess, random files in random locations. Also several traces for [[Republic Commando UCC]] usage found without giving any credits. ;(&lt;br /&gt;
&lt;br /&gt;
=== Playstation 4 Version (Aspyr) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;Unknown&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Unknown&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;BIN Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;D:/work/BuildTemp/ORBISRelease/eboot.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Same files and structure like PC version, just some Sony libs included. Binary files compiled with &amp;lt;code&amp;gt;.prx&amp;lt;/code&amp;gt; extension, render device is &amp;lt;code&amp;gt;GNMDrv.GNMRenderDevice&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Amazon Version ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Build Number:&#039;&#039;&#039; &amp;lt;code&amp;gt;139&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Engine Version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2226&amp;lt;/code&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* &#039;&#039;&#039;Compiled on:&#039;&#039;&#039; &amp;lt;code&amp;gt;Unknown&amp;lt;/code&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* &#039;&#039;&#039;PDB Path:&#039;&#039;&#039; &amp;lt;code&amp;gt;C:\CT\BuildTemp\Win32Release_NoSSE\Launch\Launch.pdb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Binaries contain DRM which renders the Republic Commando Fix unavailable for this version! This version was released as a free gift for Twitch Prime members some time ago in 2022.&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Import/Export_StaticMeshes_in_3DS_Max&amp;diff=370</id>
		<title>Import/Export StaticMeshes in 3DS Max</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Import/Export_StaticMeshes_in_3DS_Max&amp;diff=370"/>
		<updated>2024-08-11T23:44:34Z</updated>

		<summary type="html">&lt;p&gt;Plasma: /* Import */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This example shows you how to import/export StaticMeshes in 3DS Max for Republic Commando and other Unreal Engine games.&lt;br /&gt;
&lt;br /&gt;
You need a script for 3DS Max called [https://www.gildor.org/projects/unactorx ActorX by Gildor], which helps you importing/exporting ASE and PSK/PSA files. The scripts works fine with latest version of 3DS Max.&lt;br /&gt;
&lt;br /&gt;
ASE: StaticMeshes&lt;br /&gt;
&lt;br /&gt;
PSK: StaticMeshes/SkeletalMeshes&lt;br /&gt;
&lt;br /&gt;
PSA: SkeletalAnimations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import ==&lt;br /&gt;
&lt;br /&gt;
Run the ActorX script.&lt;br /&gt;
&lt;br /&gt;
[[File:Actorx.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hit the &amp;quot;Import PSK ...&amp;quot; button and select your StaticMesh you would like to import. Note that PSK files can be both StaticMeshes and SkeletalMeshes.&lt;br /&gt;
&lt;br /&gt;
Do the texturing and model work as you wish.&lt;br /&gt;
&lt;br /&gt;
[[File:3dsmax1.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Export ==&lt;br /&gt;
&lt;br /&gt;
When done with modeling/texturing your 3D model, you can export it by going to the start button on top left corner, select export and file type: ASCII Scene Export (*.ASE)&lt;br /&gt;
&lt;br /&gt;
[[File:3dsmax2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you can go to UnrealED StaticMesh browser and click on File -&amp;gt; Import to import your new ASE file as StaticMesh. After importing go to the properties and add the missing materials.&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=File:Actorx.PNG&amp;diff=369</id>
		<title>File:Actorx.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=File:Actorx.PNG&amp;diff=369"/>
		<updated>2024-08-11T23:44:17Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=File:3dsmax1.PNG&amp;diff=368</id>
		<title>File:3dsmax1.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=File:3dsmax1.PNG&amp;diff=368"/>
		<updated>2024-08-11T23:42:57Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=File:3dsmax2.PNG&amp;diff=367</id>
		<title>File:3dsmax2.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=File:3dsmax2.PNG&amp;diff=367"/>
		<updated>2024-08-11T23:42:42Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Import/Export_StaticMeshes_in_3DS_Max&amp;diff=366</id>
		<title>Import/Export StaticMeshes in 3DS Max</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Import/Export_StaticMeshes_in_3DS_Max&amp;diff=366"/>
		<updated>2024-08-11T23:41:25Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This example shows you how to import/export StaticMeshes in 3DS Max for Republic Commando and other Unreal Engine games.&lt;br /&gt;
&lt;br /&gt;
You need a script for 3DS Max called [https://www.gildor.org/projects/unactorx ActorX by Gildor], which helps you importing/exporting ASE and PSK/PSA files. The scripts works fine with latest version of 3DS Max.&lt;br /&gt;
&lt;br /&gt;
ASE: StaticMeshes&lt;br /&gt;
&lt;br /&gt;
PSK: StaticMeshes/SkeletalMeshes&lt;br /&gt;
&lt;br /&gt;
PSA: SkeletalAnimations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import ==&lt;br /&gt;
&lt;br /&gt;
Run the ActorX script.&lt;br /&gt;
&lt;br /&gt;
[[File:Actorx.PNG]]&lt;br /&gt;
&lt;br /&gt;
Hit the &amp;quot;Import PSK ...&amp;quot; button and select your StaticMesh you would like to import. Note that PSK files can be both StaticMeshes and SkeletalMeshes.&lt;br /&gt;
&lt;br /&gt;
Do the texturing and model work as you wish.&lt;br /&gt;
&lt;br /&gt;
[[File:3dsmax1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export ==&lt;br /&gt;
&lt;br /&gt;
When done with modeling/texturing your 3D model, you can export it by going to the start button on top left corner, select export and file type: ASCII Scene Export (*.ASE)&lt;br /&gt;
&lt;br /&gt;
[[File:3dsmax2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you can go to UnrealED StaticMesh browser and click on File -&amp;gt; Import to import your new ASE file as StaticMesh. After importing go to the properties and add the missing materials.&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Import/Export_StaticMeshes_in_3DS_Max&amp;diff=365</id>
		<title>Import/Export StaticMeshes in 3DS Max</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Import/Export_StaticMeshes_in_3DS_Max&amp;diff=365"/>
		<updated>2024-08-11T23:38:14Z</updated>

		<summary type="html">&lt;p&gt;Plasma: Created page with &amp;quot;This example shows you how to import/export StaticMeshes in 3DS Max for Republic Commando and other Unreal Engine games.  You need a script for 3DS Max called ActorX by Gildor, which helps you importing/exporting ASE and PSK/PSA files. The scripts works fine with latest version of 3DS Max, which is 2017.  ASE: StaticMeshes(export)  PSK: StaticMeshes/SkeletalMeshes  PSA: SkeletalAnimations   == Import ==  Run the ActorX script.  File:Actorx.PNG  Hit the &amp;quot;Import PS...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This example shows you how to import/export StaticMeshes in 3DS Max for Republic Commando and other Unreal Engine games.&lt;br /&gt;
&lt;br /&gt;
You need a script for 3DS Max called [[ActorX by Gildor]], which helps you importing/exporting ASE and PSK/PSA files. The scripts works fine with latest version of 3DS Max, which is 2017.&lt;br /&gt;
&lt;br /&gt;
ASE: StaticMeshes(export)&lt;br /&gt;
&lt;br /&gt;
PSK: StaticMeshes/SkeletalMeshes&lt;br /&gt;
&lt;br /&gt;
PSA: SkeletalAnimations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import ==&lt;br /&gt;
&lt;br /&gt;
Run the ActorX script.&lt;br /&gt;
&lt;br /&gt;
[[File:Actorx.PNG]]&lt;br /&gt;
&lt;br /&gt;
Hit the &amp;quot;Import PSK ...&amp;quot; button and select your StaticMesh you would like to import. Note that PSK files can be both StaticMeshes and SkeletalMeshes.&lt;br /&gt;
&lt;br /&gt;
Do the texturing and model work as you wish.&lt;br /&gt;
&lt;br /&gt;
[[File:3dsmax1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export ==&lt;br /&gt;
&lt;br /&gt;
When done with modeling/texturing your 3D models, you can export it by going to the start button on top left corner, select export and file type: ASCII Screne Export (*.ASE)&lt;br /&gt;
&lt;br /&gt;
[[File:3dsmax2.PNG]]&lt;br /&gt;
&lt;br /&gt;
Now you can go to UnrealED StaticMesh browser and click on file import to import your new ASE file as StaticMesh. After importing go to the properties and add the missing materials.&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Create_a_new_sciptable_Class&amp;diff=364</id>
		<title>Create a new sciptable Class</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Create_a_new_sciptable_Class&amp;diff=364"/>
		<updated>2024-08-11T23:21:47Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a few ways to create new scriptable classes for Republic Commando.&lt;br /&gt;
This page will cover the old and new ways of doing so!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External using UCC (Recommended) ==&lt;br /&gt;
[[Republic Commando UCC]] required to be used. Create a folder called &amp;quot;Code&amp;quot; on the game&#039;s root level next to GameData and Install.&lt;br /&gt;
&lt;br /&gt;
[[File:Gamedirectoryrootlevel.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Open UnrealED, go to actor window, on top bar select File -&amp;gt; Export All Scripts.&lt;br /&gt;
&lt;br /&gt;
[[File:Exportallscripts.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This will export all unrealscript files to the previously created &amp;quot;Code&amp;quot; folder.&lt;br /&gt;
&lt;br /&gt;
[[File:Codefoldercontent.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From there, create a new folder. Folder name will be used for the package name. Inside that folder, create a &amp;quot;Classes&amp;quot; folder. Inside &amp;quot;Classes&amp;quot; folder, you can create new text files with &amp;quot;.uc&amp;quot; extension to be used for Unrealscript programming.&lt;br /&gt;
&lt;br /&gt;
[[File:Codefolderminimapexample.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once done with your code/package, go to &amp;quot;\GameData\System&amp;quot; and prepare &amp;quot;UCC.ini&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Search for &amp;quot;Editpackages&amp;quot; and follow the example provided by the comment to add your package to compiler.&lt;br /&gt;
&lt;br /&gt;
For example: &amp;quot;Editpackages+=MiniMap&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Once done, run UCC from commandline: &amp;quot;UCC.exe make -ini=UCC.ini&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Inside UnrealED (Outdated) ==&lt;br /&gt;
This is the oldschool outdated way of creating scriptable classes before UCC was introduced.&lt;br /&gt;
&lt;br /&gt;
Open up UnrealED and look at the Actors browser. Pick a class where you would like to create a subclass from.&lt;br /&gt;
&lt;br /&gt;
Onces you found your parent class, select it and place it in an empty BSP geometry.&lt;br /&gt;
&lt;br /&gt;
[[File:Unrealed_newclass.PNG]]&lt;br /&gt;
&lt;br /&gt;
In this example, DMGame class was selected and placed in the room. The placed actor and the one in the list need to be selected. Next on top bar, go to &amp;quot;Class&amp;quot; and select &amp;quot;New From Selection&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Now enter a name for your new subclass and package name.&lt;br /&gt;
&lt;br /&gt;
Close UnrealED and when asked to save new package, hit yes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External using APC (Outdated) ==&lt;br /&gt;
An old tool created by -=PFW=-Skip to created class package files outside of UnrealED.&lt;br /&gt;
&lt;br /&gt;
- todo: add details...&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Create_a_new_sciptable_Class&amp;diff=363</id>
		<title>Create a new sciptable Class</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Create_a_new_sciptable_Class&amp;diff=363"/>
		<updated>2024-08-11T23:20:41Z</updated>

		<summary type="html">&lt;p&gt;Plasma: /* Inside UnrealED (Outdated) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a few ways to create new scriptable classes for Republic Commando.&lt;br /&gt;
This page will cover the old and new ways of doing so!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External using UCC (Recommended) ==&lt;br /&gt;
[[Republic Commando UCC]] required to be used. Create a folder called &amp;quot;Code&amp;quot; on the game&#039;s root level next to GameData and Install.&lt;br /&gt;
&lt;br /&gt;
[[File:Gamedirectoryrootlevel.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Open UnrealED, go to actor window, on top bar select File -&amp;gt; Export All Scripts.&lt;br /&gt;
&lt;br /&gt;
[[File:Exportallscripts.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This will export all unrealscript files to the previously created &amp;quot;Code&amp;quot; folder.&lt;br /&gt;
&lt;br /&gt;
[[File:Codefoldercontent.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From there, create a new folder. Folder name will be used for the package name. Inside that folder, create a &amp;quot;Classes&amp;quot; folder. Inside &amp;quot;Classes&amp;quot; folder, you can create new text files with &amp;quot;.uc&amp;quot; extension to be used for Unrealscript programming.&lt;br /&gt;
&lt;br /&gt;
[[File:Codefolderminimapexample.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once done with your code/package, go to &amp;quot;\GameData\System&amp;quot; and prepare &amp;quot;UCC.ini&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Search for &amp;quot;Editpackages&amp;quot; and follow the example provided by the comment to add your package to compiler.&lt;br /&gt;
&lt;br /&gt;
For example: &amp;quot;Editpackages+=MiniMap&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Once done, run UCC from commandline: &amp;quot;UCC.exe make -ini=UCC.ini&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Inside UnrealED (Outdated) ==&lt;br /&gt;
This is the oldschool outdated way of creating scriptable classes before UCC was introduced.&lt;br /&gt;
&lt;br /&gt;
Open up UnrealED and look at the Actors browser. Pick a class where you would like to create a subclass from.&lt;br /&gt;
&lt;br /&gt;
Onces you found your parent class, select it and place it in an empty BSP geometry.&lt;br /&gt;
&lt;br /&gt;
[[File:Unrealed_newclass.PNG]]&lt;br /&gt;
&lt;br /&gt;
In this example, DMGame class was selected and placed in the room. The placed actor and the one in the list need to be selected. Next on top bar, go to &amp;quot;Class&amp;quot; and select &amp;quot;New From Selection&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Now enter a name for your new subclass and package name.&lt;br /&gt;
&lt;br /&gt;
Close UnrealED and when asked to save new package, hit yes.&lt;br /&gt;
&lt;br /&gt;
== External using APC (Outdated) ==&lt;br /&gt;
todo...&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Create_a_new_sciptable_Class&amp;diff=362</id>
		<title>Create a new sciptable Class</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Create_a_new_sciptable_Class&amp;diff=362"/>
		<updated>2024-08-11T23:19:40Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a few ways to create new scriptable classes for Republic Commando.&lt;br /&gt;
This page will cover the old and new ways of doing so!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External using UCC (Recommended) ==&lt;br /&gt;
[[Republic Commando UCC]] required to be used. Create a folder called &amp;quot;Code&amp;quot; on the game&#039;s root level next to GameData and Install.&lt;br /&gt;
&lt;br /&gt;
[[File:Gamedirectoryrootlevel.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Open UnrealED, go to actor window, on top bar select File -&amp;gt; Export All Scripts.&lt;br /&gt;
&lt;br /&gt;
[[File:Exportallscripts.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This will export all unrealscript files to the previously created &amp;quot;Code&amp;quot; folder.&lt;br /&gt;
&lt;br /&gt;
[[File:Codefoldercontent.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From there, create a new folder. Folder name will be used for the package name. Inside that folder, create a &amp;quot;Classes&amp;quot; folder. Inside &amp;quot;Classes&amp;quot; folder, you can create new text files with &amp;quot;.uc&amp;quot; extension to be used for Unrealscript programming.&lt;br /&gt;
&lt;br /&gt;
[[File:Codefolderminimapexample.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once done with your code/package, go to &amp;quot;\GameData\System&amp;quot; and prepare &amp;quot;UCC.ini&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Search for &amp;quot;Editpackages&amp;quot; and follow the example provided by the comment to add your package to compiler.&lt;br /&gt;
&lt;br /&gt;
For example: &amp;quot;Editpackages+=MiniMap&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Once done, run UCC from commandline: &amp;quot;UCC.exe make -ini=UCC.ini&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Inside UnrealED (Outdated) ==&lt;br /&gt;
This is the oldschool outdated way of creating scriptable classes before UCC was introduced.&lt;br /&gt;
&lt;br /&gt;
Open up UnrealED and look at the Actors browser. Pick a class where you would like to create a subclass from.&lt;br /&gt;
&lt;br /&gt;
Onces you found your parent class, select it and place it in an empty BSP geometry.&lt;br /&gt;
&lt;br /&gt;
[[File:Unrealed_newclass.PNG]]&lt;br /&gt;
&lt;br /&gt;
In this example, DMGame class was selected and placed in the room. The placed actor and the one in the list need to be selected. Next on top bar, go to &amp;quot;Class&amp;quot; and select &amp;quot;New From Selection&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Now enter a name for your new subclass and package name.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External using APC (Outdated) ==&lt;br /&gt;
todo...&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Create_a_new_sciptable_Class&amp;diff=361</id>
		<title>Create a new sciptable Class</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Create_a_new_sciptable_Class&amp;diff=361"/>
		<updated>2024-08-11T23:18:13Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a few ways to create new scriptable classes for Republic Commando.&lt;br /&gt;
This page will cover the old and new ways of doing so!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External using UCC (Recommended) ==&lt;br /&gt;
[[Republic Commando UCC]] required to be used. Create a folder called &amp;quot;Code&amp;quot; on the game&#039;s root level next to GameData and Install.&lt;br /&gt;
&lt;br /&gt;
[[File:Gamedirectoryrootlevel.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Open UnrealED, go to actor window, on top bar select File -&amp;gt; Export All Scripts.&lt;br /&gt;
&lt;br /&gt;
[[File:Exportallscripts.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This will export all unrealscript files to the previously created &amp;quot;Code&amp;quot; folder.&lt;br /&gt;
&lt;br /&gt;
[[File:Codefoldercontent.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From there, create a new folder. Folder name will be used for the package name. Inside that folder, create a &amp;quot;Classes&amp;quot; folder. Inside &amp;quot;Classes&amp;quot; folder, you can create new text files with &amp;quot;.uc&amp;quot; extension to be used for Unrealscript programming.&lt;br /&gt;
&lt;br /&gt;
[[File:Codefolderminimapexample.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once done with your code/package, go to &amp;lt;pre&amp;gt;\GameData\System&amp;lt;/pre&amp;gt; and prepare &amp;quot;UCC.ini&amp;quot;.&lt;br /&gt;
Search for &amp;quot;Editpackages&amp;quot; and follow the example provided by the comment to add your package to compiler.&lt;br /&gt;
For example: &amp;lt;pre&amp;gt;Editpackages+=MiniMap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once done, run UCC from commandline: &amp;lt;pre&amp;gt;UCC.exe make -ini=UCC.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Inside UnrealED (Outdated) ==&lt;br /&gt;
This is the oldschool outdated way of creating scriptable classes before UCC was introduced.&lt;br /&gt;
&lt;br /&gt;
Open up UnrealED and look at the Actors browser. Pick a class where you would like to create a subclass from.&lt;br /&gt;
&lt;br /&gt;
Onces you found your parent class, select it and place it in an empty BSP geometry.&lt;br /&gt;
&lt;br /&gt;
[[File:Unrealed_newclass.PNG]]&lt;br /&gt;
&lt;br /&gt;
In this example, DMGame class was selected and placed in the room. The placed actor and the one in the list need to be selected. Next on top bar, go to &amp;quot;Class&amp;quot; and select &amp;quot;New From Selection&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Now enter a name for your new subclass and package name.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External using APC (Outdated) ==&lt;br /&gt;
todo...&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=File:Exportallscripts.png&amp;diff=360</id>
		<title>File:Exportallscripts.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=File:Exportallscripts.png&amp;diff=360"/>
		<updated>2024-08-11T23:17:50Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Create_a_new_sciptable_Class&amp;diff=359</id>
		<title>Create a new sciptable Class</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Create_a_new_sciptable_Class&amp;diff=359"/>
		<updated>2024-08-11T23:16:38Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a few ways to create new scriptable classes for Republic Commando.&lt;br /&gt;
This page will cover the old and new ways of doing so!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External using UCC (Recommended) ==&lt;br /&gt;
[[Republic Commando UCC]] required to be used. Create a folder called &amp;quot;Code&amp;quot; on the game&#039;s root level next to GameData and Install.&lt;br /&gt;
&lt;br /&gt;
[[File:Gamedirectoryrootlevel.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Open UnrealED, go to actor window, on top bar select File -&amp;gt; Export All Scripts.&lt;br /&gt;
This will export all unrealscript files to the previously created &amp;quot;Code&amp;quot; folder.&lt;br /&gt;
&lt;br /&gt;
[[File:Codefoldercontent.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From there, create a new folder. Folder name will be used for the package name. Inside that folder, create a &amp;quot;Classes&amp;quot; folder. Inside &amp;quot;Classes&amp;quot; folder, you can create new text files with &amp;quot;.uc&amp;quot; extension to be used for Unrealscript programming.&lt;br /&gt;
&lt;br /&gt;
[[File:Codefolderminimapexample.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once done with your code/package, go to &amp;lt;pre&amp;gt;\GameData\System&amp;lt;/pre&amp;gt; and prepare &amp;quot;UCC.ini&amp;quot;.&lt;br /&gt;
Search for &amp;quot;Editpackages&amp;quot; and follow the example provided by the comment to add your package to compiler.&lt;br /&gt;
For example: &amp;lt;pre&amp;gt;Editpackages+=MiniMap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once done, run UCC from commandline: &amp;lt;pre&amp;gt;UCC.exe make -ini=UCC.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Inside UnrealED (Outdated) ==&lt;br /&gt;
This is the oldschool outdated way of creating scriptable classes before UCC was introduced.&lt;br /&gt;
&lt;br /&gt;
Open up UnrealED and look at the Actors browser. Pick a class where you would like to create a subclass from.&lt;br /&gt;
&lt;br /&gt;
Onces you found your parent class, select it and place it in an empty BSP geometry.&lt;br /&gt;
&lt;br /&gt;
[[File:Unrealed_newclass.PNG]]&lt;br /&gt;
&lt;br /&gt;
In this example, DMGame class was selected and placed in the room. The placed actor and the one in the list need to be selected. Next on top bar, go to &amp;quot;Class&amp;quot; and select &amp;quot;New From Selection&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Now enter a name for your new subclass and package name.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External using APC (Outdated) ==&lt;br /&gt;
todo...&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=File:Codefolderminimapexample.png&amp;diff=358</id>
		<title>File:Codefolderminimapexample.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=File:Codefolderminimapexample.png&amp;diff=358"/>
		<updated>2024-08-11T23:13:34Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=File:Codefoldercontent.png&amp;diff=357</id>
		<title>File:Codefoldercontent.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=File:Codefoldercontent.png&amp;diff=357"/>
		<updated>2024-08-11T23:11:16Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=File:Gamedirectoryrootlevel.png&amp;diff=356</id>
		<title>File:Gamedirectoryrootlevel.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=File:Gamedirectoryrootlevel.png&amp;diff=356"/>
		<updated>2024-08-11T23:08:55Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=File:Unrealed_newclass.PNG&amp;diff=355</id>
		<title>File:Unrealed newclass.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=File:Unrealed_newclass.PNG&amp;diff=355"/>
		<updated>2024-08-11T23:05:41Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Create_a_new_sciptable_Class&amp;diff=354</id>
		<title>Create a new sciptable Class</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Create_a_new_sciptable_Class&amp;diff=354"/>
		<updated>2024-08-11T23:04:17Z</updated>

		<summary type="html">&lt;p&gt;Plasma: Created page with &amp;quot;There are a few ways to create new scriptable classes for Republic Commando. This page will cover the old and new ways of doing so!   == External using UCC (Recommended) == todo...   == Inside UnrealED (Outdated) == This is the oldschool outdated way of creating scriptable classes before UCC was introduced.  Open up UnrealED and look at the Actors browser. Pick a class where you would like to create a subclass from.  Onces you found your parent class, select it and place...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a few ways to create new scriptable classes for Republic Commando.&lt;br /&gt;
This page will cover the old and new ways of doing so!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External using UCC (Recommended) ==&lt;br /&gt;
todo...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Inside UnrealED (Outdated) ==&lt;br /&gt;
This is the oldschool outdated way of creating scriptable classes before UCC was introduced.&lt;br /&gt;
&lt;br /&gt;
Open up UnrealED and look at the Actors browser. Pick a class where you would like to create a subclass from.&lt;br /&gt;
&lt;br /&gt;
Onces you found your parent class, select it and place it in an empty BSP geometry.&lt;br /&gt;
&lt;br /&gt;
[[File:Unrealed_newclass.PNG]]&lt;br /&gt;
&lt;br /&gt;
In this example, DMGame class was selected and placed in the room. The placed actor and the one in the list need to be selected. Next on top bar, go to &amp;quot;Class&amp;quot; and select &amp;quot;New From Selection&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Now enter a name for your new subclass and package name.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External using APC (Outdated) ==&lt;br /&gt;
todo...&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=File:Mut1.PNG&amp;diff=353</id>
		<title>File:Mut1.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=File:Mut1.PNG&amp;diff=353"/>
		<updated>2024-08-11T22:56:07Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Create_a_new_Mutator&amp;diff=352</id>
		<title>Create a new Mutator</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Create_a_new_Mutator&amp;diff=352"/>
		<updated>2024-08-11T22:55:25Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Let&#039;s take the knowledge from [[Create a new sciptable Class]] and make a new Mutator for SWRC.&lt;br /&gt;
&lt;br /&gt;
In this case I already created a new subclass in Mutator called TestMutator.&lt;br /&gt;
&lt;br /&gt;
[[File:Mut1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So open up the script in UnrealED or outside in notepad.&lt;br /&gt;
&lt;br /&gt;
The first line is always the class definition and linking to parent class.&lt;br /&gt;
&lt;br /&gt;
By the way, UnrealScript is case-insensitive!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot; line&amp;gt;&lt;br /&gt;
	class TestMutator extends Mutator;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
That&#039;s the way every class starts. &#039;class &amp;lt;subclass&amp;gt; extends &amp;lt;parentclass&amp;gt;;&#039;&lt;br /&gt;
&lt;br /&gt;
Next we will use one of the most common default function in Unrealscript: &#039;PostBeginPlay&#039; This one gets called after the level has been loaded.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot; line&amp;gt;&lt;br /&gt;
function PostBeginPlay()&lt;br /&gt;
{&lt;br /&gt;
    //Code here...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Let&#039;s say I would like to change some default properties for the game. For example I want the clones and trandos be able to jump higher:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot; line&amp;gt;&lt;br /&gt;
    Class&#039;MPClone&#039;.Default.JumpZ = 800;  //Default is 475&lt;br /&gt;
    Class&#039;MPTrandoshan&#039;.Default.JumpZ = 800;  //Default is 475&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We take a class which properties we want to change, Clones and Trandos in multiplayer. MPClone and MPTrandoshan in this case. The &amp;quot;Default&amp;quot; keyword is being used to access/modify the default values of the class. JumpZ is a variable in Pawn Class for moving the pawn in Z axe (jumping).&lt;br /&gt;
&lt;br /&gt;
Since those two MP classes extends Pawn class, we can use/modify the values. Last but not least, we assign a new value of 800 to the JumpZ variable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot; line&amp;gt;&lt;br /&gt;
class TestMutator extends Mutator;&lt;br /&gt;
&lt;br /&gt;
function PostBeginPlay()&lt;br /&gt;
{&lt;br /&gt;
    Class&#039;MPClone&#039;.Default.JumpZ = 800;  //Default is 475&lt;br /&gt;
    Class&#039;MPTrandoshan&#039;.Default.JumpZ = 800;  //Default is 475&lt;br /&gt;
&lt;br /&gt;
    Log(&amp;quot;My new mutator got loaded successfuly.&amp;quot;);  //Added this small log window output :3&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
That&#039;s an easy starter mutator, where new stuff can easily be added anytime.&lt;br /&gt;
&lt;br /&gt;
For a more detailed view on UnrealScript, look [https://docs.unrealengine.com/udk/Three/UnrealScriptFunctions.html here]&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Create_a_new_Mutator&amp;diff=351</id>
		<title>Create a new Mutator</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Create_a_new_Mutator&amp;diff=351"/>
		<updated>2024-08-11T22:55:09Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Let&#039;s take the knowledge from [[Create a new sciptable Class]] and make a new Mutator for SWRC.&lt;br /&gt;
&lt;br /&gt;
In this case I already created a new subclass in Mutator called TestMutator.&lt;br /&gt;
&lt;br /&gt;
[[File:Mut1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So open up the script in UnrealED or outside in notepad.&lt;br /&gt;
&lt;br /&gt;
The first line is always the class definition and linking to parent class.&lt;br /&gt;
&lt;br /&gt;
By the way, UnrealScript is case-insensitive!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot; line&amp;gt;&lt;br /&gt;
	class TestMutator extends Mutator;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That&#039;s the way every class starts. &#039;class &amp;lt;subclass&amp;gt; extends &amp;lt;parentclass&amp;gt;;&#039;&lt;br /&gt;
&lt;br /&gt;
Next we will use one of the most common default function in Unrealscript: &#039;PostBeginPlay&#039; This one gets called after the level has been loaded.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot; line&amp;gt;&lt;br /&gt;
function PostBeginPlay()&lt;br /&gt;
{&lt;br /&gt;
    //Code here...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Let&#039;s say I would like to change some default properties for the game. For example I want the clones and trandos be able to jump higher:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot; line&amp;gt;&lt;br /&gt;
    Class&#039;MPClone&#039;.Default.JumpZ = 800;  //Default is 475&lt;br /&gt;
    Class&#039;MPTrandoshan&#039;.Default.JumpZ = 800;  //Default is 475&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We take a class which properties we want to change, Clones and Trandos in multiplayer. MPClone and MPTrandoshan in this case. The &amp;quot;Default&amp;quot; keyword is being used to access/modify the default values of the class. JumpZ is a variable in Pawn Class for moving the pawn in Z axe (jumping).&lt;br /&gt;
&lt;br /&gt;
Since those two MP classes extends Pawn class, we can use/modify the values. Last but not least, we assign a new value of 800 to the JumpZ variable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot; line&amp;gt;&lt;br /&gt;
class TestMutator extends Mutator;&lt;br /&gt;
&lt;br /&gt;
function PostBeginPlay()&lt;br /&gt;
{&lt;br /&gt;
    Class&#039;MPClone&#039;.Default.JumpZ = 800;  //Default is 475&lt;br /&gt;
    Class&#039;MPTrandoshan&#039;.Default.JumpZ = 800;  //Default is 475&lt;br /&gt;
&lt;br /&gt;
    Log(&amp;quot;My new mutator got loaded successfuly.&amp;quot;);  //Added this small log window output :3&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
That&#039;s an easy starter mutator, where new stuff can easily be added anytime.&lt;br /&gt;
&lt;br /&gt;
For a more detailed view on UnrealScript, look [https://docs.unrealengine.com/udk/Three/UnrealScriptFunctions.html here]&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Create_a_new_Mutator&amp;diff=350</id>
		<title>Create a new Mutator</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Create_a_new_Mutator&amp;diff=350"/>
		<updated>2024-08-11T22:51:47Z</updated>

		<summary type="html">&lt;p&gt;Plasma: Created page with &amp;quot;Let&amp;#039;s take the knowledge from Create a new sciptable Class and let&amp;#039;s make a new Mutator for SWRC.  In this case I already created a new subclass in Mutator called TestMutator.  File:Mut1.PNG  So open up the script in UnrealED or outside in notepad.  The first line is always the class definition and linking to parent class.  By the way, UnrealScript is case-insensitive!  &amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot; line&amp;gt; 	class TestMutator extends Mutator; &amp;lt;/syntaxhighlight&amp;gt;  That...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Let&#039;s take the knowledge from [[Create a new sciptable Class]] and let&#039;s make a new Mutator for SWRC.&lt;br /&gt;
&lt;br /&gt;
In this case I already created a new subclass in Mutator called TestMutator.&lt;br /&gt;
&lt;br /&gt;
[[File:Mut1.PNG]]&lt;br /&gt;
&lt;br /&gt;
So open up the script in UnrealED or outside in notepad.&lt;br /&gt;
&lt;br /&gt;
The first line is always the class definition and linking to parent class.&lt;br /&gt;
&lt;br /&gt;
By the way, UnrealScript is case-insensitive!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot; line&amp;gt;&lt;br /&gt;
	class TestMutator extends Mutator;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That&#039;s the way every class starts. &#039;class &amp;lt;subclass&amp;gt; extends &amp;lt;parentclass&amp;gt;;&#039;&lt;br /&gt;
&lt;br /&gt;
Next we will use one of the most common default function in Unrealscript: &#039;PostBeginPlay&#039; This one gets called when we load the script, like a starting point you could say.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot; line&amp;gt;&lt;br /&gt;
function PostBeginPlay()&lt;br /&gt;
{&lt;br /&gt;
    //Code here...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So let&#039;s say I would like to change some default properties for the game. For example I want the clones and trandos be able to jump higher:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot; line&amp;gt;&lt;br /&gt;
    Class&#039;MPClone&#039;.Default.JumpZ = 800;  //Default is 475&lt;br /&gt;
    Class&#039;MPTrandoshan&#039;.Default.JumpZ = 800;  //Default is 475&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So let&#039;s explain what we are doing here. We take a class which properties we want to change, Clones and Trandos in multiplayer. MPClone and MPTrandoshan are self explaining. The &amp;quot;Default&amp;quot; keyword is being used to access/modify the default values of the class. JumpZ is a variable in Pawn Class for moving the pawn in Z axe (jumping).&lt;br /&gt;
&lt;br /&gt;
Since those two MP classes extends Pawn class, we can use/modify the values. Last but not least, we assign a new value of 800 to the JumpZ variable.&lt;br /&gt;
&lt;br /&gt;
So let&#039;s sum up the code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot; line&amp;gt;&lt;br /&gt;
class TestMutator extends Mutator;&lt;br /&gt;
&lt;br /&gt;
function PostBeginPlay()&lt;br /&gt;
{&lt;br /&gt;
    Class&#039;MPClone&#039;.Default.JumpZ = 800;  //Default is 475&lt;br /&gt;
    Class&#039;MPTrandoshan&#039;.Default.JumpZ = 800;  //Default is 475&lt;br /&gt;
&lt;br /&gt;
    Log(&amp;quot;My new mutator got loaded successfuly.&amp;quot;);  //Added this small log window output :3&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That&#039;s an easy starter mutator, where new stuff can easily be added anytime.&lt;br /&gt;
&lt;br /&gt;
For a more detailed view on UnrealScript, look [https://docs.unrealengine.com/udk/Three/UnrealScriptFunctions.html here]&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=349</id>
		<title>Triggers and ScriptedTriggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=349"/>
		<updated>2024-08-03T21:29:45Z</updated>

		<summary type="html">&lt;p&gt;Plasma: /* Actions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setup ==&lt;br /&gt;
&lt;br /&gt;
The purpose of a Trigger is to let some action happen when it gets triggered. (captain obvious)&lt;br /&gt;
&lt;br /&gt;
So what we need for our map, is a Trigger, which will be activated/triggered when the player walks in and a ScriptedTrigger to make the action happen.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Place the trigger on your map where it should get triggered.&lt;br /&gt;
&lt;br /&gt;
Open up the properties of the trigger and change the colission radius width and height to fit your map/room. Remember the action will be triggered when the player touches/walks in the radius of that Trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While having the properties window open for the Trigger, head to the Events tab and enter an event name. This example will use the event name &amp;quot;tutorial&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now when the player walks into the trigger radius, an event with the name &amp;quot;tutorial&amp;quot; will trigger. To let the actual action happen, we need a ScriptedTrigger. So open up the actor window and navigate to Actor -&amp;gt; AIScript -&amp;gt; ScriptedSequence -&amp;gt; ScriptedTrigger and place it next to the normal trigger.&lt;br /&gt;
&lt;br /&gt;
To keep the map nice and clean, it&#039;s recommended to put the Trigger and ScriptedTrigger right next to each other so it won&#039;t be a mess when you place lots of them.&lt;br /&gt;
&lt;br /&gt;
Open properties window and go to the AIScript category. Click on the plus icon in the Actions section. You are now able to to add a new action by clicking on the &amp;quot;Add&amp;quot; button on the right border of the window.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger4.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After adding a new action, we have to select a specific one which is called &amp;quot;ACTION_WaitForEvent&amp;quot;. So open up the drop down menu by clicking on ACTION_AddAmmo and select WaitForEvent. (Right on the bottom) After that, click on &amp;quot;New&amp;quot;. We tell the action chain to wait for a certain event to trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For ExternalEvent, add the event name of the Trigger which is &amp;quot;tutorial&amp;quot; in this case. The ScriptedTrigger waits until an event with this exact name is getting triggered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To sum up everything so far, we created a trigger with a specific event name. It gets triggered when the player steps into the radius. The ScriptedTrigger has an action called &amp;quot;WaitForEvent&amp;quot;, which then gets activated when the trigger gets activated. The rest of the action gets handled by the ScriptedTrigger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So we have a ScriptedTrigger ready to do some action, the actual process of the actions is the same now. You minimize the first Actions tab &amp;quot;[0]&amp;quot; by clicking on the minus and click on &amp;quot;Add&amp;quot; to add a new tab for the actions.&lt;br /&gt;
&lt;br /&gt;
For a list of detailed actions, see below.&lt;br /&gt;
For this tutorial we will be using PlaySound action.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger6.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To add the actual sound, go to the sound browser and select a sound you want to use. Go back to the ScriptedTrigger, click in the Sound field and click on &amp;quot;Use&amp;quot; button on right side of the properties window. The ScriptedTrigger adds the sound automatically to the field.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;PlaySound&amp;quot; action got some additional parameters, for example Volume and bWaitForFinish. While Volume is self explaining, bWaitForFinish is being used to halt the action flow until the sound finished playing, so setting this value to true will wait until the sound is done playing and afterwards continue with the action flow. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Behaviour ==&lt;br /&gt;
&lt;br /&gt;
A Trigger can activate one or more ScriptedTriggers at the same time if the event name is the same.&lt;br /&gt;
&lt;br /&gt;
One or more Triggers can activate one ScriptedTrigger when the event name is the same. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger1 --------|&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Properties ==&lt;br /&gt;
&lt;br /&gt;
The trigger provides some additional customizable properties which are very handy.&lt;br /&gt;
&lt;br /&gt;
[[File:Triggerproperties.png]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Description&lt;br /&gt;
|-&lt;br /&gt;
| bInitiallyActive || Whether the trigger is active or not. Can be toggled via scripted actions.&lt;br /&gt;
|-&lt;br /&gt;
| bTriggerOnceOnly || Whether the trigger should trigger once or multiple times&lt;br /&gt;
|-&lt;br /&gt;
| Message || A message to display when it gets triggered&lt;br /&gt;
|-&lt;br /&gt;
| ReTriggerDelay || Delay in seconds before a retrigger can happen if bTriggerOnceOnly is set to false&lt;br /&gt;
|-&lt;br /&gt;
| TriggerType || What can trigger it&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TriggerType ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Behaviour&lt;br /&gt;
|-&lt;br /&gt;
| TT_PlayerProximity || Trigger is activated by player proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_PawnProximity || Trigger is activated by any pawn&#039;s proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_ClassProximity || Trigger is activated by actor of ClassProximityType only&lt;br /&gt;
|-&lt;br /&gt;
| TT_AnyProximity || Trigger is activated by any actor in proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_Shoot || Trigger is activated by player shooting it&lt;br /&gt;
|-&lt;br /&gt;
| TT_HumanPlayerProximity || Trigger is activated by human player (not bot)&lt;br /&gt;
|-&lt;br /&gt;
| TT_Use || Trigger is activated manually by player pressing use key (&amp;quot;F&amp;quot; by default)&lt;br /&gt;
|-&lt;br /&gt;
| TT_SquadMemberProximity || Trigger is activated by squad member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Actions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Description&lt;br /&gt;
|-&lt;br /&gt;
| AddAmmo || Adds a specified amount of ammo to selected weapon&lt;br /&gt;
|-&lt;br /&gt;
| AnimateVisorFX || X&lt;br /&gt;
|-&lt;br /&gt;
| AttachToGunship || Attach an actor&#039;s bone to gunship actor (used by briefing levels)&lt;br /&gt;
|-&lt;br /&gt;
| AttachToTurret || Attach a bot/AIController to specified turret&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDGrenade || Flash the grenade icons on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDHealth || Flash the health bar on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDShields || Flash the shield bar on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquad || Flash the squad icons on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquadCommandPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| Briefing || Makes the player frozen und locked to certain view angle&lt;br /&gt;
|-&lt;br /&gt;
| ChangeLevel || Let game/client travel to specified URL/level&lt;br /&gt;
|-&lt;br /&gt;
| ChangeScript || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadMember || Adds or removes member from player squad&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadStance || Change squad stance to a different formation/type&lt;br /&gt;
|-&lt;br /&gt;
| ChangeWeapon || Change player weapon to specified one&lt;br /&gt;
|-&lt;br /&gt;
| ChangeZoneAudio || Change audio class of zones referenced by specified tag&lt;br /&gt;
|-&lt;br /&gt;
| ConsoleCommand || Execute a console command&lt;br /&gt;
|-&lt;br /&gt;
| Crouch || Makes actor linked to scripted action crouch&lt;br /&gt;
|-&lt;br /&gt;
| DamageInstigator || Pawn linked to scripted action takes specified amount and type of damage&lt;br /&gt;
|-&lt;br /&gt;
| DestroyActor || Destroy all actors marked by tag&lt;br /&gt;
|-&lt;br /&gt;
| DestroyPawn || Destroy pawn linked to scripted action&lt;br /&gt;
|-&lt;br /&gt;
| DisplayCriticalMessage || Display a specified message to top center of screen&lt;br /&gt;
|-&lt;br /&gt;
| DisplayMessage || Same as DisplayCriticalMessage&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIState || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIVoice || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBattleEngine || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBlockedComputations || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableNavPtSpecial || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableSecurePosition || X&lt;br /&gt;
|-&lt;br /&gt;
| EndSection || X&lt;br /&gt;
|-&lt;br /&gt;
| FadeView || X&lt;br /&gt;
|-&lt;br /&gt;
| FailMission || Makes screen fade white and kill the player&lt;br /&gt;
|-&lt;br /&gt;
| FlickerActor || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceBattleMusic || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceState || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceVictoryFlourish || X&lt;br /&gt;
|-&lt;br /&gt;
| GenerateStimulus || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoAction || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoLabel || Jump to specific label name&lt;br /&gt;
|-&lt;br /&gt;
| GotoState || Set the state of certain actor(s) referenced by tags&lt;br /&gt;
|-&lt;br /&gt;
| HurtActor || All actors referenced by specified tag takes n amount of damage from specified type and additional parameters&lt;br /&gt;
|-&lt;br /&gt;
| IfCondition || X&lt;br /&gt;
|-&lt;br /&gt;
| IfRandomPct || X&lt;br /&gt;
|-&lt;br /&gt;
| Killinstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| Label || Creates a label with specified name&lt;br /&gt;
|-&lt;br /&gt;
| MakeInvulnerable || Makes actor(s)/prop(s) invulnerable specified by tag&lt;br /&gt;
|-&lt;br /&gt;
| MoverToKeyframe || Move an mover actor to specified keyframe&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| ObjectiveUpdate || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAmbientSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayLocalSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMovie || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMusic || Play a certain music track&lt;br /&gt;
|-&lt;br /&gt;
| PlayPropAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlaySound || Play a certain sound effect&lt;br /&gt;
|-&lt;br /&gt;
| PlaySoundCue || Play a certain sound cue&lt;br /&gt;
|-&lt;br /&gt;
| ResetFactory || Reset specified factories remaining number of spawns&lt;br /&gt;
|-&lt;br /&gt;
| Revive || Revive a certain pawn (intended for player and squad members)&lt;br /&gt;
|-&lt;br /&gt;
| ScreenFade || Makes the screen fade in a certain color&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleEngineParams || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleMusicMulti || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBlocked || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCanCancelMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCannotDie || Sets the property bCannotDie of a specified pawn tag to true or false&lt;br /&gt;
|-&lt;br /&gt;
| SetCollision || Sets various collision properties of actor(s) with specified tag&lt;br /&gt;
|-&lt;br /&gt;
| SetHidden || Hide/unhide actor(s) with specified tag&lt;br /&gt;
|-&lt;br /&gt;
| SetImuseState || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPawnIdle || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPhysics || Set a specific physics to actor(s) specified by tag&lt;br /&gt;
|-&lt;br /&gt;
| SetScriptPriority || X&lt;br /&gt;
|-&lt;br /&gt;
| SetSightRadius || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTeamIndex || X&lt;br /&gt;
|-&lt;br /&gt;
| SetThreat || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTurretUsable || X&lt;br /&gt;
|-&lt;br /&gt;
| SetViewTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShakeView || X&lt;br /&gt;
|-&lt;br /&gt;
| ShootTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowActorObjectiveTracker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowDebriefingScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMenuScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowTitleCardScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowVisor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnActor || Spawn a certain actor&lt;br /&gt;
|-&lt;br /&gt;
| SpawnStatusEffect || X&lt;br /&gt;
|-&lt;br /&gt;
| StopFactorySpawning || X&lt;br /&gt;
|-&lt;br /&gt;
| StopShooting || X&lt;br /&gt;
|-&lt;br /&gt;
| SuggestEnemy || X&lt;br /&gt;
|-&lt;br /&gt;
| TeleportToPoint || Teleport specified actor by tag to specified destination location using tag&lt;br /&gt;
|-&lt;br /&gt;
| TriggerEvent || Trigger a certain event name&lt;br /&gt;
|-&lt;br /&gt;
| TurnTowardPlayer || Makes the actor linked to the scripted action rotate towards player&lt;br /&gt;
|-&lt;br /&gt;
| UnforceState || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForAnimEnd || Wait for animation on specified channel to end&lt;br /&gt;
|-&lt;br /&gt;
| WaitForEvent || Wait for a certain event to trigger to start the action flow&lt;br /&gt;
|-&lt;br /&gt;
| WaitForPlayer || Wait until player gets in distance of pawn linked with scripted action&lt;br /&gt;
|-&lt;br /&gt;
| WaitForRandomTimer || Wait for random amount of seconds in between Max and Min properties&lt;br /&gt;
|-&lt;br /&gt;
| WaitForTimer || Wait for n seconds before continuing the action flow&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=348</id>
		<title>Triggers and ScriptedTriggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=348"/>
		<updated>2024-08-03T21:23:14Z</updated>

		<summary type="html">&lt;p&gt;Plasma: /* Actions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setup ==&lt;br /&gt;
&lt;br /&gt;
The purpose of a Trigger is to let some action happen when it gets triggered. (captain obvious)&lt;br /&gt;
&lt;br /&gt;
So what we need for our map, is a Trigger, which will be activated/triggered when the player walks in and a ScriptedTrigger to make the action happen.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Place the trigger on your map where it should get triggered.&lt;br /&gt;
&lt;br /&gt;
Open up the properties of the trigger and change the colission radius width and height to fit your map/room. Remember the action will be triggered when the player touches/walks in the radius of that Trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While having the properties window open for the Trigger, head to the Events tab and enter an event name. This example will use the event name &amp;quot;tutorial&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now when the player walks into the trigger radius, an event with the name &amp;quot;tutorial&amp;quot; will trigger. To let the actual action happen, we need a ScriptedTrigger. So open up the actor window and navigate to Actor -&amp;gt; AIScript -&amp;gt; ScriptedSequence -&amp;gt; ScriptedTrigger and place it next to the normal trigger.&lt;br /&gt;
&lt;br /&gt;
To keep the map nice and clean, it&#039;s recommended to put the Trigger and ScriptedTrigger right next to each other so it won&#039;t be a mess when you place lots of them.&lt;br /&gt;
&lt;br /&gt;
Open properties window and go to the AIScript category. Click on the plus icon in the Actions section. You are now able to to add a new action by clicking on the &amp;quot;Add&amp;quot; button on the right border of the window.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger4.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After adding a new action, we have to select a specific one which is called &amp;quot;ACTION_WaitForEvent&amp;quot;. So open up the drop down menu by clicking on ACTION_AddAmmo and select WaitForEvent. (Right on the bottom) After that, click on &amp;quot;New&amp;quot;. We tell the action chain to wait for a certain event to trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For ExternalEvent, add the event name of the Trigger which is &amp;quot;tutorial&amp;quot; in this case. The ScriptedTrigger waits until an event with this exact name is getting triggered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To sum up everything so far, we created a trigger with a specific event name. It gets triggered when the player steps into the radius. The ScriptedTrigger has an action called &amp;quot;WaitForEvent&amp;quot;, which then gets activated when the trigger gets activated. The rest of the action gets handled by the ScriptedTrigger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So we have a ScriptedTrigger ready to do some action, the actual process of the actions is the same now. You minimize the first Actions tab &amp;quot;[0]&amp;quot; by clicking on the minus and click on &amp;quot;Add&amp;quot; to add a new tab for the actions.&lt;br /&gt;
&lt;br /&gt;
For a list of detailed actions, see below.&lt;br /&gt;
For this tutorial we will be using PlaySound action.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger6.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To add the actual sound, go to the sound browser and select a sound you want to use. Go back to the ScriptedTrigger, click in the Sound field and click on &amp;quot;Use&amp;quot; button on right side of the properties window. The ScriptedTrigger adds the sound automatically to the field.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;PlaySound&amp;quot; action got some additional parameters, for example Volume and bWaitForFinish. While Volume is self explaining, bWaitForFinish is being used to halt the action flow until the sound finished playing, so setting this value to true will wait until the sound is done playing and afterwards continue with the action flow. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Behaviour ==&lt;br /&gt;
&lt;br /&gt;
A Trigger can activate one or more ScriptedTriggers at the same time if the event name is the same.&lt;br /&gt;
&lt;br /&gt;
One or more Triggers can activate one ScriptedTrigger when the event name is the same. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger1 --------|&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Properties ==&lt;br /&gt;
&lt;br /&gt;
The trigger provides some additional customizable properties which are very handy.&lt;br /&gt;
&lt;br /&gt;
[[File:Triggerproperties.png]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Description&lt;br /&gt;
|-&lt;br /&gt;
| bInitiallyActive || Whether the trigger is active or not. Can be toggled via scripted actions.&lt;br /&gt;
|-&lt;br /&gt;
| bTriggerOnceOnly || Whether the trigger should trigger once or multiple times&lt;br /&gt;
|-&lt;br /&gt;
| Message || A message to display when it gets triggered&lt;br /&gt;
|-&lt;br /&gt;
| ReTriggerDelay || Delay in seconds before a retrigger can happen if bTriggerOnceOnly is set to false&lt;br /&gt;
|-&lt;br /&gt;
| TriggerType || What can trigger it&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TriggerType ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Behaviour&lt;br /&gt;
|-&lt;br /&gt;
| TT_PlayerProximity || Trigger is activated by player proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_PawnProximity || Trigger is activated by any pawn&#039;s proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_ClassProximity || Trigger is activated by actor of ClassProximityType only&lt;br /&gt;
|-&lt;br /&gt;
| TT_AnyProximity || Trigger is activated by any actor in proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_Shoot || Trigger is activated by player shooting it&lt;br /&gt;
|-&lt;br /&gt;
| TT_HumanPlayerProximity || Trigger is activated by human player (not bot)&lt;br /&gt;
|-&lt;br /&gt;
| TT_Use || Trigger is activated manually by player pressing use key (&amp;quot;F&amp;quot; by default)&lt;br /&gt;
|-&lt;br /&gt;
| TT_SquadMemberProximity || Trigger is activated by squad member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Actions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Description&lt;br /&gt;
|-&lt;br /&gt;
| AddAmmo || Adds a specified amount of ammo to selected weapon&lt;br /&gt;
|-&lt;br /&gt;
| AnimateVisorFX || X&lt;br /&gt;
|-&lt;br /&gt;
| AttachToGunship || Attach an actor&#039;s bone to gunship actor (used by briefing levels)&lt;br /&gt;
|-&lt;br /&gt;
| AttachToTurret || Attach a bot/AIController to specified turret&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDGrenade || Flash the grenade icons on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDHealth || Flash the health bar on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDShields || Flash the shield bar on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquad || Flash the squad icons on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquadCommandPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| Briefing || Makes the player frozen und locked to certain view angle&lt;br /&gt;
|-&lt;br /&gt;
| ChangeLevel || Let game/client travel to specified URL/level&lt;br /&gt;
|-&lt;br /&gt;
| ChangeScript || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadMember || Adds or removes member from player squad&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadStance || Change squad stance to a different formation/type&lt;br /&gt;
|-&lt;br /&gt;
| ChangeWeapon || Change player weapon to specified one&lt;br /&gt;
|-&lt;br /&gt;
| ChangeZoneAudio || Change audio class of zones referenced by specified tag&lt;br /&gt;
|-&lt;br /&gt;
| ConsoleCommand || Execute a console command&lt;br /&gt;
|-&lt;br /&gt;
| Crouch || Makes actor linked to scripted action crouch&lt;br /&gt;
|-&lt;br /&gt;
| DamageInstigator || Pawn linked to scripted action takes specified amount and type of damage&lt;br /&gt;
|-&lt;br /&gt;
| DestroyActor || Destroy all actors marked by tag&lt;br /&gt;
|-&lt;br /&gt;
| DestroyPawn || Destroy pawn linked to scripted action&lt;br /&gt;
|-&lt;br /&gt;
| DisplayCriticalMessage || Display a specified message to top center of screen&lt;br /&gt;
|-&lt;br /&gt;
| DisplayMessage || Same as DisplayCriticalMessage&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIState || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIVoice || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBattleEngine || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBlockedComputations || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableNavPtSpecial || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableSecurePosition || X&lt;br /&gt;
|-&lt;br /&gt;
| EndSection || X&lt;br /&gt;
|-&lt;br /&gt;
| FadeView || X&lt;br /&gt;
|-&lt;br /&gt;
| FailMission || Makes screen fade white and kill the player&lt;br /&gt;
|-&lt;br /&gt;
| FlickerActor || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceBattleMusic || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceState || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceVictoryFlourish || X&lt;br /&gt;
|-&lt;br /&gt;
| GenerateStimulus || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoAction || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoLabel || Jump to specific label name&lt;br /&gt;
|-&lt;br /&gt;
| GotoState || Set the state of certain actor(s) referenced by tags&lt;br /&gt;
|-&lt;br /&gt;
| HurtActor || All actors referenced by specified tag takes n amount of damage from specified type and additional parameters&lt;br /&gt;
|-&lt;br /&gt;
| IfCondition || X&lt;br /&gt;
|-&lt;br /&gt;
| IfRandomPct || X&lt;br /&gt;
|-&lt;br /&gt;
| Killinstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| Label || Creates a label with specified name&lt;br /&gt;
|-&lt;br /&gt;
| MakeInvulnerable || Makes actor(s)/prop(s) invulnerable specified by tag&lt;br /&gt;
|-&lt;br /&gt;
| MoverToKeyframe || Move an mover actor to specified keyframe&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| ObjectiveUpdate || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAmbientSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayLocalSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMovie || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMusic || Play a certain music track&lt;br /&gt;
|-&lt;br /&gt;
| PlayPropAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlaySound || Play a certain sound effect&lt;br /&gt;
|-&lt;br /&gt;
| PlaySoundCue || Play a certain sound cue&lt;br /&gt;
|-&lt;br /&gt;
| ResetFactory || Reset specified factories remaining number of spawns&lt;br /&gt;
|-&lt;br /&gt;
| Revive || Revive a certain pawn (intended for player and squad members)&lt;br /&gt;
|-&lt;br /&gt;
| ScreenFade || Makes the screen fade in a certain color&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleEngineParams || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleMusicMulti || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBlocked || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCanCancelMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCannotDie || Sets the property bCannotDie of a specified pawn tag to true or false&lt;br /&gt;
|-&lt;br /&gt;
| SetCollision || Sets various collision properties of actor(s) with specified tag&lt;br /&gt;
|-&lt;br /&gt;
| SetHidden || Hide/unhide actor(s) with specified tag&lt;br /&gt;
|-&lt;br /&gt;
| SetImuseState || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPawnIdle || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPhysics || Set a specific physics to actor(s) specified by tag&lt;br /&gt;
|-&lt;br /&gt;
| SetScriptPriority || X&lt;br /&gt;
|-&lt;br /&gt;
| SetSightRadius || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTeamIndex || X&lt;br /&gt;
|-&lt;br /&gt;
| SetThreat || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTurretUsable || X&lt;br /&gt;
|-&lt;br /&gt;
| SetViewTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShakeView || X&lt;br /&gt;
|-&lt;br /&gt;
| ShootTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowActorObjectiveTracker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowDebriefingScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMenuScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowTitleCardScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowVisor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnActor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnStatusEffect || X&lt;br /&gt;
|-&lt;br /&gt;
| StopFactorySpawning || X&lt;br /&gt;
|-&lt;br /&gt;
| StopShooting || X&lt;br /&gt;
|-&lt;br /&gt;
| SuggestEnemy || X&lt;br /&gt;
|-&lt;br /&gt;
| TeleportToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| TriggerEvent || Trigger a certain event name&lt;br /&gt;
|-&lt;br /&gt;
| TurnTowardPlayer || Makes the actor linked to the scripted action rotate towards player&lt;br /&gt;
|-&lt;br /&gt;
| UnforceState || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForAnimEnd || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForEvent || Wait for a certain event to trigger to start the action flow&lt;br /&gt;
|-&lt;br /&gt;
| WaitForPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForRandomTimer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForTimer || Wait for n seconds before continuing the action flow&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=347</id>
		<title>Triggers and ScriptedTriggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=347"/>
		<updated>2024-08-03T21:19:26Z</updated>

		<summary type="html">&lt;p&gt;Plasma: /* Actions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setup ==&lt;br /&gt;
&lt;br /&gt;
The purpose of a Trigger is to let some action happen when it gets triggered. (captain obvious)&lt;br /&gt;
&lt;br /&gt;
So what we need for our map, is a Trigger, which will be activated/triggered when the player walks in and a ScriptedTrigger to make the action happen.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Place the trigger on your map where it should get triggered.&lt;br /&gt;
&lt;br /&gt;
Open up the properties of the trigger and change the colission radius width and height to fit your map/room. Remember the action will be triggered when the player touches/walks in the radius of that Trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While having the properties window open for the Trigger, head to the Events tab and enter an event name. This example will use the event name &amp;quot;tutorial&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now when the player walks into the trigger radius, an event with the name &amp;quot;tutorial&amp;quot; will trigger. To let the actual action happen, we need a ScriptedTrigger. So open up the actor window and navigate to Actor -&amp;gt; AIScript -&amp;gt; ScriptedSequence -&amp;gt; ScriptedTrigger and place it next to the normal trigger.&lt;br /&gt;
&lt;br /&gt;
To keep the map nice and clean, it&#039;s recommended to put the Trigger and ScriptedTrigger right next to each other so it won&#039;t be a mess when you place lots of them.&lt;br /&gt;
&lt;br /&gt;
Open properties window and go to the AIScript category. Click on the plus icon in the Actions section. You are now able to to add a new action by clicking on the &amp;quot;Add&amp;quot; button on the right border of the window.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger4.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After adding a new action, we have to select a specific one which is called &amp;quot;ACTION_WaitForEvent&amp;quot;. So open up the drop down menu by clicking on ACTION_AddAmmo and select WaitForEvent. (Right on the bottom) After that, click on &amp;quot;New&amp;quot;. We tell the action chain to wait for a certain event to trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For ExternalEvent, add the event name of the Trigger which is &amp;quot;tutorial&amp;quot; in this case. The ScriptedTrigger waits until an event with this exact name is getting triggered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To sum up everything so far, we created a trigger with a specific event name. It gets triggered when the player steps into the radius. The ScriptedTrigger has an action called &amp;quot;WaitForEvent&amp;quot;, which then gets activated when the trigger gets activated. The rest of the action gets handled by the ScriptedTrigger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So we have a ScriptedTrigger ready to do some action, the actual process of the actions is the same now. You minimize the first Actions tab &amp;quot;[0]&amp;quot; by clicking on the minus and click on &amp;quot;Add&amp;quot; to add a new tab for the actions.&lt;br /&gt;
&lt;br /&gt;
For a list of detailed actions, see below.&lt;br /&gt;
For this tutorial we will be using PlaySound action.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger6.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To add the actual sound, go to the sound browser and select a sound you want to use. Go back to the ScriptedTrigger, click in the Sound field and click on &amp;quot;Use&amp;quot; button on right side of the properties window. The ScriptedTrigger adds the sound automatically to the field.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;PlaySound&amp;quot; action got some additional parameters, for example Volume and bWaitForFinish. While Volume is self explaining, bWaitForFinish is being used to halt the action flow until the sound finished playing, so setting this value to true will wait until the sound is done playing and afterwards continue with the action flow. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Behaviour ==&lt;br /&gt;
&lt;br /&gt;
A Trigger can activate one or more ScriptedTriggers at the same time if the event name is the same.&lt;br /&gt;
&lt;br /&gt;
One or more Triggers can activate one ScriptedTrigger when the event name is the same. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger1 --------|&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Properties ==&lt;br /&gt;
&lt;br /&gt;
The trigger provides some additional customizable properties which are very handy.&lt;br /&gt;
&lt;br /&gt;
[[File:Triggerproperties.png]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Description&lt;br /&gt;
|-&lt;br /&gt;
| bInitiallyActive || Whether the trigger is active or not. Can be toggled via scripted actions.&lt;br /&gt;
|-&lt;br /&gt;
| bTriggerOnceOnly || Whether the trigger should trigger once or multiple times&lt;br /&gt;
|-&lt;br /&gt;
| Message || A message to display when it gets triggered&lt;br /&gt;
|-&lt;br /&gt;
| ReTriggerDelay || Delay in seconds before a retrigger can happen if bTriggerOnceOnly is set to false&lt;br /&gt;
|-&lt;br /&gt;
| TriggerType || What can trigger it&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TriggerType ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Behaviour&lt;br /&gt;
|-&lt;br /&gt;
| TT_PlayerProximity || Trigger is activated by player proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_PawnProximity || Trigger is activated by any pawn&#039;s proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_ClassProximity || Trigger is activated by actor of ClassProximityType only&lt;br /&gt;
|-&lt;br /&gt;
| TT_AnyProximity || Trigger is activated by any actor in proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_Shoot || Trigger is activated by player shooting it&lt;br /&gt;
|-&lt;br /&gt;
| TT_HumanPlayerProximity || Trigger is activated by human player (not bot)&lt;br /&gt;
|-&lt;br /&gt;
| TT_Use || Trigger is activated manually by player pressing use key (&amp;quot;F&amp;quot; by default)&lt;br /&gt;
|-&lt;br /&gt;
| TT_SquadMemberProximity || Trigger is activated by squad member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Actions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Description&lt;br /&gt;
|-&lt;br /&gt;
| AddAmmo || Adds a specified amount of ammo to selected weapon&lt;br /&gt;
|-&lt;br /&gt;
| AnimateVisorFX || X&lt;br /&gt;
|-&lt;br /&gt;
| AttachToGunship || Attach an actor&#039;s bone to gunship actor (used by briefing levels)&lt;br /&gt;
|-&lt;br /&gt;
| AttachToTurret || Attach a bot/AIController to specified turret&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDGrenade || Flash the grenade icons on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDHealth || Flash the health bar on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDShields || Flash the shield bar on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquad || Flash the squad icons on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquadCommandPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| Briefing || Makes the player frozen und locked to certain view angle&lt;br /&gt;
|-&lt;br /&gt;
| ChangeLevel || Let game/client travel to specified URL/level&lt;br /&gt;
|-&lt;br /&gt;
| ChangeScript || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadMember || Adds or removes member from player squad&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadStance || Change squad stance to a different formation/type&lt;br /&gt;
|-&lt;br /&gt;
| ChangeWeapon || Change player weapon to specified one&lt;br /&gt;
|-&lt;br /&gt;
| ChangeZoneAudio || Change audio class of zones referenced by specified tag&lt;br /&gt;
|-&lt;br /&gt;
| ConsoleCommand || Execute a console command&lt;br /&gt;
|-&lt;br /&gt;
| Crouch || Makes actor linked to scripted action crouch&lt;br /&gt;
|-&lt;br /&gt;
| DamageInstigator || Actor linked to scripted action takes specified amount and type of damage&lt;br /&gt;
|-&lt;br /&gt;
| DestroyActor || Destroy all actors marked by tag&lt;br /&gt;
|-&lt;br /&gt;
| DestroyPawn || Destroy pawn linked to scripted action&lt;br /&gt;
|-&lt;br /&gt;
| DisplayCriticalMessage || Display a specified message to top center of screen&lt;br /&gt;
|-&lt;br /&gt;
| DisplayMessage || Same as DisplayCriticalMessage&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIState || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIVoice || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBattleEngine || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBlockedComputations || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableNavPtSpecial || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableSecurePosition || X&lt;br /&gt;
|-&lt;br /&gt;
| EndSection || X&lt;br /&gt;
|-&lt;br /&gt;
| FadeView || X&lt;br /&gt;
|-&lt;br /&gt;
| FailMission || Makes screen fade white and kill the player&lt;br /&gt;
|-&lt;br /&gt;
| FlickerActor || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceBattleMusic || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceState || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceVictoryFlourish || X&lt;br /&gt;
|-&lt;br /&gt;
| GenerateStimulus || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoAction || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoLabel || Jump to specific label name&lt;br /&gt;
|-&lt;br /&gt;
| GotoState || Set the state of certain actor(s) referenced by tags&lt;br /&gt;
|-&lt;br /&gt;
| HurtActor || X&lt;br /&gt;
|-&lt;br /&gt;
| IfCondition || X&lt;br /&gt;
|-&lt;br /&gt;
| IfRandomPct || X&lt;br /&gt;
|-&lt;br /&gt;
| Killinstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| Label || Creates a label with specified name&lt;br /&gt;
|-&lt;br /&gt;
| MakeInvulnerable || Makes actor(s)/prop(s) invulnerable specified by tag&lt;br /&gt;
|-&lt;br /&gt;
| MoverToKeyframe || Move an mover actor to specified keyframe&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| ObjectiveUpdate || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAmbientSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayLocalSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMovie || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMusic || Play a certain music track&lt;br /&gt;
|-&lt;br /&gt;
| PlayPropAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlaySound || Play a certain sound effect&lt;br /&gt;
|-&lt;br /&gt;
| PlaySoundCue || Play a certain sound cue&lt;br /&gt;
|-&lt;br /&gt;
| ResetFactory || Reset specified factories remaining number of spawns&lt;br /&gt;
|-&lt;br /&gt;
| Revive || Revive a certain pawn (intended for player and squad members)&lt;br /&gt;
|-&lt;br /&gt;
| ScreenFade || Makes the screen fade in a certain color&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleEngineParams || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleMusicMulti || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBlocked || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCanCancelMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCannotDie || Sets the property bCannotDie of a specified pawn tag to true or false&lt;br /&gt;
|-&lt;br /&gt;
| SetCollision || Sets various collision properties of actor(s) with specified tag&lt;br /&gt;
|-&lt;br /&gt;
| SetHidden || Hide/unhide actor(s) with specified tag&lt;br /&gt;
|-&lt;br /&gt;
| SetImuseState || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPawnIdle || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPhysics || Set a specific physics to actor(s) specified by tag&lt;br /&gt;
|-&lt;br /&gt;
| SetScriptPriority || X&lt;br /&gt;
|-&lt;br /&gt;
| SetSightRadius || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTeamIndex || X&lt;br /&gt;
|-&lt;br /&gt;
| SetThreat || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTurretUsable || X&lt;br /&gt;
|-&lt;br /&gt;
| SetViewTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShakeView || X&lt;br /&gt;
|-&lt;br /&gt;
| ShootTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowActorObjectiveTracker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowDebriefingScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMenuScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowTitleCardScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowVisor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnActor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnStatusEffect || X&lt;br /&gt;
|-&lt;br /&gt;
| StopFactorySpawning || X&lt;br /&gt;
|-&lt;br /&gt;
| StopShooting || X&lt;br /&gt;
|-&lt;br /&gt;
| SuggestEnemy || X&lt;br /&gt;
|-&lt;br /&gt;
| TeleportToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| TriggerEvent || Trigger a certain event name&lt;br /&gt;
|-&lt;br /&gt;
| TurnTowardPlayer || Makes the actor linked to the scripted action rotate towards player&lt;br /&gt;
|-&lt;br /&gt;
| UnforceState || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForAnimEnd || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForEvent || Wait for a certain event to trigger to start the action flow&lt;br /&gt;
|-&lt;br /&gt;
| WaitForPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForRandomTimer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForTimer || Wait for n seconds before continuing the action flow&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=346</id>
		<title>Triggers and ScriptedTriggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=346"/>
		<updated>2024-08-03T21:18:03Z</updated>

		<summary type="html">&lt;p&gt;Plasma: /* Actions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setup ==&lt;br /&gt;
&lt;br /&gt;
The purpose of a Trigger is to let some action happen when it gets triggered. (captain obvious)&lt;br /&gt;
&lt;br /&gt;
So what we need for our map, is a Trigger, which will be activated/triggered when the player walks in and a ScriptedTrigger to make the action happen.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Place the trigger on your map where it should get triggered.&lt;br /&gt;
&lt;br /&gt;
Open up the properties of the trigger and change the colission radius width and height to fit your map/room. Remember the action will be triggered when the player touches/walks in the radius of that Trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While having the properties window open for the Trigger, head to the Events tab and enter an event name. This example will use the event name &amp;quot;tutorial&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now when the player walks into the trigger radius, an event with the name &amp;quot;tutorial&amp;quot; will trigger. To let the actual action happen, we need a ScriptedTrigger. So open up the actor window and navigate to Actor -&amp;gt; AIScript -&amp;gt; ScriptedSequence -&amp;gt; ScriptedTrigger and place it next to the normal trigger.&lt;br /&gt;
&lt;br /&gt;
To keep the map nice and clean, it&#039;s recommended to put the Trigger and ScriptedTrigger right next to each other so it won&#039;t be a mess when you place lots of them.&lt;br /&gt;
&lt;br /&gt;
Open properties window and go to the AIScript category. Click on the plus icon in the Actions section. You are now able to to add a new action by clicking on the &amp;quot;Add&amp;quot; button on the right border of the window.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger4.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After adding a new action, we have to select a specific one which is called &amp;quot;ACTION_WaitForEvent&amp;quot;. So open up the drop down menu by clicking on ACTION_AddAmmo and select WaitForEvent. (Right on the bottom) After that, click on &amp;quot;New&amp;quot;. We tell the action chain to wait for a certain event to trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For ExternalEvent, add the event name of the Trigger which is &amp;quot;tutorial&amp;quot; in this case. The ScriptedTrigger waits until an event with this exact name is getting triggered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To sum up everything so far, we created a trigger with a specific event name. It gets triggered when the player steps into the radius. The ScriptedTrigger has an action called &amp;quot;WaitForEvent&amp;quot;, which then gets activated when the trigger gets activated. The rest of the action gets handled by the ScriptedTrigger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So we have a ScriptedTrigger ready to do some action, the actual process of the actions is the same now. You minimize the first Actions tab &amp;quot;[0]&amp;quot; by clicking on the minus and click on &amp;quot;Add&amp;quot; to add a new tab for the actions.&lt;br /&gt;
&lt;br /&gt;
For a list of detailed actions, see below.&lt;br /&gt;
For this tutorial we will be using PlaySound action.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger6.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To add the actual sound, go to the sound browser and select a sound you want to use. Go back to the ScriptedTrigger, click in the Sound field and click on &amp;quot;Use&amp;quot; button on right side of the properties window. The ScriptedTrigger adds the sound automatically to the field.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;PlaySound&amp;quot; action got some additional parameters, for example Volume and bWaitForFinish. While Volume is self explaining, bWaitForFinish is being used to halt the action flow until the sound finished playing, so setting this value to true will wait until the sound is done playing and afterwards continue with the action flow. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Behaviour ==&lt;br /&gt;
&lt;br /&gt;
A Trigger can activate one or more ScriptedTriggers at the same time if the event name is the same.&lt;br /&gt;
&lt;br /&gt;
One or more Triggers can activate one ScriptedTrigger when the event name is the same. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger1 --------|&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Properties ==&lt;br /&gt;
&lt;br /&gt;
The trigger provides some additional customizable properties which are very handy.&lt;br /&gt;
&lt;br /&gt;
[[File:Triggerproperties.png]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Description&lt;br /&gt;
|-&lt;br /&gt;
| bInitiallyActive || Whether the trigger is active or not. Can be toggled via scripted actions.&lt;br /&gt;
|-&lt;br /&gt;
| bTriggerOnceOnly || Whether the trigger should trigger once or multiple times&lt;br /&gt;
|-&lt;br /&gt;
| Message || A message to display when it gets triggered&lt;br /&gt;
|-&lt;br /&gt;
| ReTriggerDelay || Delay in seconds before a retrigger can happen if bTriggerOnceOnly is set to false&lt;br /&gt;
|-&lt;br /&gt;
| TriggerType || What can trigger it&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TriggerType ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Behaviour&lt;br /&gt;
|-&lt;br /&gt;
| TT_PlayerProximity || Trigger is activated by player proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_PawnProximity || Trigger is activated by any pawn&#039;s proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_ClassProximity || Trigger is activated by actor of ClassProximityType only&lt;br /&gt;
|-&lt;br /&gt;
| TT_AnyProximity || Trigger is activated by any actor in proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_Shoot || Trigger is activated by player shooting it&lt;br /&gt;
|-&lt;br /&gt;
| TT_HumanPlayerProximity || Trigger is activated by human player (not bot)&lt;br /&gt;
|-&lt;br /&gt;
| TT_Use || Trigger is activated manually by player pressing use key (&amp;quot;F&amp;quot; by default)&lt;br /&gt;
|-&lt;br /&gt;
| TT_SquadMemberProximity || Trigger is activated by squad member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Actions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Description&lt;br /&gt;
|-&lt;br /&gt;
| AddAmmo || Adds a specified amount of ammo to selected weapon&lt;br /&gt;
|-&lt;br /&gt;
| AnimateVisorFX || X&lt;br /&gt;
|-&lt;br /&gt;
| AttachToGunship || Attach an actor&#039;s bone to gunship actor (used by briefing levels)&lt;br /&gt;
|-&lt;br /&gt;
| AttachToTurret || Attach a bot/AIController to specified turret&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDGrenade || Flash the grenade icons on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDHealth || Flash the health bar on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDShields || Flash the shield bar on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquad || Flash the squad icons on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquadCommandPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| Briefing || Makes the player frozen und locked to certain view angle&lt;br /&gt;
|-&lt;br /&gt;
| ChangeLevel || Let game/client travel to specified URL/level&lt;br /&gt;
|-&lt;br /&gt;
| ChangeScript || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadMember || Adds or removes member from player squad&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadStance || Change squad stance to a different formation/type&lt;br /&gt;
|-&lt;br /&gt;
| ChangeWeapon || Change player weapon to specified one&lt;br /&gt;
|-&lt;br /&gt;
| ChangeZoneAudio || Change audio class of zones referenced by specified tag&lt;br /&gt;
|-&lt;br /&gt;
| ConsoleCommand || Execute a console command&lt;br /&gt;
|-&lt;br /&gt;
| Crouch || Makes actor linked to scripted action crouch&lt;br /&gt;
|-&lt;br /&gt;
| DamageInstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| DestroyActor || Destroy all actors marked by tag&lt;br /&gt;
|-&lt;br /&gt;
| DestroyPawn || Destroy pawn linked to scripted action&lt;br /&gt;
|-&lt;br /&gt;
| DisplayCriticalMessage || Display a specified message to top center of screen&lt;br /&gt;
|-&lt;br /&gt;
| DisplayMessage || Same as DisplayCriticalMessage&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIState || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIVoice || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBattleEngine || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBlockedComputations || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableNavPtSpecial || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableSecurePosition || X&lt;br /&gt;
|-&lt;br /&gt;
| EndSection || X&lt;br /&gt;
|-&lt;br /&gt;
| FadeView || X&lt;br /&gt;
|-&lt;br /&gt;
| FailMission || Makes screen fade white and kill the player&lt;br /&gt;
|-&lt;br /&gt;
| FlickerActor || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceBattleMusic || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceState || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceVictoryFlourish || X&lt;br /&gt;
|-&lt;br /&gt;
| GenerateStimulus || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoAction || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoLabel || Jump to specific label name&lt;br /&gt;
|-&lt;br /&gt;
| GotoState || Set the state of certain actor(s) referenced by tags&lt;br /&gt;
|-&lt;br /&gt;
| HurtActor || X&lt;br /&gt;
|-&lt;br /&gt;
| IfCondition || X&lt;br /&gt;
|-&lt;br /&gt;
| IfRandomPct || X&lt;br /&gt;
|-&lt;br /&gt;
| Killinstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| Label || Creates a label with specified name&lt;br /&gt;
|-&lt;br /&gt;
| MakeInvulnerable || Makes actor(s)/prop(s) invulnerable specified by tag&lt;br /&gt;
|-&lt;br /&gt;
| MoverToKeyframe || Move an mover actor to specified keyframe&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| ObjectiveUpdate || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAmbientSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayLocalSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMovie || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMusic || Play a certain music track&lt;br /&gt;
|-&lt;br /&gt;
| PlayPropAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlaySound || Play a certain sound effect&lt;br /&gt;
|-&lt;br /&gt;
| PlaySoundCue || Play a certain sound cue&lt;br /&gt;
|-&lt;br /&gt;
| ResetFactory || Reset specified factories remaining number of spawns&lt;br /&gt;
|-&lt;br /&gt;
| Revive || Revive a certain pawn (intended for player and squad members)&lt;br /&gt;
|-&lt;br /&gt;
| ScreenFade || Makes the screen fade in a certain color&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleEngineParams || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleMusicMulti || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBlocked || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCanCancelMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCannotDie || Sets the property bCannotDie of a specified pawn tag to true or false&lt;br /&gt;
|-&lt;br /&gt;
| SetCollision || Sets various collision properties of actor(s) with specified tag&lt;br /&gt;
|-&lt;br /&gt;
| SetHidden || Hide/unhide actor(s) with specified tag&lt;br /&gt;
|-&lt;br /&gt;
| SetImuseState || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPawnIdle || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPhysics || Set a specific physics to actor(s) specified by tag&lt;br /&gt;
|-&lt;br /&gt;
| SetScriptPriority || X&lt;br /&gt;
|-&lt;br /&gt;
| SetSightRadius || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTeamIndex || X&lt;br /&gt;
|-&lt;br /&gt;
| SetThreat || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTurretUsable || X&lt;br /&gt;
|-&lt;br /&gt;
| SetViewTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShakeView || X&lt;br /&gt;
|-&lt;br /&gt;
| ShootTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowActorObjectiveTracker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowDebriefingScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMenuScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowTitleCardScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowVisor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnActor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnStatusEffect || X&lt;br /&gt;
|-&lt;br /&gt;
| StopFactorySpawning || X&lt;br /&gt;
|-&lt;br /&gt;
| StopShooting || X&lt;br /&gt;
|-&lt;br /&gt;
| SuggestEnemy || X&lt;br /&gt;
|-&lt;br /&gt;
| TeleportToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| TriggerEvent || Trigger a certain event name&lt;br /&gt;
|-&lt;br /&gt;
| TurnTowardPlayer || Makes the actor linked to the scripted action rotate towards player&lt;br /&gt;
|-&lt;br /&gt;
| UnforceState || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForAnimEnd || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForEvent || Wait for a certain event to trigger to start the action flow&lt;br /&gt;
|-&lt;br /&gt;
| WaitForPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForRandomTimer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForTimer || Wait for n seconds before continuing the action flow&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=345</id>
		<title>Triggers and ScriptedTriggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=345"/>
		<updated>2024-08-02T11:04:29Z</updated>

		<summary type="html">&lt;p&gt;Plasma: /* Actions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setup ==&lt;br /&gt;
&lt;br /&gt;
The purpose of a Trigger is to let some action happen when it gets triggered. (captain obvious)&lt;br /&gt;
&lt;br /&gt;
So what we need for our map, is a Trigger, which will be activated/triggered when the player walks in and a ScriptedTrigger to make the action happen.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Place the trigger on your map where it should get triggered.&lt;br /&gt;
&lt;br /&gt;
Open up the properties of the trigger and change the colission radius width and height to fit your map/room. Remember the action will be triggered when the player touches/walks in the radius of that Trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While having the properties window open for the Trigger, head to the Events tab and enter an event name. This example will use the event name &amp;quot;tutorial&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now when the player walks into the trigger radius, an event with the name &amp;quot;tutorial&amp;quot; will trigger. To let the actual action happen, we need a ScriptedTrigger. So open up the actor window and navigate to Actor -&amp;gt; AIScript -&amp;gt; ScriptedSequence -&amp;gt; ScriptedTrigger and place it next to the normal trigger.&lt;br /&gt;
&lt;br /&gt;
To keep the map nice and clean, it&#039;s recommended to put the Trigger and ScriptedTrigger right next to each other so it won&#039;t be a mess when you place lots of them.&lt;br /&gt;
&lt;br /&gt;
Open properties window and go to the AIScript category. Click on the plus icon in the Actions section. You are now able to to add a new action by clicking on the &amp;quot;Add&amp;quot; button on the right border of the window.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger4.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After adding a new action, we have to select a specific one which is called &amp;quot;ACTION_WaitForEvent&amp;quot;. So open up the drop down menu by clicking on ACTION_AddAmmo and select WaitForEvent. (Right on the bottom) After that, click on &amp;quot;New&amp;quot;. We tell the action chain to wait for a certain event to trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For ExternalEvent, add the event name of the Trigger which is &amp;quot;tutorial&amp;quot; in this case. The ScriptedTrigger waits until an event with this exact name is getting triggered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To sum up everything so far, we created a trigger with a specific event name. It gets triggered when the player steps into the radius. The ScriptedTrigger has an action called &amp;quot;WaitForEvent&amp;quot;, which then gets activated when the trigger gets activated. The rest of the action gets handled by the ScriptedTrigger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So we have a ScriptedTrigger ready to do some action, the actual process of the actions is the same now. You minimize the first Actions tab &amp;quot;[0]&amp;quot; by clicking on the minus and click on &amp;quot;Add&amp;quot; to add a new tab for the actions.&lt;br /&gt;
&lt;br /&gt;
For a list of detailed actions, see below.&lt;br /&gt;
For this tutorial we will be using PlaySound action.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger6.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To add the actual sound, go to the sound browser and select a sound you want to use. Go back to the ScriptedTrigger, click in the Sound field and click on &amp;quot;Use&amp;quot; button on right side of the properties window. The ScriptedTrigger adds the sound automatically to the field.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;PlaySound&amp;quot; action got some additional parameters, for example Volume and bWaitForFinish. While Volume is self explaining, bWaitForFinish is being used to halt the action flow until the sound finished playing, so setting this value to true will wait until the sound is done playing and afterwards continue with the action flow. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Behaviour ==&lt;br /&gt;
&lt;br /&gt;
A Trigger can activate one or more ScriptedTriggers at the same time if the event name is the same.&lt;br /&gt;
&lt;br /&gt;
One or more Triggers can activate one ScriptedTrigger when the event name is the same. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger1 --------|&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Properties ==&lt;br /&gt;
&lt;br /&gt;
The trigger provides some additional customizable properties which are very handy.&lt;br /&gt;
&lt;br /&gt;
[[File:Triggerproperties.png]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Description&lt;br /&gt;
|-&lt;br /&gt;
| bInitiallyActive || Whether the trigger is active or not. Can be toggled via scripted actions.&lt;br /&gt;
|-&lt;br /&gt;
| bTriggerOnceOnly || Whether the trigger should trigger once or multiple times&lt;br /&gt;
|-&lt;br /&gt;
| Message || A message to display when it gets triggered&lt;br /&gt;
|-&lt;br /&gt;
| ReTriggerDelay || Delay in seconds before a retrigger can happen if bTriggerOnceOnly is set to false&lt;br /&gt;
|-&lt;br /&gt;
| TriggerType || What can trigger it&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TriggerType ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Behaviour&lt;br /&gt;
|-&lt;br /&gt;
| TT_PlayerProximity || Trigger is activated by player proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_PawnProximity || Trigger is activated by any pawn&#039;s proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_ClassProximity || Trigger is activated by actor of ClassProximityType only&lt;br /&gt;
|-&lt;br /&gt;
| TT_AnyProximity || Trigger is activated by any actor in proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_Shoot || Trigger is activated by player shooting it&lt;br /&gt;
|-&lt;br /&gt;
| TT_HumanPlayerProximity || Trigger is activated by human player (not bot)&lt;br /&gt;
|-&lt;br /&gt;
| TT_Use || Trigger is activated manually by player pressing use key (&amp;quot;F&amp;quot; by default)&lt;br /&gt;
|-&lt;br /&gt;
| TT_SquadMemberProximity || Trigger is activated by squad member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Actions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Description&lt;br /&gt;
|-&lt;br /&gt;
| AddAmmo || Adds a specified amount of ammo to selected weapon&lt;br /&gt;
|-&lt;br /&gt;
| AnimateVisorFX || X&lt;br /&gt;
|-&lt;br /&gt;
| AttachToGunship || Attach an actor&#039;s bone to gunship actor (used by briefing levels)&lt;br /&gt;
|-&lt;br /&gt;
| AttachToTurret || Attach a bot/AIController to specified turret&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDGrenade || Flash the grenade icons on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDHealth || Flash the health bar on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDShields || Flash the shield bar on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquad || Flash the squad icons on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquadCommandPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| Briefing || Makes the player frozen und locked to certain view angle&lt;br /&gt;
|-&lt;br /&gt;
| ChangeLevel || Let game/client travel to specified URL/level&lt;br /&gt;
|-&lt;br /&gt;
| ChangeScript || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadMember || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadStance || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeZoneAudio || X&lt;br /&gt;
|-&lt;br /&gt;
| ConsoleCommand || Execute a console command&lt;br /&gt;
|-&lt;br /&gt;
| Crouch || Makes actor linked to scripted action crouch&lt;br /&gt;
|-&lt;br /&gt;
| DamageInstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| DestroyActor || Destroy all actors marked by tag&lt;br /&gt;
|-&lt;br /&gt;
| DestroyPawn || Destroy pawn linked to scripted action&lt;br /&gt;
|-&lt;br /&gt;
| DisplayCriticalMessage || Display a specified message to top center of screen&lt;br /&gt;
|-&lt;br /&gt;
| DisplayMessage || Same as DisplayCriticalMessage&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIState || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIVoice || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBattleEngine || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBlockedComputations || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableNavPtSpecial || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableSecurePosition || X&lt;br /&gt;
|-&lt;br /&gt;
| EndSection || X&lt;br /&gt;
|-&lt;br /&gt;
| FadeView || X&lt;br /&gt;
|-&lt;br /&gt;
| FailMission || Makes screen fade white and kill the player&lt;br /&gt;
|-&lt;br /&gt;
| FlickerActor || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceBattleMusic || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceState || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceVictoryFlourish || X&lt;br /&gt;
|-&lt;br /&gt;
| GenerateStimulus || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoAction || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoLabel || Jump to specific label name&lt;br /&gt;
|-&lt;br /&gt;
| GotoState || Set the state of certain actor(s) referenced by tags&lt;br /&gt;
|-&lt;br /&gt;
| HurtActor || X&lt;br /&gt;
|-&lt;br /&gt;
| IfCondition || X&lt;br /&gt;
|-&lt;br /&gt;
| IfRandomPct || X&lt;br /&gt;
|-&lt;br /&gt;
| Killinstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| Label || Creates a label with specified name&lt;br /&gt;
|-&lt;br /&gt;
| MakeInvulnerable || Makes actor(s)/prop(s) invulnerable specified by tag&lt;br /&gt;
|-&lt;br /&gt;
| MoverToKeyframe || Move an mover actor to specified keyframe&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| ObjectiveUpdate || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAmbientSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayLocalSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMovie || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMusic || Play a certain music track&lt;br /&gt;
|-&lt;br /&gt;
| PlayPropAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlaySound || Play a certain sound effect&lt;br /&gt;
|-&lt;br /&gt;
| PlaySoundCue || Play a certain sound cue&lt;br /&gt;
|-&lt;br /&gt;
| ResetFactory || Reset specified factories remaining number of spawns&lt;br /&gt;
|-&lt;br /&gt;
| Revive || Revive a certain pawn (intended for player and squad members)&lt;br /&gt;
|-&lt;br /&gt;
| ScreenFade || Makes the screen fade in a certain color&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleEngineParams || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleMusicMulti || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBlocked || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCanCancelMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCannotDie || Sets the property bCannotDie of a specified pawn tag to true or false&lt;br /&gt;
|-&lt;br /&gt;
| SetCollision || Sets various collision properties of actor(s) with specified tag&lt;br /&gt;
|-&lt;br /&gt;
| SetHidden || Hide/unhide actor(s) with specified tag&lt;br /&gt;
|-&lt;br /&gt;
| SetImuseState || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPawnIdle || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPhysics || Set a specific physics to actor(s) specified by tag&lt;br /&gt;
|-&lt;br /&gt;
| SetScriptPriority || X&lt;br /&gt;
|-&lt;br /&gt;
| SetSightRadius || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTeamIndex || X&lt;br /&gt;
|-&lt;br /&gt;
| SetThreat || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTurretUsable || X&lt;br /&gt;
|-&lt;br /&gt;
| SetViewTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShakeView || X&lt;br /&gt;
|-&lt;br /&gt;
| ShootTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowActorObjectiveTracker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowDebriefingScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMenuScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowTitleCardScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowVisor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnActor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnStatusEffect || X&lt;br /&gt;
|-&lt;br /&gt;
| StopFactorySpawning || X&lt;br /&gt;
|-&lt;br /&gt;
| StopShooting || X&lt;br /&gt;
|-&lt;br /&gt;
| SuggestEnemy || X&lt;br /&gt;
|-&lt;br /&gt;
| TeleportToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| TriggerEvent || Trigger a certain event name&lt;br /&gt;
|-&lt;br /&gt;
| TurnTowardPlayer || Makes the actor linked to the scripted action rotate towards player&lt;br /&gt;
|-&lt;br /&gt;
| UnforceState || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForAnimEnd || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForEvent || Wait for a certain event to trigger to start the action flow&lt;br /&gt;
|-&lt;br /&gt;
| WaitForPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForRandomTimer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForTimer || Wait for n seconds before continuing the action flow&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=344</id>
		<title>Triggers and ScriptedTriggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=344"/>
		<updated>2024-08-02T11:00:20Z</updated>

		<summary type="html">&lt;p&gt;Plasma: /* Actions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setup ==&lt;br /&gt;
&lt;br /&gt;
The purpose of a Trigger is to let some action happen when it gets triggered. (captain obvious)&lt;br /&gt;
&lt;br /&gt;
So what we need for our map, is a Trigger, which will be activated/triggered when the player walks in and a ScriptedTrigger to make the action happen.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Place the trigger on your map where it should get triggered.&lt;br /&gt;
&lt;br /&gt;
Open up the properties of the trigger and change the colission radius width and height to fit your map/room. Remember the action will be triggered when the player touches/walks in the radius of that Trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While having the properties window open for the Trigger, head to the Events tab and enter an event name. This example will use the event name &amp;quot;tutorial&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now when the player walks into the trigger radius, an event with the name &amp;quot;tutorial&amp;quot; will trigger. To let the actual action happen, we need a ScriptedTrigger. So open up the actor window and navigate to Actor -&amp;gt; AIScript -&amp;gt; ScriptedSequence -&amp;gt; ScriptedTrigger and place it next to the normal trigger.&lt;br /&gt;
&lt;br /&gt;
To keep the map nice and clean, it&#039;s recommended to put the Trigger and ScriptedTrigger right next to each other so it won&#039;t be a mess when you place lots of them.&lt;br /&gt;
&lt;br /&gt;
Open properties window and go to the AIScript category. Click on the plus icon in the Actions section. You are now able to to add a new action by clicking on the &amp;quot;Add&amp;quot; button on the right border of the window.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger4.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After adding a new action, we have to select a specific one which is called &amp;quot;ACTION_WaitForEvent&amp;quot;. So open up the drop down menu by clicking on ACTION_AddAmmo and select WaitForEvent. (Right on the bottom) After that, click on &amp;quot;New&amp;quot;. We tell the action chain to wait for a certain event to trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For ExternalEvent, add the event name of the Trigger which is &amp;quot;tutorial&amp;quot; in this case. The ScriptedTrigger waits until an event with this exact name is getting triggered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To sum up everything so far, we created a trigger with a specific event name. It gets triggered when the player steps into the radius. The ScriptedTrigger has an action called &amp;quot;WaitForEvent&amp;quot;, which then gets activated when the trigger gets activated. The rest of the action gets handled by the ScriptedTrigger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So we have a ScriptedTrigger ready to do some action, the actual process of the actions is the same now. You minimize the first Actions tab &amp;quot;[0]&amp;quot; by clicking on the minus and click on &amp;quot;Add&amp;quot; to add a new tab for the actions.&lt;br /&gt;
&lt;br /&gt;
For a list of detailed actions, see below.&lt;br /&gt;
For this tutorial we will be using PlaySound action.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger6.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To add the actual sound, go to the sound browser and select a sound you want to use. Go back to the ScriptedTrigger, click in the Sound field and click on &amp;quot;Use&amp;quot; button on right side of the properties window. The ScriptedTrigger adds the sound automatically to the field.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;PlaySound&amp;quot; action got some additional parameters, for example Volume and bWaitForFinish. While Volume is self explaining, bWaitForFinish is being used to halt the action flow until the sound finished playing, so setting this value to true will wait until the sound is done playing and afterwards continue with the action flow. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Behaviour ==&lt;br /&gt;
&lt;br /&gt;
A Trigger can activate one or more ScriptedTriggers at the same time if the event name is the same.&lt;br /&gt;
&lt;br /&gt;
One or more Triggers can activate one ScriptedTrigger when the event name is the same. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger1 --------|&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Properties ==&lt;br /&gt;
&lt;br /&gt;
The trigger provides some additional customizable properties which are very handy.&lt;br /&gt;
&lt;br /&gt;
[[File:Triggerproperties.png]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Description&lt;br /&gt;
|-&lt;br /&gt;
| bInitiallyActive || Whether the trigger is active or not. Can be toggled via scripted actions.&lt;br /&gt;
|-&lt;br /&gt;
| bTriggerOnceOnly || Whether the trigger should trigger once or multiple times&lt;br /&gt;
|-&lt;br /&gt;
| Message || A message to display when it gets triggered&lt;br /&gt;
|-&lt;br /&gt;
| ReTriggerDelay || Delay in seconds before a retrigger can happen if bTriggerOnceOnly is set to false&lt;br /&gt;
|-&lt;br /&gt;
| TriggerType || What can trigger it&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TriggerType ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Behaviour&lt;br /&gt;
|-&lt;br /&gt;
| TT_PlayerProximity || Trigger is activated by player proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_PawnProximity || Trigger is activated by any pawn&#039;s proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_ClassProximity || Trigger is activated by actor of ClassProximityType only&lt;br /&gt;
|-&lt;br /&gt;
| TT_AnyProximity || Trigger is activated by any actor in proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_Shoot || Trigger is activated by player shooting it&lt;br /&gt;
|-&lt;br /&gt;
| TT_HumanPlayerProximity || Trigger is activated by human player (not bot)&lt;br /&gt;
|-&lt;br /&gt;
| TT_Use || Trigger is activated manually by player pressing use key (&amp;quot;F&amp;quot; by default)&lt;br /&gt;
|-&lt;br /&gt;
| TT_SquadMemberProximity || Trigger is activated by squad member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Actions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Description&lt;br /&gt;
|-&lt;br /&gt;
| AddAmmo || Adds a specified amount of ammo to selected weapon&lt;br /&gt;
|-&lt;br /&gt;
| AnimateVisorFX || X&lt;br /&gt;
|-&lt;br /&gt;
| AttachToGunship || Attach an actor&#039;s bone to gunship actor (used by briefing levels)&lt;br /&gt;
|-&lt;br /&gt;
| AttachToTurret || Attach a bot/AIController to specified turret&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDGrenade || Flash the grenade icons on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDHealth || Flash the health bar on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDShields || Flash the shield bar on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquad || Flash the squad icons on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquadCommandPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| Briefing || Makes the player frozen und locked to certain view angle&lt;br /&gt;
|-&lt;br /&gt;
| ChangeLevel || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeScript || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadMember || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadStance || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeZoneAudio || X&lt;br /&gt;
|-&lt;br /&gt;
| ConsoleCommand || Execute a console command&lt;br /&gt;
|-&lt;br /&gt;
| Crouch || Makes actor linked to scripted action crouch&lt;br /&gt;
|-&lt;br /&gt;
| DamageInstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| DestroyActor || Destroy all actors marked by tag&lt;br /&gt;
|-&lt;br /&gt;
| DestroyPawn || Destroy pawn linked to scripted action&lt;br /&gt;
|-&lt;br /&gt;
| DisplayCriticalMessage || Display a specified message to top center of screen&lt;br /&gt;
|-&lt;br /&gt;
| DisplayMessage || Same as DisplayCriticalMessage&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIState || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIVoice || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBattleEngine || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBlockedComputations || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableNavPtSpecial || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableSecurePosition || X&lt;br /&gt;
|-&lt;br /&gt;
| EndSection || X&lt;br /&gt;
|-&lt;br /&gt;
| FadeView || X&lt;br /&gt;
|-&lt;br /&gt;
| FailMission || Makes screen fade white and kill the player&lt;br /&gt;
|-&lt;br /&gt;
| FlickerActor || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceBattleMusic || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceState || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceVictoryFlourish || X&lt;br /&gt;
|-&lt;br /&gt;
| GenerateStimulus || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoAction || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoLabel || Jump to specific label name&lt;br /&gt;
|-&lt;br /&gt;
| GotoState || Set the state of certain actor(s) referenced by tags&lt;br /&gt;
|-&lt;br /&gt;
| HurtActor || X&lt;br /&gt;
|-&lt;br /&gt;
| IfCondition || X&lt;br /&gt;
|-&lt;br /&gt;
| IfRandomPct || X&lt;br /&gt;
|-&lt;br /&gt;
| Killinstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| Label || Creates a label with specified name&lt;br /&gt;
|-&lt;br /&gt;
| MakeInvulnerable || Makes actor(s)/prop(s) invulnerable specified by tag&lt;br /&gt;
|-&lt;br /&gt;
| MoverToKeyframe || X&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| ObjectiveUpdate || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAmbientSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayLocalSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMovie || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMusic || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayPropAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlaySound || Play a certain sound effect&lt;br /&gt;
|-&lt;br /&gt;
| PlaySoundCue || Play a certain sound cue&lt;br /&gt;
|-&lt;br /&gt;
| ResetFactory || Reset specified factories remaining number of spawns&lt;br /&gt;
|-&lt;br /&gt;
| Revive || Revive a certain pawn (intended for player and squad members)&lt;br /&gt;
|-&lt;br /&gt;
| ScreenFade || Makes the screen fade in a certain color&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleEngineParams || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleMusicMulti || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBlocked || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCanCancelMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCannotDie || Sets the property bCannotDie of a specified pawn tag to true or false&lt;br /&gt;
|-&lt;br /&gt;
| SetCollision || Sets various collision properties of actor(s) with specified tag&lt;br /&gt;
|-&lt;br /&gt;
| SetHidden || Hide/unhide actor(s) with specified tag&lt;br /&gt;
|-&lt;br /&gt;
| SetImuseState || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPawnIdle || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPhysics || X&lt;br /&gt;
|-&lt;br /&gt;
| SetScriptPriority || X&lt;br /&gt;
|-&lt;br /&gt;
| SetSightRadius || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTeamIndex || X&lt;br /&gt;
|-&lt;br /&gt;
| SetThreat || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTurretUsable || X&lt;br /&gt;
|-&lt;br /&gt;
| SetViewTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShakeView || X&lt;br /&gt;
|-&lt;br /&gt;
| ShootTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowActorObjectiveTracker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowDebriefingScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMenuScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowTitleCardScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowVisor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnActor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnStatusEffect || X&lt;br /&gt;
|-&lt;br /&gt;
| StopFactorySpawning || X&lt;br /&gt;
|-&lt;br /&gt;
| StopShooting || X&lt;br /&gt;
|-&lt;br /&gt;
| SuggestEnemy || X&lt;br /&gt;
|-&lt;br /&gt;
| TeleportToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| TriggerEvent || Trigger a certain event name&lt;br /&gt;
|-&lt;br /&gt;
| TurnTowardPlayer || Makes the actor linked to the scripted action rotate towards player&lt;br /&gt;
|-&lt;br /&gt;
| UnforceState || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForAnimEnd || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForEvent || Wait for a certain event to trigger to start the action flow&lt;br /&gt;
|-&lt;br /&gt;
| WaitForPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForRandomTimer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForTimer || Wait for n seconds before continuing the action flow&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=343</id>
		<title>Triggers and ScriptedTriggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=343"/>
		<updated>2024-08-02T10:58:04Z</updated>

		<summary type="html">&lt;p&gt;Plasma: /* Actions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setup ==&lt;br /&gt;
&lt;br /&gt;
The purpose of a Trigger is to let some action happen when it gets triggered. (captain obvious)&lt;br /&gt;
&lt;br /&gt;
So what we need for our map, is a Trigger, which will be activated/triggered when the player walks in and a ScriptedTrigger to make the action happen.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Place the trigger on your map where it should get triggered.&lt;br /&gt;
&lt;br /&gt;
Open up the properties of the trigger and change the colission radius width and height to fit your map/room. Remember the action will be triggered when the player touches/walks in the radius of that Trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While having the properties window open for the Trigger, head to the Events tab and enter an event name. This example will use the event name &amp;quot;tutorial&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now when the player walks into the trigger radius, an event with the name &amp;quot;tutorial&amp;quot; will trigger. To let the actual action happen, we need a ScriptedTrigger. So open up the actor window and navigate to Actor -&amp;gt; AIScript -&amp;gt; ScriptedSequence -&amp;gt; ScriptedTrigger and place it next to the normal trigger.&lt;br /&gt;
&lt;br /&gt;
To keep the map nice and clean, it&#039;s recommended to put the Trigger and ScriptedTrigger right next to each other so it won&#039;t be a mess when you place lots of them.&lt;br /&gt;
&lt;br /&gt;
Open properties window and go to the AIScript category. Click on the plus icon in the Actions section. You are now able to to add a new action by clicking on the &amp;quot;Add&amp;quot; button on the right border of the window.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger4.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After adding a new action, we have to select a specific one which is called &amp;quot;ACTION_WaitForEvent&amp;quot;. So open up the drop down menu by clicking on ACTION_AddAmmo and select WaitForEvent. (Right on the bottom) After that, click on &amp;quot;New&amp;quot;. We tell the action chain to wait for a certain event to trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For ExternalEvent, add the event name of the Trigger which is &amp;quot;tutorial&amp;quot; in this case. The ScriptedTrigger waits until an event with this exact name is getting triggered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To sum up everything so far, we created a trigger with a specific event name. It gets triggered when the player steps into the radius. The ScriptedTrigger has an action called &amp;quot;WaitForEvent&amp;quot;, which then gets activated when the trigger gets activated. The rest of the action gets handled by the ScriptedTrigger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So we have a ScriptedTrigger ready to do some action, the actual process of the actions is the same now. You minimize the first Actions tab &amp;quot;[0]&amp;quot; by clicking on the minus and click on &amp;quot;Add&amp;quot; to add a new tab for the actions.&lt;br /&gt;
&lt;br /&gt;
For a list of detailed actions, see below.&lt;br /&gt;
For this tutorial we will be using PlaySound action.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger6.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To add the actual sound, go to the sound browser and select a sound you want to use. Go back to the ScriptedTrigger, click in the Sound field and click on &amp;quot;Use&amp;quot; button on right side of the properties window. The ScriptedTrigger adds the sound automatically to the field.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;PlaySound&amp;quot; action got some additional parameters, for example Volume and bWaitForFinish. While Volume is self explaining, bWaitForFinish is being used to halt the action flow until the sound finished playing, so setting this value to true will wait until the sound is done playing and afterwards continue with the action flow. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Behaviour ==&lt;br /&gt;
&lt;br /&gt;
A Trigger can activate one or more ScriptedTriggers at the same time if the event name is the same.&lt;br /&gt;
&lt;br /&gt;
One or more Triggers can activate one ScriptedTrigger when the event name is the same. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger1 --------|&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Properties ==&lt;br /&gt;
&lt;br /&gt;
The trigger provides some additional customizable properties which are very handy.&lt;br /&gt;
&lt;br /&gt;
[[File:Triggerproperties.png]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Description&lt;br /&gt;
|-&lt;br /&gt;
| bInitiallyActive || Whether the trigger is active or not. Can be toggled via scripted actions.&lt;br /&gt;
|-&lt;br /&gt;
| bTriggerOnceOnly || Whether the trigger should trigger once or multiple times&lt;br /&gt;
|-&lt;br /&gt;
| Message || A message to display when it gets triggered&lt;br /&gt;
|-&lt;br /&gt;
| ReTriggerDelay || Delay in seconds before a retrigger can happen if bTriggerOnceOnly is set to false&lt;br /&gt;
|-&lt;br /&gt;
| TriggerType || What can trigger it&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TriggerType ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Behaviour&lt;br /&gt;
|-&lt;br /&gt;
| TT_PlayerProximity || Trigger is activated by player proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_PawnProximity || Trigger is activated by any pawn&#039;s proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_ClassProximity || Trigger is activated by actor of ClassProximityType only&lt;br /&gt;
|-&lt;br /&gt;
| TT_AnyProximity || Trigger is activated by any actor in proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_Shoot || Trigger is activated by player shooting it&lt;br /&gt;
|-&lt;br /&gt;
| TT_HumanPlayerProximity || Trigger is activated by human player (not bot)&lt;br /&gt;
|-&lt;br /&gt;
| TT_Use || Trigger is activated manually by player pressing use key (&amp;quot;F&amp;quot; by default)&lt;br /&gt;
|-&lt;br /&gt;
| TT_SquadMemberProximity || Trigger is activated by squad member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Actions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Description&lt;br /&gt;
|-&lt;br /&gt;
| AddAmmo || Adds a specified amount of ammo to selected weapon&lt;br /&gt;
|-&lt;br /&gt;
| AnimateVisorFX || X&lt;br /&gt;
|-&lt;br /&gt;
| AttachToGunship || Attach an actor&#039;s bone to gunship actor (used by briefing levels)&lt;br /&gt;
|-&lt;br /&gt;
| AttachToTurret || Attach a bot/AIController to specified turret&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDGrenade || Flash the grenade icons on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDHealth || Flash the health bar on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDShields || Flash the shield bar on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquad || Flash the squad icons on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquadCommandPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| Briefing || Makes the player frozen und locked to certain view angle&lt;br /&gt;
|-&lt;br /&gt;
| ChangeLevel || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeScript || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadMember || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadStance || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeZoneAudio || X&lt;br /&gt;
|-&lt;br /&gt;
| ConsoleCommand || Execute a console command&lt;br /&gt;
|-&lt;br /&gt;
| Crouch || Makes actor linked to scripted action crouch&lt;br /&gt;
|-&lt;br /&gt;
| DamageInstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| DestroyActor || Destroy all actors marked by tag&lt;br /&gt;
|-&lt;br /&gt;
| DestroyPawn || Destroy pawn linked to scripted action&lt;br /&gt;
|-&lt;br /&gt;
| DisplayCriticalMessage || Display a specified message to top center of screen&lt;br /&gt;
|-&lt;br /&gt;
| DisplayMessage || Same as DisplayCriticalMessage&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIState || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIVoice || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBattleEngine || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBlockedComputations || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableNavPtSpecial || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableSecurePosition || X&lt;br /&gt;
|-&lt;br /&gt;
| EndSection || X&lt;br /&gt;
|-&lt;br /&gt;
| FadeView || X&lt;br /&gt;
|-&lt;br /&gt;
| FailMission || X&lt;br /&gt;
|-&lt;br /&gt;
| FlickerActor || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceBattleMusic || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceState || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceVictoryFlourish || X&lt;br /&gt;
|-&lt;br /&gt;
| GenerateStimulus || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoAction || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoLabel || Jump to specific label name&lt;br /&gt;
|-&lt;br /&gt;
| GotoState || Set the state of certain actor(s) referenced by tags&lt;br /&gt;
|-&lt;br /&gt;
| HurtActor || X&lt;br /&gt;
|-&lt;br /&gt;
| IfCondition || X&lt;br /&gt;
|-&lt;br /&gt;
| IfRandomPct || X&lt;br /&gt;
|-&lt;br /&gt;
| Killinstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| Label || Creates a label with specified name&lt;br /&gt;
|-&lt;br /&gt;
| MakeInvulnerable || X&lt;br /&gt;
|-&lt;br /&gt;
| MoverToKeyframe || X&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| ObjectiveUpdate || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAmbientSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayLocalSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMovie || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMusic || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayPropAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlaySound || Play a certain sound effect&lt;br /&gt;
|-&lt;br /&gt;
| PlaySoundCue || Play a certain sound cue&lt;br /&gt;
|-&lt;br /&gt;
| ResetFactory || Reset specified factories remaining number of spawns&lt;br /&gt;
|-&lt;br /&gt;
| Revive || Revive a certain pawn (intended for player and squad members)&lt;br /&gt;
|-&lt;br /&gt;
| ScreenFade || Makes the screen fade in a certain color&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleEngineParams || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleMusicMulti || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBlocked || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCanCancelMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCannotDie || Sets the property bCannotDie of a specified pawn tag to true or false&lt;br /&gt;
|-&lt;br /&gt;
| SetCollision || Sets various collision properties of actor(s) with specified tag&lt;br /&gt;
|-&lt;br /&gt;
| SetHidden || Hide/unhide actor(s) with specified tag&lt;br /&gt;
|-&lt;br /&gt;
| SetImuseState || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPawnIdle || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPhysics || X&lt;br /&gt;
|-&lt;br /&gt;
| SetScriptPriority || X&lt;br /&gt;
|-&lt;br /&gt;
| SetSightRadius || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTeamIndex || X&lt;br /&gt;
|-&lt;br /&gt;
| SetThreat || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTurretUsable || X&lt;br /&gt;
|-&lt;br /&gt;
| SetViewTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShakeView || X&lt;br /&gt;
|-&lt;br /&gt;
| ShootTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowActorObjectiveTracker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowDebriefingScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMenuScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowTitleCardScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowVisor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnActor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnStatusEffect || X&lt;br /&gt;
|-&lt;br /&gt;
| StopFactorySpawning || X&lt;br /&gt;
|-&lt;br /&gt;
| StopShooting || X&lt;br /&gt;
|-&lt;br /&gt;
| SuggestEnemy || X&lt;br /&gt;
|-&lt;br /&gt;
| TeleportToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| TriggerEvent || Trigger a certain event name&lt;br /&gt;
|-&lt;br /&gt;
| TurnTowardPlayer || Makes the actor linked to the scripted action rotate towards player&lt;br /&gt;
|-&lt;br /&gt;
| UnforceState || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForAnimEnd || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForEvent || Wait for a certain event to trigger to start the action flow&lt;br /&gt;
|-&lt;br /&gt;
| WaitForPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForRandomTimer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForTimer || Wait for n seconds before continuing the action flow&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=342</id>
		<title>Triggers and ScriptedTriggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=342"/>
		<updated>2024-08-02T10:55:00Z</updated>

		<summary type="html">&lt;p&gt;Plasma: /* Actions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setup ==&lt;br /&gt;
&lt;br /&gt;
The purpose of a Trigger is to let some action happen when it gets triggered. (captain obvious)&lt;br /&gt;
&lt;br /&gt;
So what we need for our map, is a Trigger, which will be activated/triggered when the player walks in and a ScriptedTrigger to make the action happen.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Place the trigger on your map where it should get triggered.&lt;br /&gt;
&lt;br /&gt;
Open up the properties of the trigger and change the colission radius width and height to fit your map/room. Remember the action will be triggered when the player touches/walks in the radius of that Trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While having the properties window open for the Trigger, head to the Events tab and enter an event name. This example will use the event name &amp;quot;tutorial&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now when the player walks into the trigger radius, an event with the name &amp;quot;tutorial&amp;quot; will trigger. To let the actual action happen, we need a ScriptedTrigger. So open up the actor window and navigate to Actor -&amp;gt; AIScript -&amp;gt; ScriptedSequence -&amp;gt; ScriptedTrigger and place it next to the normal trigger.&lt;br /&gt;
&lt;br /&gt;
To keep the map nice and clean, it&#039;s recommended to put the Trigger and ScriptedTrigger right next to each other so it won&#039;t be a mess when you place lots of them.&lt;br /&gt;
&lt;br /&gt;
Open properties window and go to the AIScript category. Click on the plus icon in the Actions section. You are now able to to add a new action by clicking on the &amp;quot;Add&amp;quot; button on the right border of the window.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger4.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After adding a new action, we have to select a specific one which is called &amp;quot;ACTION_WaitForEvent&amp;quot;. So open up the drop down menu by clicking on ACTION_AddAmmo and select WaitForEvent. (Right on the bottom) After that, click on &amp;quot;New&amp;quot;. We tell the action chain to wait for a certain event to trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For ExternalEvent, add the event name of the Trigger which is &amp;quot;tutorial&amp;quot; in this case. The ScriptedTrigger waits until an event with this exact name is getting triggered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To sum up everything so far, we created a trigger with a specific event name. It gets triggered when the player steps into the radius. The ScriptedTrigger has an action called &amp;quot;WaitForEvent&amp;quot;, which then gets activated when the trigger gets activated. The rest of the action gets handled by the ScriptedTrigger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So we have a ScriptedTrigger ready to do some action, the actual process of the actions is the same now. You minimize the first Actions tab &amp;quot;[0]&amp;quot; by clicking on the minus and click on &amp;quot;Add&amp;quot; to add a new tab for the actions.&lt;br /&gt;
&lt;br /&gt;
For a list of detailed actions, see below.&lt;br /&gt;
For this tutorial we will be using PlaySound action.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger6.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To add the actual sound, go to the sound browser and select a sound you want to use. Go back to the ScriptedTrigger, click in the Sound field and click on &amp;quot;Use&amp;quot; button on right side of the properties window. The ScriptedTrigger adds the sound automatically to the field.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;PlaySound&amp;quot; action got some additional parameters, for example Volume and bWaitForFinish. While Volume is self explaining, bWaitForFinish is being used to halt the action flow until the sound finished playing, so setting this value to true will wait until the sound is done playing and afterwards continue with the action flow. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Behaviour ==&lt;br /&gt;
&lt;br /&gt;
A Trigger can activate one or more ScriptedTriggers at the same time if the event name is the same.&lt;br /&gt;
&lt;br /&gt;
One or more Triggers can activate one ScriptedTrigger when the event name is the same. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger1 --------|&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Properties ==&lt;br /&gt;
&lt;br /&gt;
The trigger provides some additional customizable properties which are very handy.&lt;br /&gt;
&lt;br /&gt;
[[File:Triggerproperties.png]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Description&lt;br /&gt;
|-&lt;br /&gt;
| bInitiallyActive || Whether the trigger is active or not. Can be toggled via scripted actions.&lt;br /&gt;
|-&lt;br /&gt;
| bTriggerOnceOnly || Whether the trigger should trigger once or multiple times&lt;br /&gt;
|-&lt;br /&gt;
| Message || A message to display when it gets triggered&lt;br /&gt;
|-&lt;br /&gt;
| ReTriggerDelay || Delay in seconds before a retrigger can happen if bTriggerOnceOnly is set to false&lt;br /&gt;
|-&lt;br /&gt;
| TriggerType || What can trigger it&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TriggerType ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Behaviour&lt;br /&gt;
|-&lt;br /&gt;
| TT_PlayerProximity || Trigger is activated by player proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_PawnProximity || Trigger is activated by any pawn&#039;s proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_ClassProximity || Trigger is activated by actor of ClassProximityType only&lt;br /&gt;
|-&lt;br /&gt;
| TT_AnyProximity || Trigger is activated by any actor in proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_Shoot || Trigger is activated by player shooting it&lt;br /&gt;
|-&lt;br /&gt;
| TT_HumanPlayerProximity || Trigger is activated by human player (not bot)&lt;br /&gt;
|-&lt;br /&gt;
| TT_Use || Trigger is activated manually by player pressing use key (&amp;quot;F&amp;quot; by default)&lt;br /&gt;
|-&lt;br /&gt;
| TT_SquadMemberProximity || Trigger is activated by squad member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Actions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Description&lt;br /&gt;
|-&lt;br /&gt;
| AddAmmo || Adds a specified amount of ammo to selected weapon&lt;br /&gt;
|-&lt;br /&gt;
| AnimateVisorFX || X&lt;br /&gt;
|-&lt;br /&gt;
| AttachToGunship || Attach an actor&#039;s bone to gunship actor (used by briefing levels)&lt;br /&gt;
|-&lt;br /&gt;
| AttachToTurret || Attach a bot/AIController to specified turret&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDGrenade || Flash the grenade icons on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDHealth || Flash the health bar on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDShields || Flash the shield bar on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquad || Flash the squad icons on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquadCommandPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| Briefing || Makes the player frozen und locked to certain view angle&lt;br /&gt;
|-&lt;br /&gt;
| ChangeLevel || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeScript || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadMember || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadStance || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeZoneAudio || X&lt;br /&gt;
|-&lt;br /&gt;
| ConsoleCommand || Execute a console command&lt;br /&gt;
|-&lt;br /&gt;
| Crouch || X&lt;br /&gt;
|-&lt;br /&gt;
| DamageInstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| DestroyActor || X&lt;br /&gt;
|-&lt;br /&gt;
| DestroyPawn || X&lt;br /&gt;
|-&lt;br /&gt;
| DisplayCriticalMessage || X&lt;br /&gt;
|-&lt;br /&gt;
| DisplayMessage || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIState || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIVoice || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBattleEngine || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBlockedComputations || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableNavPtSpecial || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableSecurePosition || X&lt;br /&gt;
|-&lt;br /&gt;
| EndSection || X&lt;br /&gt;
|-&lt;br /&gt;
| FadeView || X&lt;br /&gt;
|-&lt;br /&gt;
| FailMission || X&lt;br /&gt;
|-&lt;br /&gt;
| FlickerActor || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceBattleMusic || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceState || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceVictoryFlourish || X&lt;br /&gt;
|-&lt;br /&gt;
| GenerateStimulus || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoAction || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoLabel || Jump to specific label name&lt;br /&gt;
|-&lt;br /&gt;
| GotoState || Set the state of certain actor(s) referenced by tags&lt;br /&gt;
|-&lt;br /&gt;
| HurtActor || X&lt;br /&gt;
|-&lt;br /&gt;
| IfCondition || X&lt;br /&gt;
|-&lt;br /&gt;
| IfRandomPct || X&lt;br /&gt;
|-&lt;br /&gt;
| Killinstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| Label || Creates a label with specified name&lt;br /&gt;
|-&lt;br /&gt;
| MakeInvulnerable || X&lt;br /&gt;
|-&lt;br /&gt;
| MoverToKeyframe || X&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| ObjectiveUpdate || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAmbientSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayLocalSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMovie || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMusic || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayPropAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlaySound || Play a certain sound effect&lt;br /&gt;
|-&lt;br /&gt;
| PlaySoundCue || Play a certain sound cue&lt;br /&gt;
|-&lt;br /&gt;
| ResetFactory || Reset specified factories remaining number of spawns&lt;br /&gt;
|-&lt;br /&gt;
| Revive || Revive a certain pawn (intended for player and squad members)&lt;br /&gt;
|-&lt;br /&gt;
| ScreenFade || Makes the screen fade in a certain color&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleEngineParams || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleMusicMulti || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBlocked || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCanCancelMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCannotDie || Sets the property bCannotDie of a specified pawn tag to true or false&lt;br /&gt;
|-&lt;br /&gt;
| SetCollision || Sets various collision properties of actor(s) with specified tag&lt;br /&gt;
|-&lt;br /&gt;
| SetHidden || Hide/unhide actor(s) with specified tag&lt;br /&gt;
|-&lt;br /&gt;
| SetImuseState || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPawnIdle || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPhysics || X&lt;br /&gt;
|-&lt;br /&gt;
| SetScriptPriority || X&lt;br /&gt;
|-&lt;br /&gt;
| SetSightRadius || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTeamIndex || X&lt;br /&gt;
|-&lt;br /&gt;
| SetThreat || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTurretUsable || X&lt;br /&gt;
|-&lt;br /&gt;
| SetViewTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShakeView || X&lt;br /&gt;
|-&lt;br /&gt;
| ShootTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowActorObjectiveTracker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowDebriefingScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMenuScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowTitleCardScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowVisor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnActor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnStatusEffect || X&lt;br /&gt;
|-&lt;br /&gt;
| StopFactorySpawning || X&lt;br /&gt;
|-&lt;br /&gt;
| StopShooting || X&lt;br /&gt;
|-&lt;br /&gt;
| SuggestEnemy || X&lt;br /&gt;
|-&lt;br /&gt;
| TeleportToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| TriggerEvent || Trigger a certain event name&lt;br /&gt;
|-&lt;br /&gt;
| TurnTowardPlayer || Makes the actor linked to the scripted action rotate towards player&lt;br /&gt;
|-&lt;br /&gt;
| UnforceState || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForAnimEnd || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForEvent || Wait for a certain event to trigger to start the action flow&lt;br /&gt;
|-&lt;br /&gt;
| WaitForPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForRandomTimer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForTimer || Wait for n seconds before continuing the action flow&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=341</id>
		<title>Triggers and ScriptedTriggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=341"/>
		<updated>2024-08-02T10:51:04Z</updated>

		<summary type="html">&lt;p&gt;Plasma: /* Actions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setup ==&lt;br /&gt;
&lt;br /&gt;
The purpose of a Trigger is to let some action happen when it gets triggered. (captain obvious)&lt;br /&gt;
&lt;br /&gt;
So what we need for our map, is a Trigger, which will be activated/triggered when the player walks in and a ScriptedTrigger to make the action happen.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Place the trigger on your map where it should get triggered.&lt;br /&gt;
&lt;br /&gt;
Open up the properties of the trigger and change the colission radius width and height to fit your map/room. Remember the action will be triggered when the player touches/walks in the radius of that Trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While having the properties window open for the Trigger, head to the Events tab and enter an event name. This example will use the event name &amp;quot;tutorial&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now when the player walks into the trigger radius, an event with the name &amp;quot;tutorial&amp;quot; will trigger. To let the actual action happen, we need a ScriptedTrigger. So open up the actor window and navigate to Actor -&amp;gt; AIScript -&amp;gt; ScriptedSequence -&amp;gt; ScriptedTrigger and place it next to the normal trigger.&lt;br /&gt;
&lt;br /&gt;
To keep the map nice and clean, it&#039;s recommended to put the Trigger and ScriptedTrigger right next to each other so it won&#039;t be a mess when you place lots of them.&lt;br /&gt;
&lt;br /&gt;
Open properties window and go to the AIScript category. Click on the plus icon in the Actions section. You are now able to to add a new action by clicking on the &amp;quot;Add&amp;quot; button on the right border of the window.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger4.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After adding a new action, we have to select a specific one which is called &amp;quot;ACTION_WaitForEvent&amp;quot;. So open up the drop down menu by clicking on ACTION_AddAmmo and select WaitForEvent. (Right on the bottom) After that, click on &amp;quot;New&amp;quot;. We tell the action chain to wait for a certain event to trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For ExternalEvent, add the event name of the Trigger which is &amp;quot;tutorial&amp;quot; in this case. The ScriptedTrigger waits until an event with this exact name is getting triggered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To sum up everything so far, we created a trigger with a specific event name. It gets triggered when the player steps into the radius. The ScriptedTrigger has an action called &amp;quot;WaitForEvent&amp;quot;, which then gets activated when the trigger gets activated. The rest of the action gets handled by the ScriptedTrigger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So we have a ScriptedTrigger ready to do some action, the actual process of the actions is the same now. You minimize the first Actions tab &amp;quot;[0]&amp;quot; by clicking on the minus and click on &amp;quot;Add&amp;quot; to add a new tab for the actions.&lt;br /&gt;
&lt;br /&gt;
For a list of detailed actions, see below.&lt;br /&gt;
For this tutorial we will be using PlaySound action.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger6.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To add the actual sound, go to the sound browser and select a sound you want to use. Go back to the ScriptedTrigger, click in the Sound field and click on &amp;quot;Use&amp;quot; button on right side of the properties window. The ScriptedTrigger adds the sound automatically to the field.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;PlaySound&amp;quot; action got some additional parameters, for example Volume and bWaitForFinish. While Volume is self explaining, bWaitForFinish is being used to halt the action flow until the sound finished playing, so setting this value to true will wait until the sound is done playing and afterwards continue with the action flow. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Behaviour ==&lt;br /&gt;
&lt;br /&gt;
A Trigger can activate one or more ScriptedTriggers at the same time if the event name is the same.&lt;br /&gt;
&lt;br /&gt;
One or more Triggers can activate one ScriptedTrigger when the event name is the same. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger1 --------|&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Properties ==&lt;br /&gt;
&lt;br /&gt;
The trigger provides some additional customizable properties which are very handy.&lt;br /&gt;
&lt;br /&gt;
[[File:Triggerproperties.png]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Description&lt;br /&gt;
|-&lt;br /&gt;
| bInitiallyActive || Whether the trigger is active or not. Can be toggled via scripted actions.&lt;br /&gt;
|-&lt;br /&gt;
| bTriggerOnceOnly || Whether the trigger should trigger once or multiple times&lt;br /&gt;
|-&lt;br /&gt;
| Message || A message to display when it gets triggered&lt;br /&gt;
|-&lt;br /&gt;
| ReTriggerDelay || Delay in seconds before a retrigger can happen if bTriggerOnceOnly is set to false&lt;br /&gt;
|-&lt;br /&gt;
| TriggerType || What can trigger it&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TriggerType ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Behaviour&lt;br /&gt;
|-&lt;br /&gt;
| TT_PlayerProximity || Trigger is activated by player proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_PawnProximity || Trigger is activated by any pawn&#039;s proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_ClassProximity || Trigger is activated by actor of ClassProximityType only&lt;br /&gt;
|-&lt;br /&gt;
| TT_AnyProximity || Trigger is activated by any actor in proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_Shoot || Trigger is activated by player shooting it&lt;br /&gt;
|-&lt;br /&gt;
| TT_HumanPlayerProximity || Trigger is activated by human player (not bot)&lt;br /&gt;
|-&lt;br /&gt;
| TT_Use || Trigger is activated manually by player pressing use key (&amp;quot;F&amp;quot; by default)&lt;br /&gt;
|-&lt;br /&gt;
| TT_SquadMemberProximity || Trigger is activated by squad member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Actions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Description&lt;br /&gt;
|-&lt;br /&gt;
| AddAmmo || Adds a specified amount of ammo to selected weapon&lt;br /&gt;
|-&lt;br /&gt;
| AnimateVisorFX || X&lt;br /&gt;
|-&lt;br /&gt;
| AttachToGunship || Attach an actor&#039;s bone to gunship actor (used by briefing levels)&lt;br /&gt;
|-&lt;br /&gt;
| AttachToTurret || Attach a bot/AIController to specified turret&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDGrenade || Flash the grenade icons on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDHealth || Flash the health bar on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDShields || Flash the shield bar on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquad || Flash the squad icons on the HUD (used by first two levels)&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquadCommandPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| Briefing || Makes the player frozen und locked to certain view angle&lt;br /&gt;
|-&lt;br /&gt;
| ChangeLevel || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeScript || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadMember || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadStance || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeZoneAudio || X&lt;br /&gt;
|-&lt;br /&gt;
| ConsoleCommand || Execute a console command&lt;br /&gt;
|-&lt;br /&gt;
| Crouch || X&lt;br /&gt;
|-&lt;br /&gt;
| DamageInstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| DestroyActor || X&lt;br /&gt;
|-&lt;br /&gt;
| DestroyPawn || X&lt;br /&gt;
|-&lt;br /&gt;
| DisplayCriticalMessage || X&lt;br /&gt;
|-&lt;br /&gt;
| DisplayMessage || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIState || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIVoice || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBattleEngine || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBlockedComputations || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableNavPtSpecial || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableSecurePosition || X&lt;br /&gt;
|-&lt;br /&gt;
| EndSection || X&lt;br /&gt;
|-&lt;br /&gt;
| FadeView || X&lt;br /&gt;
|-&lt;br /&gt;
| FailMission || X&lt;br /&gt;
|-&lt;br /&gt;
| FlickerActor || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceBattleMusic || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceState || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceVictoryFlourish || X&lt;br /&gt;
|-&lt;br /&gt;
| GenerateStimulus || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoAction || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoLabel || Jump to specific label name&lt;br /&gt;
|-&lt;br /&gt;
| GotoState || Set the state of certain actor(s) referenced by tags&lt;br /&gt;
|-&lt;br /&gt;
| HurtActor || X&lt;br /&gt;
|-&lt;br /&gt;
| IfCondition || X&lt;br /&gt;
|-&lt;br /&gt;
| IfRandomPct || X&lt;br /&gt;
|-&lt;br /&gt;
| Killinstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| Label || Creates a label with specified name&lt;br /&gt;
|-&lt;br /&gt;
| MakeInvulnerable || X&lt;br /&gt;
|-&lt;br /&gt;
| MoverToKeyframe || X&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| ObjectiveUpdate || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAmbientSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayLocalSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMovie || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMusic || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayPropAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlaySound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlaySoundCue || X&lt;br /&gt;
|-&lt;br /&gt;
| ResetFactory || X&lt;br /&gt;
|-&lt;br /&gt;
| Revive || Revive a certain pawn (intended for player and squad members)&lt;br /&gt;
|-&lt;br /&gt;
| ScreenFade || Makes the screen fade in a certain color&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleEngineParams || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleMusicMulti || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBlocked || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCanCancelMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCannotDie || Sets the property bCannotDie of a specified pawn tag to true or false&lt;br /&gt;
|-&lt;br /&gt;
| SetCollision || Sets various collision properties of actor(s) with specified tag&lt;br /&gt;
|-&lt;br /&gt;
| SetHidden || Hide/unhide actor(s) with specified tag&lt;br /&gt;
|-&lt;br /&gt;
| SetImuseState || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPawnIdle || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPhysics || X&lt;br /&gt;
|-&lt;br /&gt;
| SetScriptPriority || X&lt;br /&gt;
|-&lt;br /&gt;
| SetSightRadius || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTeamIndex || X&lt;br /&gt;
|-&lt;br /&gt;
| SetThreat || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTurretUsable || X&lt;br /&gt;
|-&lt;br /&gt;
| SetViewTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShakeView || X&lt;br /&gt;
|-&lt;br /&gt;
| ShootTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowActorObjectiveTracker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowDebriefingScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMenuScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowTitleCardScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowVisor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnActor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnStatusEffect || X&lt;br /&gt;
|-&lt;br /&gt;
| StopFactorySpawning || X&lt;br /&gt;
|-&lt;br /&gt;
| StopShooting || X&lt;br /&gt;
|-&lt;br /&gt;
| SuggestEnemy || X&lt;br /&gt;
|-&lt;br /&gt;
| TeleportToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| TriggerEvent || Trigger a certain event name&lt;br /&gt;
|-&lt;br /&gt;
| TurnTowardPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| UnforceState || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForAnimEnd || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForEvent || Wait for a certain event to trigger to start the action flow&lt;br /&gt;
|-&lt;br /&gt;
| WaitForPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForRandomTimer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForTimer || Wait for n seconds before continuing the action flow&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=340</id>
		<title>Triggers and ScriptedTriggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=340"/>
		<updated>2024-08-02T10:42:20Z</updated>

		<summary type="html">&lt;p&gt;Plasma: /* Actions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setup ==&lt;br /&gt;
&lt;br /&gt;
The purpose of a Trigger is to let some action happen when it gets triggered. (captain obvious)&lt;br /&gt;
&lt;br /&gt;
So what we need for our map, is a Trigger, which will be activated/triggered when the player walks in and a ScriptedTrigger to make the action happen.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Place the trigger on your map where it should get triggered.&lt;br /&gt;
&lt;br /&gt;
Open up the properties of the trigger and change the colission radius width and height to fit your map/room. Remember the action will be triggered when the player touches/walks in the radius of that Trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While having the properties window open for the Trigger, head to the Events tab and enter an event name. This example will use the event name &amp;quot;tutorial&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now when the player walks into the trigger radius, an event with the name &amp;quot;tutorial&amp;quot; will trigger. To let the actual action happen, we need a ScriptedTrigger. So open up the actor window and navigate to Actor -&amp;gt; AIScript -&amp;gt; ScriptedSequence -&amp;gt; ScriptedTrigger and place it next to the normal trigger.&lt;br /&gt;
&lt;br /&gt;
To keep the map nice and clean, it&#039;s recommended to put the Trigger and ScriptedTrigger right next to each other so it won&#039;t be a mess when you place lots of them.&lt;br /&gt;
&lt;br /&gt;
Open properties window and go to the AIScript category. Click on the plus icon in the Actions section. You are now able to to add a new action by clicking on the &amp;quot;Add&amp;quot; button on the right border of the window.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger4.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After adding a new action, we have to select a specific one which is called &amp;quot;ACTION_WaitForEvent&amp;quot;. So open up the drop down menu by clicking on ACTION_AddAmmo and select WaitForEvent. (Right on the bottom) After that, click on &amp;quot;New&amp;quot;. We tell the action chain to wait for a certain event to trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For ExternalEvent, add the event name of the Trigger which is &amp;quot;tutorial&amp;quot; in this case. The ScriptedTrigger waits until an event with this exact name is getting triggered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To sum up everything so far, we created a trigger with a specific event name. It gets triggered when the player steps into the radius. The ScriptedTrigger has an action called &amp;quot;WaitForEvent&amp;quot;, which then gets activated when the trigger gets activated. The rest of the action gets handled by the ScriptedTrigger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So we have a ScriptedTrigger ready to do some action, the actual process of the actions is the same now. You minimize the first Actions tab &amp;quot;[0]&amp;quot; by clicking on the minus and click on &amp;quot;Add&amp;quot; to add a new tab for the actions.&lt;br /&gt;
&lt;br /&gt;
For a list of detailed actions, see below.&lt;br /&gt;
For this tutorial we will be using PlaySound action.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger6.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To add the actual sound, go to the sound browser and select a sound you want to use. Go back to the ScriptedTrigger, click in the Sound field and click on &amp;quot;Use&amp;quot; button on right side of the properties window. The ScriptedTrigger adds the sound automatically to the field.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;PlaySound&amp;quot; action got some additional parameters, for example Volume and bWaitForFinish. While Volume is self explaining, bWaitForFinish is being used to halt the action flow until the sound finished playing, so setting this value to true will wait until the sound is done playing and afterwards continue with the action flow. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Behaviour ==&lt;br /&gt;
&lt;br /&gt;
A Trigger can activate one or more ScriptedTriggers at the same time if the event name is the same.&lt;br /&gt;
&lt;br /&gt;
One or more Triggers can activate one ScriptedTrigger when the event name is the same. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger1 --------|&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Properties ==&lt;br /&gt;
&lt;br /&gt;
The trigger provides some additional customizable properties which are very handy.&lt;br /&gt;
&lt;br /&gt;
[[File:Triggerproperties.png]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Description&lt;br /&gt;
|-&lt;br /&gt;
| bInitiallyActive || Whether the trigger is active or not. Can be toggled via scripted actions.&lt;br /&gt;
|-&lt;br /&gt;
| bTriggerOnceOnly || Whether the trigger should trigger once or multiple times&lt;br /&gt;
|-&lt;br /&gt;
| Message || A message to display when it gets triggered&lt;br /&gt;
|-&lt;br /&gt;
| ReTriggerDelay || Delay in seconds before a retrigger can happen if bTriggerOnceOnly is set to false&lt;br /&gt;
|-&lt;br /&gt;
| TriggerType || What can trigger it&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TriggerType ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Behaviour&lt;br /&gt;
|-&lt;br /&gt;
| TT_PlayerProximity || Trigger is activated by player proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_PawnProximity || Trigger is activated by any pawn&#039;s proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_ClassProximity || Trigger is activated by actor of ClassProximityType only&lt;br /&gt;
|-&lt;br /&gt;
| TT_AnyProximity || Trigger is activated by any actor in proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_Shoot || Trigger is activated by player shooting it&lt;br /&gt;
|-&lt;br /&gt;
| TT_HumanPlayerProximity || Trigger is activated by human player (not bot)&lt;br /&gt;
|-&lt;br /&gt;
| TT_Use || Trigger is activated manually by player pressing use key (&amp;quot;F&amp;quot; by default)&lt;br /&gt;
|-&lt;br /&gt;
| TT_SquadMemberProximity || Trigger is activated by squad member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Actions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Description&lt;br /&gt;
|-&lt;br /&gt;
| AddAmmo || X&lt;br /&gt;
|-&lt;br /&gt;
| AnimateVisorFX || X&lt;br /&gt;
|-&lt;br /&gt;
| AttachToGunship || X&lt;br /&gt;
|-&lt;br /&gt;
| AttachToTurret || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDGrenade || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDHealth || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDShields || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquad || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquadCommandPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| Briefing || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeLevel || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeScript || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadMember || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadStance || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeZoneAudio || X&lt;br /&gt;
|-&lt;br /&gt;
| ConsoleCommand || Execute a console command&lt;br /&gt;
|-&lt;br /&gt;
| Crouch || X&lt;br /&gt;
|-&lt;br /&gt;
| DamageInstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| DestroyActor || X&lt;br /&gt;
|-&lt;br /&gt;
| DestroyPawn || X&lt;br /&gt;
|-&lt;br /&gt;
| DisplayCriticalMessage || X&lt;br /&gt;
|-&lt;br /&gt;
| DisplayMessage || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIState || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIVoice || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBattleEngine || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBlockedComputations || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableNavPtSpecial || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableSecurePosition || X&lt;br /&gt;
|-&lt;br /&gt;
| EndSection || X&lt;br /&gt;
|-&lt;br /&gt;
| FadeView || X&lt;br /&gt;
|-&lt;br /&gt;
| FailMission || X&lt;br /&gt;
|-&lt;br /&gt;
| FlickerActor || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceBattleMusic || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceState || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceVictoryFlourish || X&lt;br /&gt;
|-&lt;br /&gt;
| GenerateStimulus || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoAction || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoLabel || Jump to specific label name&lt;br /&gt;
|-&lt;br /&gt;
| GotoState || Set the state of certain actor(s) referenced by tags&lt;br /&gt;
|-&lt;br /&gt;
| HurtActor || X&lt;br /&gt;
|-&lt;br /&gt;
| IfCondition || X&lt;br /&gt;
|-&lt;br /&gt;
| IfRandomPct || X&lt;br /&gt;
|-&lt;br /&gt;
| Killinstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| Label || Creates a label with specified name&lt;br /&gt;
|-&lt;br /&gt;
| MakeInvulnerable || X&lt;br /&gt;
|-&lt;br /&gt;
| MoverToKeyframe || X&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| ObjectiveUpdate || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAmbientSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayLocalSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMovie || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMusic || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayPropAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlaySound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlaySoundCue || X&lt;br /&gt;
|-&lt;br /&gt;
| ResetFactory || X&lt;br /&gt;
|-&lt;br /&gt;
| Revive || Revive a certain pawn (intended for player and squad members)&lt;br /&gt;
|-&lt;br /&gt;
| ScreenFade || Makes the screen fade in a certain color&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleEngineParams || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleMusicMulti || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBlocked || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCanCancelMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCannotDie || Sets the property bCannotDie of a specified pawn tag to true or false&lt;br /&gt;
|-&lt;br /&gt;
| SetCollision || Sets various collision properties of actor(s) with specified tag&lt;br /&gt;
|-&lt;br /&gt;
| SetHidden || Hide/unhide actor(s) with specified tag&lt;br /&gt;
|-&lt;br /&gt;
| SetImuseState || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPawnIdle || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPhysics || X&lt;br /&gt;
|-&lt;br /&gt;
| SetScriptPriority || X&lt;br /&gt;
|-&lt;br /&gt;
| SetSightRadius || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTeamIndex || X&lt;br /&gt;
|-&lt;br /&gt;
| SetThreat || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTurretUsable || X&lt;br /&gt;
|-&lt;br /&gt;
| SetViewTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShakeView || X&lt;br /&gt;
|-&lt;br /&gt;
| ShootTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowActorObjectiveTracker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowDebriefingScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMenuScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowTitleCardScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowVisor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnActor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnStatusEffect || X&lt;br /&gt;
|-&lt;br /&gt;
| StopFactorySpawning || X&lt;br /&gt;
|-&lt;br /&gt;
| StopShooting || X&lt;br /&gt;
|-&lt;br /&gt;
| SuggestEnemy || X&lt;br /&gt;
|-&lt;br /&gt;
| TeleportToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| TriggerEvent || Trigger a certain event name&lt;br /&gt;
|-&lt;br /&gt;
| TurnTowardPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| UnforceState || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForAnimEnd || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForEvent || Wait for a certain event to trigger to start the action flow&lt;br /&gt;
|-&lt;br /&gt;
| WaitForPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForRandomTimer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForTimer || Wait for n seconds before continuing the action flow&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=339</id>
		<title>Triggers and ScriptedTriggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=339"/>
		<updated>2024-08-02T10:36:40Z</updated>

		<summary type="html">&lt;p&gt;Plasma: /* Actions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setup ==&lt;br /&gt;
&lt;br /&gt;
The purpose of a Trigger is to let some action happen when it gets triggered. (captain obvious)&lt;br /&gt;
&lt;br /&gt;
So what we need for our map, is a Trigger, which will be activated/triggered when the player walks in and a ScriptedTrigger to make the action happen.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Place the trigger on your map where it should get triggered.&lt;br /&gt;
&lt;br /&gt;
Open up the properties of the trigger and change the colission radius width and height to fit your map/room. Remember the action will be triggered when the player touches/walks in the radius of that Trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While having the properties window open for the Trigger, head to the Events tab and enter an event name. This example will use the event name &amp;quot;tutorial&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now when the player walks into the trigger radius, an event with the name &amp;quot;tutorial&amp;quot; will trigger. To let the actual action happen, we need a ScriptedTrigger. So open up the actor window and navigate to Actor -&amp;gt; AIScript -&amp;gt; ScriptedSequence -&amp;gt; ScriptedTrigger and place it next to the normal trigger.&lt;br /&gt;
&lt;br /&gt;
To keep the map nice and clean, it&#039;s recommended to put the Trigger and ScriptedTrigger right next to each other so it won&#039;t be a mess when you place lots of them.&lt;br /&gt;
&lt;br /&gt;
Open properties window and go to the AIScript category. Click on the plus icon in the Actions section. You are now able to to add a new action by clicking on the &amp;quot;Add&amp;quot; button on the right border of the window.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger4.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After adding a new action, we have to select a specific one which is called &amp;quot;ACTION_WaitForEvent&amp;quot;. So open up the drop down menu by clicking on ACTION_AddAmmo and select WaitForEvent. (Right on the bottom) After that, click on &amp;quot;New&amp;quot;. We tell the action chain to wait for a certain event to trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For ExternalEvent, add the event name of the Trigger which is &amp;quot;tutorial&amp;quot; in this case. The ScriptedTrigger waits until an event with this exact name is getting triggered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To sum up everything so far, we created a trigger with a specific event name. It gets triggered when the player steps into the radius. The ScriptedTrigger has an action called &amp;quot;WaitForEvent&amp;quot;, which then gets activated when the trigger gets activated. The rest of the action gets handled by the ScriptedTrigger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So we have a ScriptedTrigger ready to do some action, the actual process of the actions is the same now. You minimize the first Actions tab &amp;quot;[0]&amp;quot; by clicking on the minus and click on &amp;quot;Add&amp;quot; to add a new tab for the actions.&lt;br /&gt;
&lt;br /&gt;
For a list of detailed actions, see below.&lt;br /&gt;
For this tutorial we will be using PlaySound action.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger6.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To add the actual sound, go to the sound browser and select a sound you want to use. Go back to the ScriptedTrigger, click in the Sound field and click on &amp;quot;Use&amp;quot; button on right side of the properties window. The ScriptedTrigger adds the sound automatically to the field.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;PlaySound&amp;quot; action got some additional parameters, for example Volume and bWaitForFinish. While Volume is self explaining, bWaitForFinish is being used to halt the action flow until the sound finished playing, so setting this value to true will wait until the sound is done playing and afterwards continue with the action flow. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Behaviour ==&lt;br /&gt;
&lt;br /&gt;
A Trigger can activate one or more ScriptedTriggers at the same time if the event name is the same.&lt;br /&gt;
&lt;br /&gt;
One or more Triggers can activate one ScriptedTrigger when the event name is the same. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger1 --------|&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Properties ==&lt;br /&gt;
&lt;br /&gt;
The trigger provides some additional customizable properties which are very handy.&lt;br /&gt;
&lt;br /&gt;
[[File:Triggerproperties.png]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Description&lt;br /&gt;
|-&lt;br /&gt;
| bInitiallyActive || Whether the trigger is active or not. Can be toggled via scripted actions.&lt;br /&gt;
|-&lt;br /&gt;
| bTriggerOnceOnly || Whether the trigger should trigger once or multiple times&lt;br /&gt;
|-&lt;br /&gt;
| Message || A message to display when it gets triggered&lt;br /&gt;
|-&lt;br /&gt;
| ReTriggerDelay || Delay in seconds before a retrigger can happen if bTriggerOnceOnly is set to false&lt;br /&gt;
|-&lt;br /&gt;
| TriggerType || What can trigger it&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TriggerType ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Behaviour&lt;br /&gt;
|-&lt;br /&gt;
| TT_PlayerProximity || Trigger is activated by player proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_PawnProximity || Trigger is activated by any pawn&#039;s proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_ClassProximity || Trigger is activated by actor of ClassProximityType only&lt;br /&gt;
|-&lt;br /&gt;
| TT_AnyProximity || Trigger is activated by any actor in proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_Shoot || Trigger is activated by player shooting it&lt;br /&gt;
|-&lt;br /&gt;
| TT_HumanPlayerProximity || Trigger is activated by human player (not bot)&lt;br /&gt;
|-&lt;br /&gt;
| TT_Use || Trigger is activated manually by player pressing use key (&amp;quot;F&amp;quot; by default)&lt;br /&gt;
|-&lt;br /&gt;
| TT_SquadMemberProximity || Trigger is activated by squad member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Actions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Description&lt;br /&gt;
|-&lt;br /&gt;
| AddAmmo || X&lt;br /&gt;
|-&lt;br /&gt;
| AnimateVisorFX || X&lt;br /&gt;
|-&lt;br /&gt;
| AttachToGunship || X&lt;br /&gt;
|-&lt;br /&gt;
| AttachToTurret || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDGrenade || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDHealth || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDShields || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquad || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquadCommandPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| Briefing || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeLevel || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeScript || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadMember || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadStance || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeZoneAudio || X&lt;br /&gt;
|-&lt;br /&gt;
| ConsoleCommand || Execute a console command&lt;br /&gt;
|-&lt;br /&gt;
| Crouch || X&lt;br /&gt;
|-&lt;br /&gt;
| DamageInstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| DestroyActor || X&lt;br /&gt;
|-&lt;br /&gt;
| DestroyPawn || X&lt;br /&gt;
|-&lt;br /&gt;
| DisplayCriticalMessage || X&lt;br /&gt;
|-&lt;br /&gt;
| DisplayMessage || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIState || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIVoice || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBattleEngine || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBlockedComputations || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableNavPtSpecial || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableSecurePosition || X&lt;br /&gt;
|-&lt;br /&gt;
| EndSection || X&lt;br /&gt;
|-&lt;br /&gt;
| FadeView || X&lt;br /&gt;
|-&lt;br /&gt;
| FailMission || X&lt;br /&gt;
|-&lt;br /&gt;
| FlickerActor || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceBattleMusic || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceState || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceVictoryFlourish || X&lt;br /&gt;
|-&lt;br /&gt;
| GenerateStimulus || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoAction || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoLabel || Jump to specific label name&lt;br /&gt;
|-&lt;br /&gt;
| GotoState || Set the state of certain actor(s) referenced by tags&lt;br /&gt;
|-&lt;br /&gt;
| HurtActor || X&lt;br /&gt;
|-&lt;br /&gt;
| IfCondition || X&lt;br /&gt;
|-&lt;br /&gt;
| IfRandomPct || X&lt;br /&gt;
|-&lt;br /&gt;
| Killinstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| Label || Creates a label with specified name&lt;br /&gt;
|-&lt;br /&gt;
| MakeInvulnerable || X&lt;br /&gt;
|-&lt;br /&gt;
| MoverToKeyframe || X&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| ObjectiveUpdate || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAmbientSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayLocalSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMovie || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMusic || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayPropAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlaySound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlaySoundCue || X&lt;br /&gt;
|-&lt;br /&gt;
| ResetFactory || X&lt;br /&gt;
|-&lt;br /&gt;
| Revive || X&lt;br /&gt;
|-&lt;br /&gt;
| ScreenFade || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleEngineParams || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleMusicMulti || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBlocked || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCanCancelMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCannotDie || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCollision || X&lt;br /&gt;
|-&lt;br /&gt;
| SetHidden || X&lt;br /&gt;
|-&lt;br /&gt;
| SetImuseState || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPawnIdle || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPhysics || X&lt;br /&gt;
|-&lt;br /&gt;
| SetScriptPriority || X&lt;br /&gt;
|-&lt;br /&gt;
| SetSightRadius || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTeamIndex || X&lt;br /&gt;
|-&lt;br /&gt;
| SetThreat || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTurretUsable || X&lt;br /&gt;
|-&lt;br /&gt;
| SetViewTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShakeView || X&lt;br /&gt;
|-&lt;br /&gt;
| ShootTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowActorObjectiveTracker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowDebriefingScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMenuScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowTitleCardScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowVisor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnActor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnStatusEffect || X&lt;br /&gt;
|-&lt;br /&gt;
| StopFactorySpawning || X&lt;br /&gt;
|-&lt;br /&gt;
| StopShooting || X&lt;br /&gt;
|-&lt;br /&gt;
| SuggestEnemy || X&lt;br /&gt;
|-&lt;br /&gt;
| TeleportToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| TriggerEvent || Trigger a certain event name&lt;br /&gt;
|-&lt;br /&gt;
| TurnTowardPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| UnforceState || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForAnimEnd || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForEvent || Wait for a certain event to trigger to start the action flow&lt;br /&gt;
|-&lt;br /&gt;
| WaitForPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForRandomTimer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForTimer || Wait for n seconds before continuing the action flow&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=338</id>
		<title>Triggers and ScriptedTriggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=338"/>
		<updated>2024-08-02T10:31:58Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setup ==&lt;br /&gt;
&lt;br /&gt;
The purpose of a Trigger is to let some action happen when it gets triggered. (captain obvious)&lt;br /&gt;
&lt;br /&gt;
So what we need for our map, is a Trigger, which will be activated/triggered when the player walks in and a ScriptedTrigger to make the action happen.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Place the trigger on your map where it should get triggered.&lt;br /&gt;
&lt;br /&gt;
Open up the properties of the trigger and change the colission radius width and height to fit your map/room. Remember the action will be triggered when the player touches/walks in the radius of that Trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While having the properties window open for the Trigger, head to the Events tab and enter an event name. This example will use the event name &amp;quot;tutorial&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now when the player walks into the trigger radius, an event with the name &amp;quot;tutorial&amp;quot; will trigger. To let the actual action happen, we need a ScriptedTrigger. So open up the actor window and navigate to Actor -&amp;gt; AIScript -&amp;gt; ScriptedSequence -&amp;gt; ScriptedTrigger and place it next to the normal trigger.&lt;br /&gt;
&lt;br /&gt;
To keep the map nice and clean, it&#039;s recommended to put the Trigger and ScriptedTrigger right next to each other so it won&#039;t be a mess when you place lots of them.&lt;br /&gt;
&lt;br /&gt;
Open properties window and go to the AIScript category. Click on the plus icon in the Actions section. You are now able to to add a new action by clicking on the &amp;quot;Add&amp;quot; button on the right border of the window.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger4.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After adding a new action, we have to select a specific one which is called &amp;quot;ACTION_WaitForEvent&amp;quot;. So open up the drop down menu by clicking on ACTION_AddAmmo and select WaitForEvent. (Right on the bottom) After that, click on &amp;quot;New&amp;quot;. We tell the action chain to wait for a certain event to trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For ExternalEvent, add the event name of the Trigger which is &amp;quot;tutorial&amp;quot; in this case. The ScriptedTrigger waits until an event with this exact name is getting triggered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To sum up everything so far, we created a trigger with a specific event name. It gets triggered when the player steps into the radius. The ScriptedTrigger has an action called &amp;quot;WaitForEvent&amp;quot;, which then gets activated when the trigger gets activated. The rest of the action gets handled by the ScriptedTrigger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So we have a ScriptedTrigger ready to do some action, the actual process of the actions is the same now. You minimize the first Actions tab &amp;quot;[0]&amp;quot; by clicking on the minus and click on &amp;quot;Add&amp;quot; to add a new tab for the actions.&lt;br /&gt;
&lt;br /&gt;
For a list of detailed actions, see below.&lt;br /&gt;
For this tutorial we will be using PlaySound action.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger6.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To add the actual sound, go to the sound browser and select a sound you want to use. Go back to the ScriptedTrigger, click in the Sound field and click on &amp;quot;Use&amp;quot; button on right side of the properties window. The ScriptedTrigger adds the sound automatically to the field.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;PlaySound&amp;quot; action got some additional parameters, for example Volume and bWaitForFinish. While Volume is self explaining, bWaitForFinish is being used to halt the action flow until the sound finished playing, so setting this value to true will wait until the sound is done playing and afterwards continue with the action flow. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Behaviour ==&lt;br /&gt;
&lt;br /&gt;
A Trigger can activate one or more ScriptedTriggers at the same time if the event name is the same.&lt;br /&gt;
&lt;br /&gt;
One or more Triggers can activate one ScriptedTrigger when the event name is the same. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger1 --------|&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Properties ==&lt;br /&gt;
&lt;br /&gt;
The trigger provides some additional customizable properties which are very handy.&lt;br /&gt;
&lt;br /&gt;
[[File:Triggerproperties.png]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Description&lt;br /&gt;
|-&lt;br /&gt;
| bInitiallyActive || Whether the trigger is active or not. Can be toggled via scripted actions.&lt;br /&gt;
|-&lt;br /&gt;
| bTriggerOnceOnly || Whether the trigger should trigger once or multiple times&lt;br /&gt;
|-&lt;br /&gt;
| Message || A message to display when it gets triggered&lt;br /&gt;
|-&lt;br /&gt;
| ReTriggerDelay || Delay in seconds before a retrigger can happen if bTriggerOnceOnly is set to false&lt;br /&gt;
|-&lt;br /&gt;
| TriggerType || What can trigger it&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TriggerType ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Behaviour&lt;br /&gt;
|-&lt;br /&gt;
| TT_PlayerProximity || Trigger is activated by player proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_PawnProximity || Trigger is activated by any pawn&#039;s proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_ClassProximity || Trigger is activated by actor of ClassProximityType only&lt;br /&gt;
|-&lt;br /&gt;
| TT_AnyProximity || Trigger is activated by any actor in proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_Shoot || Trigger is activated by player shooting it&lt;br /&gt;
|-&lt;br /&gt;
| TT_HumanPlayerProximity || Trigger is activated by human player (not bot)&lt;br /&gt;
|-&lt;br /&gt;
| TT_Use || Trigger is activated manually by player pressing use key (&amp;quot;F&amp;quot; by default)&lt;br /&gt;
|-&lt;br /&gt;
| TT_SquadMemberProximity || Trigger is activated by squad member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Actions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Description&lt;br /&gt;
|-&lt;br /&gt;
| AddAmmo || X&lt;br /&gt;
|-&lt;br /&gt;
| AnimateVisorFX || X&lt;br /&gt;
|-&lt;br /&gt;
| AttachToGunship || X&lt;br /&gt;
|-&lt;br /&gt;
| AttachToTurret || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDGrenade || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDHealth || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDShields || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquad || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquadCommandPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| Briefing || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeLevel || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeScript || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadMember || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadStance || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeZoneAudio || X&lt;br /&gt;
|-&lt;br /&gt;
| ConsoleCommand || X&lt;br /&gt;
|-&lt;br /&gt;
| Crouch || X&lt;br /&gt;
|-&lt;br /&gt;
| DamageInstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| DestroyActor || X&lt;br /&gt;
|-&lt;br /&gt;
| DestroyPawn || X&lt;br /&gt;
|-&lt;br /&gt;
| DisplayCriticalMessage || X&lt;br /&gt;
|-&lt;br /&gt;
| DisplayMessage || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIState || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIVoice || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBattleEngine || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBlockedComputations || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableNavPtSpecial || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableSecurePosition || X&lt;br /&gt;
|-&lt;br /&gt;
| EndSection || X&lt;br /&gt;
|-&lt;br /&gt;
| FadeView || X&lt;br /&gt;
|-&lt;br /&gt;
| FailMission || X&lt;br /&gt;
|-&lt;br /&gt;
| FlickerActor || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceBattleMusic || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceState || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceVictoryFlourish || X&lt;br /&gt;
|-&lt;br /&gt;
| GenerateStimulus || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoAction || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoLabel || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoState || X&lt;br /&gt;
|-&lt;br /&gt;
| HurtActor || X&lt;br /&gt;
|-&lt;br /&gt;
| IfCondition || X&lt;br /&gt;
|-&lt;br /&gt;
| IfRandomPct || X&lt;br /&gt;
|-&lt;br /&gt;
| Killinstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| Label || X&lt;br /&gt;
|-&lt;br /&gt;
| MakeInvulnerable || X&lt;br /&gt;
|-&lt;br /&gt;
| MoverToKeyframe || X&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| ObjectiveUpdate || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAmbientSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayLocalSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMovie || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMusic || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayPropAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlaySound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlaySoundCue || X&lt;br /&gt;
|-&lt;br /&gt;
| ResetFactory || X&lt;br /&gt;
|-&lt;br /&gt;
| Revive || X&lt;br /&gt;
|-&lt;br /&gt;
| ScreenFade || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleEngineParams || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleMusicMulti || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBlocked || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCanCancelMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCannotDie || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCollision || X&lt;br /&gt;
|-&lt;br /&gt;
| SetHidden || X&lt;br /&gt;
|-&lt;br /&gt;
| SetImuseState || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPawnIdle || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPhysics || X&lt;br /&gt;
|-&lt;br /&gt;
| SetScriptPriority || X&lt;br /&gt;
|-&lt;br /&gt;
| SetSightRadius || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTeamIndex || X&lt;br /&gt;
|-&lt;br /&gt;
| SetThreat || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTurretUsable || X&lt;br /&gt;
|-&lt;br /&gt;
| SetViewTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShakeView || X&lt;br /&gt;
|-&lt;br /&gt;
| ShootTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowActorObjectiveTracker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowDebriefingScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMenuScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowTitleCardScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowVisor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnActor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnStatusEffect || X&lt;br /&gt;
|-&lt;br /&gt;
| StopFactorySpawning || X&lt;br /&gt;
|-&lt;br /&gt;
| StopShooting || X&lt;br /&gt;
|-&lt;br /&gt;
| SuggestEnemy || X&lt;br /&gt;
|-&lt;br /&gt;
| TeleportToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| TriggerEvent || Trigger an event by its name&lt;br /&gt;
|-&lt;br /&gt;
| TurnTowardPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| UnforceState || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForAnimEnd || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForEvent || Wait for a certain event to trigger to start the action flow&lt;br /&gt;
|-&lt;br /&gt;
| WaitForPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForRandomTimer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForTimer || Wait for n seconds before continuing the action flow&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=337</id>
		<title>Triggers and ScriptedTriggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=337"/>
		<updated>2024-08-01T19:55:29Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setup ==&lt;br /&gt;
&lt;br /&gt;
The purpose of a Trigger is to let some action happen when it gets triggered. (captain obvious)&lt;br /&gt;
&lt;br /&gt;
So what we need for our map, is a Trigger, which will be activated/triggered when the player walks in and a ScriptedTrigger to make the action happen.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Place the trigger on your map where it should get triggered.&lt;br /&gt;
&lt;br /&gt;
Open up the properties of the trigger and change the colission radius width and height to fit your map/room. Remember the action will be triggered when the player touches/walks in the radius of that Trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While having the properties window open for the Trigger, head to the Events tab and enter an event name. This example will use the event name &amp;quot;tutorial&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now when the player walks into the trigger radius, an event with the name &amp;quot;tutorial&amp;quot; will trigger. To let the actual action happen, we need a ScriptedTrigger. So open up the actor window and navigate to Actor -&amp;gt; AIScript -&amp;gt; ScriptedSequence -&amp;gt; ScriptedTrigger and place it next to the normal trigger.&lt;br /&gt;
&lt;br /&gt;
To keep the map nice and clean, it&#039;s recommended to put the Trigger and ScriptedTrigger right next to each other so it won&#039;t be a mess when you place lots of them.&lt;br /&gt;
&lt;br /&gt;
Open properties window and go to the AIScript category. Click on the plus icon in the Actions section. You are now able to to add a new action by clicking on the &amp;quot;Add&amp;quot; button on the right border of the window.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger4.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After adding a new action, we have to select a specific one which is called &amp;quot;ACTION_WaitForEvent&amp;quot;. So open up the drop down menu by clicking on ACTION_AddAmmo and select WaitForEvent. (Right on the bottom) After that, click on &amp;quot;New&amp;quot;. We tell the action chain to wait for a certain event to trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For ExternalEvent, add the event name of the Trigger which is &amp;quot;tutorial&amp;quot; in this case. The ScriptedTrigger waits until an event with this exact name is getting triggered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To sum up everything so far, we created a trigger with a specific event name. It gets triggered when the player steps into the radius. The ScriptedTrigger has an action called &amp;quot;WaitForEvent&amp;quot;, which then gets activated when the trigger gets activated. The rest of the action gets handled by the ScriptedTrigger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So we have a ScriptedTrigger ready to do some action, the actual process of the actions is the same now. You minimize the first Actions tab &amp;quot;[0]&amp;quot; by clicking on the minus and click on &amp;quot;Add&amp;quot; to add a new tab for the actions.&lt;br /&gt;
&lt;br /&gt;
For a list of detailed actions, see below.&lt;br /&gt;
For this tutorial we will be using PlaySound action.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger6.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To add the actual sound, go to the sound browser and select a sound you want to use. Go back to the ScriptedTrigger, click in the Sound field and click on &amp;quot;Use&amp;quot; button on right side of the properties window. The ScriptedTrigger adds the sound automatically to the field.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;PlaySound&amp;quot; action got some additional parameters, for example Volume and bWaitForFinish. While Volume is self explaining, bWaitForFinish is being used to halt the action flow until the sound finished playing, so setting this value to true will wait until the sound is done playing and afterwards continue with the action flow. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Behaviour ==&lt;br /&gt;
&lt;br /&gt;
A Trigger can activate one or more ScriptedTriggers at the same time if the event name is the same.&lt;br /&gt;
&lt;br /&gt;
One or more Triggers can activate one ScriptedTrigger when the event name is the same. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger1 --------|&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Properties ==&lt;br /&gt;
&lt;br /&gt;
The trigger provides some additional customizable properties which are very handy.&lt;br /&gt;
&lt;br /&gt;
[[File:Triggerproperties.png]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Description&lt;br /&gt;
|-&lt;br /&gt;
| bInitiallyActive || Whether the trigger is active or not. Can be toggled via scripted actions.&lt;br /&gt;
|-&lt;br /&gt;
| bTriggerOnceOnly || Whether the trigger should trigger once or multiple times&lt;br /&gt;
|-&lt;br /&gt;
| Message || A message to display when it gets triggered&lt;br /&gt;
|-&lt;br /&gt;
| ReTriggerDelay || Delay in seconds before a retrigger can happen if bTriggerOnceOnly is set to false&lt;br /&gt;
|-&lt;br /&gt;
| TriggerType || What can trigger it&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TriggerType ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Behaviour&lt;br /&gt;
|-&lt;br /&gt;
| TT_PlayerProximity || Trigger is activated by player proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_PawnProximity || Trigger is activated by any pawn&#039;s proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_ClassProximity || Trigger is activated by actor of ClassProximityType only&lt;br /&gt;
|-&lt;br /&gt;
| TT_AnyProximity || Trigger is activated by any actor in proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_Shoot || Trigger is activated by player shooting it&lt;br /&gt;
|-&lt;br /&gt;
| TT_HumanPlayerProximity || Trigger is activated by human player (not bot)&lt;br /&gt;
|-&lt;br /&gt;
| TT_Use || Trigger is activated manually by player pressing use key (&amp;quot;F&amp;quot; by default)&lt;br /&gt;
|-&lt;br /&gt;
| TT_SquadMemberProximity || Trigger is activated by squad member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Actions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Description&lt;br /&gt;
|-&lt;br /&gt;
| AddAmmo || X&lt;br /&gt;
|-&lt;br /&gt;
| AnimateVisorFX || X&lt;br /&gt;
|-&lt;br /&gt;
| AttachToGunship || X&lt;br /&gt;
|-&lt;br /&gt;
| AttachToTurret || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDGrenade || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDHealth || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDShields || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquad || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquadCommandPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| Briefing || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeLevel || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeScript || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadMember || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadStance || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeZoneAudio || X&lt;br /&gt;
|-&lt;br /&gt;
| ConsoleCommand || X&lt;br /&gt;
|-&lt;br /&gt;
| Crouch || X&lt;br /&gt;
|-&lt;br /&gt;
| DamageInstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| DestroyActor || X&lt;br /&gt;
|-&lt;br /&gt;
| DestroyPawn || X&lt;br /&gt;
|-&lt;br /&gt;
| DisplayCriticalMessage || X&lt;br /&gt;
|-&lt;br /&gt;
| DisplayMessage || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIState || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIVoice || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBattleEngine || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBlockedComputations || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableNavPtSpecial || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableSecurePosition || X&lt;br /&gt;
|-&lt;br /&gt;
| EndSection || X&lt;br /&gt;
|-&lt;br /&gt;
| FadeView || X&lt;br /&gt;
|-&lt;br /&gt;
| FailMission || X&lt;br /&gt;
|-&lt;br /&gt;
| FlickerActor || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceBattleMusic || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceState || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceVictoryFlourish || X&lt;br /&gt;
|-&lt;br /&gt;
| GenerateStimulus || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoAction || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoLabel || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoState || X&lt;br /&gt;
|-&lt;br /&gt;
| HurtActor || X&lt;br /&gt;
|-&lt;br /&gt;
| IfCondition || X&lt;br /&gt;
|-&lt;br /&gt;
| IfRandomPct || X&lt;br /&gt;
|-&lt;br /&gt;
| Killinstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| Label || X&lt;br /&gt;
|-&lt;br /&gt;
| MakeInvulnerable || X&lt;br /&gt;
|-&lt;br /&gt;
| MoverToKeyframe || X&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| ObjectiveUpdate || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAmbientSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayLocalSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMovie || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMusic || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayPropAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlaySound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlaySoundCue || X&lt;br /&gt;
|-&lt;br /&gt;
| ResetFactory || X&lt;br /&gt;
|-&lt;br /&gt;
| Revive || X&lt;br /&gt;
|-&lt;br /&gt;
| ScreenFade || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleEngineParams || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleMusicMulti || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBlocked || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCanCancelMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCannotDie || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCollision || X&lt;br /&gt;
|-&lt;br /&gt;
| SetHidden || X&lt;br /&gt;
|-&lt;br /&gt;
| SetImuseState || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPawnIdle || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPhysics || X&lt;br /&gt;
|-&lt;br /&gt;
| SetScriptPriority || X&lt;br /&gt;
|-&lt;br /&gt;
| SetSightRadius || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTeamIndex || X&lt;br /&gt;
|-&lt;br /&gt;
| SetThreat || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTurretUsable || X&lt;br /&gt;
|-&lt;br /&gt;
| SetViewTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShakeView || X&lt;br /&gt;
|-&lt;br /&gt;
| ShootTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowActorObjectiveTracker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowDebriefingScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMenuScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowTitleCardScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowVisor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnActor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnStatusEffect || X&lt;br /&gt;
|-&lt;br /&gt;
| StopFactorySpawning || X&lt;br /&gt;
|-&lt;br /&gt;
| StopShooting || X&lt;br /&gt;
|-&lt;br /&gt;
| SuggestEnemy || X&lt;br /&gt;
|-&lt;br /&gt;
| TeleportToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| TriggerEvent || X&lt;br /&gt;
|-&lt;br /&gt;
| TurnTowardPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| UnforceState || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForAnimEnd || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForEvent || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForRandomTimer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForTimer || X&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=336</id>
		<title>Triggers and ScriptedTriggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=336"/>
		<updated>2024-08-01T19:54:04Z</updated>

		<summary type="html">&lt;p&gt;Plasma: /* TriggerType */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setup ==&lt;br /&gt;
&lt;br /&gt;
The purpose of a Trigger is to let some action happen when it gets triggered. (captain obvious)&lt;br /&gt;
&lt;br /&gt;
So what we need for our map, is a Trigger, which will be activated/triggered when the player walks in and a ScriptedTrigger to make the action happen.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Place the trigger on your map where it should get triggered.&lt;br /&gt;
&lt;br /&gt;
Open up the properties of the trigger and change the colission radius width and height to fit your map/room. Remember the action will be triggered when the player touches/walks in the radius of that Trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While having the properties window open for the Trigger, head to the Events tab and enter an event name. This example will use the event name &amp;quot;tutorial&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now when the player walks into the trigger radius, an event with the name &amp;quot;tutorial&amp;quot; will trigger. To let the actual action happen, we need a ScriptedTrigger. So open up the actor window and navigate to Actor -&amp;gt; AIScript -&amp;gt; ScriptedSequence -&amp;gt; ScriptedTrigger and place it next to the normal trigger.&lt;br /&gt;
&lt;br /&gt;
To keep the map nice and clean, it&#039;s recommended to put the Trigger and ScriptedTrigger right next to each other so it won&#039;t be a mess when you place lots of them.&lt;br /&gt;
&lt;br /&gt;
Open properties window and go to the AIScript category. Click on the plus icon in the Actions section. You are now able to to add a new action by clicking on the &amp;quot;Add&amp;quot; button on the right border of the window.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger4.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After adding a new action, we have to select a specific one which is called &amp;quot;ACTION_WaitForEvent&amp;quot;. So open up the drop down menu by clicking on ACTION_AddAmmo and select WaitForEvent. (Right on the bottom) After that, click on &amp;quot;New&amp;quot;. We tell the action chain to wait for a certain event to trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For ExternalEvent, add the event name of the Trigger which is &amp;quot;tutorial&amp;quot; in this case. The ScriptedTrigger waits until an event with this exact name is getting triggered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To sum up everything so far, we created a trigger with a specific event name. It gets triggered when the player steps into the radius. The ScriptedTrigger has an action called &amp;quot;WaitForEvent&amp;quot;, which then gets activated when the trigger gets activated. The rest of the action gets handled by the ScriptedTrigger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So we have a ScriptedTrigger ready to do some action, the actual process of the actions is the same now. You minimize the first Actions tab &amp;quot;[0]&amp;quot; by clicking on the minus and click on &amp;quot;Add&amp;quot; to add a new tab for the actions.&lt;br /&gt;
&lt;br /&gt;
For a list of detailed actions, see below.&lt;br /&gt;
For this tutorial we will be using PlaySound action.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger6.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To add the actual sound, go to the sound browser and select a sound you want to use. Go back to the ScriptedTrigger, click in the Sound field and click on &amp;quot;Use&amp;quot; button on right side of the properties window. The ScriptedTrigger adds the sound automatically to the field.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;PlaySound&amp;quot; action got some additional parameters, for example Volume and bWaitForFinish. While Volume is self explaining, bWaitForFinish is being used to halt the action flow until the sound finished playing, so setting this value to true will wait until the sound is done playing and afterwards continue with the action flow. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Behaviour ==&lt;br /&gt;
&lt;br /&gt;
A Trigger can activate one or more ScriptedTriggers at the same time if the event name is the same.&lt;br /&gt;
&lt;br /&gt;
One or more Triggers can activate one ScriptedTrigger when the event name is the same. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger1 --------|&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Properties ==&lt;br /&gt;
&lt;br /&gt;
The trigger provides some additional customizable properties which are very handy.&lt;br /&gt;
&lt;br /&gt;
[[File:Triggerproperties.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* bInitiallyActive - Whether the trigger is active or not. Can be toggled via scripted actions.&lt;br /&gt;
* bTriggerOnceOnly - Whether the trigger should trigger once or multiple times&lt;br /&gt;
* Message - A message to display when it gets triggered&lt;br /&gt;
* ReTriggerDelay - Delay in seconds before a retrigger can happen if bTriggerOnceOnly is set to false&lt;br /&gt;
* TriggerType - What can trigger it&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TriggerType ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Behaviour&lt;br /&gt;
|-&lt;br /&gt;
| TT_PlayerProximity || Trigger is activated by player proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_PawnProximity || Trigger is activated by any pawn&#039;s proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_ClassProximity || Trigger is activated by actor of ClassProximityType only&lt;br /&gt;
|-&lt;br /&gt;
| TT_AnyProximity || Trigger is activated by any actor in proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_Shoot || Trigger is activated by player shooting it&lt;br /&gt;
|-&lt;br /&gt;
| TT_HumanPlayerProximity || Trigger is activated by human player (not bot)&lt;br /&gt;
|-&lt;br /&gt;
| TT_Use || Trigger is activated manually by player pressing use key (&amp;quot;F&amp;quot; by default)&lt;br /&gt;
|-&lt;br /&gt;
| TT_SquadMemberProximity || Trigger is activated by squad member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Actions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Description&lt;br /&gt;
|-&lt;br /&gt;
| AddAmmo || X&lt;br /&gt;
|-&lt;br /&gt;
| AnimateVisorFX || X&lt;br /&gt;
|-&lt;br /&gt;
| AttachToGunship || X&lt;br /&gt;
|-&lt;br /&gt;
| AttachToTurret || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDGrenade || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDHealth || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDShields || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquad || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquadCommandPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| Briefing || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeLevel || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeScript || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadMember || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadStance || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeZoneAudio || X&lt;br /&gt;
|-&lt;br /&gt;
| ConsoleCommand || X&lt;br /&gt;
|-&lt;br /&gt;
| Crouch || X&lt;br /&gt;
|-&lt;br /&gt;
| DamageInstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| DestroyActor || X&lt;br /&gt;
|-&lt;br /&gt;
| DestroyPawn || X&lt;br /&gt;
|-&lt;br /&gt;
| DisplayCriticalMessage || X&lt;br /&gt;
|-&lt;br /&gt;
| DisplayMessage || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIState || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIVoice || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBattleEngine || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBlockedComputations || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableNavPtSpecial || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableSecurePosition || X&lt;br /&gt;
|-&lt;br /&gt;
| EndSection || X&lt;br /&gt;
|-&lt;br /&gt;
| FadeView || X&lt;br /&gt;
|-&lt;br /&gt;
| FailMission || X&lt;br /&gt;
|-&lt;br /&gt;
| FlickerActor || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceBattleMusic || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceState || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceVictoryFlourish || X&lt;br /&gt;
|-&lt;br /&gt;
| GenerateStimulus || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoAction || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoLabel || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoState || X&lt;br /&gt;
|-&lt;br /&gt;
| HurtActor || X&lt;br /&gt;
|-&lt;br /&gt;
| IfCondition || X&lt;br /&gt;
|-&lt;br /&gt;
| IfRandomPct || X&lt;br /&gt;
|-&lt;br /&gt;
| Killinstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| Label || X&lt;br /&gt;
|-&lt;br /&gt;
| MakeInvulnerable || X&lt;br /&gt;
|-&lt;br /&gt;
| MoverToKeyframe || X&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| ObjectiveUpdate || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAmbientSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayLocalSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMovie || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMusic || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayPropAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlaySound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlaySoundCue || X&lt;br /&gt;
|-&lt;br /&gt;
| ResetFactory || X&lt;br /&gt;
|-&lt;br /&gt;
| Revive || X&lt;br /&gt;
|-&lt;br /&gt;
| ScreenFade || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleEngineParams || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleMusicMulti || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBlocked || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCanCancelMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCannotDie || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCollision || X&lt;br /&gt;
|-&lt;br /&gt;
| SetHidden || X&lt;br /&gt;
|-&lt;br /&gt;
| SetImuseState || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPawnIdle || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPhysics || X&lt;br /&gt;
|-&lt;br /&gt;
| SetScriptPriority || X&lt;br /&gt;
|-&lt;br /&gt;
| SetSightRadius || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTeamIndex || X&lt;br /&gt;
|-&lt;br /&gt;
| SetThreat || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTurretUsable || X&lt;br /&gt;
|-&lt;br /&gt;
| SetViewTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShakeView || X&lt;br /&gt;
|-&lt;br /&gt;
| ShootTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowActorObjectiveTracker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowDebriefingScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMenuScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowTitleCardScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowVisor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnActor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnStatusEffect || X&lt;br /&gt;
|-&lt;br /&gt;
| StopFactorySpawning || X&lt;br /&gt;
|-&lt;br /&gt;
| StopShooting || X&lt;br /&gt;
|-&lt;br /&gt;
| SuggestEnemy || X&lt;br /&gt;
|-&lt;br /&gt;
| TeleportToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| TriggerEvent || X&lt;br /&gt;
|-&lt;br /&gt;
| TurnTowardPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| UnforceState || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForAnimEnd || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForEvent || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForRandomTimer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForTimer || X&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=335</id>
		<title>Triggers and ScriptedTriggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=335"/>
		<updated>2024-08-01T19:53:35Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setup ==&lt;br /&gt;
&lt;br /&gt;
The purpose of a Trigger is to let some action happen when it gets triggered. (captain obvious)&lt;br /&gt;
&lt;br /&gt;
So what we need for our map, is a Trigger, which will be activated/triggered when the player walks in and a ScriptedTrigger to make the action happen.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Place the trigger on your map where it should get triggered.&lt;br /&gt;
&lt;br /&gt;
Open up the properties of the trigger and change the colission radius width and height to fit your map/room. Remember the action will be triggered when the player touches/walks in the radius of that Trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While having the properties window open for the Trigger, head to the Events tab and enter an event name. This example will use the event name &amp;quot;tutorial&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now when the player walks into the trigger radius, an event with the name &amp;quot;tutorial&amp;quot; will trigger. To let the actual action happen, we need a ScriptedTrigger. So open up the actor window and navigate to Actor -&amp;gt; AIScript -&amp;gt; ScriptedSequence -&amp;gt; ScriptedTrigger and place it next to the normal trigger.&lt;br /&gt;
&lt;br /&gt;
To keep the map nice and clean, it&#039;s recommended to put the Trigger and ScriptedTrigger right next to each other so it won&#039;t be a mess when you place lots of them.&lt;br /&gt;
&lt;br /&gt;
Open properties window and go to the AIScript category. Click on the plus icon in the Actions section. You are now able to to add a new action by clicking on the &amp;quot;Add&amp;quot; button on the right border of the window.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger4.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After adding a new action, we have to select a specific one which is called &amp;quot;ACTION_WaitForEvent&amp;quot;. So open up the drop down menu by clicking on ACTION_AddAmmo and select WaitForEvent. (Right on the bottom) After that, click on &amp;quot;New&amp;quot;. We tell the action chain to wait for a certain event to trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For ExternalEvent, add the event name of the Trigger which is &amp;quot;tutorial&amp;quot; in this case. The ScriptedTrigger waits until an event with this exact name is getting triggered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To sum up everything so far, we created a trigger with a specific event name. It gets triggered when the player steps into the radius. The ScriptedTrigger has an action called &amp;quot;WaitForEvent&amp;quot;, which then gets activated when the trigger gets activated. The rest of the action gets handled by the ScriptedTrigger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So we have a ScriptedTrigger ready to do some action, the actual process of the actions is the same now. You minimize the first Actions tab &amp;quot;[0]&amp;quot; by clicking on the minus and click on &amp;quot;Add&amp;quot; to add a new tab for the actions.&lt;br /&gt;
&lt;br /&gt;
For a list of detailed actions, see below.&lt;br /&gt;
For this tutorial we will be using PlaySound action.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger6.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To add the actual sound, go to the sound browser and select a sound you want to use. Go back to the ScriptedTrigger, click in the Sound field and click on &amp;quot;Use&amp;quot; button on right side of the properties window. The ScriptedTrigger adds the sound automatically to the field.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;PlaySound&amp;quot; action got some additional parameters, for example Volume and bWaitForFinish. While Volume is self explaining, bWaitForFinish is being used to halt the action flow until the sound finished playing, so setting this value to true will wait until the sound is done playing and afterwards continue with the action flow. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Behaviour ==&lt;br /&gt;
&lt;br /&gt;
A Trigger can activate one or more ScriptedTriggers at the same time if the event name is the same.&lt;br /&gt;
&lt;br /&gt;
One or more Triggers can activate one ScriptedTrigger when the event name is the same. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger1 --------|&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Properties ==&lt;br /&gt;
&lt;br /&gt;
The trigger provides some additional customizable properties which are very handy.&lt;br /&gt;
&lt;br /&gt;
[[File:Triggerproperties.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* bInitiallyActive - Whether the trigger is active or not. Can be toggled via scripted actions.&lt;br /&gt;
* bTriggerOnceOnly - Whether the trigger should trigger once or multiple times&lt;br /&gt;
* Message - A message to display when it gets triggered&lt;br /&gt;
* ReTriggerDelay - Delay in seconds before a retrigger can happen if bTriggerOnceOnly is set to false&lt;br /&gt;
* TriggerType - What can trigger it&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TriggerType ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Behaviour&lt;br /&gt;
|-&lt;br /&gt;
| TT_PlayerProximity || Trigger is activated by player proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_PawnProximity || Trigger is activated by any pawn&#039;s proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_ClassProximity || Trigger is activated by actor of ClassProximityType only&lt;br /&gt;
|-&lt;br /&gt;
| TT_AnyProximity || Trigger is activated by any actor in proximity&lt;br /&gt;
|-&lt;br /&gt;
| TT_Shoot || Trigger is activated by player shooting it&lt;br /&gt;
|-&lt;br /&gt;
| TT_HumanPlayerProximity || Trigger activated by human player (not bot)&lt;br /&gt;
|-&lt;br /&gt;
| TT_Use || Trigger activated manually by player pressing use key (&amp;quot;F&amp;quot; by default)&lt;br /&gt;
|-&lt;br /&gt;
| TT_SquadMemberProximity || Trigger activated by squad member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Actions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Description&lt;br /&gt;
|-&lt;br /&gt;
| AddAmmo || X&lt;br /&gt;
|-&lt;br /&gt;
| AnimateVisorFX || X&lt;br /&gt;
|-&lt;br /&gt;
| AttachToGunship || X&lt;br /&gt;
|-&lt;br /&gt;
| AttachToTurret || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDGrenade || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDHealth || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDShields || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquad || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquadCommandPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| Briefing || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeLevel || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeScript || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadMember || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadStance || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeZoneAudio || X&lt;br /&gt;
|-&lt;br /&gt;
| ConsoleCommand || X&lt;br /&gt;
|-&lt;br /&gt;
| Crouch || X&lt;br /&gt;
|-&lt;br /&gt;
| DamageInstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| DestroyActor || X&lt;br /&gt;
|-&lt;br /&gt;
| DestroyPawn || X&lt;br /&gt;
|-&lt;br /&gt;
| DisplayCriticalMessage || X&lt;br /&gt;
|-&lt;br /&gt;
| DisplayMessage || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIState || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIVoice || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBattleEngine || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBlockedComputations || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableNavPtSpecial || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableSecurePosition || X&lt;br /&gt;
|-&lt;br /&gt;
| EndSection || X&lt;br /&gt;
|-&lt;br /&gt;
| FadeView || X&lt;br /&gt;
|-&lt;br /&gt;
| FailMission || X&lt;br /&gt;
|-&lt;br /&gt;
| FlickerActor || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceBattleMusic || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceState || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceVictoryFlourish || X&lt;br /&gt;
|-&lt;br /&gt;
| GenerateStimulus || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoAction || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoLabel || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoState || X&lt;br /&gt;
|-&lt;br /&gt;
| HurtActor || X&lt;br /&gt;
|-&lt;br /&gt;
| IfCondition || X&lt;br /&gt;
|-&lt;br /&gt;
| IfRandomPct || X&lt;br /&gt;
|-&lt;br /&gt;
| Killinstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| Label || X&lt;br /&gt;
|-&lt;br /&gt;
| MakeInvulnerable || X&lt;br /&gt;
|-&lt;br /&gt;
| MoverToKeyframe || X&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| ObjectiveUpdate || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAmbientSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayLocalSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMovie || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMusic || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayPropAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlaySound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlaySoundCue || X&lt;br /&gt;
|-&lt;br /&gt;
| ResetFactory || X&lt;br /&gt;
|-&lt;br /&gt;
| Revive || X&lt;br /&gt;
|-&lt;br /&gt;
| ScreenFade || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleEngineParams || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleMusicMulti || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBlocked || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCanCancelMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCannotDie || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCollision || X&lt;br /&gt;
|-&lt;br /&gt;
| SetHidden || X&lt;br /&gt;
|-&lt;br /&gt;
| SetImuseState || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPawnIdle || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPhysics || X&lt;br /&gt;
|-&lt;br /&gt;
| SetScriptPriority || X&lt;br /&gt;
|-&lt;br /&gt;
| SetSightRadius || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTeamIndex || X&lt;br /&gt;
|-&lt;br /&gt;
| SetThreat || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTurretUsable || X&lt;br /&gt;
|-&lt;br /&gt;
| SetViewTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShakeView || X&lt;br /&gt;
|-&lt;br /&gt;
| ShootTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowActorObjectiveTracker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowDebriefingScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMenuScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowTitleCardScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowVisor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnActor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnStatusEffect || X&lt;br /&gt;
|-&lt;br /&gt;
| StopFactorySpawning || X&lt;br /&gt;
|-&lt;br /&gt;
| StopShooting || X&lt;br /&gt;
|-&lt;br /&gt;
| SuggestEnemy || X&lt;br /&gt;
|-&lt;br /&gt;
| TeleportToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| TriggerEvent || X&lt;br /&gt;
|-&lt;br /&gt;
| TurnTowardPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| UnforceState || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForAnimEnd || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForEvent || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForRandomTimer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForTimer || X&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=334</id>
		<title>Triggers and ScriptedTriggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Triggers_and_ScriptedTriggers&amp;diff=334"/>
		<updated>2024-08-01T19:51:32Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setup ==&lt;br /&gt;
&lt;br /&gt;
The purpose of a Trigger is to let some action happen when it gets triggered. (captain obvious)&lt;br /&gt;
&lt;br /&gt;
So what we need for our map, is a Trigger, which will be activated/triggered when the player walks in and a ScriptedTrigger to make the action happen.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Place the trigger on your map where it should get triggered.&lt;br /&gt;
&lt;br /&gt;
Open up the properties of the trigger and change the colission radius width and height to fit your map/room. Remember the action will be triggered when the player touches/walks in the radius of that Trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While having the properties window open for the Trigger, head to the Events tab and enter an event name. This example will use the event name &amp;quot;tutorial&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now when the player walks into the trigger radius, an event with the name &amp;quot;tutorial&amp;quot; will trigger. To let the actual action happen, we need a ScriptedTrigger. So open up the actor window and navigate to Actor -&amp;gt; AIScript -&amp;gt; ScriptedSequence -&amp;gt; ScriptedTrigger and place it next to the normal trigger.&lt;br /&gt;
&lt;br /&gt;
To keep the map nice and clean, it&#039;s recommended to put the Trigger and ScriptedTrigger right next to each other so it won&#039;t be a mess when you place lots of them.&lt;br /&gt;
&lt;br /&gt;
Open properties window and go to the AIScript category. Click on the plus icon in the Actions section. You are now able to to add a new action by clicking on the &amp;quot;Add&amp;quot; button on the right border of the window.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger4.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After adding a new action, we have to select a specific one which is called &amp;quot;ACTION_WaitForEvent&amp;quot;. So open up the drop down menu by clicking on ACTION_AddAmmo and select WaitForEvent. (Right on the bottom) After that, click on &amp;quot;New&amp;quot;. We tell the action chain to wait for a certain event to trigger.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For ExternalEvent, add the event name of the Trigger which is &amp;quot;tutorial&amp;quot; in this case. The ScriptedTrigger waits until an event with this exact name is getting triggered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To sum up everything so far, we created a trigger with a specific event name. It gets triggered when the player steps into the radius. The ScriptedTrigger has an action called &amp;quot;WaitForEvent&amp;quot;, which then gets activated when the trigger gets activated. The rest of the action gets handled by the ScriptedTrigger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So we have a ScriptedTrigger ready to do some action, the actual process of the actions is the same now. You minimize the first Actions tab &amp;quot;[0]&amp;quot; by clicking on the minus and click on &amp;quot;Add&amp;quot; to add a new tab for the actions.&lt;br /&gt;
&lt;br /&gt;
For a list of detailed actions, see below.&lt;br /&gt;
For this tutorial we will be using PlaySound action.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger6.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To add the actual sound, go to the sound browser and select a sound you want to use. Go back to the ScriptedTrigger, click in the Sound field and click on &amp;quot;Use&amp;quot; button on right side of the properties window. The ScriptedTrigger adds the sound automatically to the field.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;PlaySound&amp;quot; action got some additional parameters, for example Volume and bWaitForFinish. While Volume is self explaining, bWaitForFinish is being used to halt the action flow until the sound finished playing, so setting this value to true will wait until the sound is done playing and afterwards continue with the action flow. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Behaviour ==&lt;br /&gt;
&lt;br /&gt;
A Trigger can activate one or more ScriptedTriggers at the same time if the event name is the same.&lt;br /&gt;
&lt;br /&gt;
One or more Triggers can activate one ScriptedTrigger when the event name is the same. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Trigger0 --------|&lt;br /&gt;
                 |------- ScriptedTrigger0&lt;br /&gt;
Trigger1 --------|&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigger Properties ==&lt;br /&gt;
&lt;br /&gt;
The trigger provides some additional customizable properties which are very handy.&lt;br /&gt;
&lt;br /&gt;
[[File:Triggerproperties.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* bInitiallyActive - Whether the trigger is active or not. Can be toggled via scripted actions.&lt;br /&gt;
* bTriggerOnceOnly - Whether the trigger should trigger once or multiple times&lt;br /&gt;
* Message - A message to display when it gets triggered&lt;br /&gt;
* ReTriggerDelay - Delay in seconds before a retrigger can happen if bTriggerOnceOnly is set to false&lt;br /&gt;
* TriggerType - What can trigger it&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TriggerType ==&lt;br /&gt;
&lt;br /&gt;
* TT_PlayerProximity - Trigger is activated by player proximity&lt;br /&gt;
* TT_PawnProximity - Trigger is activated by any pawn&#039;s proximity&lt;br /&gt;
* TT_ClassProximity - Trigger is activated by actor of ClassProximityType only&lt;br /&gt;
* TT_AnyProximity - Trigger is activated by any actor in proximity&lt;br /&gt;
* TT_Shoot - Trigger is activated by player shooting it&lt;br /&gt;
* TT_HumanPlayerProximity - Trigger activated by human player (not bot)&lt;br /&gt;
* TT_Use - Trigger activated manually by player pressing use key (&amp;quot;F&amp;quot; by default)&lt;br /&gt;
* TT_SquadMemberProximity - Trigger activated by squad member&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Actions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Description&lt;br /&gt;
|-&lt;br /&gt;
| AddAmmo || X&lt;br /&gt;
|-&lt;br /&gt;
| AnimateVisorFX || X&lt;br /&gt;
|-&lt;br /&gt;
| AttachToGunship || X&lt;br /&gt;
|-&lt;br /&gt;
| AttachToTurret || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDGrenade || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDHealth || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDShields || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquad || X&lt;br /&gt;
|-&lt;br /&gt;
| BlinkHUDSquadCommandPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| Briefing || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeLevel || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeScript || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadMember || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeSquadStance || X&lt;br /&gt;
|-&lt;br /&gt;
| ChangeZoneAudio || X&lt;br /&gt;
|-&lt;br /&gt;
| ConsoleCommand || X&lt;br /&gt;
|-&lt;br /&gt;
| Crouch || X&lt;br /&gt;
|-&lt;br /&gt;
| DamageInstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| DestroyActor || X&lt;br /&gt;
|-&lt;br /&gt;
| DestroyPawn || X&lt;br /&gt;
|-&lt;br /&gt;
| DisplayCriticalMessage || X&lt;br /&gt;
|-&lt;br /&gt;
| DisplayMessage || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIState || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableAIVoice || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBattleEngine || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableBlockedComputations || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableNavPtSpecial || X&lt;br /&gt;
|-&lt;br /&gt;
| EnableSecurePosition || X&lt;br /&gt;
|-&lt;br /&gt;
| EndSection || X&lt;br /&gt;
|-&lt;br /&gt;
| FadeView || X&lt;br /&gt;
|-&lt;br /&gt;
| FailMission || X&lt;br /&gt;
|-&lt;br /&gt;
| FlickerActor || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceBattleMusic || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceState || X&lt;br /&gt;
|-&lt;br /&gt;
| ForceVictoryFlourish || X&lt;br /&gt;
|-&lt;br /&gt;
| GenerateStimulus || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoAction || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoLabel || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoState || X&lt;br /&gt;
|-&lt;br /&gt;
| HurtActor || X&lt;br /&gt;
|-&lt;br /&gt;
| IfCondition || X&lt;br /&gt;
|-&lt;br /&gt;
| IfRandomPct || X&lt;br /&gt;
|-&lt;br /&gt;
| Killinstigator || X&lt;br /&gt;
|-&lt;br /&gt;
| Label || X&lt;br /&gt;
|-&lt;br /&gt;
| MakeInvulnerable || X&lt;br /&gt;
|-&lt;br /&gt;
| MoverToKeyframe || X&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| ObjectiveUpdate || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAmbientSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayLocalSound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMovie || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayMusic || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayPropAnim || X&lt;br /&gt;
|-&lt;br /&gt;
| PlaySound || X&lt;br /&gt;
|-&lt;br /&gt;
| PlaySoundCue || X&lt;br /&gt;
|-&lt;br /&gt;
| ResetFactory || X&lt;br /&gt;
|-&lt;br /&gt;
| Revive || X&lt;br /&gt;
|-&lt;br /&gt;
| ScreenFade || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleEngineParams || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBattleMusicMulti || X&lt;br /&gt;
|-&lt;br /&gt;
| SetBlocked || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCanCancelMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCannotDie || X&lt;br /&gt;
|-&lt;br /&gt;
| SetCollision || X&lt;br /&gt;
|-&lt;br /&gt;
| SetHidden || X&lt;br /&gt;
|-&lt;br /&gt;
| SetImuseState || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPawnIdle || X&lt;br /&gt;
|-&lt;br /&gt;
| SetPhysics || X&lt;br /&gt;
|-&lt;br /&gt;
| SetScriptPriority || X&lt;br /&gt;
|-&lt;br /&gt;
| SetSightRadius || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTeamIndex || X&lt;br /&gt;
|-&lt;br /&gt;
| SetThreat || X&lt;br /&gt;
|-&lt;br /&gt;
| SetTurretUsable || X&lt;br /&gt;
|-&lt;br /&gt;
| SetViewTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShakeView || X&lt;br /&gt;
|-&lt;br /&gt;
| ShootTarget || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowActorObjectiveTracker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowDebriefingScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMarker || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowMenuScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowPrompt || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowTitleCardScreen || X&lt;br /&gt;
|-&lt;br /&gt;
| ShowVisor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnActor || X&lt;br /&gt;
|-&lt;br /&gt;
| SpawnStatusEffect || X&lt;br /&gt;
|-&lt;br /&gt;
| StopFactorySpawning || X&lt;br /&gt;
|-&lt;br /&gt;
| StopShooting || X&lt;br /&gt;
|-&lt;br /&gt;
| SuggestEnemy || X&lt;br /&gt;
|-&lt;br /&gt;
| TeleportToPoint || X&lt;br /&gt;
|-&lt;br /&gt;
| TriggerEvent || X&lt;br /&gt;
|-&lt;br /&gt;
| TurnTowardPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| UnforceState || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForAnimEnd || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForEvent || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForPlayer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForRandomTimer || X&lt;br /&gt;
|-&lt;br /&gt;
| WaitForTimer || X&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=File:Trigger6.PNG&amp;diff=333</id>
		<title>File:Trigger6.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=File:Trigger6.PNG&amp;diff=333"/>
		<updated>2024-08-01T19:51:02Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=File:Trigger5.PNG&amp;diff=332</id>
		<title>File:Trigger5.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=File:Trigger5.PNG&amp;diff=332"/>
		<updated>2024-08-01T19:50:57Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=File:Trigger4.PNG&amp;diff=331</id>
		<title>File:Trigger4.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=File:Trigger4.PNG&amp;diff=331"/>
		<updated>2024-08-01T19:50:50Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=File:Trigger3.PNG&amp;diff=330</id>
		<title>File:Trigger3.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=File:Trigger3.PNG&amp;diff=330"/>
		<updated>2024-08-01T19:50:44Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=File:Trigger2.PNG&amp;diff=329</id>
		<title>File:Trigger2.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=File:Trigger2.PNG&amp;diff=329"/>
		<updated>2024-08-01T19:50:36Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
</feed>