<?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-09-20T10:08:40Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=File:ModMPGame.zip&amp;diff=398</id>
		<title>File:ModMPGame.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=File:ModMPGame.zip&amp;diff=398"/>
		<updated>2026-08-27T09:42:20Z</updated>

		<summary type="html">&lt;p&gt;Plasma: Plasma uploaded a new version of File:ModMPGame.zip&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=Files_and_Useful_Stuff_(Server)&amp;diff=397</id>
		<title>Files and Useful Stuff (Server)</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Files_and_Useful_Stuff_(Server)&amp;diff=397"/>
		<updated>2026-08-27T09:41:37Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A list of useful stuff for your server:&lt;br /&gt;
&lt;br /&gt;
== RC UCC ==&lt;br /&gt;
&lt;br /&gt;
A commandline tool (UCC) to make it easier to use commandlets and run server via command shell: [https://github.com/SWRC-Modding/CT/releases download]&lt;br /&gt;
&lt;br /&gt;
== Gamespy Fix ==&lt;br /&gt;
&lt;br /&gt;
Gamespy multiplayer server browser listing fixed via CT Release: (Service provided by [http://beta.openspy.net/en/ OpenSpy]) [https://github.com/SWRC-Modding/CT/releases Download CT Release]&lt;br /&gt;
&lt;br /&gt;
== ModMPGame ==&lt;br /&gt;
&lt;br /&gt;
A custom server plugin which adds support for admin functionality and bot support. Sources and instructions available [https://github.com/SWRC-Modding/CT/tree/master/ModMPGame here]&lt;br /&gt;
&lt;br /&gt;
Pre compiled binaries can be downloaded [https://wiki.swrc-modding.net/images/4/44/ModMPGame.zip here]&lt;br /&gt;
&lt;br /&gt;
In order for bots to move around, you need map specific built paths. The package comes with a &amp;lt;code&amp;gt;Paths&amp;lt;/code&amp;gt; folder containing this data, put it into &amp;lt;code&amp;gt;Maps&amp;lt;/code&amp;gt; folder.&lt;br /&gt;
&lt;br /&gt;
== No CD key validation (Outdated) ==&lt;br /&gt;
&lt;br /&gt;
This modified file is outdated and superseeded by ModMPGame!&lt;br /&gt;
&lt;br /&gt;
A patched IpDrv.dll to disable CD key validation on the server: [https://wiki.swrc-modding.net/images/e/e2/IpDrv-NoCDkeyValidation.zip download]&lt;br /&gt;
&lt;br /&gt;
== Discord Webhook ==&lt;br /&gt;
&lt;br /&gt;
A pure server plugin to send game server data to a discord webhook: [https://github.com/ffsPLASMA/swrc-discordwebhook/releases download]&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=File:ModMPGame.zip&amp;diff=396</id>
		<title>File:ModMPGame.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=File:ModMPGame.zip&amp;diff=396"/>
		<updated>2026-08-18T19:05:45Z</updated>

		<summary type="html">&lt;p&gt;Plasma: Plasma uploaded a new version of File:ModMPGame.zip&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=Triggers_and_ScriptedTriggers&amp;diff=395</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=395"/>
		<updated>2026-08-18T17:58:12Z</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 || Lets the HUD squad icons blink (For example in 2nd level when Fixxer gets introduced&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 || Enables the battle engine which plays music based on current action (idle/combat)&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 || Fade/unfade the screen to a specific color&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 || Force a certain music to play&lt;br /&gt;
|-&lt;br /&gt;
| ForceState || Force a state of a certain actor&lt;br /&gt;
|-&lt;br /&gt;
| ForceVictoryFlourish || Force a victory tune/music to play&lt;br /&gt;
|-&lt;br /&gt;
| GenerateStimulus || X&lt;br /&gt;
|-&lt;br /&gt;
| GotoAction || Make an actor do a certain action&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 || Logical IF condition for scriptedLogic control flow&lt;br /&gt;
|-&lt;br /&gt;
| IfRandomPct || Random percentage condition for scriptedLogic control flow&lt;br /&gt;
|-&lt;br /&gt;
| Killinstigator || Kill the actor who attacks another specified actor&lt;br /&gt;
|-&lt;br /&gt;
| Label || Creates a label with specified name for scriptedLogic control flow&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 || Move an actor to player location&lt;br /&gt;
|-&lt;br /&gt;
| MoveToPoint || Move an actor to a specific point&lt;br /&gt;
|-&lt;br /&gt;
| ObjectiveUpdate || X&lt;br /&gt;
|-&lt;br /&gt;
| PlayAmbientSound || Play ambient sound effect&lt;br /&gt;
|-&lt;br /&gt;
| PlayAnim || Play actor/pawn animation&lt;br /&gt;
|-&lt;br /&gt;
| PlayLocalSound || Play local sound effect&lt;br /&gt;
|-&lt;br /&gt;
| PlayMovie || Play movie on screen&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 || Change pathnode state to be blocked or not&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 || Changes script priority which changes update cycle&lt;br /&gt;
|-&lt;br /&gt;
| SetSightRadius || Change actor/pawn sight radius for detections&lt;br /&gt;
|-&lt;br /&gt;
| SetTeamIndex || Change actor/pawn teamindex&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 || Shake the screen&lt;br /&gt;
|-&lt;br /&gt;
| ShootTarget || Make an actor shoot at a target&lt;br /&gt;
|-&lt;br /&gt;
| ShowActorObjectiveTracker || Shows squad objective tracker (round/oval circle at bottom)&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 || Show a certain menu prompt (tips and tricks for example)&lt;br /&gt;
|-&lt;br /&gt;
| ShowTitleCardScreen || Show a specific title card to display text&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 || Stop pawn factory from spawning new actors&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=Tutorial_Series&amp;diff=394</id>
		<title>Tutorial Series</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Tutorial_Series&amp;diff=394"/>
		<updated>2026-08-18T17:46:37Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists several tutorials in written and video form.&lt;br /&gt;
&lt;br /&gt;
== Written Guides ==&lt;br /&gt;
&lt;br /&gt;
[[My first map and expanding upon it]]&lt;br /&gt;
&lt;br /&gt;
[[Triggers and ScriptedTriggers]]&lt;br /&gt;
&lt;br /&gt;
[[Editing Stock Weapons]]&lt;br /&gt;
&lt;br /&gt;
[[Create Terrain]]&lt;br /&gt;
&lt;br /&gt;
[[Create Skybox]]&lt;br /&gt;
&lt;br /&gt;
[[Create new Squad Member]]&lt;br /&gt;
&lt;br /&gt;
[[Create a new sciptable Class]]&lt;br /&gt;
&lt;br /&gt;
[[Create a new Mutator]]&lt;br /&gt;
&lt;br /&gt;
[[Import/Export StaticMeshes in 3DS Max]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Video Guides ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;https://www.youtube.com/watch?v=rz3yhUb69EE&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;https://www.youtube.com/watch?v=hVcIgV3Jh6c&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;https://www.youtube.com/watch?v=mS4Yw4JzhyY&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;https://www.youtube.com/watch?v=0l0XF18YLL4&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;https://www.youtube.com/watch?v=PAm45BoAKfE&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;https://www.youtube.com/watch?v=7FGYtcBMGyo&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;https://www.youtube.com/watch?v=Ik1jj4hyvZk&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;https://www.youtube.com/watch?v=vx28nnszc_8&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;https://www.youtube.com/watch?v=m4mojdWKDMQ&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;https://www.youtube.com/watch?v=hyWO-0ydkSo&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;https://www.youtube.com/watch?v=OrUZwSrrAT8&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;https://www.youtube.com/watch?v=ifADCSTfAtg&amp;lt;/youtube&amp;gt;&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Gamespy_in_Republic_Commando&amp;diff=393</id>
		<title>Gamespy in Republic Commando</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Gamespy_in_Republic_Commando&amp;diff=393"/>
		<updated>2026-08-18T17:43:08Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
&#039;&#039;&#039;Gamespy protocol analysis in Star Wars Republic Commando&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note: This documentation may be incomplete and some information/aspects may be interpreted/understood wrong!&lt;br /&gt;
&lt;br /&gt;
For a gamespy alternative for various games, visit [https://333networks.com/ 333networks] and [http://beta.openspy.net/en/ OpenSpy]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Gamespy Gamename: swrcommando&lt;br /&gt;
    Gamespy Gamekey: y2s8Fh&lt;br /&gt;
    Gamespy Version: 0~3 (Hybrid) Plaintext and partial obfuscated communication&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The communication between Master Server and Game Server is in plaintext, however communication between Master Server and Game Client is obfuscated.&lt;br /&gt;
&lt;br /&gt;
== Master Server &amp;lt;-&amp;gt; Game Server ==&lt;br /&gt;
&lt;br /&gt;
The communication between Master Server and Game Server is in plaintext and only uses UDP protocol. Master Server listens on port 27900:&lt;br /&gt;
&lt;br /&gt;
When a Game Server boots up for first time, it sends out 2 UDP packets to let Master Server know a new remote host is coming up. Master Server doesn&#039;t have to respond: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0x09     &amp;lt;packet ID&amp;gt;&lt;br /&gt;
0x00     &amp;lt;no use&amp;gt;&lt;br /&gt;
0x00     &amp;lt;no use&amp;gt;&lt;br /&gt;
0x00     &amp;lt;no use&amp;gt;&lt;br /&gt;
0x00     &amp;lt;no use&amp;gt;&lt;br /&gt;
0x73     s    &amp;lt;gamespy gamename&amp;gt;&lt;br /&gt;
0x77     w&lt;br /&gt;
0x72     r&lt;br /&gt;
0x63     c&lt;br /&gt;
0x6f     o&lt;br /&gt;
0x6d     m&lt;br /&gt;
0x6d     m&lt;br /&gt;
0x61     a&lt;br /&gt;
0x6e     n&lt;br /&gt;
0x64     d&lt;br /&gt;
0x6f     o&lt;br /&gt;
0x00     &amp;lt;null terminator&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once Game Server is booted up and ready to accept connections, it sends all relevant game info to Master Server, essentially a \\status\\ packet every 30 seconds or so: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0x03    &amp;lt;packet ID&amp;gt;&lt;br /&gt;
0xd6    -- &amp;lt;Next 4 bytes are random ID generated by game server&amp;gt;&lt;br /&gt;
0x0c    --&lt;br /&gt;
0x82    --&lt;br /&gt;
0xe0    --&lt;br /&gt;
0x6c    l    &amp;lt;localip0&amp;gt;&lt;br /&gt;
0x6f    o&lt;br /&gt;
0x63    c&lt;br /&gt;
0x61    a&lt;br /&gt;
0x6c    l&lt;br /&gt;
0x69    i&lt;br /&gt;
0x70    p&lt;br /&gt;
0x30    0&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x31    1    &amp;lt;First local IP&amp;gt;&lt;br /&gt;
0x39    9&lt;br /&gt;
0x32    2&lt;br /&gt;
0x2e    .&lt;br /&gt;
0x31    1&lt;br /&gt;
0x36    6&lt;br /&gt;
0x38    8&lt;br /&gt;
0x2e    .&lt;br /&gt;
0x31    1&lt;br /&gt;
0x38    8&lt;br /&gt;
0x38    8&lt;br /&gt;
0x2e    .&lt;br /&gt;
0x33    3&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x6c    l    &amp;lt;localip1&amp;gt;&lt;br /&gt;
0x6f    o&lt;br /&gt;
0x63    c&lt;br /&gt;
0x61    a&lt;br /&gt;
0x6c    l&lt;br /&gt;
0x69    i&lt;br /&gt;
0x70    p&lt;br /&gt;
0x31    1&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x31    1    &amp;lt;Second local IP&amp;gt;&lt;br /&gt;
0x39    9&lt;br /&gt;
0x32    2&lt;br /&gt;
0x2e    .&lt;br /&gt;
0x31    1&lt;br /&gt;
0x36    6&lt;br /&gt;
0x38    8&lt;br /&gt;
0x2e    .&lt;br /&gt;
0x32    2&lt;br /&gt;
0x30    0&lt;br /&gt;
0x33    3&lt;br /&gt;
0x2e    .&lt;br /&gt;
0x31    1&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x6c    l    &amp;lt;localip2&amp;gt;&lt;br /&gt;
0x6f    o&lt;br /&gt;
0x63    c&lt;br /&gt;
0x61    a&lt;br /&gt;
0x6c    l&lt;br /&gt;
0x69    i&lt;br /&gt;
0x70    p&lt;br /&gt;
0x32    2&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x31    1    &amp;lt;Third local IP&amp;gt;&lt;br /&gt;
0x39    9&lt;br /&gt;
0x32    2&lt;br /&gt;
0x2e    .&lt;br /&gt;
0x31    1&lt;br /&gt;
0x36    6&lt;br /&gt;
0x38    8&lt;br /&gt;
0x2e    .&lt;br /&gt;
0x31    1&lt;br /&gt;
0x37    7&lt;br /&gt;
0x34    4&lt;br /&gt;
0x2e    .&lt;br /&gt;
0x31    1&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x6c    l    &amp;lt;localport&amp;gt;&lt;br /&gt;
0x6f    o&lt;br /&gt;
0x63    c&lt;br /&gt;
0x61    a&lt;br /&gt;
0x6c    l&lt;br /&gt;
0x70    p&lt;br /&gt;
0x6f    o&lt;br /&gt;
0x72    r&lt;br /&gt;
0x74    t&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x31    1    &amp;lt;query port of the game server, default 11138, every server instance increases number by 1 up to 11187 (x49)&amp;gt;&lt;br /&gt;
0x31    1&lt;br /&gt;
0x31    1&lt;br /&gt;
0x33    3&lt;br /&gt;
0x38    8&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x6e    n    &amp;lt;NAT Negotiation&amp;gt;&lt;br /&gt;
0x61    a&lt;br /&gt;
0x74    t&lt;br /&gt;
0x6e    n&lt;br /&gt;
0x65    e&lt;br /&gt;
0x67    g&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x30    0    &amp;lt;0 = disabled&amp;gt;&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x73    s    &amp;lt;statechanged indicates when game server performs mapchange or shuts down, etc&amp;gt;&lt;br /&gt;
0x74    t&lt;br /&gt;
0x61    a&lt;br /&gt;
0x74    t&lt;br /&gt;
0x65    e&lt;br /&gt;
0x63    c&lt;br /&gt;
0x68    h&lt;br /&gt;
0x61    a&lt;br /&gt;
0x6e    n&lt;br /&gt;
0x67    g&lt;br /&gt;
0x65    e&lt;br /&gt;
0x64    d&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x33    3    &amp;lt;3 = ready to accept connections&amp;gt;&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x67    g    &amp;lt;gamespy gamename&amp;gt;&lt;br /&gt;
0x61    a&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x65    e&lt;br /&gt;
0x6e    n&lt;br /&gt;
0x61    a&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x65    e&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x73    s    &amp;lt;swrcommando&amp;gt;&lt;br /&gt;
0x77    r&lt;br /&gt;
0x72    r&lt;br /&gt;
0x63    c&lt;br /&gt;
0x6f    o&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x61    a&lt;br /&gt;
0x6e    n&lt;br /&gt;
0x64    d&lt;br /&gt;
0x6f    o&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x68    h    &amp;lt;server name displayed in browser&amp;gt;&lt;br /&gt;
0x6f    o&lt;br /&gt;
0x73    s&lt;br /&gt;
0x74    t&lt;br /&gt;
0x6e    n&lt;br /&gt;
0x61    a&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x65    e&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x74    t    &amp;lt;server name: test test&amp;gt;&lt;br /&gt;
0x65    e&lt;br /&gt;
0x73    s&lt;br /&gt;
0x74    t&lt;br /&gt;
0x20    (space)&lt;br /&gt;
0x74    t&lt;br /&gt;
0x65    e&lt;br /&gt;
0x73    s&lt;br /&gt;
0x74    t&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x67    g    &amp;lt;game version, republic commando only uses 2226&amp;gt;&lt;br /&gt;
0x61    a&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x65    e&lt;br /&gt;
0x76    v&lt;br /&gt;
0x65    e&lt;br /&gt;
0x72    r&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x32    2&lt;br /&gt;
0x32    2&lt;br /&gt;
0x32    2&lt;br /&gt;
0x36    6&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x68    h    &amp;lt;hostport (connect port) of the game server, default: 7777&amp;gt;&lt;br /&gt;
0x6f    o&lt;br /&gt;
0x73    s&lt;br /&gt;
0x74    t&lt;br /&gt;
0x70    p&lt;br /&gt;
0x6f    o&lt;br /&gt;
0x72    r&lt;br /&gt;
0x74    t&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x37    7    &amp;lt;default: 7777&amp;gt;&lt;br /&gt;
0x37    7&lt;br /&gt;
0x37    7&lt;br /&gt;
0x37    7&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x6d    m    &amp;lt;mapname of server&amp;gt;&lt;br /&gt;
0x61    a&lt;br /&gt;
0x70    p&lt;br /&gt;
0x6e    n&lt;br /&gt;
0x61    a&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x65    e&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x4b    K    &amp;lt;english name: canyon&amp;gt;&lt;br /&gt;
0x41    A&lt;br /&gt;
0x4d    M&lt;br /&gt;
0x50    P&lt;br /&gt;
0x46    F&lt;br /&gt;
0x53    S&lt;br /&gt;
0x43    C&lt;br /&gt;
0x48    H&lt;br /&gt;
0x49    I&lt;br /&gt;
0x46    F&lt;br /&gt;
0x46    F&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x67    g    &amp;lt;gametype of server&amp;gt;&lt;br /&gt;
0x61    a&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x65    e&lt;br /&gt;
0x74    t&lt;br /&gt;
0x79    y&lt;br /&gt;
0x70    p&lt;br /&gt;
0x65    e&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x44    D    &amp;lt;DM - deathmatch&amp;gt;&lt;br /&gt;
0x4d    M&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x6e    n    &amp;lt;amount of players on the server currently&amp;gt;&lt;br /&gt;
0x75    u&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x70    p&lt;br /&gt;
0x6c    l&lt;br /&gt;
0x61    a&lt;br /&gt;
0x79    y&lt;br /&gt;
0x65    e&lt;br /&gt;
0x72    r&lt;br /&gt;
0x73    s&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x30    0    &amp;lt;player ammount&amp;gt;&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x6d    m    &amp;lt;max players capacity&amp;gt;&lt;br /&gt;
0x61    a&lt;br /&gt;
0x78    x&lt;br /&gt;
0x70    p&lt;br /&gt;
0x6c    l&lt;br /&gt;
0x61    a&lt;br /&gt;
0x79    y&lt;br /&gt;
0x65    e&lt;br /&gt;
0x72    r&lt;br /&gt;
0x73    s&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x38    8    &amp;lt;set to 8 maxplayers&amp;gt;&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x67    g    &amp;lt;state of current gamemode&amp;gt;&lt;br /&gt;
0x61    a&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x65    e&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x6f    o&lt;br /&gt;
0x64    d&lt;br /&gt;
0x65    e&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x6f    o    &amp;lt;set to openplaying, unknown if game actually uses this&amp;gt;&lt;br /&gt;
0x70    p&lt;br /&gt;
0x65    e&lt;br /&gt;
0x6e    n&lt;br /&gt;
0x70    p&lt;br /&gt;
0x6c    l&lt;br /&gt;
0x61    a&lt;br /&gt;
0x79    y&lt;br /&gt;
0x69    i&lt;br /&gt;
0x6e    n&lt;br /&gt;
0x67    g&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x6e    n    &amp;lt;number of teams&amp;gt;&lt;br /&gt;
0x75    u&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x74    t&lt;br /&gt;
0x65    e&lt;br /&gt;
0x61    a&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x73    s&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x30    0    &amp;lt;set to 0 for deathmatch, may be set to 2 for teamdeathmatch/ctf/assault&amp;gt;&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x66    f    &amp;lt;goalscore&amp;gt;&lt;br /&gt;
0x72    r&lt;br /&gt;
0x61    a&lt;br /&gt;
0x67    g&lt;br /&gt;
0x6c    l&lt;br /&gt;
0x69    i&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x69    i&lt;br /&gt;
0x74    t&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x31    1    &amp;lt;set to 10&amp;gt;&lt;br /&gt;
0x30    0&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x74    t    &amp;lt;timelimit in minutes&amp;gt;&lt;br /&gt;
0x69    i&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x65    e&lt;br /&gt;
0x6c    l&lt;br /&gt;
0x69    i&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x69    i&lt;br /&gt;
0x74    t&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x36    6    &amp;lt;60 minutes&amp;gt;&lt;br /&gt;
0x30    0&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x64    d    &amp;lt;set whether server is in dedicated mode or not&amp;gt;&lt;br /&gt;
0x65    e&lt;br /&gt;
0x64    d&lt;br /&gt;
0x69    i&lt;br /&gt;
0x63    c&lt;br /&gt;
0x61    a&lt;br /&gt;
0x74    t&lt;br /&gt;
0x65    e&lt;br /&gt;
0x64    d&lt;br /&gt;
0x73    s&lt;br /&gt;
0x65    e&lt;br /&gt;
0x72    r&lt;br /&gt;
0x76    v&lt;br /&gt;
0x65    e&lt;br /&gt;
0x72    r&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x31    1    &amp;lt;0 = off | 1 = on&amp;gt;&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x66    f    &amp;lt;friendlyfire %&amp;gt;&lt;br /&gt;
0x72    r&lt;br /&gt;
0x69    i&lt;br /&gt;
0x65    e&lt;br /&gt;
0x6e    n&lt;br /&gt;
0x64    d&lt;br /&gt;
0x6c    l&lt;br /&gt;
0x79    y&lt;br /&gt;
0x66    f&lt;br /&gt;
0x69    i&lt;br /&gt;
0x72    r&lt;br /&gt;
0x65    e&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x30    0    &amp;lt;value between 0 and 100&amp;gt;&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x70    p    &amp;lt;player_ : array for player names/ids&amp;gt;&lt;br /&gt;
0x6c    l&lt;br /&gt;
0x61    a&lt;br /&gt;
0x79    y&lt;br /&gt;
0x65    e&lt;br /&gt;
0x72    r&lt;br /&gt;
0x5f    _&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x73    s    &amp;lt;score_ : array for player scores&amp;gt;&lt;br /&gt;
0x63    c&lt;br /&gt;
0x6f    o&lt;br /&gt;
0x72    r&lt;br /&gt;
0x65    e&lt;br /&gt;
0x5f    _&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x64    d    &amp;lt;deaths_ : array for player deaths&amp;gt;&lt;br /&gt;
0x65    e&lt;br /&gt;
0x61    a&lt;br /&gt;
0x74    t&lt;br /&gt;
0x68    h&lt;br /&gt;
0x73    s&lt;br /&gt;
0x5f    _&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x70    p    &amp;lt;ping_ : array for player pings&amp;gt;&lt;br /&gt;
0x69    i&lt;br /&gt;
0x6e    n&lt;br /&gt;
0x67    g&lt;br /&gt;
0x5f    _&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x74    t    &amp;lt;team_ : array for player pings&amp;gt;&lt;br /&gt;
0x65    e&lt;br /&gt;
0x61    a&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x5f    _&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x74    t    &amp;lt;team_t : array for player team (trandoshan team), unknown if it gets used&amp;gt;&lt;br /&gt;
0x65    e&lt;br /&gt;
0x61    a&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x5f    _&lt;br /&gt;
0x74    t&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x73    s    &amp;lt;score_t : array for player score (trandoshan team), unknown if it gets used&amp;gt;&lt;br /&gt;
0x63    c&lt;br /&gt;
0x6f    o&lt;br /&gt;
0x72    r&lt;br /&gt;
0x65    e&lt;br /&gt;
0x5f    _&lt;br /&gt;
0x74    t&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x00    &amp;lt;end of packet indicator&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Master Server acknowledges the information and sends ack response back to Game Server: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0xfe    &amp;lt;gamespy MAGIC bytes for the QR2 queries&amp;gt;&lt;br /&gt;
0xfd    &amp;lt;gamespy MAGIC bytes for the QR2 queries&amp;gt;&lt;br /&gt;
0x03    &amp;lt;packet ID&amp;gt;&lt;br /&gt;
0xd6    -- &amp;lt;Next 4 bytes are random ID generated by game server&amp;gt;&lt;br /&gt;
0x0c    --&lt;br /&gt;
0x82    --&lt;br /&gt;
0xe0    --&lt;br /&gt;
0x00    &amp;lt;end of packet indicator&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finally, Game Server sends a heartbeat to Master Server every 10 seconds or so: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0x08    &amp;lt;packet ID&amp;gt;&lt;br /&gt;
0xd6    -- &amp;lt;Next 4 bytes are random ID generated by game server&amp;gt;&lt;br /&gt;
0x0c    --&lt;br /&gt;
0x82    --&lt;br /&gt;
0xe0    --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Master Server sends heartbeat back to Game Server: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0xfe    &amp;lt;gamespy MAGIC bytes for the QR2 queries&amp;gt;&lt;br /&gt;
0xfd    &amp;lt;gamespy MAGIC bytes for the QR2 queries&amp;gt;&lt;br /&gt;
0x08    &amp;lt;packet ID&amp;gt;&lt;br /&gt;
0xd6    -- &amp;lt;Next 4 bytes are random ID generated by game server&amp;gt;&lt;br /&gt;
0x0c    --&lt;br /&gt;
0x82    --&lt;br /&gt;
0xe0    --&lt;br /&gt;
0x00    &amp;lt;end of packet indicator&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Master Server &amp;lt;-&amp;gt; Game Client ==&lt;br /&gt;
&lt;br /&gt;
The communication between Game Client and Master Server uses TCP most of the part. Only at the beginning of the server list query, Game Client sends UDP packet and afterwards communicates in TCP. Yet the Game Client sends all data in plaintext, but expects the Master Server response to be obfuscated in EnctypeX algorithm.&lt;br /&gt;
&lt;br /&gt;
Master Server is listening on port 27900 UDP and Game Client sends a UDP packet followed by TCP packets, therefore no need to answer here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0x09    &amp;lt;packet ID&amp;gt;&lt;br /&gt;
0x00    &amp;lt;no use&amp;gt;&lt;br /&gt;
0x00    &amp;lt;no use&amp;gt;&lt;br /&gt;
0x00    &amp;lt;no use&amp;gt;&lt;br /&gt;
0x00    &amp;lt;no use&amp;gt;&lt;br /&gt;
0x73    s    &amp;lt;gamespy gamename&amp;gt;&lt;br /&gt;
0x77    w&lt;br /&gt;
0x72    r&lt;br /&gt;
0x63    c&lt;br /&gt;
0x6f    o&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x61    a&lt;br /&gt;
0x6e    n&lt;br /&gt;
0x64    d&lt;br /&gt;
0x6f    o&lt;br /&gt;
0x00    &amp;lt;end of packet indicator&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Game Client requests server list from Master Server, therefore Master Server listens on port 28910 TCP now: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0x00    &amp;lt;First 2 bytes are the packet length&amp;gt;&lt;br /&gt;
0x00    --&lt;br /&gt;
0x00    &amp;lt;Packet ID: 0&amp;gt;&lt;br /&gt;
0x01    &amp;lt;Protcol Version&amp;gt;&lt;br /&gt;
0x03    &amp;lt;LIST_ENCODING_VERSION 3&amp;gt;&lt;br /&gt;
0x00    &amp;lt;Next 4 bytes: Game Version: Hardcoded to 0000&amp;gt;&lt;br /&gt;
0x00    --&lt;br /&gt;
0x00    --&lt;br /&gt;
0x00    --&lt;br /&gt;
0x73    s    &amp;lt;gamespy gamename&amp;gt;&lt;br /&gt;
0x77    w&lt;br /&gt;
0x72    r&lt;br /&gt;
0x63    c&lt;br /&gt;
0x6f    o&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x61    a&lt;br /&gt;
0x6e    n&lt;br /&gt;
0x64    d&lt;br /&gt;
0x6f    o&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x73    s    &amp;lt;gamespy gamename&amp;gt;&lt;br /&gt;
0x77    w&lt;br /&gt;
0x72    r&lt;br /&gt;
0x63    c&lt;br /&gt;
0x6f    o&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x61    a&lt;br /&gt;
0x6e    n&lt;br /&gt;
0x64    d&lt;br /&gt;
0x6f    o&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x70    -- &amp;lt;Next 8 bytes are the validation key created by client. It gets used to encrypt the message from Master Server&amp;gt;&lt;br /&gt;
0x57    --&lt;br /&gt;
0x63    --&lt;br /&gt;
0x38    --&lt;br /&gt;
0x5b    --&lt;br /&gt;
0x56    --&lt;br /&gt;
0x7b    --&lt;br /&gt;
0x5d    --&lt;br /&gt;
0x00    &amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x5c    \    &amp;lt;backslash as seperator&amp;gt;&lt;br /&gt;
0x68    h    &amp;lt;hostname&amp;gt;&lt;br /&gt;
0x6f    o&lt;br /&gt;
0x73    s&lt;br /&gt;
0x74    t&lt;br /&gt;
0x6e    n&lt;br /&gt;
0x61    a&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x65    e&lt;br /&gt;
0x5c    \    &amp;lt;backslash as seperator&amp;gt;&lt;br /&gt;
0x68    h    &amp;lt;hostport&amp;gt;&lt;br /&gt;
0x6f    o&lt;br /&gt;
0x73    s&lt;br /&gt;
0x74    t&lt;br /&gt;
0x70    p&lt;br /&gt;
0x6f    o&lt;br /&gt;
0x72    r&lt;br /&gt;
0x74    t&lt;br /&gt;
0x5c    \    &amp;lt;backslash as seperator&amp;gt;&lt;br /&gt;
0x6e    n    &amp;lt;numplayers&amp;gt;&lt;br /&gt;
0x75    u&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x70    p&lt;br /&gt;
0x6c    l&lt;br /&gt;
0x61    a&lt;br /&gt;
0x79    y&lt;br /&gt;
0x65    e&lt;br /&gt;
0x72    r&lt;br /&gt;
0x73    s&lt;br /&gt;
0x5c    \    &amp;lt;backslash as seperator&amp;gt;&lt;br /&gt;
0x6d    m    &amp;lt;maxplayers&amp;gt;&lt;br /&gt;
0x61    a&lt;br /&gt;
0x78    x&lt;br /&gt;
0x70    p&lt;br /&gt;
0x6c    l&lt;br /&gt;
0x61    a&lt;br /&gt;
0x79    y&lt;br /&gt;
0x65    e&lt;br /&gt;
0x72    r&lt;br /&gt;
0x73    s&lt;br /&gt;
0x5c    \    &amp;lt;backslash as seperator&amp;gt;&lt;br /&gt;
0x6d    m    &amp;lt;mapname&amp;gt;&lt;br /&gt;
0x61    a&lt;br /&gt;
0x70    p&lt;br /&gt;
0x6e    n&lt;br /&gt;
0x61    a&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x65    e&lt;br /&gt;
0x5c    \    &amp;lt;backslash as seperator&amp;gt;&lt;br /&gt;
0x67    g    &amp;lt;gametype&amp;gt;&lt;br /&gt;
0x61    a&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x65    e&lt;br /&gt;
0x74    t&lt;br /&gt;
0x79    y&lt;br /&gt;
0x70    p&lt;br /&gt;
0x65    e&lt;br /&gt;
0x5c    \    &amp;lt;backslash as seperator&amp;gt;&lt;br /&gt;
0x66    f    &amp;lt;fraglimit&amp;gt;&lt;br /&gt;
0x72    r&lt;br /&gt;
0x61    a&lt;br /&gt;
0x67    g&lt;br /&gt;
0x6c    l&lt;br /&gt;
0x69    i&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x69    i&lt;br /&gt;
0x74    t&lt;br /&gt;
0x5c    \    &amp;lt;backslash as seperator&amp;gt;&lt;br /&gt;
0x74    t    &amp;lt;timelimit&amp;gt;&lt;br /&gt;
0x69    i&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x65    e&lt;br /&gt;
0x6c    l&lt;br /&gt;
0x69    i&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x69    i&lt;br /&gt;
0x74    t&lt;br /&gt;
0x5c    \    &amp;lt;backslash as seperator&amp;gt;&lt;br /&gt;
0x6e    n    &amp;lt;numteams&amp;gt;&lt;br /&gt;
0x75    u&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x74    t&lt;br /&gt;
0x65    e&lt;br /&gt;
0x61    a&lt;br /&gt;
0x6d    m&lt;br /&gt;
0x73    s&lt;br /&gt;
0x5c    \    &amp;lt;backslash as seperator&amp;gt;&lt;br /&gt;
0x64    d    &amp;lt;dedicatedserver&amp;gt;&lt;br /&gt;
0x65    e&lt;br /&gt;
0x64    d&lt;br /&gt;
0x69    i&lt;br /&gt;
0x63    c&lt;br /&gt;
0x61    a&lt;br /&gt;
0x74    t&lt;br /&gt;
0x65    e&lt;br /&gt;
0x64    d&lt;br /&gt;
0x73    s&lt;br /&gt;
0x65    e&lt;br /&gt;
0x72    r&lt;br /&gt;
0x76    v&lt;br /&gt;
0x65    e&lt;br /&gt;
0x72    r&lt;br /&gt;
0x5c    \    &amp;lt;backslash as seperator&amp;gt;&lt;br /&gt;
0x66    f    &amp;lt;friendlyfire&amp;gt;&lt;br /&gt;
0x72    r&lt;br /&gt;
0x69    i&lt;br /&gt;
0x65    e&lt;br /&gt;
0x6e    n&lt;br /&gt;
0x64    d&lt;br /&gt;
0x6c    l&lt;br /&gt;
0x79    y&lt;br /&gt;
0x66    f&lt;br /&gt;
0x69    i&lt;br /&gt;
0x72    r&lt;br /&gt;
0x65    e&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now Master Server needs to fetch the necessary server data and send it back to the client. This is the plain text message before EnctypeX obfuscation. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0x7f	&amp;lt;Next 4 bytes are Master Server IP Address, for example: 127.0.0.1&amp;gt;&lt;br /&gt;
0x00	--&lt;br /&gt;
0x00	--&lt;br /&gt;
0x01	--&lt;br /&gt;
0x6c	&amp;lt;Next 2 bytes are Master Server Query Port : 27900 or 28910&amp;gt;&lt;br /&gt;
0xfc	--&lt;br /&gt;
0x0b	&amp;lt;Number of categories/properties, in this case 11&amp;gt;&lt;br /&gt;
0x00	&amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x68	h	&amp;lt;hostname&amp;gt;&lt;br /&gt;
0x6f	o&lt;br /&gt;
0x73	s&lt;br /&gt;
0x74	t&lt;br /&gt;
0x6e	n&lt;br /&gt;
0x61	a&lt;br /&gt;
0x6d	m&lt;br /&gt;
0x65	e&lt;br /&gt;
0x00	&amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x00	&amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x68	h	&amp;lt;hostport&amp;gt;&lt;br /&gt;
0x6f	o&lt;br /&gt;
0x73	s&lt;br /&gt;
0x74	t&lt;br /&gt;
0x70	p&lt;br /&gt;
0x6f	o&lt;br /&gt;
0x72	r&lt;br /&gt;
0x74	t&lt;br /&gt;
0x00	&amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x00	&amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x6e	n	&amp;lt;numplayers&amp;gt;&lt;br /&gt;
0x75	u&lt;br /&gt;
0x6d	m&lt;br /&gt;
0x70	p&lt;br /&gt;
0x6c	l&lt;br /&gt;
0x61	a&lt;br /&gt;
0x79	y&lt;br /&gt;
0x65	e&lt;br /&gt;
0x72	r&lt;br /&gt;
0x73	s&lt;br /&gt;
0x00	&amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x00	&amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x6d	m	&amp;lt;maxplayers&amp;gt;&lt;br /&gt;
0x61	a&lt;br /&gt;
0x78	x&lt;br /&gt;
0x70	p&lt;br /&gt;
0x6c	l&lt;br /&gt;
0x61	a&lt;br /&gt;
0x79	y&lt;br /&gt;
0x65	e&lt;br /&gt;
0x72	r&lt;br /&gt;
0x73	s&lt;br /&gt;
0x00	&amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x00	&amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x6d	m	&amp;lt;mapname&amp;gt;&lt;br /&gt;
0x61	a&lt;br /&gt;
0x70	p&lt;br /&gt;
0x6e	n&lt;br /&gt;
0x61	a&lt;br /&gt;
0x6d	m&lt;br /&gt;
0x65	e&lt;br /&gt;
0x00	&amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x00	&amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x67	g	&amp;lt;gametype&amp;gt;&lt;br /&gt;
0x61	a&lt;br /&gt;
0x6d	m&lt;br /&gt;
0x65	e&lt;br /&gt;
0x74	t&lt;br /&gt;
0x79	y&lt;br /&gt;
0x70	p&lt;br /&gt;
0x65	e&lt;br /&gt;
0x00	&amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x00	&amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x66	f	&amp;lt;fraglimit&amp;gt;&lt;br /&gt;
0x72	r&lt;br /&gt;
0x61	a&lt;br /&gt;
0x67	g&lt;br /&gt;
0x6c	l&lt;br /&gt;
0x69	i&lt;br /&gt;
0x6d	m&lt;br /&gt;
0x69	i&lt;br /&gt;
0x74	t&lt;br /&gt;
0x00	&amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x00	&amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x74	t	&amp;lt;timelimit&amp;gt;&lt;br /&gt;
0x69	i&lt;br /&gt;
0x6d	m&lt;br /&gt;
0x65	e&lt;br /&gt;
0x6c	l&lt;br /&gt;
0x69	i&lt;br /&gt;
0x6d	m&lt;br /&gt;
0x69	i&lt;br /&gt;
0x74	t&lt;br /&gt;
0x00	&amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x00	&amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x6e	n	&amp;lt;numteams&amp;gt;&lt;br /&gt;
0x75	u&lt;br /&gt;
0x6d	m&lt;br /&gt;
0x74	t&lt;br /&gt;
0x65	e&lt;br /&gt;
0x61	a&lt;br /&gt;
0x6d	m&lt;br /&gt;
0x73	s&lt;br /&gt;
0x00	&amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x00	&amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x64	d	&amp;lt;dedicatedserver&amp;gt;&lt;br /&gt;
0x65	e&lt;br /&gt;
0x64	d&lt;br /&gt;
0x69	i&lt;br /&gt;
0x63	c&lt;br /&gt;
0x61	a&lt;br /&gt;
0x74	t&lt;br /&gt;
0x65	e&lt;br /&gt;
0x64	d&lt;br /&gt;
0x73	s&lt;br /&gt;
0x65	e&lt;br /&gt;
0x72	r&lt;br /&gt;
0x76	v&lt;br /&gt;
0x65	e&lt;br /&gt;
0x72	r&lt;br /&gt;
0x00	&amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x00	&amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x66	f	&amp;lt;friendlyfire&amp;gt;&lt;br /&gt;
0x72	r&lt;br /&gt;
0x69	i&lt;br /&gt;
0x65	e&lt;br /&gt;
0x6e	n&lt;br /&gt;
0x64	d&lt;br /&gt;
0x6c	l&lt;br /&gt;
0x79	y&lt;br /&gt;
0x66	f&lt;br /&gt;
0x69	i&lt;br /&gt;
0x72	r&lt;br /&gt;
0x65	e&lt;br /&gt;
0x00	&amp;lt;null seperator&amp;gt;&lt;br /&gt;
0x00	&amp;lt;null seperator&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== add game servers here!!! ===&lt;br /&gt;
&lt;br /&gt;
0x39	&amp;lt;ICMP_IP_FLAG - 0x38 = only ping, 0x39 ping and query player data&amp;gt;&lt;br /&gt;
0xa4	164		&amp;lt;First IP of Gameserver : 164.132.196.125&amp;gt;&lt;br /&gt;
0x84	132		---^&lt;br /&gt;
0xc4	196		--^&lt;br /&gt;
0x7d	125		-^&lt;br /&gt;
0x2b	11138	&amp;lt;First query port of game server (2 bytes) : 11138&amp;gt;&lt;br /&gt;
0x82	-^&lt;br /&gt;
0xa4	164		&amp;lt;Second IP of Gameserver : 164.132.196.125&amp;gt;&lt;br /&gt;
0x84	132		---^&lt;br /&gt;
0xc4	196		--^&lt;br /&gt;
0x7d	125		-^&lt;br /&gt;
0x2b	11138	&amp;lt;Second query port of game server (2 bytes) : 11138&amp;gt;&lt;br /&gt;
0x82	-^&lt;br /&gt;
0xa4	164		&amp;lt;Third IP of Gameserver : 164.132.196.125&amp;gt;&lt;br /&gt;
0x84	132		---^&lt;br /&gt;
0xc4	196		--^&lt;br /&gt;
0x7d	125		-^&lt;br /&gt;
0xff	&amp;lt;value seperator&amp;gt;&lt;br /&gt;
0x44	D	&amp;lt;hostname : DM - swrc-modding.net&amp;gt;&lt;br /&gt;
0x4d	M&lt;br /&gt;
0x20	(space)&lt;br /&gt;
0x2d	-&lt;br /&gt;
0x20	(space)&lt;br /&gt;
0x73	s&lt;br /&gt;
0x77	w&lt;br /&gt;
0x72	r&lt;br /&gt;
0x63	c&lt;br /&gt;
0x2d	-&lt;br /&gt;
0x6d	m&lt;br /&gt;
0x6f	o&lt;br /&gt;
0x64	d&lt;br /&gt;
0x64	d&lt;br /&gt;
0x69	i&lt;br /&gt;
0x6e	n&lt;br /&gt;
0x67	g&lt;br /&gt;
0x2e	.&lt;br /&gt;
0x6e	n&lt;br /&gt;
0x65	e&lt;br /&gt;
0x74	t&lt;br /&gt;
0x00	&amp;lt;value seperator&amp;gt;&lt;br /&gt;
0xff	&amp;lt;value seperator&amp;gt;&lt;br /&gt;
0x37	7	&amp;lt;hostport : 7777&amp;gt;&lt;br /&gt;
0x37	7&lt;br /&gt;
0x37	7&lt;br /&gt;
0x37	7&lt;br /&gt;
0x00	&amp;lt;value seperator&amp;gt;&lt;br /&gt;
0xff	&amp;lt;value seperator&amp;gt;&lt;br /&gt;
0x30	0	&amp;lt;numplayers : 0&amp;gt;&lt;br /&gt;
0x00	&amp;lt;value seperator&amp;gt;&lt;br /&gt;
0xff	&amp;lt;value seperator&amp;gt;&lt;br /&gt;
0x33	3	&amp;lt;maxplayers: 32&amp;gt;&lt;br /&gt;
0x32	2&lt;br /&gt;
0x00	&amp;lt;value seperator&amp;gt;&lt;br /&gt;
0xff	&amp;lt;value seperator&amp;gt;&lt;br /&gt;
0x47	G	&amp;lt;mapname : GARTEN : DM_HangingGarden&amp;gt;&lt;br /&gt;
0x41	A&lt;br /&gt;
0x52	R&lt;br /&gt;
0x54	T&lt;br /&gt;
0x45	E&lt;br /&gt;
0x4e	N&lt;br /&gt;
0x00	&amp;lt;value seperator&amp;gt;&lt;br /&gt;
0xff	&amp;lt;value seperator&amp;gt;&lt;br /&gt;
0x44	D	&amp;lt;gametype : DM&amp;gt;&lt;br /&gt;
0x4d	M&lt;br /&gt;
0x00	&amp;lt;value seperator&amp;gt;&lt;br /&gt;
0xff	&amp;lt;value seperator&amp;gt;&lt;br /&gt;
0x32	2	&amp;lt;fraglimit : 25&amp;gt;&lt;br /&gt;
0x35	5&lt;br /&gt;
0x00	&amp;lt;value seperator&amp;gt;&lt;br /&gt;
0xff	&amp;lt;value seperator&amp;gt;&lt;br /&gt;
0x33	3	&amp;lt;timelimit : 30&amp;gt;&lt;br /&gt;
0x30	0&lt;br /&gt;
0x00	&amp;lt;value seperator&amp;gt;&lt;br /&gt;
0xff	&amp;lt;value seperator&amp;gt;&lt;br /&gt;
0x30	0	&amp;lt;numteams : 0&amp;gt;&lt;br /&gt;
0x00	&amp;lt;value seperator&amp;gt;&lt;br /&gt;
0xff	&amp;lt;value seperator&amp;gt;&lt;br /&gt;
0x31	1	&amp;lt;dedicatedserver : 1 = on&amp;gt;&lt;br /&gt;
0x00	&amp;lt;value seperator&amp;gt;&lt;br /&gt;
0xff	&amp;lt;value seperator&amp;gt;&lt;br /&gt;
0x30	0	&amp;lt;friendlyfire : 0&amp;gt;&lt;br /&gt;
0x00	&amp;lt;end of data indicator&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== follow same pattern to add more servers starting with 0x39 and ending with 0x00 ===&lt;br /&gt;
&lt;br /&gt;
0x00	&amp;lt;end of data indicator&amp;gt;&lt;br /&gt;
0xff	&amp;lt;end of data indicator&amp;gt;&lt;br /&gt;
0xff	&amp;lt;end of data indicator&amp;gt;&lt;br /&gt;
0xff	&amp;lt;end of data indicator&amp;gt;&lt;br /&gt;
0xff	&amp;lt;end of data indicator&amp;gt;&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=Binary_decompilation&amp;diff=392</id>
		<title>Binary decompilation</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Binary_decompilation&amp;diff=392"/>
		<updated>2026-08-18T17:38:52Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This repository contains decompiled pseudo C and reverse engineered code from all binaries shipped with this game.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SWRC-Modding/CT CT Code]&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Introduction&amp;diff=391</id>
		<title>Introduction</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Introduction&amp;diff=391"/>
		<updated>2026-08-18T17:36:59Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Getting started ==&lt;br /&gt;
&lt;br /&gt;
UnrealED is the main application to create custom content for Republic Commando. If you have the retail version of this game (CD/DVD), you need to install [https://wiki.swrc-modding.net/images/3/37/SWRC_Patch1.0.zip Official Patch 1.0], Steam/GoG users don&#039;t need to do that!&lt;br /&gt;
&lt;br /&gt;
The executable is located here: &amp;lt;code&amp;gt;\GameData\System\UnrealED.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively you can run &amp;lt;code&amp;gt;\GameData\System\CTEditor.exe&amp;lt;/code&amp;gt; to load fixes automatically.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also recommended to install [https://github.com/SWRC-Modding/CT/releases CT Fix] since it fixes lots of issues running this editor on modern Windows!!!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On Startup, it should look like the image below: &lt;br /&gt;
&lt;br /&gt;
[[File:UnrealEDmain.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
If the UnrealED opens successfuly but you have four blank white windows, there is an easy way to fix that.&lt;br /&gt;
&lt;br /&gt;
On top bar, go to: &amp;lt;code&amp;gt;View -&amp;gt; Viewports -&amp;gt; Configure and select a new Viewport&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Blank white windows should be gone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the UnrealED crashes on startup, turn bump mapping to low by starting the game and changing it in options menu.&lt;br /&gt;
&lt;br /&gt;
Also always use a &amp;quot;clean&amp;quot; version of Republic Commando for UnrealED if you don&#039;t know what you are doing!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the UnrealED still crashes on startup, take a look at UnrealED.log file, maybe you&#039;ll find the issue there.&lt;br /&gt;
&lt;br /&gt;
== Known Problems and Issues ==&lt;br /&gt;
&lt;br /&gt;
Scrolling down in the Texture browser will crash UnrealED immediatly. Instead select a package and watch directly in there, still some packages crashes the editor on load. This behavior is caused by faulty bumpmaps that don’t work properly on newer systems. A solution to this problem is [https://github.com/SWRC-Modding/CT/releases Republic Commando Fix] which is also recommended to use in general since it fixes alot of other Issues within the game and editor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Rewriting and recompiling the default classes of this game is not possible due to developers oversight with code errors. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Terrain editor sometimes freaks out and freezes UnrealED process. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Export All Scripts&amp;quot; does nothing unless there is a folder called &amp;quot;Code&amp;quot; in the same folder as &amp;quot;GameData&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Play Map&amp;quot; feature in the editor only minimizes it but does nothing. However, there is a simple fix: You have to create a new file in the System folder called &amp;quot;default.ini&amp;quot; with the following content: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[URL]&lt;br /&gt;
EXEName=SWRepublicCommando.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Render Emulation doesn&#039;t work properly. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Too many events in scripted trigger will fail to load map ingame. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Placing a FluidSurfaceInfo instantly crashes the editor. A workaround is using the Republic Commando Fix mentioned earlier.&lt;br /&gt;
&lt;br /&gt;
== Mouse and Keyboard controls ==&lt;br /&gt;
&lt;br /&gt;
Holding left mouse button will move the camera forward, backward and sideways.&lt;br /&gt;
&lt;br /&gt;
Holding right mouse button will rotate the camera on place.&lt;br /&gt;
&lt;br /&gt;
Holding both mouse buttons will move the camera up or down.&lt;br /&gt;
&lt;br /&gt;
Left click on something selects it and right click opens the context menu.&lt;br /&gt;
&lt;br /&gt;
Those controls also apply to the 2D Viewports.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pressing Q will hide BSP Geometry.&lt;br /&gt;
&lt;br /&gt;
Pressing W will hide Staticmeshes.&lt;br /&gt;
&lt;br /&gt;
Pressing I will display information at every light actor&#039;s place.&lt;br /&gt;
&lt;br /&gt;
Pressing H hides every actor on map.&lt;br /&gt;
&lt;br /&gt;
Pressing K toggles the blue grid.&lt;br /&gt;
&lt;br /&gt;
Pressing C highlights every geometry mesh.&lt;br /&gt;
&lt;br /&gt;
Pressing B toggles the brush tool. &lt;br /&gt;
&lt;br /&gt;
== How to start using the editor ==&lt;br /&gt;
&lt;br /&gt;
Check out [[Tutorial Series]] for detailed guides on various things.&lt;br /&gt;
&lt;br /&gt;
Have fun!&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Introduction&amp;diff=390</id>
		<title>Introduction</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Introduction&amp;diff=390"/>
		<updated>2026-08-18T17:35:44Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Getting started ==&lt;br /&gt;
&lt;br /&gt;
UnrealED is the main application to create custom content for Republic Commando. If you have the retail version of this game (CD/DVD), you need to install [https://wiki.swrc-modding.net/images/3/37/SWRC_Patch1.0.zip Official Patch 1.0], Steam/GoG users don&#039;t need to do that!&lt;br /&gt;
&lt;br /&gt;
The executable is located here: &amp;lt;code&amp;gt;\GameData\System\UnrealED.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also recommended to install [https://github.com/SWRC-Modding/CT/releases CT Fix] since it fixes lots of issues running this editor on modern Windows!!!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On Startup, it should look like the image below: &lt;br /&gt;
&lt;br /&gt;
[[File:UnrealEDmain.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
If the UnrealED opens successfuly but you have four blank white windows, there is an easy way to fix that.&lt;br /&gt;
&lt;br /&gt;
On top bar, go to: &amp;lt;code&amp;gt;View -&amp;gt; Viewports -&amp;gt; Configure and select a new Viewport&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Blank white windows should be gone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the UnrealED crashes on startup, turn bump mapping to low by starting the game and changing it in options menu.&lt;br /&gt;
&lt;br /&gt;
Also always use a &amp;quot;clean&amp;quot; version of Republic Commando for UnrealED if you don&#039;t know what you are doing!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the UnrealED still crashes on startup, take a look at UnrealED.log file, maybe you&#039;ll find the issue there.&lt;br /&gt;
&lt;br /&gt;
== Known Problems and Issues ==&lt;br /&gt;
&lt;br /&gt;
Scrolling down in the Texture browser will crash UnrealED immediatly. Instead select a package and watch directly in there, still some packages crashes the editor on load. This behavior is caused by faulty bumpmaps that don’t work properly on newer systems. A solution to this problem is [https://github.com/SWRC-Modding/CT/releases Republic Commando Fix] which is also recommended to use in general since it fixes alot of other Issues within the game and editor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Rewriting and recompiling the default classes of this game is not possible due to developers oversight with code errors. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Terrain editor sometimes freaks out and freezes UnrealED process. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Export All Scripts&amp;quot; does nothing unless there is a folder called &amp;quot;Code&amp;quot; in the same folder as &amp;quot;GameData&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Play Map&amp;quot; feature in the editor only minimizes it but does nothing. However, there is a simple fix: You have to create a new file in the System folder called &amp;quot;default.ini&amp;quot; with the following content: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[URL]&lt;br /&gt;
EXEName=SWRepublicCommando.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Render Emulation doesn&#039;t work properly. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Too many events in scripted trigger will fail to load map ingame. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Placing a FluidSurfaceInfo instantly crashes the editor. A workaround is using the Republic Commando Fix mentioned earlier.&lt;br /&gt;
&lt;br /&gt;
== Mouse and Keyboard controls ==&lt;br /&gt;
&lt;br /&gt;
Holding left mouse button will move the camera forward, backward and sideways.&lt;br /&gt;
&lt;br /&gt;
Holding right mouse button will rotate the camera on place.&lt;br /&gt;
&lt;br /&gt;
Holding both mouse buttons will move the camera up or down.&lt;br /&gt;
&lt;br /&gt;
Left click on something selects it and right click opens the context menu.&lt;br /&gt;
&lt;br /&gt;
Those controls also apply to the 2D Viewports.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pressing Q will hide BSP Geometry.&lt;br /&gt;
&lt;br /&gt;
Pressing W will hide Staticmeshes.&lt;br /&gt;
&lt;br /&gt;
Pressing I will display information at every light actor&#039;s place.&lt;br /&gt;
&lt;br /&gt;
Pressing H hides every actor on map.&lt;br /&gt;
&lt;br /&gt;
Pressing K toggles the blue grid.&lt;br /&gt;
&lt;br /&gt;
Pressing C highlights every geometry mesh.&lt;br /&gt;
&lt;br /&gt;
Pressing B toggles the brush tool. &lt;br /&gt;
&lt;br /&gt;
== How to start using the editor ==&lt;br /&gt;
&lt;br /&gt;
Check out [[Tutorial Series]] for detailed guides on various things.&lt;br /&gt;
&lt;br /&gt;
Have fun!&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Game_Versions&amp;diff=389</id>
		<title>Game Versions</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Game_Versions&amp;diff=389"/>
		<updated>2026-08-18T17:34:24Z</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 references of [[Republic Commando UCC]] usage found.&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=Troubleshooting_Client&amp;diff=388</id>
		<title>Troubleshooting Client</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Troubleshooting_Client&amp;diff=388"/>
		<updated>2026-08-18T17:33:06Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some mainstream problems and solutions, it is recommended to check out [[Files and Useful Stuff (Client)]].&lt;br /&gt;
&lt;br /&gt;
=== Debugging ===&lt;br /&gt;
&lt;br /&gt;
Launch the game with &amp;lt;code&amp;gt;-windowed -log&amp;lt;/code&amp;gt; parameter to get output log window. Alternatively you can look up the written log file in &amp;lt;code&amp;gt;GameData/System/SWRepublicCommando.log&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Useful commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
togglefullscreen           -Switch between fullscreen and window mode&lt;br /&gt;
setres 1920x1080           -Set a desired resolution. For example full HD&lt;br /&gt;
setmousesensitivity        -Set a custom mouse sensitivity. Does not work on main menu!&lt;br /&gt;
showlog                    -Switch to window mode if necessary and open up log window for information/debugging&lt;br /&gt;
stat fps                   -Show FPS counter at top right corner&lt;br /&gt;
quit                       -Closes the game instantly&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Intro movies not playing and white/pink main menu screen ==&lt;br /&gt;
&lt;br /&gt;
This is due to a lack of installed media codecs on the operating system. (AVI/MPG)&lt;br /&gt;
&lt;br /&gt;
== Clicking on new game crashes game ==&lt;br /&gt;
&lt;br /&gt;
This is due to bump mappings not being compatible with current video cards.&lt;br /&gt;
* Go to settings menu and set bump mapping to &amp;lt;code&amp;gt;low&amp;lt;/code&amp;gt;&lt;br /&gt;
* If using an Intel GPU, also set projectors and squad shadows to &amp;lt;code&amp;gt;low&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make bump mapping usable again and get other fixes and quality of life improvements, download Republic Commando Fix: [https://github.com/SWRC-Modding/CT/releases here]&lt;br /&gt;
&lt;br /&gt;
== Going to options menu crashes game ==&lt;br /&gt;
&lt;br /&gt;
Happens rarely, might be caused by invalid values/properties which were changed in config file using text editor outside the game.&lt;br /&gt;
&lt;br /&gt;
== Multiplayer browser not working ==&lt;br /&gt;
&lt;br /&gt;
Download Republic Commando Fix: [https://github.com/SWRC-Modding/CT/releases here]&lt;br /&gt;
&lt;br /&gt;
== Mouse sensitivity very high at main menu ==&lt;br /&gt;
&lt;br /&gt;
Mouse movement is dependant on FPS, either play in window mode or use Republic Commando Fix: [https://github.com/SWRC-Modding/CT/releases here]&lt;br /&gt;
&lt;br /&gt;
== Subtraction to matinee scene ==&lt;br /&gt;
&lt;br /&gt;
Adding a subtraction in the matinee scene, then clicking add can result in the program crashing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. Have four interpolation points pathed around a cube.&lt;br /&gt;
2. Switch to matinee mode.&lt;br /&gt;
3. Select (left click) scene.&lt;br /&gt;
4. Select Action tab.&lt;br /&gt;
5. Expand sub.	&lt;br /&gt;
6. Left click on ellispes.&lt;br /&gt;
7. Left click add.&lt;br /&gt;
8. program crashes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FluidSurfaceInfo crash ==&lt;br /&gt;
&lt;br /&gt;
Simply adding a FluidSurfaceInfo from the actors list can crash the engine. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. Left click the Actor Class Browser from the menu tool bar at the top of the program. The icon looks like a chess pawn.&lt;br /&gt;
2. Left click on the plus (+) to expand Actor. &lt;br /&gt;
3. Left click on the plus (+) to expand Info.&lt;br /&gt;
4. Left click FluidSurfaceInfo to have it selected.&lt;br /&gt;
5. Within the 3D viewport right click to open up the context menu then select &#039;Add FluidSurfaceInfo Here&#039; from the top. &lt;br /&gt;
6. Program crashes.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Disappearing FluidSurfaceInfos ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. Open actor browser and select FluidSurfaceInfo in Actor → Info → FluidSurfaceInfo&lt;br /&gt;
2. Left click the hole you want to select to add your water.&lt;br /&gt;
3. Right click to open up the context menu.&lt;br /&gt;
4. Click Edit → Paste → Here and the FluidSurfaceInfo will show up.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It may disappear so you’ll have to set all of the properties you want right then and there because once it’s gone, it’s gone. You can play on the level and the water will show up however I haven’t found a way to edit the properties yet after the actor disappears. You may have to write down the properties you want before disselecting so knowing some information about how the FluidSurfaceInfo property works would be helpful.&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Files_and_Useful_Stuff_(Client)&amp;diff=387</id>
		<title>Files and Useful Stuff (Client)</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Files_and_Useful_Stuff_(Client)&amp;diff=387"/>
		<updated>2026-08-18T17:29:58Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A list of useful stuff for game client:&lt;br /&gt;
&lt;br /&gt;
== Republic Commando Fix ==&lt;br /&gt;
&lt;br /&gt;
A bunch of useful tools for your game including UCC, Gamespy Fix, Bumpmapping Fix and other features: [https://github.com/SWRC-Modding/CT/releases download]&lt;br /&gt;
&lt;br /&gt;
== Official Patch 1.0 ==&lt;br /&gt;
&lt;br /&gt;
The one and only official patch released by LucasArts. Includes UnrealED and multiplayer map Hangar: [https://wiki.swrc-modding.net/images/3/37/SWRC_Patch1.0.zip download]&lt;br /&gt;
&lt;br /&gt;
== DRM free EXE ==&lt;br /&gt;
&lt;br /&gt;
DRM free EXE of the game compatible with Retail and Steam/GoG version to quickly boot up the game: [https://wiki.swrc-modding.net/images/7/76/SWRepublicCommando.zip download]&lt;br /&gt;
&lt;br /&gt;
== UEViewer (Umodel) ==&lt;br /&gt;
&lt;br /&gt;
A third party tool for all kind of games using Unreal Engine to extract gamedata: [https://www.gildor.org/en/projects/umodel download]&lt;br /&gt;
&lt;br /&gt;
== ActorX Plugin ==&lt;br /&gt;
&lt;br /&gt;
A third party plugin for Autodesk 3DS Max to import and export Unreal Engine ASE/PSK/PSA files: [https://www.gildor.org/projects/unactorx download]&lt;br /&gt;
&lt;br /&gt;
== IO Scene PSK/PSA ==&lt;br /&gt;
&lt;br /&gt;
A third party plugin for Blender to import and export Unreal Engine PSK/PSA files: [https://github.com/DarklightGames/io_scene_psk_psa/releases download]&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;No-Kill&amp;quot; challenge ==&lt;br /&gt;
&lt;br /&gt;
A mod which adds a challenge to this game where you fail the mission if you kill an enemy. Download [https://github.com/ffsPLASMA/swrc-no-kill-challenge here]&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Files_and_Useful_Stuff_(Client)&amp;diff=386</id>
		<title>Files and Useful Stuff (Client)</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Files_and_Useful_Stuff_(Client)&amp;diff=386"/>
		<updated>2026-08-18T17:28:04Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A list of useful stuff for game client:&lt;br /&gt;
&lt;br /&gt;
== Republic Commando Fix ==&lt;br /&gt;
&lt;br /&gt;
A bunch of useful tools for your game including UCC, Gamespy Fix, Bumpmapping Fix and other features: [https://github.com/SWRC-Modding/CT/releases download]&lt;br /&gt;
&lt;br /&gt;
== Official Patch 1.0 ==&lt;br /&gt;
&lt;br /&gt;
The one and only official patch released by LucasArts. Includes UnrealED and multiplayer map Hangar: [https://wiki.swrc-modding.net/images/3/37/SWRC_Patch1.0.zip download]&lt;br /&gt;
&lt;br /&gt;
== DRM free EXE ==&lt;br /&gt;
&lt;br /&gt;
DRM free EXE of the game compatible with Retail and Steam/GoG version to quickly boot up the game: [https://wiki.swrc-modding.net/images/7/76/SWRepublicCommando.zip download]&lt;br /&gt;
&lt;br /&gt;
== UEViewer (Umodel) ==&lt;br /&gt;
&lt;br /&gt;
A third party tool for all kind of games using Unreal Engine to extract gamedata: [https://www.gildor.org/en/projects/umodel download]&lt;br /&gt;
&lt;br /&gt;
== ActorX Plugin ==&lt;br /&gt;
&lt;br /&gt;
A third party plugin for Autodesk 3DS Max to import and export Unreal Engine ASE/PSK/PSA files: [https://www.gildor.org/projects/unactorx download]&lt;br /&gt;
&lt;br /&gt;
== IO Scene PSK/PSA ==&lt;br /&gt;
&lt;br /&gt;
A third party plugin for Blender to import and export Unreal Engine PSK/PSA files: [https://github.com/DarklightGames/io_scene_psk_psa/releases download]&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Files_and_Useful_Stuff_(Server)&amp;diff=385</id>
		<title>Files and Useful Stuff (Server)</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Files_and_Useful_Stuff_(Server)&amp;diff=385"/>
		<updated>2026-08-18T17:19:24Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A list of useful stuff for your server:&lt;br /&gt;
&lt;br /&gt;
== RC UCC ==&lt;br /&gt;
&lt;br /&gt;
A commandline tool (UCC) to make it easier to use commandlets and run server via command shell: [https://github.com/SWRC-Modding/CT/releases download]&lt;br /&gt;
&lt;br /&gt;
== Gamespy Fix ==&lt;br /&gt;
&lt;br /&gt;
Gamespy multiplayer server browser listing fixed via CT Release: (Service provided by [http://beta.openspy.net/en/ OpenSpy]) [https://github.com/SWRC-Modding/CT/releases Download CT Release]&lt;br /&gt;
&lt;br /&gt;
== ModMPGame ==&lt;br /&gt;
&lt;br /&gt;
A custom server plugin which adds support for admin functionality and bot support. Sources and instructions available [https://github.com/SWRC-Modding/CT/tree/master/ModMPGame here]&lt;br /&gt;
&lt;br /&gt;
Pre compiled binaries can be downloaded [https://wiki.swrc-modding.net/images/4/44/ModMPGame.zip here]&lt;br /&gt;
&lt;br /&gt;
== No CD key validation (Outdated) ==&lt;br /&gt;
&lt;br /&gt;
This modified file is outdated and superseeded by ModMPGame!&lt;br /&gt;
&lt;br /&gt;
A patched IpDrv.dll to disable CD key validation on the server: [https://wiki.swrc-modding.net/images/e/e2/IpDrv-NoCDkeyValidation.zip download]&lt;br /&gt;
&lt;br /&gt;
== Discord Webhook ==&lt;br /&gt;
&lt;br /&gt;
A pure server plugin to send game server data to a discord webhook: [https://github.com/ffsPLASMA/swrc-discordwebhook/releases download]&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Files_and_Useful_Stuff_(Server)&amp;diff=384</id>
		<title>Files and Useful Stuff (Server)</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Files_and_Useful_Stuff_(Server)&amp;diff=384"/>
		<updated>2026-08-18T17:18:24Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A list of useful stuff for your server:&lt;br /&gt;
&lt;br /&gt;
== RC UCC ==&lt;br /&gt;
&lt;br /&gt;
A commandline tool (UCC) to make it easier to use commandlets and run server via command shell: [https://github.com/SWRC-Modding/CT/releases download]&lt;br /&gt;
&lt;br /&gt;
== Gamespy Fix ==&lt;br /&gt;
&lt;br /&gt;
Gamespy multiplayer server browser listing fixed via CT Release: (Service provided by [http://beta.openspy.net/en/ OpenSpy]) [https://github.com/SWRC-Modding/CT/releases Download CT Release]&lt;br /&gt;
&lt;br /&gt;
== ModMPGame ==&lt;br /&gt;
&lt;br /&gt;
A custom server plugin which adds support for admin functionality and bot support. Sources and instructions available [https://github.com/SWRC-Modding/CT/tree/master/ModMPGame here]&lt;br /&gt;
&lt;br /&gt;
Pre compiled binaries can be downloaded [File:ModMPGame.zip here]&lt;br /&gt;
&lt;br /&gt;
== No CD key validation (Outdated) ==&lt;br /&gt;
&lt;br /&gt;
This modified file is outdated and superseeded by ModMPGame!&lt;br /&gt;
&lt;br /&gt;
A patched IpDrv.dll to disable CD key validation on the server: [https://wiki.swrc-modding.net/images/e/e2/IpDrv-NoCDkeyValidation.zip download]&lt;br /&gt;
&lt;br /&gt;
== Discord Webhook ==&lt;br /&gt;
&lt;br /&gt;
A pure server plugin to send game server data to a discord webhook: [https://github.com/ffsPLASMA/swrc-discordwebhook/releases download]&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=File:ModMPGame.zip&amp;diff=383</id>
		<title>File:ModMPGame.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=File:ModMPGame.zip&amp;diff=383"/>
		<updated>2026-08-18T17:18:01Z</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=Files_and_Useful_Stuff_(Server)&amp;diff=382</id>
		<title>Files and Useful Stuff (Server)</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Files_and_Useful_Stuff_(Server)&amp;diff=382"/>
		<updated>2026-08-18T17:12:54Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A list of useful stuff for your server:&lt;br /&gt;
&lt;br /&gt;
== RC UCC ==&lt;br /&gt;
&lt;br /&gt;
A commandline tool (UCC) to make it easier to use commandlets and run server via command shell: [https://github.com/SWRC-Modding/CT/releases download]&lt;br /&gt;
&lt;br /&gt;
== Gamespy Fix ==&lt;br /&gt;
&lt;br /&gt;
A patched GameSpyMgr.dll file to route game server to an alternative master server so it&#039;s shown in server browser again: (optional) (Service provided by [http://beta.openspy.net/en/ OpenSpy]) [https://github.com/SWRC-Modding/CT/releases download]&lt;br /&gt;
&lt;br /&gt;
== No CD key validation (Outdated) ==&lt;br /&gt;
&lt;br /&gt;
This modified file is outdated and superseeded by ModMPGame!&lt;br /&gt;
&lt;br /&gt;
A patched IpDrv.dll to disable CD key validation on the server: [https://wiki.swrc-modding.net/images/e/e2/IpDrv-NoCDkeyValidation.zip download]&lt;br /&gt;
&lt;br /&gt;
== Discord Webhook ==&lt;br /&gt;
&lt;br /&gt;
A pure server plugin to send game server data to a discord webhook: [https://github.com/ffsPLASMA/swrc-discordwebhook/releases download]&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=Files_and_Useful_Stuff_(Server)&amp;diff=381</id>
		<title>Files and Useful Stuff (Server)</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=Files_and_Useful_Stuff_(Server)&amp;diff=381"/>
		<updated>2026-08-18T17:11:41Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A list of useful stuff for your server:&lt;br /&gt;
&lt;br /&gt;
== RC UCC ==&lt;br /&gt;
&lt;br /&gt;
A commandline tool (UCC) to make it easier to use commandlets and run server via command shell: [https://github.com/SWRC-Modding/CT/releases download]&lt;br /&gt;
&lt;br /&gt;
== Gamespy Fix ==&lt;br /&gt;
&lt;br /&gt;
A patched GameSpyMgr.dll file to route game server to an alternative master server so it&#039;s shown in server browser again: (optional) (Service provided by [http://beta.openspy.net/en/ OpenSpy]) [https://github.com/SWRC-Modding/CT/releases download]&lt;br /&gt;
&lt;br /&gt;
== No CD key validation (Outdated) ==&lt;br /&gt;
&lt;br /&gt;
Outdated!&lt;br /&gt;
&lt;br /&gt;
A patched IpDrv.dll to disable CD key validation on the server: [https://wiki.swrc-modding.net/images/e/e2/IpDrv-NoCDkeyValidation.zip download]&lt;br /&gt;
&lt;br /&gt;
== Discord Webhook ==&lt;br /&gt;
&lt;br /&gt;
A pure server plugin to send game server data to a discord webhook: [https://github.com/ffsPLASMA/swrc-discordwebhook/releases download]&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=MS_Visual_Studio_2003&amp;diff=380</id>
		<title>MS Visual Studio 2003</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=MS_Visual_Studio_2003&amp;diff=380"/>
		<updated>2026-07-09T13:05:53Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Republic Commando was developed using Microsoft Visual Studio .NET 2003 which makes it the best version to use to make sure native mods are as compatible as possible with the game. It should work fine on newer versions of Windows if you follow the installation steps on this page.&lt;br /&gt;
&lt;br /&gt;
Download: [https://getintopc.com/softwares/development/visual-studio-net-2003-free-download/ here]&lt;br /&gt;
&lt;br /&gt;
Take a look at [[Writing Native Code]] for a detailed guide on how to use it for Republic Commando.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;.NET framework version 1.1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Before you can install Visual Studio .NET 2003 you first need the .NET framework 1.1. However, it is not possible to install it the normal way due to compatibility issues with modern Windows. As a convenience you can use this preconfigured installer: [https://wiki.swrc-modding.net/images/6/6b/DotNet1.zip download]. Simply extract the archive at a suitable location and run &amp;quot;install.bat&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In case the &amp;quot;install.bat&amp;quot; file returns an error, run netfx.msi instead. After that, run the Visual Studio Setup again and install the missing prerequisites there.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Visual Studio .NET 2003&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note: The installer might fail due to some file paths being too long so rename the folder you extracted from the archive to something short and put it in a directory that is not too far from the root like the desktop. To install it, simply run &amp;quot;setup.exe&amp;quot;. Follow the steps as shown: First install the prerequisites and then Visual Studio itself. You can skip the remaining two installation steps since they are not required.&lt;br /&gt;
&lt;br /&gt;
At some point the installer might seem to be stuck half way through. Don&#039;t worry, it can take relative long time (5 minutes) for installer to finish on Windows 10/11.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:MsVisualStudio2003.png]]&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<entry>
		<id>https://wiki.swrc-modding.net/index.php?title=MS_Visual_Studio_2003&amp;diff=379</id>
		<title>MS Visual Studio 2003</title>
		<link rel="alternate" type="text/html" href="https://wiki.swrc-modding.net/index.php?title=MS_Visual_Studio_2003&amp;diff=379"/>
		<updated>2026-07-09T13:02:14Z</updated>

		<summary type="html">&lt;p&gt;Plasma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Republic Commando was developed using Microsoft Visual Studio .NET 2003 which makes it the best version to use to make sure native mods are as compatible as possible with the game. It should work fine on newer versions of Windows if you follow the installation steps on this page.&lt;br /&gt;
&lt;br /&gt;
Download: [https://getintopc.com/softwares/development/visual-studio-net-2003-free-download/ here]&lt;br /&gt;
&lt;br /&gt;
Take a look at [[Writing Native Code]] for a detailed guide on how to use it for Republic Commando.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;.NET framework version 1.1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Before you can install Visual Studio .NET 2003 you first need the .NET framework 1.1. However, it is not possible to install it the normal way due to compatibility issues with modern windows. As a convenience you can use this preconfigured installer: [https://wiki.swrc-modding.net/images/6/6b/DotNet1.zip download]. Simply extract the archive at a suitable location and run &amp;quot;install.bat&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In case the &amp;quot;install.bat&amp;quot; file returns an error, run netfx.msi instead. After that, run the Visual Studio Setup again and install the missing required files there.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Visual Studio .NET 2003&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note: The installer might fail due to some file paths being too long so rename the folder you extracted from the archive to something short and put it in a directory that is not too far from the root like the desktop. To install it, simply run &amp;quot;setup.exe&amp;quot;. Follow the steps as shown: First install the prerequisites and then Visual Studio itself. You can skip the remaining two installation steps since they are not required. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:MsVisualStudio2003.png]]&lt;/div&gt;</summary>
		<author><name>Plasma</name></author>
	</entry>
	<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>
</feed>