https://wiki.beyondunreal.com/w/api.php?action=feedcontributions&user=00zX&feedformat=atom Unreal Wiki - User contributions [en] 2017-11-17T23:57:36Z User contributions MediaWiki 1.25.1 https://wiki.beyondunreal.com/Compiler_errors_overview?diff=45371 Compiler errors overview 2013-04-17T19:26:58Z <p>00zX: /* Other errors */</p> <hr /> <div>{{expand}}<br /> <br /> __NOTOC__<br /> {|style=&quot;width:100%;&quot;<br /> |-valign=&quot;top&quot;<br /> |<br /> ==Preprocessor errors==<br /> {{main|preprocessor errors}}<br /> A description and solution to [[preprocessor]] errors.<br /> |<br /> ==Subobjects errors==<br /> {{main|subobject errors}}<br /> A description and solution to [[subobjects]] errors.<br /> |<br /> ==Interface errors==<br /> {{main|interface errors}}<br /> A description and solution to [[interface]] errors.<br /> |}<br /> <br /> ==Other errors==<br /> {{Compiler error|id=0001|error=Could not load existing package file 'package path'|desc=}}<br /> <br /> {{Compiler error|id=0002|error='[[ForEach]]'&lt;nowiki&gt;:&lt;/nowiki&gt; An iterator expression is required|desc=After the ForEach keyword a standard function call to an [[iterator]] function is required. That iterator function could be called in the context of the current code (e.g. &quot;foreach AllActors(...)&quot;) or within the context of some other object (e.g. &quot;foreach WorldInfo.AllPawns(...)&quot; calls the AllPawns iterator of the WorldInfo)}}<br /> <br /> {{Compiler error|id=0003|error=Operator '!='&lt;nowiki&gt;:&lt;/nowiki&gt; Comparison will always succeed|desc=You probably already ensured that the values you are trying to compare are really different. In that case it would be pointless to perform exactly the same comparison again}}<br /> <br /> {{Compiler error|id=0004|error=[[NameOf]] argument is not an identifier|desc=}}<br /> <br /> {{Compiler error|id=0005|error=Illegal character in name|desc=}}<br /> <br /> {{Compiler error|id=0006|error=Left type is incompatible with '[[Operator|OPERATERNAME]]'|desc=}}<br /> <br /> ===Classes===<br /> ;Error, 'class'&lt;nowiki&gt;:&lt;/nowiki&gt; Limitor 'class name' is not a class name :<br /> <br /> ;Error, Classes with [[config]]/[[globalconfig]] member variables need to specify config file. : You used a ''config'' modifier on a variable but forgot to add the class modifier ''config'' (resulting in the default INI file for your application) or ''config(*name of the INI*)''. <br /> <br /> ;Error, Class '[[localized]]' keyword is no longer required : Self explanatory. The localized modifier was only necessary in early {{UE1}} games, in newer generations this is automatic implied.<br /> <br /> ;Error, failed to find [[DependsOn]]/[[Implements]] class '[[Class]]' while parsing '[[Class]]' : Self explanatory. However it could be that you have made a typo or that you are referencing a [[struct]] rather than a [[class]].<br /> <br /> ;Error, Script vs. class name mismatch (ClassName/FileName) : The name in the header of your class doesn't match the name of the UC file.<br /> <br /> ===Variables===<br /> ;Error, Instance variables are only allowed at class scope (use 'local'?) : [[Variables]] are declared using the keyword '''local''' inside functions. Variables cannot be declared at [[state]] scope.<br /> <br /> ;Error, Not allowed to use '[[Variable#Modifiers_affecting_values|config]]' with object variables : Object variables cannot be made configurable. If you want to store a configurable class, material, sound, etc., consider storing it in a configurable string variable instead and using [[DynamicLoadObject]]() at runtime to load the configured object.<br /> <br /> ;Error, Can't assign Const variables :<br /> <br /> ;Error, Variable declaration&lt;nowiki&gt;:&lt;/nowiki&gt; 'idx' already defined : trying to declare a local variable when one is defined as a function parameter. (Parameters are also local variables!)<br /> <br /> ;Error, '[[RepRetry]]' is only allowed on struct properties :<br /> <br /> ===States===<br /> ;Error, '[[state]]'&lt;nowiki&gt;:&lt;/nowiki&gt; expecting State, got Function : This was caused by calling a state '''sleep''' where sleep is a function of state. Im guessing any function previously defined can conflict with a state.<br /> <br /> ;Error, '[[Ignores]]'&lt;nowiki&gt;:&lt;/nowiki&gt; 'Function Name' is not a function : The Ignores statement only accepts existing functions. In other words, if you created the function within the state (instead of ignoring it), you would be able to call [[Super]].FunctionName(...) in it.<br /> <br /> ===Functions===<br /> ;Error, Calling a [[singular]] function within a singular function on the same object will always fail : A function with the ''singular'' modifier will only execute if the same object is not already executing another singular function, thus the compiler rejects direct calls to other singular functions.<br /> <br /> ;Error, Bad function definition : This happens when you define a function with an object as the return but that object does not exist.<br /> <br /> ;Error, Code space for [[function|FUNCTIONNAME]] overflowed by n bytes : There is a hard limit on the number of local variable allocations you can do per function call. When this error occurs, you stepped over that limit. You can fix it by moving some functionality and allocations to sub-function calls, but you should maybe start to question your code if you need that many allocations.<br /> <br /> ===Arrays===<br /> ;Error, Static arrays of dynamic arrays are not allowed : A variable has been declared with array&lt;''type''&gt; AND ''variablename''[n] at the same time.<br /> <br /> ;Error, Invalid property or function call on a dynamic array : You might have omitted an array index expression in square brackets after the array reference. If not, see [[dynamic arrays]] for a list of (pseudo) functions and properties you can use on dynamic arrays themselves.<br /> <br /> ===Typecasting===<br /> ;Error, Cast from 'object name' to 'object name' is unnecessary :<br /> <br /> ;Error, Cast from '[[class]]' to '[[class]]' will always fail : [[Typecasting]] from one class to another is only allowed to narrow a reference of one type to a subclass of that type. Casting to a class that is not a subclass of the current type would always return None and thus is rejected by the compiler.<br /> <br /> ===Unrecognized===<br /> ;Error, Unrecognized [[type]] 'class name' :<br /> <br /> ;Error, Unrecognized member 'variable name' in class 'class name' : The variable does not exist in this class.<br /> <br /> ===Unknown===<br /> ;Error, Unknown member '[[variable]]' in struct '[[struct]]' : The variable is not declared. Check if you have forgot to declare it or if you have made a typo.<br /> <br /> ;Error, Unknown Function 'function name' in 'Class package.class' :<br /> <br /> ===Unexpected===<br /> ;Error, Unexpected '[[defaultproperties]]' : This seems to occur when you have an end of multi-comment preceded by a line comment on the same line. See [[Compiler issues]]. Keep in mind that you can not specify default properties in code while using the UnrealEd internal script editor. Doing so will give you this error as well. To change the default properties of a class in UnrealEd, you need to type '''editdefault class=''classname''''' in the command line of the editor.<br /> {{CorrectWrong|&lt;uscript&gt;/* The quick brown fox jumps over the lazy dog */<br /> // ...&lt;/uscript&gt;|&lt;uscript&gt;/* The quick brown fox jumps over the lazy dog */ // ...&lt;/uscript&gt;}}<br /> <br /> ;Error, Unexpected end of file at end of Class : Usually caused by an unmatched pair of braces, missing &quot;}&quot;<br /> <br /> ;Error, Unexpected '.' following 'variable name' : accessor usage on a [[class]] scope [[variable]] that doesnt exist.<br /> <br /> ===Replication===<br /> ;Error, Unrecognized variable 'variable name' name in replication definition : A name in a [[replication condition]] does not correspond to any existing variable or (prior to {{UE3}}) function within the same class.<br /> <br /> ===Conflicts===<br /> ;Error, 'Function Name' conflicts with 'Function Package.Class&lt;nowiki&gt;:&lt;/nowiki&gt;FunctionName' :<br /> <br /> ;Error, Redefinition of '[[function]] FUNCNAME' differs from original in [[class|CLASSNAME]] : You either want to override a function but the number or type of parameters in the definition of the parent class differs from your redefinition, or you accidentally chose a name for your function that is already used by a super class, so you will wish to choose another unambiguous name.<br /> <br /> ===Bad or missing expression===<br /> ;Error, Bad or missing expression in parenthesis for '='<br /> <br /> ;Error, Bad or missing expression in parenthesis for Following '&amp;&amp;'<br /> <br /> ;Error, Bad or missing expression in '[[If]]' : a function in an if statement does not return a type.<br /> <br /> ;Error, Bad or missing expression in Call to '[[Function]]', parameter ''number'' :<br /> <br /> ;Error, Bad or missing expression for token&lt;nowiki&gt;:&lt;/nowiki&gt; '[[Function]]', in '[[Return]]' :<br /> <br /> ;Error, Bad or missing expression for token&lt;nowiki&gt;:&lt;/nowiki&gt; '[[Variable]]', in '[[If]]' : To note in this case the variable was an actor reference.<br /> <br /> ;Error, Bad or missing expression for token&lt;nowiki&gt;:&lt;/nowiki&gt; '[[Variable]]', in Call to '[[Function]]', parameter X :<br /> <br /> ;Error, Bad or missing expression after '[[Operator|OPERATORNAME]]'<br /> ;Error, Bad or missing expression after '[[Operator|OPERATORNAME]]'&lt;nowiki&gt;:&lt;/nowiki&gt; '[[Variable|VARIABLENAME]]' : + being an incorrect operator usage? '&amp;&amp;'<br /> <br /> ;Error, '[[type]]' conversion&lt;nowiki&gt;:&lt;/nowiki&gt; Bad or missing expression<br /> <br /> ;Error, Bad or missing expression in '[[NameOf]]'<br /> <br /> ;Error, 'class name'&lt;nowiki&gt;:&lt;/nowiki&gt; Bad command or expression :<br /> <br /> ===Missing===<br /> ;Error, Missing 'function' : Declared a function modifier without a function, defined a function type before function.<br /> {{CorrectWrong|&lt;uscript&gt;final function int FuncName()&lt;/uscript&gt;|<br /> &lt;uscript&gt;final int FuncName() or final int function FuncName()&lt;/uscript&gt;}} <br /> <br /> ;Error, Missing ')' in 'foreach array' : The variable inside the brackets of a foreach loop is not defined.<br /> <br /> ;Error, Missing ';' before 'variable name' : The variable you are trying to access through a typecast is not defined.<br /> <br /> ;Error, Missing ';' before ')' : End of line expected before the character.<br /> {{CorrectWrong|&lt;uscript&gt;...<br /> {<br /> a = b;<br /> }&lt;/uscript&gt;|&lt;uscript&gt;...<br /> {<br /> a = b<br /> }&lt;/uscript&gt;}} <br /> <br /> ;Error, ImportText (''[[struct]]'')&lt;nowiki&gt;:&lt;/nowiki&gt; Missing closing parenthesis&lt;nowiki&gt;:&lt;/nowiki&gt;(''member1''='value',''member2='value'))<br /> <br /> ;Error, Missing variable name : Pretty sure this is caused by using a class limitor on an interface like so, var interface&lt;goo&gt; foo;<br /> <br /> ===Static Functions===<br /> ;Error, Can't call instance functions from within static functions : [[Static Function|Static functions]] can only call other static functions directly. Additionally this can happen if you are trying to call a non-static function via the &quot;Class.static.FunctionName&quot; call modifier.<br /> <br /> ;Error, You can only access default values of variables here : Tried to assign a non [[default variable]] a value, using a non [[default variable]] in a statement, assigning a variable a value from another that is not a default variable. There are instances where you can access non default variables in [[Static Function|Static functions]], if the variable is part of the function definition, a local variable.<br /> <br /> ===Mismatch===<br /> ;Error, Call to '[[function|FUNCTIONNAME]]'&lt;nowiki&gt;:&lt;/nowiki&gt; type mismatch in parameter NUMBER<br /> ;Error, Type mismatch in Call to '[[function|FUNCTIONNAME]]', parameter ''number'' : the [[type]] of [[variable]] being passed to the function <br /> parameter number specified is incorrect.<br /> <br /> ;Error, Type mismatch in '=' : you probably wanted to make a [[bool]]ean compare &quot;==&quot; but ended up assigning something to a variable.<br /> <br /> ;Error, [[Const]] mismatch with '+' :<br /> <br /> ;Error, Type mismatch in array index :<br /> <br /> ===Classes===<br /> ;Error, Illegal character in name<br /> <br /> ==Warnings==<br /> ;Warning, Unresolved reference to Class 'class name' :<br /> <br /> ;Warning, Unresolved reference to '''object'''<br /> <br /> ;Warning, Function parameter&lt;nowiki&gt;:&lt;/nowiki&gt; 'function name' conflicts with previously defined field in 'class name' :<br /> <br /> ;Warning, ''[[function]]''&lt;nowiki&gt;:&lt;/nowiki&gt; Missing return value : a function with a return type has no 'return' that could be reached, for example if the only return is in an if-block and thus can't be accessed in all cases.<br /> <br /> ;Warning, Using a non-qualified name (would have) found&lt;nowiki&gt;:&lt;/nowiki&gt; object package.group.group.name<br /> <br /> ;Warning, '''friendly operator name'''_'''TypeNameTypeName'''&lt;nowiki&gt;:&lt;/nowiki&gt; Missing return value : This is similar to function not having a return value but is the operator version, UScript supports operator overloading so the 'friendly operator name''' will be a reference to a table within the engine $ being Concat as an example.<br /> <br /> ;Warning, Class ''ClassName'' can't bind to DLL ''DLLPath'' : The DLL that should be bound to either doesn't exist in the Win32\UserCode directory or was compiled wrong, for example on another system with debug settings (they only work on the system they were compiled on).<br /> <br /> ;Warning, Variable declaration&lt;nowiki&gt;:&lt;/nowiki&gt; 'VARIABLENAME' conflicts with previously defined field in 'CLASSNAME' : You should not redefine existing variables in subclasses using the ''var'' or ''local'' declaration since the variable is already available from the parent class.<br /> <br /> ;Warning, 'identifier' obscures 'identifier' in base class 'OBJECTNAME' :<br /> <br /> ;Warning, Variable is declared with '[[SerializeText]]' but this keyword only has meaning for [[Native]] variables :<br /> <br /> ===Local Variables===<br /> ;Warning, 'variable name' &lt;nowiki&gt;:&lt;/nowiki&gt; unreferenced local variable : A variable is declared within a function and never assigned a value.<br /> <br /> ;Warning, 'variable name'&lt;nowiki&gt;:&lt;/nowiki&gt; unused local variable : A local variable was declared and maybe the function even assigns a value to it, but the value is never accessed elsewhere in the function. (Functions returning a value need not assign that value to a variable, in case you were wondering.)<br /> <br /> ;Warning, 'variable name' &lt;nowiki&gt;:&lt;/nowiki&gt; local variable used before assigned a value : A variable is referenced before it is assigned a value, which means it'll return the default value for that type, whether that is what you are looking for or not. This could be conditionally incorrect, the compiler doesn't check to see in which order things are carried out so it could in fact be wrong, hence only a warning.<br /> <br /> ===Replication===<br /> ;Warning, Reliabe/Unreliable keywords are no longer used in 'replication {}': Those keywords only apply to function replication and are function modifiers in {{UE3}}.<br /> <br /> ===Default Properties===<br /> ;Warning, Import failed for 'variable name'&lt;nowiki&gt;:&lt;/nowiki&gt; property is config (Check to see if the property is listed in the DefaultProperties. It should only be listed in the specific .ini/.int file) : It was tried to assign a default value to a variable that was declared [[config]]. Such a variable is supposed to read it's value always from the associated [[udn3:ConfigurationFiles|INI]] file, so it doesn't make sense to assign it in code and not there.<br /> <br /> ;Warning, Unknown property in defaults&lt;nowiki&gt;:&lt;/nowiki&gt; 'line from defaultproperties block' : A property in the defaults is not a defined variable.<br /> <br /> ;Warning, Invalid property value in defaults&lt;nowiki&gt;:&lt;/nowiki&gt; ''property''=''value'' : A property in the defaults is not a defined variable.<br /> <br /> ;Warning, redundant data&lt;nowiki&gt;:&lt;/nowiki&gt; 'line from defaultproperties block' : There can only be one assignment for a property per class definition, so you probably have a duplicate in the DefaultProperties.<br /> <br /> ;Warning, ObjectProperty package.class.property&lt;nowiki&gt;:&lt;/nowiki&gt; unresolved reference to object'package.group.object' : The specified object could not be found in the package.<br /> <br /> ;Warning, Unable to parse parameter value '(''member1''=''value''))' in defaultproperties array operation&lt;nowiki&gt;:&lt;/nowiki&gt; ''array&lt;struct&gt;''.add((''member1''=''value'',''member2''=''value'')) : A value for one of the members in your struct causes an error. This error may be given later or earlier on in the compiler output. For example, if a member contains a class reference to a class that the compiler cannot find, it will give this warning but also an unresolved reference warning and a property import error.<br /> <br /> ==Failure==<br /> ;Failed to load 'object package.group.name'&lt;nowiki&gt;:&lt;/nowiki&gt; Failed to find object 'object package.group.name'<br /> <br /> [[Category:Compiler]] [[Category:Compiler errors]]</div> 00zX https://wiki.beyondunreal.com/User:00zX?diff=45291 User:00zX 2012-12-08T15:15:08Z <p>00zX: /* Work */</p> <hr /> <div>__NOTOC__<br /> ==Wiki==<br /> ====General====<br /> :[[User:00zX/Setting_Up_Your_UScript_Environment|Setting Up Your UScript Environment]]<br /> ====UE3====<br /> :[[User:00zX/Using_The_Unreal_Engine_3_Preprocessor|Using The Unreal Engine 3 Preprocessor]]<br /> ====UE2.5====<br /> :[[UE2:Using_the_UT2004_mod_system|Using The UT2004 Mod System]]<br /> ====Rants====<br /> [[User:00zX/Rants|Rants]]<br /> <br /> ==Work==<br /> ====Unreal Development Kit====<br /> :[[User:00zX/Plugin_(UDK)|UDK: ReDeX]] ''Status:'' '''Testing''' <br /> :''Description:'' PC Framework for UDK, its a combination of a framework and macros along with associated parser functionality.<br /> ::''GamedGFx:''' Scaleform interface along with object saving/loading.<br /> ::'''GamedEx:''' GPAK Game framework built using Redux, support for many features; round based play, archetype systems, additions to particles, materials, etc.<br /> ::'''GamedCaster:''' First Person Multiplayer PvP.<br /> <br /> :[[User:00zX/Project Silky_(UDK)|UDK: Project Silky]] ''Status:'' '''Alpha''' (on hold)<br /> ====Unreal Tournament 3====<br /> :[[User:00zX/GameDex Framework_(UT3)|UT3: GameDex Framework]] ''Status:'' '''Beta''' (on hold)<br /> ::[[User:00zX/GameDex_Framework_(UT3)#Newtators (Mutator pack)|Newtators-v1.9e]] ''Status:'' '''Point Release'''<br /> ::[[User:00zX/GameDex_Framework_(UT3)#Attrition (Gametype)|Attrition-v0.5pb]] ''Status:'' '''Public Beta'''<br /> ====Unreal Tournament 2004====<br /> :[[User:00zX/UC2004_(UT2004)|UT2004: Unreal Championship 2004]] ''Status:'' '''Beta''' (dissolved)<br /> :[http://www.divshare.com/download/16967446-918|UT2004: Turbo Instagib] ''Status:'' '''Beta'''<br /> :[http://www.divshare.com/download/16967454-2c0|UT2004: CrapLink]] ''Status:'' '''Beta'''<br /> &lt;br&gt;<br /> <br /> ==Highlighters==<br /> <br /> ===UnrealWiki - Code Noir Redex Theme=== <br /> [[File:Monobook-noir-alpha3.gif|700px|thumb|left]]<br /> ====Status: Beta====<br /> To Install copy the contents of the following page into your own ''''User:[name]/monobook.css'''' page.<br /> ::[[User:00zX/monobook.css]]<br /> ::[http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Fwiki.beyondunreal.com%2FUser%3A00zX%2Fmonobook.css&amp;profile=css21&amp;usermedium=all&amp;warning=1&amp;lang=en W3C CSS Validator]<br /> ::[http://i10.photobucket.com/albums/a123/OlympusMons/CodeNoirRedeX.png High Resolution Image]&lt;br&gt;<br /> =====Features=====<br /> :Dark Theme<br /> :High Contrast<br /> :Improved Readability<br /> :Highlighter adjustments for UScript, CSS and XML<br /> :Different coloured borders per GameNameSpace<br /> :Curved Borders in supporting browsers<br /> =====Known Issues=====<br /> :Edit/Input boxes are still black text on white.<br /> :Profile settings page unreadable.<br /> &lt;br&gt;&lt;br&gt;&lt;br&gt;<br /> &lt;br&gt;<br /> <br /> ==Contact Me==<br /> ====IRC==== <br /> _00zX on [irc://irc.enterthegame.com EnterTheGame]<br /> ;* [irc://irc.enterthegame.com/unrealscript #unrealscript on EnterTheGame]<br /> ;* [irc://irc.enterthegame.com/beyondunreal #beyondunreal on EnterTheGame]<br /> _00zX on [irc://irc.gamesurge.net GameSurge]<br /> ;* [irc://irc.irc.gamesurge.net/udkc #udkc on GameSurge]<br /> <br /> ====Other/Profiles====<br /> [[Special:Emailuser/00zX|E-mail 00zX]] or on<br /> ;* MonsOlympus @ [www.pastebin.org]<br /> <br /> --------&lt;br&gt;</div> 00zX https://wiki.beyondunreal.com/User:00zX?diff=45060 User:00zX 2012-03-07T12:14:57Z <p>00zX: /* Contact Me */</p> <hr /> <div>__NOTOC__<br /> ==Wiki==<br /> ====General====<br /> :[[User:00zX/Setting_Up_Your_UScript_Environment|Setting Up Your UScript Environment]]<br /> ====UE3====<br /> :[[User:00zX/Using_The_Unreal_Engine_3_Preprocessor|Using The Unreal Engine 3 Preprocessor]]<br /> ====UE2.5====<br /> :[[UE2:Using_the_UT2004_mod_system|Using The UT2004 Mod System]]<br /> ====Rants====<br /> [[User:00zX/Rants|Rants]]<br /> <br /> ==Work==<br /> ====Unreal Development Kit====<br /> :[[User:00zX/Plugin_(UDK)|UDK: ReDeX]] ''Status:'' '''Testing''' <br /> :''Description:'' PC Framework for UDK, its a combination of a framework and macros along with associated parser functionality.<br /> ::'''[[User:00zX/UScriptIt_(UDK)|UScriptIt:]]''' UDK.uci / UCX.uci Parser/Generator written in C#! Converting an slimline version of [[UnrealScript]] into pure [[UnrealScript]]..<br /> ::'''GamedPlug:''' ReDex.uci Main interface for Game Packages, this contains global interfaces and objects.<br /> ::''GamedGFx:''' Scaleform interface along with object saving/loading.<br /> ::'''GamedEx:''' GPAK Game framework built using Redux, support for many features; round based play, archetype systems, additions to particles, materials, etc.<br /> ::'''GamedCaster:''' First Person Multiplayer PvP.<br /> <br /> :[[User:00zX/Project Silky_(UDK)|UDK: Project Silky]] ''Status:'' '''Alpha''' (on hold)<br /> ====Unreal Tournament 3====<br /> :[[User:00zX/GameDex Framework_(UT3)|UT3: GameDex Framework]] ''Status:'' '''Beta''' (on hold)<br /> ::[[User:00zX/GameDex_Framework_(UT3)#Newtators (Mutator pack)|Newtators-v1.9e]] ''Status:'' '''Point Release'''<br /> ::[[User:00zX/GameDex_Framework_(UT3)#Attrition (Gametype)|Attrition-v0.5pb]] ''Status:'' '''Public Beta'''<br /> ====Unreal Tournament 2004====<br /> :[[User:00zX/UC2004_(UT2004)|UT2004: Unreal Championship 2004]] ''Status:'' '''Beta''' (dissolved)<br /> :[http://www.divshare.com/download/16967446-918|UT2004: Turbo Instagib] ''Status:'' '''Beta'''<br /> :[http://www.divshare.com/download/16967454-2c0|UT2004: CrapLink]] ''Status:'' '''Beta'''<br /> &lt;br&gt;<br /> <br /> ==Highlighters==<br /> <br /> ===UnrealWiki - Code Noir Redex Theme=== <br /> [[File:Monobook-noir-alpha3.gif|700px|thumb|left]]<br /> ====Status: Beta====<br /> To Install copy the contents of the following page into your own ''''User:[name]/monobook.css'''' page.<br /> ::[[User:00zX/monobook.css]]<br /> ::[http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Fwiki.beyondunreal.com%2FUser%3A00zX%2Fmonobook.css&amp;profile=css21&amp;usermedium=all&amp;warning=1&amp;lang=en W3C CSS Validator]<br /> ::[http://i10.photobucket.com/albums/a123/OlympusMons/CodeNoirRedeX.png High Resolution Image]&lt;br&gt;<br /> =====Features=====<br /> :Dark Theme<br /> :High Contrast<br /> :Improved Readability<br /> :Highlighter adjustments for UScript, CSS and XML<br /> :Different coloured borders per GameNameSpace<br /> :Curved Borders in supporting browsers<br /> =====Known Issues=====<br /> :Edit/Input boxes are still black text on white.<br /> :Profile settings page unreadable.<br /> &lt;br&gt;&lt;br&gt;&lt;br&gt;<br /> &lt;br&gt;<br /> <br /> ==Contact Me==<br /> ====IRC==== <br /> _00zX on [irc://irc.enterthegame.com EnterTheGame]<br /> ;* [irc://irc.enterthegame.com/unrealscript #unrealscript on EnterTheGame]<br /> ;* [irc://irc.enterthegame.com/beyondunreal #beyondunreal on EnterTheGame]<br /> _00zX on [irc://irc.gamesurge.net GameSurge]<br /> ;* [irc://irc.irc.gamesurge.net/udkc #udkc on GameSurge]<br /> <br /> ====Other/Profiles====<br /> [[Special:Emailuser/00zX|E-mail 00zX]] or on<br /> ;* MonsOlympus @ [www.pastebin.org]<br /> <br /> --------&lt;br&gt;</div> 00zX https://wiki.beyondunreal.com/User:00zX?diff=45059 User:00zX 2012-03-06T13:20:03Z <p>00zX: /* Work */</p> <hr /> <div>__NOTOC__<br /> ==Wiki==<br /> ====General====<br /> :[[User:00zX/Setting_Up_Your_UScript_Environment|Setting Up Your UScript Environment]]<br /> ====UE3====<br /> :[[User:00zX/Using_The_Unreal_Engine_3_Preprocessor|Using The Unreal Engine 3 Preprocessor]]<br /> ====UE2.5====<br /> :[[UE2:Using_the_UT2004_mod_system|Using The UT2004 Mod System]]<br /> ====Rants====<br /> [[User:00zX/Rants|Rants]]<br /> <br /> ==Work==<br /> ====Unreal Development Kit====<br /> :[[User:00zX/Plugin_(UDK)|UDK: ReDeX]] ''Status:'' '''Testing''' <br /> :''Description:'' PC Framework for UDK, its a combination of a framework and macros along with associated parser functionality.<br /> ::'''[[User:00zX/UScriptIt_(UDK)|UScriptIt:]]''' UDK.uci / UCX.uci Parser/Generator written in C#! Converting an slimline version of [[UnrealScript]] into pure [[UnrealScript]]..<br /> ::'''GamedPlug:''' ReDex.uci Main interface for Game Packages, this contains global interfaces and objects.<br /> ::''GamedGFx:''' Scaleform interface along with object saving/loading.<br /> ::'''GamedEx:''' GPAK Game framework built using Redux, support for many features; round based play, archetype systems, additions to particles, materials, etc.<br /> ::'''GamedCaster:''' First Person Multiplayer PvP.<br /> <br /> :[[User:00zX/Project Silky_(UDK)|UDK: Project Silky]] ''Status:'' '''Alpha''' (on hold)<br /> ====Unreal Tournament 3====<br /> :[[User:00zX/GameDex Framework_(UT3)|UT3: GameDex Framework]] ''Status:'' '''Beta''' (on hold)<br /> ::[[User:00zX/GameDex_Framework_(UT3)#Newtators (Mutator pack)|Newtators-v1.9e]] ''Status:'' '''Point Release'''<br /> ::[[User:00zX/GameDex_Framework_(UT3)#Attrition (Gametype)|Attrition-v0.5pb]] ''Status:'' '''Public Beta'''<br /> ====Unreal Tournament 2004====<br /> :[[User:00zX/UC2004_(UT2004)|UT2004: Unreal Championship 2004]] ''Status:'' '''Beta''' (dissolved)<br /> :[http://www.divshare.com/download/16967446-918|UT2004: Turbo Instagib] ''Status:'' '''Beta'''<br /> :[http://www.divshare.com/download/16967454-2c0|UT2004: CrapLink]] ''Status:'' '''Beta'''<br /> &lt;br&gt;<br /> <br /> ==Highlighters==<br /> <br /> ===UnrealWiki - Code Noir Redex Theme=== <br /> [[File:Monobook-noir-alpha3.gif|700px|thumb|left]]<br /> ====Status: Beta====<br /> To Install copy the contents of the following page into your own ''''User:[name]/monobook.css'''' page.<br /> ::[[User:00zX/monobook.css]]<br /> ::[http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Fwiki.beyondunreal.com%2FUser%3A00zX%2Fmonobook.css&amp;profile=css21&amp;usermedium=all&amp;warning=1&amp;lang=en W3C CSS Validator]<br /> ::[http://i10.photobucket.com/albums/a123/OlympusMons/CodeNoirRedeX.png High Resolution Image]&lt;br&gt;<br /> =====Features=====<br /> :Dark Theme<br /> :High Contrast<br /> :Improved Readability<br /> :Highlighter adjustments for UScript, CSS and XML<br /> :Different coloured borders per GameNameSpace<br /> :Curved Borders in supporting browsers<br /> =====Known Issues=====<br /> :Edit/Input boxes are still black text on white.<br /> :Profile settings page unreadable.<br /> &lt;br&gt;&lt;br&gt;&lt;br&gt;<br /> &lt;br&gt;<br /> <br /> ==Contact Me==<br /> ====IRC==== <br /> _00zX on [irc://irc.enterthegame.com EnterTheGame]<br /> ;* [irc://irc.enterthegame.com/unrealscript #unrealscript on EnterTheGame]<br /> ;* [irc://irc.enterthegame.com/beyondunreal #beyondunreal on EnterTheGame]<br /> _00zX on [irc://irc.gamesurge.net GameSurge]<br /> ;* [irc://irc.irc.gamesurge.net/udkc #udkc on GameSurge]<br /> <br /> ====Other/Profiles====<br /> [[Special:Emailuser/00zX|E-mail 00zX]] or on<br /> ;* [http://www.filefront.com/user/00zX filefront]<br /> ;* [http://delicious.com/00zX delicious]<br /> ;* [http://00zx.pastebin.com pastebin]<br /> <br /> --------&lt;br&gt;</div> 00zX https://wiki.beyondunreal.com/User:00zX?diff=45058 User:00zX 2012-03-06T13:19:04Z <p>00zX: /* Work */</p> <hr /> <div>__NOTOC__<br /> ==Wiki==<br /> ====General====<br /> :[[User:00zX/Setting_Up_Your_UScript_Environment|Setting Up Your UScript Environment]]<br /> ====UE3====<br /> :[[User:00zX/Using_The_Unreal_Engine_3_Preprocessor|Using The Unreal Engine 3 Preprocessor]]<br /> ====UE2.5====<br /> :[[UE2:Using_the_UT2004_mod_system|Using The UT2004 Mod System]]<br /> ====Rants====<br /> [[User:00zX/Rants|Rants]]<br /> <br /> ==Work==<br /> ====Unreal Development Kit====<br /> :[[User:00zX/Plugin_(UDK)|UDK: ReDeX]] <br /> :''Status:'' '''Testing''' ''Description:'' PC Framework for UDK, its a combination of a framework and macros along with associated parser functionality.<br /> ::'''[[User:00zX/UScriptIt_(UDK)|UScriptIt:]]''' UDK.uci / UCX.uci Parser/Generator written in C#! Converting an slimline version of [[UnrealScript]] into pure [[UnrealScript]]..<br /> ::'''GamedPlug:''' ReDex.uci Main interface for Game Packages, this contains global interfaces and objects.<br /> ::''GamedGFx:''' Scaleform interface along with object saving/loading.<br /> ::'''GamedEx:''' GPAK Game framework built using Redux, support for many features; round based play, archetype systems, additions to particles, materials, etc.<br /> ::'''GamedCaster:''' First Person Multiplayer PvP.<br /> <br /> :[[User:00zX/Project Silky_(UDK)|UDK: Project Silky]] ''Status:'' '''Alpha''' (on hold)<br /> ====Unreal Tournament 3====<br /> :[[User:00zX/GameDex Framework_(UT3)|UT3: GameDex Framework]] ''Status:'' '''Beta''' (on hold)<br /> ::[[User:00zX/GameDex_Framework_(UT3)#Newtators (Mutator pack)|Newtators-v1.9e]] ''Status:'' '''Point Release'''<br /> ::[[User:00zX/GameDex_Framework_(UT3)#Attrition (Gametype)|Attrition-v0.5pb]] ''Status:'' '''Public Beta'''<br /> ====Unreal Tournament 2004====<br /> :[[User:00zX/UC2004_(UT2004)|UT2004: Unreal Championship 2004]] ''Status:'' '''Beta''' (dissolved)<br /> :[http://www.divshare.com/download/16967446-918|UT2004: Turbo Instagib] ''Status:'' '''Beta'''<br /> :[http://www.divshare.com/download/16967454-2c0|UT2004: CrapLink]] ''Status:'' '''Beta'''<br /> &lt;br&gt;<br /> <br /> ==Highlighters==<br /> <br /> ===UnrealWiki - Code Noir Redex Theme=== <br /> [[File:Monobook-noir-alpha3.gif|700px|thumb|left]]<br /> ====Status: Beta====<br /> To Install copy the contents of the following page into your own ''''User:[name]/monobook.css'''' page.<br /> ::[[User:00zX/monobook.css]]<br /> ::[http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Fwiki.beyondunreal.com%2FUser%3A00zX%2Fmonobook.css&amp;profile=css21&amp;usermedium=all&amp;warning=1&amp;lang=en W3C CSS Validator]<br /> ::[http://i10.photobucket.com/albums/a123/OlympusMons/CodeNoirRedeX.png High Resolution Image]&lt;br&gt;<br /> =====Features=====<br /> :Dark Theme<br /> :High Contrast<br /> :Improved Readability<br /> :Highlighter adjustments for UScript, CSS and XML<br /> :Different coloured borders per GameNameSpace<br /> :Curved Borders in supporting browsers<br /> =====Known Issues=====<br /> :Edit/Input boxes are still black text on white.<br /> :Profile settings page unreadable.<br /> &lt;br&gt;&lt;br&gt;&lt;br&gt;<br /> &lt;br&gt;<br /> <br /> ==Contact Me==<br /> ====IRC==== <br /> _00zX on [irc://irc.enterthegame.com EnterTheGame]<br /> ;* [irc://irc.enterthegame.com/unrealscript #unrealscript on EnterTheGame]<br /> ;* [irc://irc.enterthegame.com/beyondunreal #beyondunreal on EnterTheGame]<br /> _00zX on [irc://irc.gamesurge.net GameSurge]<br /> ;* [irc://irc.irc.gamesurge.net/udkc #udkc on GameSurge]<br /> <br /> ====Other/Profiles====<br /> [[Special:Emailuser/00zX|E-mail 00zX]] or on<br /> ;* [http://www.filefront.com/user/00zX filefront]<br /> ;* [http://delicious.com/00zX delicious]<br /> ;* [http://00zx.pastebin.com pastebin]<br /> <br /> --------&lt;br&gt;</div> 00zX https://wiki.beyondunreal.com/User:00zX?diff=45057 User:00zX 2012-03-06T13:17:03Z <p>00zX: /* Work */</p> <hr /> <div>__NOTOC__<br /> ==Wiki==<br /> ====General====<br /> :[[User:00zX/Setting_Up_Your_UScript_Environment|Setting Up Your UScript Environment]]<br /> ====UE3====<br /> :[[User:00zX/Using_The_Unreal_Engine_3_Preprocessor|Using The Unreal Engine 3 Preprocessor]]<br /> ====UE2.5====<br /> :[[UE2:Using_the_UT2004_mod_system|Using The UT2004 Mod System]]<br /> ====Rants====<br /> [[User:00zX/Rants|Rants]]<br /> <br /> ==Work==<br /> ====Unreal Development Kit====<br /> :[[User:00zX/Plugin_(UDK)|UDK: ReDeX]] <br /> :''Status:'' '''Testing''' ''Description:'' PC Framework for UDK, its a combination of a framework and macros along with associated parser functionality.<br /> ::'''[[User:00zX/UScriptIt_(UDK)|UScriptIt:]]''' UDK.uci / UCX.uci Parser/Generator written in C#! Converting an slimline version of [[UnrealScript]] into pure [[UnrealScript]]..<br /> ::'''GamedPlug:''' ReDex.uci Main interface for Game Packages, this contains global interfaces and objects.<br /> ::''GamedGFx:''' Scaleform interface along with object saving/loading.<br /> ::'''GamedEx:''' GPAK Game framework built using Redux, support for many features; round based play, archetype systems, additions to particles, materials, etc.<br /> ::'''GamedCaster:''' First Person Multiplayer PvP.<br /> <br /> :[[User:00zX/Project Silky_(UDK)|UDK: Project Silky]] ''Status:'' '''Alpha''' (on hold)<br /> ====Unreal Tournament 3====<br /> :[[User:00zX/GameDex Framework_(UT3)|UT3: GameDex Framework]] ''Status:'' '''Beta''' (on hold)<br /> ::[[User:00zX/GameDex_Framework_(UT3)#Newtators (Mutator pack)|Newtators-v1.9e]] ''Status:'' '''Point Release'''<br /> ::[[User:00zX/GameDex_Framework_(UT3)#Attrition (Gametype)|Attrition-v0.5pb]] ''Status:'' '''Public Beta'''<br /> ====Unreal Tournament 2004====<br /> :[[User:00zX/UC2004_(UT2004)|UT2004: Unreal Championship 2004]] ''Status:'' '''Beta''' (dissolved)<br /> :[[http://www.divshare.com/download/16967446-918|UT2004: Turbo Instagib]] ''Status:'' '''Beta'''<br /> :[[User:00zX/CrapLink_(UT2004)|UT2004: CrapLink]] ''Status:'' '''Beta'''<br /> &lt;br&gt;<br /> <br /> ==Highlighters==<br /> <br /> ===UnrealWiki - Code Noir Redex Theme=== <br /> [[File:Monobook-noir-alpha3.gif|700px|thumb|left]]<br /> ====Status: Beta====<br /> To Install copy the contents of the following page into your own ''''User:[name]/monobook.css'''' page.<br /> ::[[User:00zX/monobook.css]]<br /> ::[http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Fwiki.beyondunreal.com%2FUser%3A00zX%2Fmonobook.css&amp;profile=css21&amp;usermedium=all&amp;warning=1&amp;lang=en W3C CSS Validator]<br /> ::[http://i10.photobucket.com/albums/a123/OlympusMons/CodeNoirRedeX.png High Resolution Image]&lt;br&gt;<br /> =====Features=====<br /> :Dark Theme<br /> :High Contrast<br /> :Improved Readability<br /> :Highlighter adjustments for UScript, CSS and XML<br /> :Different coloured borders per GameNameSpace<br /> :Curved Borders in supporting browsers<br /> =====Known Issues=====<br /> :Edit/Input boxes are still black text on white.<br /> :Profile settings page unreadable.<br /> &lt;br&gt;&lt;br&gt;&lt;br&gt;<br /> &lt;br&gt;<br /> <br /> ==Contact Me==<br /> ====IRC==== <br /> _00zX on [irc://irc.enterthegame.com EnterTheGame]<br /> ;* [irc://irc.enterthegame.com/unrealscript #unrealscript on EnterTheGame]<br /> ;* [irc://irc.enterthegame.com/beyondunreal #beyondunreal on EnterTheGame]<br /> _00zX on [irc://irc.gamesurge.net GameSurge]<br /> ;* [irc://irc.irc.gamesurge.net/udkc #udkc on GameSurge]<br /> <br /> ====Other/Profiles====<br /> [[Special:Emailuser/00zX|E-mail 00zX]] or on<br /> ;* [http://www.filefront.com/user/00zX filefront]<br /> ;* [http://delicious.com/00zX delicious]<br /> ;* [http://00zx.pastebin.com pastebin]<br /> <br /> --------&lt;br&gt;</div> 00zX https://wiki.beyondunreal.com/User:00zX?diff=45056 User:00zX 2012-03-06T13:16:23Z <p>00zX: /* Work */</p> <hr /> <div>__NOTOC__<br /> ==Wiki==<br /> ====General====<br /> :[[User:00zX/Setting_Up_Your_UScript_Environment|Setting Up Your UScript Environment]]<br /> ====UE3====<br /> :[[User:00zX/Using_The_Unreal_Engine_3_Preprocessor|Using The Unreal Engine 3 Preprocessor]]<br /> ====UE2.5====<br /> :[[UE2:Using_the_UT2004_mod_system|Using The UT2004 Mod System]]<br /> ====Rants====<br /> [[User:00zX/Rants|Rants]]<br /> <br /> ==Work==<br /> ====Unreal Development Kit====<br /> :[[User:00zX/Plugin_(UDK)|UDK: ReDeX]] <br /> :''Status:'' '''Testing''' ''Description:'' PC Framework for UDK, its a combination of a framework and macros along with associated parser functionality.<br /> ::'''[[User:00zX/UScriptIt_(UDK)|UScriptIt:]]''' UDK.uci / UCX.uci Parser/Generator written in C#! Converting an slimline version of [[UnrealScript]] into pure [[UnrealScript]]..<br /> ::'''GamedPlug:''' ReDex.uci Main interface for Game Packages, this contains global interfaces and objects.<br /> ::''GamedGFx:''' Scaleform interface along with object saving/loading.<br /> ::'''GamedEx:''' GPAK Game framework built using Redux, support for many features; round based play, archetype systems, additions to particles, materials, etc.<br /> ::'''GamedCaster:''' First Person Multiplayer PvP.<br /> <br /> :[[User:00zX/Project Silky_(UDK)|UDK: Project Silky]] ''Status:'' '''Alpha''' (on hold)<br /> ====Unreal Tournament 3====<br /> :[[User:00zX/GameDex Framework_(UT3)|UT3: GameDex Framework]] ''Status:'' '''Beta''' (on hold)<br /> ::[[User:00zX/GameDex_Framework_(UT3)#Newtators (Mutator pack)|Newtators-v1.9e]] ''Status:'' '''Point Release'''<br /> ::[[User:00zX/GameDex_Framework_(UT3)#Attrition (Gametype)|Attrition-v0.5pb]] ''Status:'' '''Public Beta'''<br /> ====Unreal Tournament 2004====<br /> :[[User:00zX/UC2004_(UT2004)|UT2004: Unreal Championship 2004]] ''Status:'' '''Beta''' (dissolved)<br /> :[[[http://www.divshare.com/download/16967446-918]]] ''Status:'' '''Beta'''<br /> :[[User:00zX/CrapLink_(UT2004)|UT2004: CrapLink]] ''Status:'' '''Beta'''<br /> &lt;br&gt;<br /> <br /> ==Highlighters==<br /> <br /> ===UnrealWiki - Code Noir Redex Theme=== <br /> [[File:Monobook-noir-alpha3.gif|700px|thumb|left]]<br /> ====Status: Beta====<br /> To Install copy the contents of the following page into your own ''''User:[name]/monobook.css'''' page.<br /> ::[[User:00zX/monobook.css]]<br /> ::[http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Fwiki.beyondunreal.com%2FUser%3A00zX%2Fmonobook.css&amp;profile=css21&amp;usermedium=all&amp;warning=1&amp;lang=en W3C CSS Validator]<br /> ::[http://i10.photobucket.com/albums/a123/OlympusMons/CodeNoirRedeX.png High Resolution Image]&lt;br&gt;<br /> =====Features=====<br /> :Dark Theme<br /> :High Contrast<br /> :Improved Readability<br /> :Highlighter adjustments for UScript, CSS and XML<br /> :Different coloured borders per GameNameSpace<br /> :Curved Borders in supporting browsers<br /> =====Known Issues=====<br /> :Edit/Input boxes are still black text on white.<br /> :Profile settings page unreadable.<br /> &lt;br&gt;&lt;br&gt;&lt;br&gt;<br /> &lt;br&gt;<br /> <br /> ==Contact Me==<br /> ====IRC==== <br /> _00zX on [irc://irc.enterthegame.com EnterTheGame]<br /> ;* [irc://irc.enterthegame.com/unrealscript #unrealscript on EnterTheGame]<br /> ;* [irc://irc.enterthegame.com/beyondunreal #beyondunreal on EnterTheGame]<br /> _00zX on [irc://irc.gamesurge.net GameSurge]<br /> ;* [irc://irc.irc.gamesurge.net/udkc #udkc on GameSurge]<br /> <br /> ====Other/Profiles====<br /> [[Special:Emailuser/00zX|E-mail 00zX]] or on<br /> ;* [http://www.filefront.com/user/00zX filefront]<br /> ;* [http://delicious.com/00zX delicious]<br /> ;* [http://00zx.pastebin.com pastebin]<br /> <br /> --------&lt;br&gt;</div> 00zX https://wiki.beyondunreal.com/User:00zX/UScriptIt_(UDK)?diff=45055 User:00zX/UScriptIt (UDK) 2012-03-06T11:57:28Z <p>00zX: </p> <hr /> <div>===UScriptIt===<br /> Example of macro usage we need our auto-caster to go in first before the macros are parsed, some might require afterwards so we end up doing a 2 stage compile.<br /> ====Shortening Locals====<br /> &lt;uscript&gt;<br /> `define l local <br /> `define lb `{l} bool <br /> `define lf `{l} float<br /> `define ls `{l} string <br /> <br /> `define elif else if<br /> &lt;/uscript&gt;<br /> =====Iterators=====<br /> &lt;uscript&gt;<br /> `define i index<br /> `define j ondex<br /> `define li `{l} int `{i}<br /> `define lj `{l} int `{j}<br /> &lt;/uscript&gt;<br /> ====Automatic casts====<br /> =====Set/Check/Return=====<br /> ======Macro======<br /> &lt;uscript&gt;<br /> `define CheckRet(Obj) if(`Obj == none) return<br /> `define SetToDefault(Obj, Var) `{Obj}.`{Var} = `{Obj}.Default.`{Var}<br /> `define SetVar(Obj, Var) `{Obj}.`{Var} = `{Var}<br /> &lt;/uscript&gt;<br /> ======Usage======<br /> &lt;uscript&gt;<br /> `SetVar(`P, CustomGravityScaling);<br /> `P.MaxDoubleJumpHeight = 110; //87.0<br /> `P.DoubleJumpThreshold = 200.0; //160.0<br /> `P.FallSpeedThreshold = 150.0; //125.0<br /> <br /> /** */<br /> `CheckRet(`MProj()_`{P}(`{P}));<br /> <br /> `SetVar(`MProj()_`{P}(`{P}), bCanDodge);<br /> `SetVar(`MProj()_`{P}(`{P}), bCanWalldodge);<br /> &lt;/uscript&gt;<br /> ======Output======<br /> &lt;uscript&gt;<br /> Pawn.CustomGravityScaling = CustomGravityScaling;<br /> Pawn.MaxDoubleJumpHeight = 110; //87.0<br /> Pawn.DoubleJumpThreshold = 200.0; //160.0<br /> Pawn.FallSpeedThreshold = 150.0; //125.0<br /> <br /> /** */<br /> if(Plugin_Pawn(Pawn)== none) return;<br /> <br /> Plugin_Pawn(Pawn).bCanDodge = bCanDodge;<br /> Plugin_Pawn(Pawn).bCanWalldodge = bCanWalldodge;<br /> &lt;/uscript&gt;<br /> =====Iterators=====<br /> ======Macro======<br /> &lt;uscript&gt;<br /> `define fore(this, tmpv) foreach `{this}(`{tmpv})<br /> `define ifind(Ar) `{i} = `Ar.find('`n', `ac)<br /> &lt;/uscript&gt;<br /> ======Usage======<br /> ======Output======<br /> <br /> <br /> ===Links===<br /> http://forums.epicgames.com/threads/809064-UScriptIt-Generator-Parser</div> 00zX https://wiki.beyondunreal.com/User:00zX/UScriptIt_(UDK)?diff=45054 User:00zX/UScriptIt (UDK) 2012-03-06T11:56:55Z <p>00zX: </p> <hr /> <div>===UScriptIt===<br /> Example of macro usage we need our auto-caster to go in first before the macros are parsed, some might require afterwards so we end up doing a 2 stage compile.<br /> ====Shortening Locals====<br /> &lt;uscript&gt;<br /> `define l local <br /> `define lb `{l} bool <br /> `define lf `{l} float<br /> `define ls `{l} string <br /> <br /> `define elif else if<br /> &lt;/uscript&gt;<br /> =====Iterators=====<br /> &lt;uscript&gt;<br /> `define i index<br /> `define j ondex<br /> `define li `{l} int `{i}<br /> `define lj `{l} int `{j}<br /> &lt;/uscript&gt;<br /> ====Automatic casts====<br /> =====Set/Check/Return=====<br /> ======Macro======<br /> &lt;uscript&gt;<br /> `define CheckRet(Obj) if(`Obj == none) return<br /> `define SetToDefault(Obj, Var) `{Obj}.`{Var} = `{Obj}.Default.`{Var}<br /> `define SetVar(Obj, Var) `{Obj}.`{Var} = `{Var}<br /> &lt;/uscript&gt;<br /> ======Usage======<br /> &lt;uscript&gt;<br /> `SetVar(`P, CustomGravityScaling);<br /> `P.MaxDoubleJumpHeight = 110; //87.0<br /> `P.DoubleJumpThreshold = 200.0; //160.0<br /> `P.FallSpeedThreshold = 150.0; //125.0<br /> <br /> /** */<br /> `CheckRet(`MProj()_`{P}(`{P}));<br /> <br /> `SetVar(`MProj()_`{P}(`{P}), bCanDodge);<br /> `SetVar(`MProj()_`{P}(`{P}), bCanWalldodge);<br /> &lt;/uscript&gt;<br /> ======Output======<br /> &lt;uscript&gt;<br /> Pawn.CustomGravityScaling = CustomGravityScaling;<br /> Pawn.MaxDoubleJumpHeight = 110; //87.0<br /> Pawn.DoubleJumpThreshold = 200.0; //160.0<br /> Pawn.FallSpeedThreshold = 150.0; //125.0<br /> <br /> /** */<br /> if(Plugin_Pawn(Pawn)== none) return;<br /> <br /> Plugin_Pawn(Pawn).bCanDodge = bCanDodge;<br /> Plugin_Pawn(Pawn).bCanWalldodge = bCanWalldodge;<br /> &lt;/uscript&gt;<br /> =====Iterators=====<br /> ======Macro======<br /> &lt;uscript&gt;<br /> `define fore(this, tmpv) foreach `{this}(`{tmpv})<br /> `define ifind(Ar) `{i} = `Ar.find('`n', `ac)<br /> &lt;/uscript&gt;<br /> ======Usage======<br /> ======Output======</div> 00zX https://wiki.beyondunreal.com/User:00zX/UScriptIt_(UDK)?diff=45053 User:00zX/UScriptIt (UDK) 2012-03-06T11:56:23Z <p>00zX: </p> <hr /> <div>===UScriptIt===<br /> Example of macro usage we need our auto-caster to go in first before the macros are parsed, some might require afterwards so we end up doing a 2 stage compile.<br /> ====Shortening Locals====<br /> &lt;uscript&gt;<br /> `define l local <br /> `define lb `{l} bool <br /> `define lf `{l} float<br /> `define ls `{l} string <br /> <br /> `define elif else if<br /> &lt;/uscript&gt;<br /> =====Iterators=====<br /> &lt;uscript&gt;<br /> `define i index<br /> `define j ondex<br /> `define li `{l} int `{i}<br /> `define lj `{l} int `{j}<br /> &lt;/uscript&gt;<br /> ====Automatic casts====<br /> =====Set/Check/Return=====<br /> ======Macro======<br /> &lt;uscript&gt;<br /> `define CheckRet(Obj) if(`Obj == none) return<br /> `define SetToDefault(Obj, Var) `{Obj}.`{Var} = `{Obj}.Default.`{Var}<br /> `define SetVar(Obj, Var) `{Obj}.`{Var} = `{Var}<br /> &lt;/uscript&gt;<br /> ======Usage======<br /> &lt;uscript&gt;<br /> `SetVar(`P, CustomGravityScaling);<br /> `P.MaxDoubleJumpHeight = 110; //87.0<br /> `P.DoubleJumpThreshold = 200.0; //160.0<br /> `P.FallSpeedThreshold = 150.0; //125.0<br /> <br /> /** */<br /> `CheckRet(`MProj()_`{P}(`{P}));<br /> <br /> `SetVar(`MProj()_`{P}(`{P}), bCanDodge);<br /> `SetVar(`MProj()_`{P}(`{P}), bCanWalldodge);<br /> &lt;/uscript&gt;<br /> ======Output======<br /> &lt;uscript&gt;<br /> Pawn.CustomGravityScaling = CustomGravityScaling;<br /> Pawn.MaxDoubleJumpHeight = 110; //87.0<br /> Pawn.DoubleJumpThreshold = 200.0; //160.0<br /> Pawn.FallSpeedThreshold = 150.0; //125.0<br /> <br /> /** */<br /> if(Plugin_Pawn(Pawn)== none) return;<br /> <br /> Plugin_Pawn(Pawn).bCanDodge = bCanDodge;<br /> Plugin_Pawn(Pawn).bCanWalldodge = bCanWalldodge;<br /> =====Iterators=====<br /> ======Macro======<br /> &lt;uscript&gt;<br /> `define fore(this, tmpv) foreach `{this}(`{tmpv})<br /> `define ifind(Ar) `{i} = `Ar.find('`n', `ac)<br /> &lt;/uscript&gt;<br /> ======Usage======<br /> ======Output======</div> 00zX https://wiki.beyondunreal.com/User:00zX/UScriptIt_(UDK)?diff=45052 User:00zX/UScriptIt (UDK) 2012-03-06T11:55:35Z <p>00zX: </p> <hr /> <div>===UScriptIt===<br /> Example of macro usage we need our auto-caster to go in first before the macros are parsed, some might require afterwards so we end up doing a 2 stage compile.<br /> ====Shortening Locals====<br /> &lt;uscript&gt;<br /> `define l local <br /> `define lb `{l} bool <br /> `define lf `{l} float<br /> `define ls `{l} string <br /> <br /> `define elif else if<br /> &lt;/uscript&gt;<br /> =====Iterators=====<br /> &lt;uscript&gt;<br /> `define i index<br /> `define j ondex<br /> `define li `{l} int `{i}<br /> `define lj `{l} int `{j}<br /> &lt;/uscript&gt;<br /> ====Automatic casts====<br /> =====Set / Check / Return=====<br /> ======Macro======<br /> &lt;uscript&gt;<br /> `define CheckRet(Obj) if(`Obj == none) return<br /> `define SetToDefault(Obj, Var) `{Obj}.`{Var} = `{Obj}.Default.`{Var}<br /> `define SetVar(Obj, Var) `{Obj}.`{Var} = `{Var}<br /> &lt;/uscript&gt;<br /> ======Usage======<br /> &lt;uscript&gt;<br /> `SetVar(`P, CustomGravityScaling);<br /> `P.MaxDoubleJumpHeight = 110; //87.0<br /> `P.DoubleJumpThreshold = 200.0; //160.0<br /> `P.FallSpeedThreshold = 150.0; //125.0<br /> <br /> /** */<br /> `CheckRet(`MProj()_`{P}(`{P}));<br /> <br /> `SetVar(`MProj()_`{P}(`{P}), bCanDodge);<br /> `SetVar(`MProj()_`{P}(`{P}), bCanWalldodge);<br /> &lt;/uscript&gt;<br /> ======Output======<br /> &lt;uscript&gt;<br /> Pawn.CustomGravityScaling = CustomGravityScaling;<br /> Pawn.MaxDoubleJumpHeight = 110; //87.0<br /> Pawn.DoubleJumpThreshold = 200.0; //160.0<br /> Pawn.FallSpeedThreshold = 150.0; //125.0<br /> <br /> /** */<br /> if(Plugin_Pawn(Pawn)== none) return;<br /> <br /> Plugin_Pawn(Pawn).bCanDodge = bCanDodge;<br /> Plugin_Pawn(Pawn).bCanWalldodge = bCanWalldodge;<br /> =====Iterators=====<br /> ======Macro======<br /> &lt;uscript&gt;<br /> `define fore(this, tmpv) foreach `{this}(`{tmpv})<br /> `define ifind(Ar) `{i} = `Ar.find('`n', `ac)<br /> &lt;/uscript&gt;<br /> ======Usage======<br /> ======Output======</div> 00zX https://wiki.beyondunreal.com/User:00zX/UScriptIt_(UDK)?diff=45051 User:00zX/UScriptIt (UDK) 2012-03-06T11:43:38Z <p>00zX: Automatic Casts: Example of macro usage we need our auto-caster to go in first before the macros are parsed, some might require afterwards so we end up doing a 2 stage compile.</p> <hr /> <div>===UScriptIt===<br /> Example of macro usage we need our auto-caster to go in first before the macros are parsed, some might require afterwards so we end up doing a 2 stage compile.<br /> ====Automatic casts====<br /> =====Macros=====<br /> &lt;uscript&gt;<br /> `define CheckRet(Obj) if(`Obj == none) return<br /> `define SetToDefault(Obj, Var) `{Obj}.`{Var} = `{Obj}.Default.`{Var}<br /> `define SetVar(Obj, Var) `{Obj}.`{Var} = `{Var}<br /> &lt;/uscript&gt;<br /> =====Usage=====<br /> &lt;uscript&gt;<br /> `SetVar(`P, CustomGravityScaling);<br /> `P.MaxDoubleJumpHeight = 110; //87.0<br /> `P.DoubleJumpThreshold = 200.0; //160.0<br /> `P.FallSpeedThreshold = 150.0; //125.0<br /> <br /> /** */<br /> `CheckRet(`MProj()_`{P}(`{P}));<br /> <br /> `SetVar(`MProj()_`{P}(`{P}), bCanDodge);<br /> `SetVar(`MProj()_`{P}(`{P}), bCanWalldodge);<br /> &lt;/uscript&gt;<br /> =====Output=====<br /> &lt;uscript&gt;<br /> Pawn.CustomGravityScaling = CustomGravityScaling;<br /> Pawn.MaxDoubleJumpHeight = 110; //87.0<br /> Pawn.DoubleJumpThreshold = 200.0; //160.0<br /> Pawn.FallSpeedThreshold = 150.0; //125.0<br /> <br /> /** */<br /> if(Plugin_Pawn(Pawn)== none) return;<br /> <br /> Plugin_Pawn(Pawn).bCanDodge = bCanDodge;<br /> Plugin_Pawn(Pawn).bCanWalldodge = bCanWalldodge;</div> 00zX https://wiki.beyondunreal.com/User:00zX/Using_The_Unreal_Engine_3_Preprocessor?diff=45050 User:00zX/Using The Unreal Engine 3 Preprocessor 2012-03-06T11:11:26Z <p>00zX: /* Useful Macros */ Added usage example and output for SetVar</p> <hr /> <div>==Including Macro Files==<br /> &lt;uscript&gt;<br /> class YourPawn extends UTPawn<br /> config(YourConfig);<br /> <br /> `include(YourMacroFile.uci)<br /> &lt;/uscript&gt;<br /> <br /> ===Example Macro File===<br /> When compiling with the '''-debug''' command line switch, the debug macro will then be defined and will switch our blank spaces to config/exec respectively.<br /> <br /> &lt;uscript&gt;<br /> `if(`notdefined(Debug))<br /> `define dconf<br /> `define dexec<br /> `else<br /> `define dconf config<br /> `define dexec exec<br /> `endif<br /> &lt;/uscript&gt;<br /> <br /> Copy the above template into a blank text document and call the file YourMacroFile.uci<br /> <br /> ==Example of usage==<br /> If we want to add a variable thats configurable only when the macro `DevBuild is defined.<br /> <br /> &lt;uscript&gt;<br /> class YourPawn extends UTPawn<br /> config(YourConfig);<br /> <br /> `include(YourMacroFile.uci)<br /> <br /> var `{dconf} bool bCanDodge;<br /> <br /> function bool Dodge(eDoubleClickDir DoubleClickMove)<br /> {<br /> if(bCanDodge)<br /> return Super.Dodge(DoubleClickMove);<br /> else<br /> return false;<br /> }<br /> <br /> defaultproperties<br /> {<br /> `if(`notdefined(Debug))<br /> bCanDodge=True<br /> `endif<br /> }<br /> &lt;/uscript&gt;<br /> <br /> ===YourConfig===<br /> &lt;pre&gt;<br /> [YourPackage.YourPawn]<br /> bCanDodge=True<br /> &lt;/pre&gt;<br /> <br /> ==Example of usage==<br /> If we want to add a variable that already exists but is not config editable. (PostBeginPlay)<br /> &lt;uscript&gt;<br /> class YourPawn extends UTPawn<br /> config(YourConfig);<br /> <br /> `include(YourMacroFile.uci)<br /> <br /> `if(`isdefined(Debug))<br /> var `{dconf} float newGroundSpeed;<br /> <br /> function PossessedBy(Controller C, bool bVehicleTransition)<br /> {<br /> Super.PossessedBy(C, bVehicleTransition);<br /> <br /> GroundSpeed = newGroundSpeed;<br /> }<br /> `endif<br /> <br /> &lt;/uscript&gt;<br /> ==Useful Macros==<br /> &lt;uscript&gt;<br /> /**<br /> * 2005-2011 Daniel Batten (aka 00zX or MonsOlympus)<br /> */<br /> <br /> /** UDK HELPERS */<br /> <br /> /*`define redef(OldDef, NewDef) `undefine `{OldDef} `define `{OldDef} `{NewDef}*/<br /> <br /> /* Globals */<br /> `define sWorld_Info class'WorldInfo'.static.GetWorldInfo()<br /> `define sGame_RepInfo `{sWorldInfo}.GRI<br /> `define sGravity `{sWorldInfo}.WorldGravityZ<br /> `define sEngine class'Engine'.static<br /> <br /> <br /> /** Timers - checks the timers to see if they are active before setting or clearing them. */<br /> `define CheckClearTimer(name) if(IsTimerActive(nameof(`name))){ClearTimer(nameof(`name));}<br /> `define CheckSetTimer(time, loop, name) if(!IsTimerActive(nameof(`name))){SetTimer(`time, `loop, nameof(`name));}<br /> `define ResetTimer(time, loop, name) SetTimer(`time, `loop, nameof(`name))<br /> <br /> /** Variables and Defaults */<br /> `define SetToDefault(Obj, Var) `{Obj}.`{Var} = `{Obj}.Default.`{Var}<br /> `define SetVar(Obj, Var) `{Obj}.`{Var} = `{Var}<br /> //Usage: `SetVar(`P, MaxMultiJump) ~ where `P is UTPawn(Pawn) cast.<br /> //Outputs: UTPawn(Pawn).MaxMultiJump = MaxMultiJump; ~ Where UT Prefix can be a macro also.<br /> <br /> `define CheckRet(Obj) if(`Obj == none) return<br /> <br /> /** Save/Load Object */<br /> `define SaveObj(Obj, FileName, Bool, Ver) `sEngine().BasicSaveObject(`{Obj}, `{FileName}, `{Bool}, `{Ver})<br /> `define LoadObj(Obj, FileName, Bool, Ver) `sEngine().BasicSaveObject(`{Obj}, `{FileName}, `{Bool}, `{Ver})<br /> <br /> /** MetaTags */<br /> `define mUI(min, max) &lt;UIMin=`min | UIMax=`max&gt;<br /> `define mClamp(min, max) &lt;ClampMin=`min | ClampMax=`max&gt;<br /> `define mUIClamp(min, max) &lt;UIMin=`min | UIMax=`max | ClampMin=`min | ClampMax=`max&gt;<br /> <br /> /* Debugging */<br /> `define LogName 'Debug'<br /> `define LogdLine() `logd(&quot;------------------------------------------------------&quot;,,`{LogName});<br /> `define LogFunc(Name) `log(Self$&quot;.&quot;$class.name$&quot;.&quot;$GetFuncName()$&quot;()&quot;,,`Name);<br /> `define LogdFunc() `logd(Self$&quot;.&quot;$class.name$&quot;.&quot;$GetFuncName()$&quot;()&quot;,,`{LogName});<br /> `define LogF(string) `logd(GetFuncName()$&quot;(): &quot;$`{string},,`{LogName});<br /> <br /> /* Pawn */<br /> `define ColHeight CylinderComponent.CollisionHeight<br /> `define ColRadius CylinderComponent.CollisionRadius<br /> `define DefColHeight CylinderComponent.Default.CollisionHeight<br /> `define DefColRadius CylinderComponent.Default.CollisionRadius<br /> &lt;/uscript&gt;<br /> <br /> &lt;br&gt;</div> 00zX https://wiki.beyondunreal.com/User:00zX/Using_The_Unreal_Engine_3_Preprocessor?diff=45049 User:00zX/Using The Unreal Engine 3 Preprocessor 2012-03-06T11:07:31Z <p>00zX: /* Useful Macros */</p> <hr /> <div>==Including Macro Files==<br /> &lt;uscript&gt;<br /> class YourPawn extends UTPawn<br /> config(YourConfig);<br /> <br /> `include(YourMacroFile.uci)<br /> &lt;/uscript&gt;<br /> <br /> ===Example Macro File===<br /> When compiling with the '''-debug''' command line switch, the debug macro will then be defined and will switch our blank spaces to config/exec respectively.<br /> <br /> &lt;uscript&gt;<br /> `if(`notdefined(Debug))<br /> `define dconf<br /> `define dexec<br /> `else<br /> `define dconf config<br /> `define dexec exec<br /> `endif<br /> &lt;/uscript&gt;<br /> <br /> Copy the above template into a blank text document and call the file YourMacroFile.uci<br /> <br /> ==Example of usage==<br /> If we want to add a variable thats configurable only when the macro `DevBuild is defined.<br /> <br /> &lt;uscript&gt;<br /> class YourPawn extends UTPawn<br /> config(YourConfig);<br /> <br /> `include(YourMacroFile.uci)<br /> <br /> var `{dconf} bool bCanDodge;<br /> <br /> function bool Dodge(eDoubleClickDir DoubleClickMove)<br /> {<br /> if(bCanDodge)<br /> return Super.Dodge(DoubleClickMove);<br /> else<br /> return false;<br /> }<br /> <br /> defaultproperties<br /> {<br /> `if(`notdefined(Debug))<br /> bCanDodge=True<br /> `endif<br /> }<br /> &lt;/uscript&gt;<br /> <br /> ===YourConfig===<br /> &lt;pre&gt;<br /> [YourPackage.YourPawn]<br /> bCanDodge=True<br /> &lt;/pre&gt;<br /> <br /> ==Example of usage==<br /> If we want to add a variable that already exists but is not config editable. (PostBeginPlay)<br /> &lt;uscript&gt;<br /> class YourPawn extends UTPawn<br /> config(YourConfig);<br /> <br /> `include(YourMacroFile.uci)<br /> <br /> `if(`isdefined(Debug))<br /> var `{dconf} float newGroundSpeed;<br /> <br /> function PossessedBy(Controller C, bool bVehicleTransition)<br /> {<br /> Super.PossessedBy(C, bVehicleTransition);<br /> <br /> GroundSpeed = newGroundSpeed;<br /> }<br /> `endif<br /> <br /> &lt;/uscript&gt;<br /> ==Useful Macros==<br /> <br /> :`define SetVar(Obj, Var) `{Obj}.`{Var} = `{Var}<br /> ::Usage:<br /> :::`SetVar(`P, MaxMultiJump);<br /> <br /> <br /> &lt;uscript&gt;<br /> /**<br /> * 2005-2011 Daniel Batten (aka 00zX or MonsOlympus)<br /> */<br /> <br /> /** UDK HELPERS */<br /> <br /> /*`define redef(OldDef, NewDef) `undefine `{OldDef} `define `{OldDef} `{NewDef}*/<br /> <br /> /* Globals */<br /> `define sWorld_Info class'WorldInfo'.static.GetWorldInfo()<br /> `define sGame_RepInfo `{sWorldInfo}.GRI<br /> `define sGravity `{sWorldInfo}.WorldGravityZ<br /> `define sEngine class'Engine'.static<br /> <br /> <br /> /** Timers - checks the timers to see if they are active before setting or clearing them. */<br /> `define CheckClearTimer(name) if(IsTimerActive(nameof(`name))){ClearTimer(nameof(`name));}<br /> `define CheckSetTimer(time, loop, name) if(!IsTimerActive(nameof(`name))){SetTimer(`time, `loop, nameof(`name));}<br /> `define ResetTimer(time, loop, name) SetTimer(`time, `loop, nameof(`name))<br /> <br /> /** Variables and Defaults */<br /> `define SetToDefault(Obj, Var) `{Obj}.`{Var} = `{Obj}.Default.`{Var}<br /> `define SetVar(Obj, Var) `{Obj}.`{Var} = `{Var}<br /> <br /> `define CheckRet(Obj) if(`Obj == none) return<br /> <br /> /** Save/Load Object */<br /> `define SaveObj(Obj, FileName, Bool, Ver) `sEngine().BasicSaveObject(`{Obj}, `{FileName}, `{Bool}, `{Ver})<br /> `define LoadObj(Obj, FileName, Bool, Ver) `sEngine().BasicSaveObject(`{Obj}, `{FileName}, `{Bool}, `{Ver})<br /> <br /> /** MetaTags */<br /> `define mUI(min, max) &lt;UIMin=`min | UIMax=`max&gt;<br /> `define mClamp(min, max) &lt;ClampMin=`min | ClampMax=`max&gt;<br /> `define mUIClamp(min, max) &lt;UIMin=`min | UIMax=`max | ClampMin=`min | ClampMax=`max&gt;<br /> <br /> /* Debugging */<br /> `define LogName 'Debug'<br /> `define LogdLine() `logd(&quot;------------------------------------------------------&quot;,,`{LogName});<br /> `define LogFunc(Name) `log(Self$&quot;.&quot;$class.name$&quot;.&quot;$GetFuncName()$&quot;()&quot;,,`Name);<br /> `define LogdFunc() `logd(Self$&quot;.&quot;$class.name$&quot;.&quot;$GetFuncName()$&quot;()&quot;,,`{LogName});<br /> `define LogF(string) `logd(GetFuncName()$&quot;(): &quot;$`{string},,`{LogName});<br /> <br /> /* Pawn */<br /> `define ColHeight CylinderComponent.CollisionHeight<br /> `define ColRadius CylinderComponent.CollisionRadius<br /> `define DefColHeight CylinderComponent.Default.CollisionHeight<br /> `define DefColRadius CylinderComponent.Default.CollisionRadius<br /> &lt;/uscript&gt;<br /> <br /> &lt;br&gt;</div> 00zX https://wiki.beyondunreal.com/User:00zX/Setting_Up_Your_UScript_Environment?diff=45048 User:00zX/Setting Up Your UScript Environment 2012-03-06T11:03:52Z <p>00zX: /* Introduction to NSIS */</p> <hr /> <div>Step by step process of installing, setting up jEdit for use with Uscript. From start to finish, using/committing to repository's and building using Apache Ant. A major portion of this tutorial is dedicated to giving you the knowledge to editing/customizing your programming environment to your liking (I do feel this can help to improve workflow).<br /> <br /> {{ambox|text=you can replace any of these with a program of your choosing, some of the [[Unreal_Wiki:Basic_procedures|basic procedure]] in this tutorial are generic enough that program doesnt matter. Some of these steps however are only directly relevant to the programs listed below.}}<br /> Tools suggested for this tutorial:<br /> *[[jEdit]] - Programmers text editor [[Legacy:JEdit|jEdit]]<br /> *[[GIT]] - Source/Build Repository<br /> *[[UnCodeX]] - UScript Class Browser<br /> *[[NSIS]] - Installer/Packaging<br /> <br /> ==Introduction to jEdit==<br /> :[http://www.jedit.org/ jEdit] is a powerful, cross platform, java based programmers text editor.&lt;br&gt;<br /> <br /> ===Edit Modes===<br /> :jEdit uses what is called edit modes, these specify:<br /> ::* Syntax highlighting rules<br /> ::* Auto indent behavior<br /> ::* Various other customizations for editing a certain filetype<br /> <br /> :These edit modes are easily installed an updated, they use the XML language and jEdits own document type definition for modes (xmode.dtd). More information on edit modes can be found within jEdits Help section along with a section on writing edit modes so you can customize jEdits UScript mode to your liking.&lt;br&gt;<br /> <br /> ====Setting jEdits Mode====<br /> ::By default jEdit comes with a UScript mode which can be located in the {'''jEdit Home Directory'''}\Modes this edit mode is very light weight and doesnt cover all engine versions.&lt;br&gt;<br /> ::Im going to recommend not using this directory if you plan to modify your edit mode or use one of the custom ones provided below, the reason for this is simpler backups when using the document directory.&lt;br&gt;<br /> <br /> ::On jEdits main toolbar you will find the utilities button, under that is the global options which contains the options for all edit modes. Syntax highlighting colours can be found in here also.<br /> <br /> ::[[User:Wormbo/UScript_edit_mode|Wormbo's UScript jEdit Mode]]&lt;br&gt;<br /> ::[[User:00zX/UScript.xml|My modified UScript jEdit Mode]]&lt;br&gt;<br /> <br /> ===Recommended Plugins===<br /> :* Project Viewer: Usability.<br /> :* Buffer Tabs: Usability.<br /> :* Dirty Gutter: Diff.<br /> :* TaskList: TODO, NOTE, FIXME's<br /> :* Text Autocomplete: Usability - Code Completion.<br /> :* WhiteSpace: Usability/Readability.<br /> <br /> ===Plugin Installation and Settings===<br /> ::jEdits Plugin Manager and Settings can be accessed through the Plugins button on the main toolbar (show picture).&lt;br&gt;<br /> <br /> ::To install new plugins, click on the plugin manager and you will notice a tab up the top of the new window which says install (show picture).<br /> Navigate to this and select the check-boxes for all plugins you wish to install then hit install in the lower left of the panel.<br /> <br /> ::The plugin settings can be found under the Plugins/Plugin Option button on jEdits main toolbar at the top.<br /> <br /> {{ambox|type=notice|text=I'll guide you through the settings for each of the recommended plugins to show you which options I prefer as you may want to adjust these or similar to your liking.}}<br /> &lt;br&gt;<br /> ===Creating your first Project===<br /> :In this part of the tutorial we will be creating a project using jEdit and Project Viewer.<br /> <br /> :First off I prefer to have the project viewer docked on the left hand side of jEdit, you can however put it anywhere you wish to place it.<br /> Right click on All Projects which you should see in your project viewer, add a new group (this is a recommendation), this will help to keep all your UScript UT3/UDK etc separate from any other projects you may wish to create.<br /> I have a group named '''UE3''' for example, then under that group I have '''UT3''' and '''UDK''' to house each of the projects I have for each.<br /> <br /> :Once you have your groups setup to your liking you are ready to create a project, this will require that you have a directory to scan for source files within.<br /> &lt;br&gt;<br /> ====Directory Structure and creating Package Folders====<br /> Firstly you will need to have an understanding of '''[[Engine_Directory_Structure|Unreal Engine's directory structure]]''', from there you will be able to [[Set_up_a_package_directory|create the required directory for a package]] so you can [[compile]] the [[UC_File|*.UC files]] into a [[Script Package File|script package file]](*.U). For Unreal Script [[Classes]] ([[UC_File|*.UC files]]) you will need to first make the ''package'' directory and then the ''Classes'' directory. <br /> <br /> Right click on the group you wish to create the project within, click '''Add Project'''. This will display the create project dialogs (show Picture)<br /> Select a name and the root directory for you project, for now select {'''Your Package'''} directory. Or alternatively if you wish to use multiple [[package]]'s for your project you may add the {[[base source directory]]}, you will however need to filter the imported folders so that only the ones you require for your project are displayed.<br /> <br /> Project Viewer would now have selected the project for you, you can navigate back to all projects using the drop down box at the top of Project Viewer.<br /> &lt;br&gt;<br /> <br /> ===Creating your first Class===<br /> Go to file in jEdits main toolbar, select new and follow this basic procedure [[Create a class]].<br /> <br /> You'll notice that Project Viewer doesnt automatically scan for new classes unless it has been selected to do so. Right click on your project in the Project Viewer panel and select 'Re-import files'.<br /> Make sure the Project and Classes directories are expanded and you should now see {'''Your Class'''} in there.<br /> <br /> ====More on jEdit Modes====<br /> Creating a customized template an macro for creating a new class based on this template.<br /> <br /> ====Customizing Project Viewer====<br /> Specialized section on setting up Project Viewer's context (Right Click) menu to contain a create class button which will create a class based on a UScript template.<br /> <br /> You may skip to [[User:00zX#Compiling|Compiling]] at this point, though I highly recommend you come back and follow up on [[UnCodex]].<br /> <br /> ==Introduction to UnCodex==<br /> This is basically a must have application for anyone doing UScript unless ofcoarse you opt to use other IDE's which contain their own class browsers.<br /> [[UnCodeX]] is still the best out there, it's quick with minimal overhead and is not merely a class browser, <br /> it allows you to hyperlink through class names giving you the ability to surf code flow with ease.<br /> <br /> There are two versions of [[UnCodeX]] that I use, I prefer using the older 227 for anything pre-UE3 or TribesV for those I use the newer 237-beta version.<br /> <br /> ===Setting Up UnCodex===<br /> Working with multiple copies of unreal engine source (for example, numerous [[UDK]] copies) can be tedious to continuously analyze all the time in [[UnCodex]] so I'll guide you through setting it up so you can have numerous shortcuts all which cache different versions of [[Unreal Engine]].<br /> You have to be careful however, this can get confusing as to which copy is in which [[UnCodeX]] window but you can double check the title bar, which I highly recommend you do. I have been caught out a few times with this myself between [[UT3]] and [[UDK]] sources.&lt;br&gt;<br /> <br /> As a general rule of thumb I just use the naming convention:&lt;br&gt;<br /> &quot;Drive:\{UnCodeX}\UnCodeX.exe&quot; -config UnCodeX-{GameName/Version}.ini&lt;br&gt;<br /> <br /> ::'''UT2004''' - &quot;Drive:\{UnCodeX227}\UnCodeX.exe&quot; -config UnCodeX-UT2004.ini&lt;br&gt;<br /> ::'''DeusEx''' - &quot;Drive:\{UnCodeX227}\UnCodeX.exe&quot; -config UnCodeX-DeusEx.ini&lt;br&gt;<br /> ::'''UT3''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UT3.ini&lt;br&gt;<br /> ::'''UDK''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UDK-2009-11-2.ini&lt;br&gt;<br /> ::'''UDK''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UDK-2010-03.ini&lt;br&gt;<br /> <br /> Now these [[INI_File|INI]]'s will have to exist for this to work, so copy the default ''UnCodeX.ini'' and rename it to ''UnCodeX-{GameName/Version}.ini''.<br /> Open this file in jEdit or notepad for editing,<br /> <br /> &lt;pre&gt;<br /> [Sources]<br /> ''Add your source directories here''<br /> &lt;/pre&gt; <br /> ::'''UT2004''' - {[[Base Directory]]}\System\&lt;br&gt;<br /> ::'''UT3''' - {[[User Documents Directory]]}\My Games\Unreal Tournament 3\UTGame\Src\&lt;br&gt;<br /> <br /> {{ambox|type=notice|text=This can be done once [[UnCodeX]] is loaded for this mode.}}&lt;br&gt;<br /> <br /> {{ambox|type=notice|text=For UT3 you will require two directories selected for scanning, one is the exported script directory the other is Src directory within UTGame.<br /> With UT2.x and UDK you work along side Epic's Packages so it'll scan both, you can set [[UnCodeX]] to scan numerous directories for any mode.}}&lt;br&gt;<br /> <br /> {{ambox|type=warning|text=This is an absolute requirement for [[UnCodeX]] to function in multiple mode's correctly. In the past I have forgotten to do this and as the cache is not saved for that source directory you must rescan each time [[UnCodeX]] is loaded.}}<br /> &lt;pre&gt;<br /> [GUI.General]<br /> StateFile=UnCodeX-{GameName-Version}.ucx<br /> &lt;/pre&gt;<br /> <br /> ::'''UT2004''' - StateFile=UnCodeX-UT2004.ucx&lt;br&gt;<br /> ::'''DeusEx''' - StateFile=UnCodeX-DeusEx.ucx&lt;br&gt;<br /> ::'''UT3''' - StateFile=UnCodeX-UT3.ucx&lt;br&gt;<br /> ::'''UDK''' - StateFile=UnCodeX-UDK-2009-11-2.ucx&lt;br&gt;<br /> ::'''UDK''' - StateFile=UnCodeX-UDK-2010-03.ucx&lt;br&gt;<br /> <br /> Once you have done that for your required modes you can boot the shortcut and analyze the source, now every time you boot you would be using the cache for that ini/source.<br /> <br /> ==Introduction to Git==<br /> Git is a free &amp; open source, distributed version control system.<br /> [http://git-scm.com/ GIT]&lt;br&gt;<br /> [http://code.google.com/p/msysgit/ msysgit - windows]&lt;br&gt;<br /> ===GIT command prompt===<br /> '''Creating a repository'''<br /> &lt;syntaxhighlight lang=&quot;bash&quot;&gt;<br /> # cd hello<br /> # ls<br /> # git init<br /> # git add . <br /> &lt;/syntaxhighlight&gt;<br /> '''Pushing a repository to GitHub'''<br /> Create a repository on GitHub then...<br /> &lt;syntaxhighlight lang=&quot;bash&quot;&gt;<br /> # cd hello<br /> # git remote add origin git@github.com:tabrez/hello.git<br /> # git push origin master <br /> &lt;/syntaxhighlight&gt;<br /> &lt;br&gt;<br /> '''GIT GUI'''<br /> <br /> ==Compiling==<br /> ===Using Batch (Windows)===<br /> '''UDK'''<br /> ''Make_64Full''<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> cd..<br /> cd binaries\win64<br /> udk.com make -full -intermediate<br /> pause<br /> &lt;/syntaxhighlight&gt;<br /> ''Make_64Part''<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> @echo off<br /> cd..<br /> cd binaries\win64<br /> @echo on<br /> udk.com make -intermediate<br /> @echo off<br /> pause<br /> &lt;/syntaxhighlight&gt;<br /> &lt;br&gt;<br /> <br /> ''UT3'' - Multi-Package Compile batch<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> @echo Off<br /> prompt $g<br /> rem BASE DIRECTORIES<br /> set UTDIR=&quot;D:\Midway\Unreal Tournament 3&quot;<br /> set UTCOM=%UTDIR%\Binaries\UT3.COM<br /> <br /> rem PROJECT DETAILS<br /> set UP1=UT_<br /> set UP2=UT_GDP_<br /> set K1=MDB<br /> set K2=GameDex<br /> set K3=Newtators<br /> set K4=Mutatoes<br /> <br /> rem script<br /> set UTCONFIG=..\Config<br /> set UTCOMSRC=..\Unpublished\CookedPC\Script<br /> set MYCOMSRC=..\Unpublished\CookedPC\GameDex<br /> <br /> @echo On<br /> del %MYCOMSRC%\%UP1%%K1%.u<br /> del %MYCOMSRC%\%UP1%%K2%.u<br /> del %MYCOMSRC%\%K3%\%UP2%%K3%.u<br /> rem del %MYCOMSRC%\%K4%\%UP2%%K4%.u<br /> <br /> %UTCOM% make -debug -useunpublished -log=CompileLog.log -full<br /> copy %UTCOMSRC%\%UP1%%K1%.u %MYCOMSRC%\%UP1%%K1%.u<br /> copy %UTCOMSRC%\%UP1%%K2%.u %MYCOMSRC%\%UP1%%K2%.u<br /> copy %UTCOMSRC%\%UP2%%K3%.u %MYCOMSRC%\%K3%\%UP2%%K3%.u<br /> copy %UTCOMSRC%\%UP2%%K4%.u %MYCOMSRC%\%K4%\%UP2%%K4%.u<br /> del %UTCOMSRC%\%UP1%%K1%.u<br /> del %UTCOMSRC%\%UP1%%K2%.u<br /> del %UTCOMSRC%\%UP2%%K3%.u<br /> del %UTCOMSRC%\%UP2%%K4%.u<br /> <br /> del %UTCONFIG%\%UP1%%K2%.ini<br /> del %UTCONFIG%\%UP2%%K3%.ini<br /> rem del %UTCONFIG%\%UP2%%K4%.ini<br /> <br /> pause<br /> prompt $p$g<br /> &lt;/syntaxhighlight&gt;<br /> &lt;/div&gt;&lt;/div&gt;<br /> <br /> ==Running Unreal Engine with your package==<br /> ====archetypes====<br /> ====ini's setup====<br /> ====Main Menu====<br /> ====localization====<br /> <br /> ==Introduction to NSIS==<br /> [http://nsis.sourceforge.net/Main_Page NSIS]<br /> <br /> [[File:RevengeTempt.png]]<br /> &lt;syntaxhighlight lang=&quot;nsis&quot;&gt;<br /> ;<br /> ; GameDex.nsh<br /> ; Creation Date: 19/04/2010 10:33<br /> ; Last Updated: 04/03/2012 22:33<br /> ; Contributors: 00zX<br /> ; Attribution-Noncommercial-Share Alike 3.0 Unported<br /> ; http://creativecommons.org/licenses/by-nc-sa/3.0/<br /> ;<br /> <br /> XPStyle on<br /> ;SetCompressorDictSize dict_size_mb<br /> SetDatablockOptimize on<br /> SetCompressor /SOLID lzma<br /> <br /> ; HM NIS Edit Wizard helper defines<br /> !define PRODUCT_NAME &quot;Gamed&quot;<br /> !define PRODUCT_VERSION &quot;v3.16&quot;<br /> !define PRODUCT_PUBLISHER &quot;00zX&quot;<br /> ;!define PRODUCT_UNINST_KEY &quot;Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}&quot;<br /> ;!define PRODUCT_UNINST_ROOT_KEY &quot;HKLM&quot;<br /> <br /> ;--------------------------------<br /> ;Include (Custom) Modern UI v2<br /> !include &quot;NSIS\Contrib\Gamed\MUI2_Unreal.nsh&quot;<br /> ;!include &quot;${NSISDIR}\include\MultiUser.nsh&quot;<br /> <br /> ;!define MULTIUSER_MUI<br /> <br /> ; MUI Settings<br /> !define MUI_ABORTWARNING<br /> !define MUI_ICON &quot;NSIS\Contrib\Gamed\Graphics\Icons\SweetRevengeTemptIcon5s.ico&quot;<br /> !define MUI_UNICON &quot;NSIS\Contrib\Gamed\Graphics\Icons\SweetRevengeTemptIcon5s.ico&quot;<br /> <br /> ; UT3 Uninstall Registry Location<br /> ;!define REG_UT &quot;Software\Microsoft\Windows\CurrentVersion\Uninstall\{BFA90209-7AFF-4DB6-8E4B-E57305751AD7}&quot;<br /> <br /> ;Interface Configuration<br /> !define MUI_HEADERIMAGE<br /> !define MUI_HEADERIMAGE_BITMAP &quot;NSIS\Contrib\Gamed\Graphics\Header\TemptHeader.bmp&quot;<br /> <br /> ;--------------------------------<br /> ;Standard Pages<br /> !insertmacro MUI_PAGE_WELCOME<br /> ;!insertmacro MUI_PAGE_LICENSE &quot;NSIS\Contrib\Gamed\Docs\License.txt&quot;<br /> ;!insertmacro MULTIUSER_PAGE_INSTALLMODE<br /> <br /> !ifdef PRODUCT_MODE_STANDARD<br /> !define PRODUCT_MODE &quot;Std&quot;<br /> !insertmacro MUI_PAGE_DIRECTORY<br /> !insertmacro MUI_PAGE_INSTFILES<br /> !insertmacro MUI_PAGE_FINISH<br /> !endif<br /> !ifdef PRODUCT_MODE_DEVELOPMENT<br /> !define PRODUCT_MODE &quot;DevEd&quot;<br /> !define MUI_COMPONENTSPAGE_SMALLDESC ;No value<br /> !insertmacro MUI_PAGE_COMPONENTS<br /> !insertmacro MUI_PAGE_DIRECTORY<br /> !insertmacro MUI_PAGE_INSTFILES<br /> ; !define MUI_FINISHPAGE_SHOWREADME &quot;$INSTDIR\UTGame\Published\CookedPC\Script\README_Newtators.txt&quot;<br /> !insertmacro MUI_PAGE_FINISH<br /> !insertmacro MUI_UNPAGE_INSTFILES<br /> !endif<br /> <br /> !insertmacro MUI_LANGUAGE &quot;English&quot;<br /> ; MUI end ------<br /> <br /> Name &quot;${PRODUCT_NAME} ${PRODUCT_VERSION}&quot;<br /> OutFile &quot;${PRODUCT_NAME}-${PRODUCT_VERSION}-${PRODUCT_MODE}.exe&quot;<br /> ShowInstDetails hide<br /> <br /> ;!macro MULTIUSER_INIT_TEXTS<br /> ;!macroend<br /> <br /> ;!ifdef PRODUCT_MODE<br /> ;!endif<br /> <br /> ;--------------------------------<br /> ;Util<br /> !macro redef olddef newdef<br /> !ifdef ${olddef}<br /> !undef ${olddef}<br /> !endif<br /> !define ${olddef} &quot;${newdef}&quot;<br /> !macroend<br /> <br /> ;--------------------------------<br /> !define UDK &quot;UDKGame&quot;<br /> !define UDK_SRC &quot;Development\Src&quot;<br /> !define UDK_CONT &quot;UDKGame\Content&quot;<br /> ;!define UDK_PAK_PATH &quot;$INSTDIR\${UDK_CONT}&quot;<br /> ;!define UDK_UNPAK_PATH &quot;$INSTDIR\UDKGame\Content\GamedEx&quot;<br /> <br /> !define GAMED &quot;Gamed&quot;<br /> <br /> !macro GPAK_SECG GPAK_NAME _a _b<br /> !insertmacro redef GPAK_INST &quot;$INSTDIR\${UDK_CONT}\${GPAK_NAME}&quot;<br /> !insertmacro redef GPAK_TXT &quot;${UDK_SRC}\${GPAK_NAME}&quot;<br /> !insertmacro redef GPAK_UC &quot;${UDK_SRC}\${GPAK_NAME}\Classes&quot;<br /> !insertmacro redef GPAK_U &quot;${UDK}\script&quot;<br /> !insertmacro redef GPAK_CONT &quot;${UDK_CONT}\${GPAK_NAME}&quot;<br /> SectionGroup ${GPAK_NAME} SEC_${GPAK_NAME}<br /> SetOverwrite ifnewer<br /> Section ${_a} ${GPAK_NAME}01<br /> SetOutPath &quot;$GPAK_INST&quot;<br /> File &quot;${GPAK_TXT}\${GPAK_NAME}_README.txt&quot;<br /> File &quot;${GPAK_TXT}\${GPAK_NAME}_ChangeLog.txt&quot;<br /> File &quot;${GPAK_U}\${GPAK_NAME}.u&quot;<br /> SectionEnd<br /> <br /> !ifdef ${_b}<br /> Section ${_b} ${GPAK_NAME}02<br /> SetOutPath &quot;${GPAK_INST}${GPAK_CONT}&quot;<br /> File &quot;${GPAK_CONT}\${GPAK_NAME}\*.udk&quot;<br /> File &quot;${GPAK_CONT}\${GPAK_NAME}\*.upk&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_c}<br /> Section ${_c} ${GPAK_NAME}03<br /> SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GAMED_PAK}\config\${GPAK_NAME}.ini&quot;<br /> ;File &quot;${GAMED_PAK}\${GPAK_NAME}.int&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_d}<br /> Section ${_d} ${GPAK_NAME}04<br /> ;SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.uc&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.uci&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_c}<br /> Section ${_c} ${GPAK_NAME}05<br /> ;SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.pdf&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.upk&quot;<br /> SectionEnd<br /> !endif<br /> SectionGroupEnd<br /> !macroend<br /> <br /> !macro UN_GPAK_SECG GPAK_NAME _a _b<br /> <br /> !macroend<br /> &lt;/syntaxhighlight&gt;<br /> [[File:TemptHeader.png]]<br /> &lt;syntaxhighlight lang=&quot;nsis&quot;&gt;<br /> ;<br /> ; GameDex-DevEd.nsi<br /> ; Creation Date:<br /> ; Last Updated: 19/04/2010 10:21<br /> ; Contributors: 00zX<br /> ; Attribution-Noncommercial-Share Alike 3.0 Unported<br /> ; http://creativecommons.org/licenses/by-nc-sa/3.0/<br /> ;<br /> ;--------------------------------<br /> !define PRODUCT_MODE_DEVELOPMENT<br /> <br /> !include &quot;Gamed.nsh&quot;<br /> <br /> ShowUnInstDetails show<br /> ;--------------------------------<br /> ;Package SubTypes<br /> !define SCR Script<br /> !define CONT Content<br /> !define CFG Config<br /> !define SRC Source<br /> !define Mod ModDesign<br /> <br /> ;Packages<br /> !define GPAKA_DESC &quot;Core Plugin&quot;<br /> !define GPAKB_DESC &quot;Gamed&quot;<br /> !define GPAKC_DESC &quot;Scaleform Interface&quot;<br /> !define GPAKD_DESC &quot;Project: Caster&quot;<br /> <br /> !macro GPAK GPAK_NAME ;GPAK_DESC<br /> !ifdef GPAK_NAME<br /> !insertmacro redef GPAK_PATH &quot;${GAMED_PAK}\${GPAK_NAME}&quot;<br /> !insertmacro GPAK_SECG ${GPAK_NAME} ${SCR} ${CONT}<br /> !endif<br /> !macroend<br /> <br /> SectionGroup /e &quot;!UDK Packages&quot; SECG_UDK<br /> !insertmacro GPAK GamedPlug<br /> !insertmacro GPAK GamedEx<br /> !insertmacro GPAK GamedGFx<br /> !insertmacro GPAK GamedCaster<br /> SectionGroupEnd<br /> <br /> SectionGroup &quot;ModTool&quot; SECG_MOD<br /> Section /o &quot;QuadMX&quot; SEC07<br /> SectionEnd<br /> Section /o &quot;jEdit Theme&quot; SEC08<br /> SectionEnd<br /> Section /o &quot;MonoDevelop Theme&quot; SEC09<br /> SectionEnd<br /> Section /o &quot;Wiki MonoBook (CodeNoir) Theme&quot; SEC10<br /> SectionEnd<br /> Section /o &quot;NSIS Theme&quot; SEC11<br /> SetOverwrite ifnewer<br /> SetOutPath &quot;$INSTDIR\NSIS\Contrib\Gamed&quot;<br /> File &quot;Gamed-DevEd.nsi&quot;<br /> File &quot;Gamed-Std.nsi&quot;<br /> File &quot;NSIS\Contrib\Gamed\Docs\License.txt&quot;<br /> File &quot;NSIS\Contrib\Gamed\Graphics\Header\TemptHeader.bmp&quot;<br /> File &quot;NSIS\Contrib\Gamed\Graphics\Icons\SweetRevengeTemptIcon5s.ico&quot;<br /> File &quot;NSIS\Contrib\Gamed\Graphics\Wizard\RevengeTempt.bmp&quot;<br /> SectionEnd<br /> SectionGroupEnd<br /> &lt;/syntaxhighlight&gt;<br /> ===Creating an NSIS package script===<br /> [[File:SweetRevengeTemptIcon6l.png]]</div> 00zX https://wiki.beyondunreal.com/User:00zX/Setting_Up_Your_UScript_Environment?diff=45047 User:00zX/Setting Up Your UScript Environment 2012-03-06T11:03:08Z <p>00zX: /* Introduction to NSIS */</p> <hr /> <div>Step by step process of installing, setting up jEdit for use with Uscript. From start to finish, using/committing to repository's and building using Apache Ant. A major portion of this tutorial is dedicated to giving you the knowledge to editing/customizing your programming environment to your liking (I do feel this can help to improve workflow).<br /> <br /> {{ambox|text=you can replace any of these with a program of your choosing, some of the [[Unreal_Wiki:Basic_procedures|basic procedure]] in this tutorial are generic enough that program doesnt matter. Some of these steps however are only directly relevant to the programs listed below.}}<br /> Tools suggested for this tutorial:<br /> *[[jEdit]] - Programmers text editor [[Legacy:JEdit|jEdit]]<br /> *[[GIT]] - Source/Build Repository<br /> *[[UnCodeX]] - UScript Class Browser<br /> *[[NSIS]] - Installer/Packaging<br /> <br /> ==Introduction to jEdit==<br /> :[http://www.jedit.org/ jEdit] is a powerful, cross platform, java based programmers text editor.&lt;br&gt;<br /> <br /> ===Edit Modes===<br /> :jEdit uses what is called edit modes, these specify:<br /> ::* Syntax highlighting rules<br /> ::* Auto indent behavior<br /> ::* Various other customizations for editing a certain filetype<br /> <br /> :These edit modes are easily installed an updated, they use the XML language and jEdits own document type definition for modes (xmode.dtd). More information on edit modes can be found within jEdits Help section along with a section on writing edit modes so you can customize jEdits UScript mode to your liking.&lt;br&gt;<br /> <br /> ====Setting jEdits Mode====<br /> ::By default jEdit comes with a UScript mode which can be located in the {'''jEdit Home Directory'''}\Modes this edit mode is very light weight and doesnt cover all engine versions.&lt;br&gt;<br /> ::Im going to recommend not using this directory if you plan to modify your edit mode or use one of the custom ones provided below, the reason for this is simpler backups when using the document directory.&lt;br&gt;<br /> <br /> ::On jEdits main toolbar you will find the utilities button, under that is the global options which contains the options for all edit modes. Syntax highlighting colours can be found in here also.<br /> <br /> ::[[User:Wormbo/UScript_edit_mode|Wormbo's UScript jEdit Mode]]&lt;br&gt;<br /> ::[[User:00zX/UScript.xml|My modified UScript jEdit Mode]]&lt;br&gt;<br /> <br /> ===Recommended Plugins===<br /> :* Project Viewer: Usability.<br /> :* Buffer Tabs: Usability.<br /> :* Dirty Gutter: Diff.<br /> :* TaskList: TODO, NOTE, FIXME's<br /> :* Text Autocomplete: Usability - Code Completion.<br /> :* WhiteSpace: Usability/Readability.<br /> <br /> ===Plugin Installation and Settings===<br /> ::jEdits Plugin Manager and Settings can be accessed through the Plugins button on the main toolbar (show picture).&lt;br&gt;<br /> <br /> ::To install new plugins, click on the plugin manager and you will notice a tab up the top of the new window which says install (show picture).<br /> Navigate to this and select the check-boxes for all plugins you wish to install then hit install in the lower left of the panel.<br /> <br /> ::The plugin settings can be found under the Plugins/Plugin Option button on jEdits main toolbar at the top.<br /> <br /> {{ambox|type=notice|text=I'll guide you through the settings for each of the recommended plugins to show you which options I prefer as you may want to adjust these or similar to your liking.}}<br /> &lt;br&gt;<br /> ===Creating your first Project===<br /> :In this part of the tutorial we will be creating a project using jEdit and Project Viewer.<br /> <br /> :First off I prefer to have the project viewer docked on the left hand side of jEdit, you can however put it anywhere you wish to place it.<br /> Right click on All Projects which you should see in your project viewer, add a new group (this is a recommendation), this will help to keep all your UScript UT3/UDK etc separate from any other projects you may wish to create.<br /> I have a group named '''UE3''' for example, then under that group I have '''UT3''' and '''UDK''' to house each of the projects I have for each.<br /> <br /> :Once you have your groups setup to your liking you are ready to create a project, this will require that you have a directory to scan for source files within.<br /> &lt;br&gt;<br /> ====Directory Structure and creating Package Folders====<br /> Firstly you will need to have an understanding of '''[[Engine_Directory_Structure|Unreal Engine's directory structure]]''', from there you will be able to [[Set_up_a_package_directory|create the required directory for a package]] so you can [[compile]] the [[UC_File|*.UC files]] into a [[Script Package File|script package file]](*.U). For Unreal Script [[Classes]] ([[UC_File|*.UC files]]) you will need to first make the ''package'' directory and then the ''Classes'' directory. <br /> <br /> Right click on the group you wish to create the project within, click '''Add Project'''. This will display the create project dialogs (show Picture)<br /> Select a name and the root directory for you project, for now select {'''Your Package'''} directory. Or alternatively if you wish to use multiple [[package]]'s for your project you may add the {[[base source directory]]}, you will however need to filter the imported folders so that only the ones you require for your project are displayed.<br /> <br /> Project Viewer would now have selected the project for you, you can navigate back to all projects using the drop down box at the top of Project Viewer.<br /> &lt;br&gt;<br /> <br /> ===Creating your first Class===<br /> Go to file in jEdits main toolbar, select new and follow this basic procedure [[Create a class]].<br /> <br /> You'll notice that Project Viewer doesnt automatically scan for new classes unless it has been selected to do so. Right click on your project in the Project Viewer panel and select 'Re-import files'.<br /> Make sure the Project and Classes directories are expanded and you should now see {'''Your Class'''} in there.<br /> <br /> ====More on jEdit Modes====<br /> Creating a customized template an macro for creating a new class based on this template.<br /> <br /> ====Customizing Project Viewer====<br /> Specialized section on setting up Project Viewer's context (Right Click) menu to contain a create class button which will create a class based on a UScript template.<br /> <br /> You may skip to [[User:00zX#Compiling|Compiling]] at this point, though I highly recommend you come back and follow up on [[UnCodex]].<br /> <br /> ==Introduction to UnCodex==<br /> This is basically a must have application for anyone doing UScript unless ofcoarse you opt to use other IDE's which contain their own class browsers.<br /> [[UnCodeX]] is still the best out there, it's quick with minimal overhead and is not merely a class browser, <br /> it allows you to hyperlink through class names giving you the ability to surf code flow with ease.<br /> <br /> There are two versions of [[UnCodeX]] that I use, I prefer using the older 227 for anything pre-UE3 or TribesV for those I use the newer 237-beta version.<br /> <br /> ===Setting Up UnCodex===<br /> Working with multiple copies of unreal engine source (for example, numerous [[UDK]] copies) can be tedious to continuously analyze all the time in [[UnCodex]] so I'll guide you through setting it up so you can have numerous shortcuts all which cache different versions of [[Unreal Engine]].<br /> You have to be careful however, this can get confusing as to which copy is in which [[UnCodeX]] window but you can double check the title bar, which I highly recommend you do. I have been caught out a few times with this myself between [[UT3]] and [[UDK]] sources.&lt;br&gt;<br /> <br /> As a general rule of thumb I just use the naming convention:&lt;br&gt;<br /> &quot;Drive:\{UnCodeX}\UnCodeX.exe&quot; -config UnCodeX-{GameName/Version}.ini&lt;br&gt;<br /> <br /> ::'''UT2004''' - &quot;Drive:\{UnCodeX227}\UnCodeX.exe&quot; -config UnCodeX-UT2004.ini&lt;br&gt;<br /> ::'''DeusEx''' - &quot;Drive:\{UnCodeX227}\UnCodeX.exe&quot; -config UnCodeX-DeusEx.ini&lt;br&gt;<br /> ::'''UT3''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UT3.ini&lt;br&gt;<br /> ::'''UDK''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UDK-2009-11-2.ini&lt;br&gt;<br /> ::'''UDK''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UDK-2010-03.ini&lt;br&gt;<br /> <br /> Now these [[INI_File|INI]]'s will have to exist for this to work, so copy the default ''UnCodeX.ini'' and rename it to ''UnCodeX-{GameName/Version}.ini''.<br /> Open this file in jEdit or notepad for editing,<br /> <br /> &lt;pre&gt;<br /> [Sources]<br /> ''Add your source directories here''<br /> &lt;/pre&gt; <br /> ::'''UT2004''' - {[[Base Directory]]}\System\&lt;br&gt;<br /> ::'''UT3''' - {[[User Documents Directory]]}\My Games\Unreal Tournament 3\UTGame\Src\&lt;br&gt;<br /> <br /> {{ambox|type=notice|text=This can be done once [[UnCodeX]] is loaded for this mode.}}&lt;br&gt;<br /> <br /> {{ambox|type=notice|text=For UT3 you will require two directories selected for scanning, one is the exported script directory the other is Src directory within UTGame.<br /> With UT2.x and UDK you work along side Epic's Packages so it'll scan both, you can set [[UnCodeX]] to scan numerous directories for any mode.}}&lt;br&gt;<br /> <br /> {{ambox|type=warning|text=This is an absolute requirement for [[UnCodeX]] to function in multiple mode's correctly. In the past I have forgotten to do this and as the cache is not saved for that source directory you must rescan each time [[UnCodeX]] is loaded.}}<br /> &lt;pre&gt;<br /> [GUI.General]<br /> StateFile=UnCodeX-{GameName-Version}.ucx<br /> &lt;/pre&gt;<br /> <br /> ::'''UT2004''' - StateFile=UnCodeX-UT2004.ucx&lt;br&gt;<br /> ::'''DeusEx''' - StateFile=UnCodeX-DeusEx.ucx&lt;br&gt;<br /> ::'''UT3''' - StateFile=UnCodeX-UT3.ucx&lt;br&gt;<br /> ::'''UDK''' - StateFile=UnCodeX-UDK-2009-11-2.ucx&lt;br&gt;<br /> ::'''UDK''' - StateFile=UnCodeX-UDK-2010-03.ucx&lt;br&gt;<br /> <br /> Once you have done that for your required modes you can boot the shortcut and analyze the source, now every time you boot you would be using the cache for that ini/source.<br /> <br /> ==Introduction to Git==<br /> Git is a free &amp; open source, distributed version control system.<br /> [http://git-scm.com/ GIT]&lt;br&gt;<br /> [http://code.google.com/p/msysgit/ msysgit - windows]&lt;br&gt;<br /> ===GIT command prompt===<br /> '''Creating a repository'''<br /> &lt;syntaxhighlight lang=&quot;bash&quot;&gt;<br /> # cd hello<br /> # ls<br /> # git init<br /> # git add . <br /> &lt;/syntaxhighlight&gt;<br /> '''Pushing a repository to GitHub'''<br /> Create a repository on GitHub then...<br /> &lt;syntaxhighlight lang=&quot;bash&quot;&gt;<br /> # cd hello<br /> # git remote add origin git@github.com:tabrez/hello.git<br /> # git push origin master <br /> &lt;/syntaxhighlight&gt;<br /> &lt;br&gt;<br /> '''GIT GUI'''<br /> <br /> ==Compiling==<br /> ===Using Batch (Windows)===<br /> '''UDK'''<br /> ''Make_64Full''<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> cd..<br /> cd binaries\win64<br /> udk.com make -full -intermediate<br /> pause<br /> &lt;/syntaxhighlight&gt;<br /> ''Make_64Part''<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> @echo off<br /> cd..<br /> cd binaries\win64<br /> @echo on<br /> udk.com make -intermediate<br /> @echo off<br /> pause<br /> &lt;/syntaxhighlight&gt;<br /> &lt;br&gt;<br /> <br /> ''UT3'' - Multi-Package Compile batch<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> @echo Off<br /> prompt $g<br /> rem BASE DIRECTORIES<br /> set UTDIR=&quot;D:\Midway\Unreal Tournament 3&quot;<br /> set UTCOM=%UTDIR%\Binaries\UT3.COM<br /> <br /> rem PROJECT DETAILS<br /> set UP1=UT_<br /> set UP2=UT_GDP_<br /> set K1=MDB<br /> set K2=GameDex<br /> set K3=Newtators<br /> set K4=Mutatoes<br /> <br /> rem script<br /> set UTCONFIG=..\Config<br /> set UTCOMSRC=..\Unpublished\CookedPC\Script<br /> set MYCOMSRC=..\Unpublished\CookedPC\GameDex<br /> <br /> @echo On<br /> del %MYCOMSRC%\%UP1%%K1%.u<br /> del %MYCOMSRC%\%UP1%%K2%.u<br /> del %MYCOMSRC%\%K3%\%UP2%%K3%.u<br /> rem del %MYCOMSRC%\%K4%\%UP2%%K4%.u<br /> <br /> %UTCOM% make -debug -useunpublished -log=CompileLog.log -full<br /> copy %UTCOMSRC%\%UP1%%K1%.u %MYCOMSRC%\%UP1%%K1%.u<br /> copy %UTCOMSRC%\%UP1%%K2%.u %MYCOMSRC%\%UP1%%K2%.u<br /> copy %UTCOMSRC%\%UP2%%K3%.u %MYCOMSRC%\%K3%\%UP2%%K3%.u<br /> copy %UTCOMSRC%\%UP2%%K4%.u %MYCOMSRC%\%K4%\%UP2%%K4%.u<br /> del %UTCOMSRC%\%UP1%%K1%.u<br /> del %UTCOMSRC%\%UP1%%K2%.u<br /> del %UTCOMSRC%\%UP2%%K3%.u<br /> del %UTCOMSRC%\%UP2%%K4%.u<br /> <br /> del %UTCONFIG%\%UP1%%K2%.ini<br /> del %UTCONFIG%\%UP2%%K3%.ini<br /> rem del %UTCONFIG%\%UP2%%K4%.ini<br /> <br /> pause<br /> prompt $p$g<br /> &lt;/syntaxhighlight&gt;<br /> &lt;/div&gt;&lt;/div&gt;<br /> <br /> ==Running Unreal Engine with your package==<br /> ====archetypes====<br /> ====ini's setup====<br /> ====Main Menu====<br /> ====localization====<br /> <br /> ==Introduction to NSIS==<br /> [http://nsis.sourceforge.net/Main_Page NSIS]<br /> <br /> [[File:SweetRevengeTemptIcon6l.png]]<br /> [[File:RevengeTempt.png]]<br /> &lt;syntaxhighlight lang=&quot;nsis&quot;&gt;<br /> ;<br /> ; GameDex.nsh<br /> ; Creation Date: 19/04/2010 10:33<br /> ; Last Updated: 04/03/2012 22:33<br /> ; Contributors: 00zX<br /> ; Attribution-Noncommercial-Share Alike 3.0 Unported<br /> ; http://creativecommons.org/licenses/by-nc-sa/3.0/<br /> ;<br /> <br /> XPStyle on<br /> ;SetCompressorDictSize dict_size_mb<br /> SetDatablockOptimize on<br /> SetCompressor /SOLID lzma<br /> <br /> ; HM NIS Edit Wizard helper defines<br /> !define PRODUCT_NAME &quot;Gamed&quot;<br /> !define PRODUCT_VERSION &quot;v3.16&quot;<br /> !define PRODUCT_PUBLISHER &quot;00zX&quot;<br /> ;!define PRODUCT_UNINST_KEY &quot;Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}&quot;<br /> ;!define PRODUCT_UNINST_ROOT_KEY &quot;HKLM&quot;<br /> <br /> ;--------------------------------<br /> ;Include (Custom) Modern UI v2<br /> !include &quot;NSIS\Contrib\Gamed\MUI2_Unreal.nsh&quot;<br /> ;!include &quot;${NSISDIR}\include\MultiUser.nsh&quot;<br /> <br /> ;!define MULTIUSER_MUI<br /> <br /> ; MUI Settings<br /> !define MUI_ABORTWARNING<br /> !define MUI_ICON &quot;NSIS\Contrib\Gamed\Graphics\Icons\SweetRevengeTemptIcon5s.ico&quot;<br /> !define MUI_UNICON &quot;NSIS\Contrib\Gamed\Graphics\Icons\SweetRevengeTemptIcon5s.ico&quot;<br /> <br /> ; UT3 Uninstall Registry Location<br /> ;!define REG_UT &quot;Software\Microsoft\Windows\CurrentVersion\Uninstall\{BFA90209-7AFF-4DB6-8E4B-E57305751AD7}&quot;<br /> <br /> ;Interface Configuration<br /> !define MUI_HEADERIMAGE<br /> !define MUI_HEADERIMAGE_BITMAP &quot;NSIS\Contrib\Gamed\Graphics\Header\TemptHeader.bmp&quot;<br /> <br /> ;--------------------------------<br /> ;Standard Pages<br /> !insertmacro MUI_PAGE_WELCOME<br /> ;!insertmacro MUI_PAGE_LICENSE &quot;NSIS\Contrib\Gamed\Docs\License.txt&quot;<br /> ;!insertmacro MULTIUSER_PAGE_INSTALLMODE<br /> <br /> !ifdef PRODUCT_MODE_STANDARD<br /> !define PRODUCT_MODE &quot;Std&quot;<br /> !insertmacro MUI_PAGE_DIRECTORY<br /> !insertmacro MUI_PAGE_INSTFILES<br /> !insertmacro MUI_PAGE_FINISH<br /> !endif<br /> !ifdef PRODUCT_MODE_DEVELOPMENT<br /> !define PRODUCT_MODE &quot;DevEd&quot;<br /> !define MUI_COMPONENTSPAGE_SMALLDESC ;No value<br /> !insertmacro MUI_PAGE_COMPONENTS<br /> !insertmacro MUI_PAGE_DIRECTORY<br /> !insertmacro MUI_PAGE_INSTFILES<br /> ; !define MUI_FINISHPAGE_SHOWREADME &quot;$INSTDIR\UTGame\Published\CookedPC\Script\README_Newtators.txt&quot;<br /> !insertmacro MUI_PAGE_FINISH<br /> !insertmacro MUI_UNPAGE_INSTFILES<br /> !endif<br /> <br /> !insertmacro MUI_LANGUAGE &quot;English&quot;<br /> ; MUI end ------<br /> <br /> Name &quot;${PRODUCT_NAME} ${PRODUCT_VERSION}&quot;<br /> OutFile &quot;${PRODUCT_NAME}-${PRODUCT_VERSION}-${PRODUCT_MODE}.exe&quot;<br /> ShowInstDetails hide<br /> <br /> ;!macro MULTIUSER_INIT_TEXTS<br /> ;!macroend<br /> <br /> ;!ifdef PRODUCT_MODE<br /> ;!endif<br /> <br /> ;--------------------------------<br /> ;Util<br /> !macro redef olddef newdef<br /> !ifdef ${olddef}<br /> !undef ${olddef}<br /> !endif<br /> !define ${olddef} &quot;${newdef}&quot;<br /> !macroend<br /> <br /> ;--------------------------------<br /> !define UDK &quot;UDKGame&quot;<br /> !define UDK_SRC &quot;Development\Src&quot;<br /> !define UDK_CONT &quot;UDKGame\Content&quot;<br /> ;!define UDK_PAK_PATH &quot;$INSTDIR\${UDK_CONT}&quot;<br /> ;!define UDK_UNPAK_PATH &quot;$INSTDIR\UDKGame\Content\GamedEx&quot;<br /> <br /> !define GAMED &quot;Gamed&quot;<br /> <br /> !macro GPAK_SECG GPAK_NAME _a _b<br /> !insertmacro redef GPAK_INST &quot;$INSTDIR\${UDK_CONT}\${GPAK_NAME}&quot;<br /> !insertmacro redef GPAK_TXT &quot;${UDK_SRC}\${GPAK_NAME}&quot;<br /> !insertmacro redef GPAK_UC &quot;${UDK_SRC}\${GPAK_NAME}\Classes&quot;<br /> !insertmacro redef GPAK_U &quot;${UDK}\script&quot;<br /> !insertmacro redef GPAK_CONT &quot;${UDK_CONT}\${GPAK_NAME}&quot;<br /> SectionGroup ${GPAK_NAME} SEC_${GPAK_NAME}<br /> SetOverwrite ifnewer<br /> Section ${_a} ${GPAK_NAME}01<br /> SetOutPath &quot;$GPAK_INST&quot;<br /> File &quot;${GPAK_TXT}\${GPAK_NAME}_README.txt&quot;<br /> File &quot;${GPAK_TXT}\${GPAK_NAME}_ChangeLog.txt&quot;<br /> File &quot;${GPAK_U}\${GPAK_NAME}.u&quot;<br /> SectionEnd<br /> <br /> !ifdef ${_b}<br /> Section ${_b} ${GPAK_NAME}02<br /> SetOutPath &quot;${GPAK_INST}${GPAK_CONT}&quot;<br /> File &quot;${GPAK_CONT}\${GPAK_NAME}\*.udk&quot;<br /> File &quot;${GPAK_CONT}\${GPAK_NAME}\*.upk&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_c}<br /> Section ${_c} ${GPAK_NAME}03<br /> SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GAMED_PAK}\config\${GPAK_NAME}.ini&quot;<br /> ;File &quot;${GAMED_PAK}\${GPAK_NAME}.int&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_d}<br /> Section ${_d} ${GPAK_NAME}04<br /> ;SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.uc&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.uci&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_c}<br /> Section ${_c} ${GPAK_NAME}05<br /> ;SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.pdf&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.upk&quot;<br /> SectionEnd<br /> !endif<br /> SectionGroupEnd<br /> !macroend<br /> <br /> !macro UN_GPAK_SECG GPAK_NAME _a _b<br /> <br /> !macroend<br /> &lt;/syntaxhighlight&gt;<br /> [[File:File:File:TemptHeader.png]]<br /> &lt;syntaxhighlight lang=&quot;nsis&quot;&gt;<br /> ;<br /> ; GameDex-DevEd.nsi<br /> ; Creation Date:<br /> ; Last Updated: 19/04/2010 10:21<br /> ; Contributors: 00zX<br /> ; Attribution-Noncommercial-Share Alike 3.0 Unported<br /> ; http://creativecommons.org/licenses/by-nc-sa/3.0/<br /> ;<br /> ;--------------------------------<br /> !define PRODUCT_MODE_DEVELOPMENT<br /> <br /> !include &quot;Gamed.nsh&quot;<br /> <br /> ShowUnInstDetails show<br /> ;--------------------------------<br /> ;Package SubTypes<br /> !define SCR Script<br /> !define CONT Content<br /> !define CFG Config<br /> !define SRC Source<br /> !define Mod ModDesign<br /> <br /> ;Packages<br /> !define GPAKA_DESC &quot;Core Plugin&quot;<br /> !define GPAKB_DESC &quot;Gamed&quot;<br /> !define GPAKC_DESC &quot;Scaleform Interface&quot;<br /> !define GPAKD_DESC &quot;Project: Caster&quot;<br /> <br /> !macro GPAK GPAK_NAME ;GPAK_DESC<br /> !ifdef GPAK_NAME<br /> !insertmacro redef GPAK_PATH &quot;${GAMED_PAK}\${GPAK_NAME}&quot;<br /> !insertmacro GPAK_SECG ${GPAK_NAME} ${SCR} ${CONT}<br /> !endif<br /> !macroend<br /> <br /> SectionGroup /e &quot;!UDK Packages&quot; SECG_UDK<br /> !insertmacro GPAK GamedPlug<br /> !insertmacro GPAK GamedEx<br /> !insertmacro GPAK GamedGFx<br /> !insertmacro GPAK GamedCaster<br /> SectionGroupEnd<br /> <br /> SectionGroup &quot;ModTool&quot; SECG_MOD<br /> Section /o &quot;QuadMX&quot; SEC07<br /> SectionEnd<br /> Section /o &quot;jEdit Theme&quot; SEC08<br /> SectionEnd<br /> Section /o &quot;MonoDevelop Theme&quot; SEC09<br /> SectionEnd<br /> Section /o &quot;Wiki MonoBook (CodeNoir) Theme&quot; SEC10<br /> SectionEnd<br /> Section /o &quot;NSIS Theme&quot; SEC11<br /> SetOverwrite ifnewer<br /> SetOutPath &quot;$INSTDIR\NSIS\Contrib\Gamed&quot;<br /> File &quot;Gamed-DevEd.nsi&quot;<br /> File &quot;Gamed-Std.nsi&quot;<br /> File &quot;NSIS\Contrib\Gamed\Docs\License.txt&quot;<br /> File &quot;NSIS\Contrib\Gamed\Graphics\Header\TemptHeader.bmp&quot;<br /> File &quot;NSIS\Contrib\Gamed\Graphics\Icons\SweetRevengeTemptIcon5s.ico&quot;<br /> File &quot;NSIS\Contrib\Gamed\Graphics\Wizard\RevengeTempt.bmp&quot;<br /> SectionEnd<br /> SectionGroupEnd<br /> &lt;/syntaxhighlight&gt;<br /> ===Creating an NSIS package script===</div> 00zX https://wiki.beyondunreal.com/User:00zX/Setting_Up_Your_UScript_Environment?diff=45046 User:00zX/Setting Up Your UScript Environment 2012-03-06T11:02:44Z <p>00zX: /* Introduction to NSIS */</p> <hr /> <div>Step by step process of installing, setting up jEdit for use with Uscript. From start to finish, using/committing to repository's and building using Apache Ant. A major portion of this tutorial is dedicated to giving you the knowledge to editing/customizing your programming environment to your liking (I do feel this can help to improve workflow).<br /> <br /> {{ambox|text=you can replace any of these with a program of your choosing, some of the [[Unreal_Wiki:Basic_procedures|basic procedure]] in this tutorial are generic enough that program doesnt matter. Some of these steps however are only directly relevant to the programs listed below.}}<br /> Tools suggested for this tutorial:<br /> *[[jEdit]] - Programmers text editor [[Legacy:JEdit|jEdit]]<br /> *[[GIT]] - Source/Build Repository<br /> *[[UnCodeX]] - UScript Class Browser<br /> *[[NSIS]] - Installer/Packaging<br /> <br /> ==Introduction to jEdit==<br /> :[http://www.jedit.org/ jEdit] is a powerful, cross platform, java based programmers text editor.&lt;br&gt;<br /> <br /> ===Edit Modes===<br /> :jEdit uses what is called edit modes, these specify:<br /> ::* Syntax highlighting rules<br /> ::* Auto indent behavior<br /> ::* Various other customizations for editing a certain filetype<br /> <br /> :These edit modes are easily installed an updated, they use the XML language and jEdits own document type definition for modes (xmode.dtd). More information on edit modes can be found within jEdits Help section along with a section on writing edit modes so you can customize jEdits UScript mode to your liking.&lt;br&gt;<br /> <br /> ====Setting jEdits Mode====<br /> ::By default jEdit comes with a UScript mode which can be located in the {'''jEdit Home Directory'''}\Modes this edit mode is very light weight and doesnt cover all engine versions.&lt;br&gt;<br /> ::Im going to recommend not using this directory if you plan to modify your edit mode or use one of the custom ones provided below, the reason for this is simpler backups when using the document directory.&lt;br&gt;<br /> <br /> ::On jEdits main toolbar you will find the utilities button, under that is the global options which contains the options for all edit modes. Syntax highlighting colours can be found in here also.<br /> <br /> ::[[User:Wormbo/UScript_edit_mode|Wormbo's UScript jEdit Mode]]&lt;br&gt;<br /> ::[[User:00zX/UScript.xml|My modified UScript jEdit Mode]]&lt;br&gt;<br /> <br /> ===Recommended Plugins===<br /> :* Project Viewer: Usability.<br /> :* Buffer Tabs: Usability.<br /> :* Dirty Gutter: Diff.<br /> :* TaskList: TODO, NOTE, FIXME's<br /> :* Text Autocomplete: Usability - Code Completion.<br /> :* WhiteSpace: Usability/Readability.<br /> <br /> ===Plugin Installation and Settings===<br /> ::jEdits Plugin Manager and Settings can be accessed through the Plugins button on the main toolbar (show picture).&lt;br&gt;<br /> <br /> ::To install new plugins, click on the plugin manager and you will notice a tab up the top of the new window which says install (show picture).<br /> Navigate to this and select the check-boxes for all plugins you wish to install then hit install in the lower left of the panel.<br /> <br /> ::The plugin settings can be found under the Plugins/Plugin Option button on jEdits main toolbar at the top.<br /> <br /> {{ambox|type=notice|text=I'll guide you through the settings for each of the recommended plugins to show you which options I prefer as you may want to adjust these or similar to your liking.}}<br /> &lt;br&gt;<br /> ===Creating your first Project===<br /> :In this part of the tutorial we will be creating a project using jEdit and Project Viewer.<br /> <br /> :First off I prefer to have the project viewer docked on the left hand side of jEdit, you can however put it anywhere you wish to place it.<br /> Right click on All Projects which you should see in your project viewer, add a new group (this is a recommendation), this will help to keep all your UScript UT3/UDK etc separate from any other projects you may wish to create.<br /> I have a group named '''UE3''' for example, then under that group I have '''UT3''' and '''UDK''' to house each of the projects I have for each.<br /> <br /> :Once you have your groups setup to your liking you are ready to create a project, this will require that you have a directory to scan for source files within.<br /> &lt;br&gt;<br /> ====Directory Structure and creating Package Folders====<br /> Firstly you will need to have an understanding of '''[[Engine_Directory_Structure|Unreal Engine's directory structure]]''', from there you will be able to [[Set_up_a_package_directory|create the required directory for a package]] so you can [[compile]] the [[UC_File|*.UC files]] into a [[Script Package File|script package file]](*.U). For Unreal Script [[Classes]] ([[UC_File|*.UC files]]) you will need to first make the ''package'' directory and then the ''Classes'' directory. <br /> <br /> Right click on the group you wish to create the project within, click '''Add Project'''. This will display the create project dialogs (show Picture)<br /> Select a name and the root directory for you project, for now select {'''Your Package'''} directory. Or alternatively if you wish to use multiple [[package]]'s for your project you may add the {[[base source directory]]}, you will however need to filter the imported folders so that only the ones you require for your project are displayed.<br /> <br /> Project Viewer would now have selected the project for you, you can navigate back to all projects using the drop down box at the top of Project Viewer.<br /> &lt;br&gt;<br /> <br /> ===Creating your first Class===<br /> Go to file in jEdits main toolbar, select new and follow this basic procedure [[Create a class]].<br /> <br /> You'll notice that Project Viewer doesnt automatically scan for new classes unless it has been selected to do so. Right click on your project in the Project Viewer panel and select 'Re-import files'.<br /> Make sure the Project and Classes directories are expanded and you should now see {'''Your Class'''} in there.<br /> <br /> ====More on jEdit Modes====<br /> Creating a customized template an macro for creating a new class based on this template.<br /> <br /> ====Customizing Project Viewer====<br /> Specialized section on setting up Project Viewer's context (Right Click) menu to contain a create class button which will create a class based on a UScript template.<br /> <br /> You may skip to [[User:00zX#Compiling|Compiling]] at this point, though I highly recommend you come back and follow up on [[UnCodex]].<br /> <br /> ==Introduction to UnCodex==<br /> This is basically a must have application for anyone doing UScript unless ofcoarse you opt to use other IDE's which contain their own class browsers.<br /> [[UnCodeX]] is still the best out there, it's quick with minimal overhead and is not merely a class browser, <br /> it allows you to hyperlink through class names giving you the ability to surf code flow with ease.<br /> <br /> There are two versions of [[UnCodeX]] that I use, I prefer using the older 227 for anything pre-UE3 or TribesV for those I use the newer 237-beta version.<br /> <br /> ===Setting Up UnCodex===<br /> Working with multiple copies of unreal engine source (for example, numerous [[UDK]] copies) can be tedious to continuously analyze all the time in [[UnCodex]] so I'll guide you through setting it up so you can have numerous shortcuts all which cache different versions of [[Unreal Engine]].<br /> You have to be careful however, this can get confusing as to which copy is in which [[UnCodeX]] window but you can double check the title bar, which I highly recommend you do. I have been caught out a few times with this myself between [[UT3]] and [[UDK]] sources.&lt;br&gt;<br /> <br /> As a general rule of thumb I just use the naming convention:&lt;br&gt;<br /> &quot;Drive:\{UnCodeX}\UnCodeX.exe&quot; -config UnCodeX-{GameName/Version}.ini&lt;br&gt;<br /> <br /> ::'''UT2004''' - &quot;Drive:\{UnCodeX227}\UnCodeX.exe&quot; -config UnCodeX-UT2004.ini&lt;br&gt;<br /> ::'''DeusEx''' - &quot;Drive:\{UnCodeX227}\UnCodeX.exe&quot; -config UnCodeX-DeusEx.ini&lt;br&gt;<br /> ::'''UT3''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UT3.ini&lt;br&gt;<br /> ::'''UDK''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UDK-2009-11-2.ini&lt;br&gt;<br /> ::'''UDK''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UDK-2010-03.ini&lt;br&gt;<br /> <br /> Now these [[INI_File|INI]]'s will have to exist for this to work, so copy the default ''UnCodeX.ini'' and rename it to ''UnCodeX-{GameName/Version}.ini''.<br /> Open this file in jEdit or notepad for editing,<br /> <br /> &lt;pre&gt;<br /> [Sources]<br /> ''Add your source directories here''<br /> &lt;/pre&gt; <br /> ::'''UT2004''' - {[[Base Directory]]}\System\&lt;br&gt;<br /> ::'''UT3''' - {[[User Documents Directory]]}\My Games\Unreal Tournament 3\UTGame\Src\&lt;br&gt;<br /> <br /> {{ambox|type=notice|text=This can be done once [[UnCodeX]] is loaded for this mode.}}&lt;br&gt;<br /> <br /> {{ambox|type=notice|text=For UT3 you will require two directories selected for scanning, one is the exported script directory the other is Src directory within UTGame.<br /> With UT2.x and UDK you work along side Epic's Packages so it'll scan both, you can set [[UnCodeX]] to scan numerous directories for any mode.}}&lt;br&gt;<br /> <br /> {{ambox|type=warning|text=This is an absolute requirement for [[UnCodeX]] to function in multiple mode's correctly. In the past I have forgotten to do this and as the cache is not saved for that source directory you must rescan each time [[UnCodeX]] is loaded.}}<br /> &lt;pre&gt;<br /> [GUI.General]<br /> StateFile=UnCodeX-{GameName-Version}.ucx<br /> &lt;/pre&gt;<br /> <br /> ::'''UT2004''' - StateFile=UnCodeX-UT2004.ucx&lt;br&gt;<br /> ::'''DeusEx''' - StateFile=UnCodeX-DeusEx.ucx&lt;br&gt;<br /> ::'''UT3''' - StateFile=UnCodeX-UT3.ucx&lt;br&gt;<br /> ::'''UDK''' - StateFile=UnCodeX-UDK-2009-11-2.ucx&lt;br&gt;<br /> ::'''UDK''' - StateFile=UnCodeX-UDK-2010-03.ucx&lt;br&gt;<br /> <br /> Once you have done that for your required modes you can boot the shortcut and analyze the source, now every time you boot you would be using the cache for that ini/source.<br /> <br /> ==Introduction to Git==<br /> Git is a free &amp; open source, distributed version control system.<br /> [http://git-scm.com/ GIT]&lt;br&gt;<br /> [http://code.google.com/p/msysgit/ msysgit - windows]&lt;br&gt;<br /> ===GIT command prompt===<br /> '''Creating a repository'''<br /> &lt;syntaxhighlight lang=&quot;bash&quot;&gt;<br /> # cd hello<br /> # ls<br /> # git init<br /> # git add . <br /> &lt;/syntaxhighlight&gt;<br /> '''Pushing a repository to GitHub'''<br /> Create a repository on GitHub then...<br /> &lt;syntaxhighlight lang=&quot;bash&quot;&gt;<br /> # cd hello<br /> # git remote add origin git@github.com:tabrez/hello.git<br /> # git push origin master <br /> &lt;/syntaxhighlight&gt;<br /> &lt;br&gt;<br /> '''GIT GUI'''<br /> <br /> ==Compiling==<br /> ===Using Batch (Windows)===<br /> '''UDK'''<br /> ''Make_64Full''<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> cd..<br /> cd binaries\win64<br /> udk.com make -full -intermediate<br /> pause<br /> &lt;/syntaxhighlight&gt;<br /> ''Make_64Part''<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> @echo off<br /> cd..<br /> cd binaries\win64<br /> @echo on<br /> udk.com make -intermediate<br /> @echo off<br /> pause<br /> &lt;/syntaxhighlight&gt;<br /> &lt;br&gt;<br /> <br /> ''UT3'' - Multi-Package Compile batch<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> @echo Off<br /> prompt $g<br /> rem BASE DIRECTORIES<br /> set UTDIR=&quot;D:\Midway\Unreal Tournament 3&quot;<br /> set UTCOM=%UTDIR%\Binaries\UT3.COM<br /> <br /> rem PROJECT DETAILS<br /> set UP1=UT_<br /> set UP2=UT_GDP_<br /> set K1=MDB<br /> set K2=GameDex<br /> set K3=Newtators<br /> set K4=Mutatoes<br /> <br /> rem script<br /> set UTCONFIG=..\Config<br /> set UTCOMSRC=..\Unpublished\CookedPC\Script<br /> set MYCOMSRC=..\Unpublished\CookedPC\GameDex<br /> <br /> @echo On<br /> del %MYCOMSRC%\%UP1%%K1%.u<br /> del %MYCOMSRC%\%UP1%%K2%.u<br /> del %MYCOMSRC%\%K3%\%UP2%%K3%.u<br /> rem del %MYCOMSRC%\%K4%\%UP2%%K4%.u<br /> <br /> %UTCOM% make -debug -useunpublished -log=CompileLog.log -full<br /> copy %UTCOMSRC%\%UP1%%K1%.u %MYCOMSRC%\%UP1%%K1%.u<br /> copy %UTCOMSRC%\%UP1%%K2%.u %MYCOMSRC%\%UP1%%K2%.u<br /> copy %UTCOMSRC%\%UP2%%K3%.u %MYCOMSRC%\%K3%\%UP2%%K3%.u<br /> copy %UTCOMSRC%\%UP2%%K4%.u %MYCOMSRC%\%K4%\%UP2%%K4%.u<br /> del %UTCOMSRC%\%UP1%%K1%.u<br /> del %UTCOMSRC%\%UP1%%K2%.u<br /> del %UTCOMSRC%\%UP2%%K3%.u<br /> del %UTCOMSRC%\%UP2%%K4%.u<br /> <br /> del %UTCONFIG%\%UP1%%K2%.ini<br /> del %UTCONFIG%\%UP2%%K3%.ini<br /> rem del %UTCONFIG%\%UP2%%K4%.ini<br /> <br /> pause<br /> prompt $p$g<br /> &lt;/syntaxhighlight&gt;<br /> &lt;/div&gt;&lt;/div&gt;<br /> <br /> ==Running Unreal Engine with your package==<br /> ====archetypes====<br /> ====ini's setup====<br /> ====Main Menu====<br /> ====localization====<br /> <br /> ==Introduction to NSIS==<br /> [http://nsis.sourceforge.net/Main_Page NSIS]<br /> <br /> [[File:SweetRevengeTemptIcon6l.png]]<br /> [[File:File:RevengeTempt.png]]<br /> &lt;syntaxhighlight lang=&quot;nsis&quot;&gt;<br /> ;<br /> ; GameDex.nsh<br /> ; Creation Date: 19/04/2010 10:33<br /> ; Last Updated: 04/03/2012 22:33<br /> ; Contributors: 00zX<br /> ; Attribution-Noncommercial-Share Alike 3.0 Unported<br /> ; http://creativecommons.org/licenses/by-nc-sa/3.0/<br /> ;<br /> <br /> XPStyle on<br /> ;SetCompressorDictSize dict_size_mb<br /> SetDatablockOptimize on<br /> SetCompressor /SOLID lzma<br /> <br /> ; HM NIS Edit Wizard helper defines<br /> !define PRODUCT_NAME &quot;Gamed&quot;<br /> !define PRODUCT_VERSION &quot;v3.16&quot;<br /> !define PRODUCT_PUBLISHER &quot;00zX&quot;<br /> ;!define PRODUCT_UNINST_KEY &quot;Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}&quot;<br /> ;!define PRODUCT_UNINST_ROOT_KEY &quot;HKLM&quot;<br /> <br /> ;--------------------------------<br /> ;Include (Custom) Modern UI v2<br /> !include &quot;NSIS\Contrib\Gamed\MUI2_Unreal.nsh&quot;<br /> ;!include &quot;${NSISDIR}\include\MultiUser.nsh&quot;<br /> <br /> ;!define MULTIUSER_MUI<br /> <br /> ; MUI Settings<br /> !define MUI_ABORTWARNING<br /> !define MUI_ICON &quot;NSIS\Contrib\Gamed\Graphics\Icons\SweetRevengeTemptIcon5s.ico&quot;<br /> !define MUI_UNICON &quot;NSIS\Contrib\Gamed\Graphics\Icons\SweetRevengeTemptIcon5s.ico&quot;<br /> <br /> ; UT3 Uninstall Registry Location<br /> ;!define REG_UT &quot;Software\Microsoft\Windows\CurrentVersion\Uninstall\{BFA90209-7AFF-4DB6-8E4B-E57305751AD7}&quot;<br /> <br /> ;Interface Configuration<br /> !define MUI_HEADERIMAGE<br /> !define MUI_HEADERIMAGE_BITMAP &quot;NSIS\Contrib\Gamed\Graphics\Header\TemptHeader.bmp&quot;<br /> <br /> ;--------------------------------<br /> ;Standard Pages<br /> !insertmacro MUI_PAGE_WELCOME<br /> ;!insertmacro MUI_PAGE_LICENSE &quot;NSIS\Contrib\Gamed\Docs\License.txt&quot;<br /> ;!insertmacro MULTIUSER_PAGE_INSTALLMODE<br /> <br /> !ifdef PRODUCT_MODE_STANDARD<br /> !define PRODUCT_MODE &quot;Std&quot;<br /> !insertmacro MUI_PAGE_DIRECTORY<br /> !insertmacro MUI_PAGE_INSTFILES<br /> !insertmacro MUI_PAGE_FINISH<br /> !endif<br /> !ifdef PRODUCT_MODE_DEVELOPMENT<br /> !define PRODUCT_MODE &quot;DevEd&quot;<br /> !define MUI_COMPONENTSPAGE_SMALLDESC ;No value<br /> !insertmacro MUI_PAGE_COMPONENTS<br /> !insertmacro MUI_PAGE_DIRECTORY<br /> !insertmacro MUI_PAGE_INSTFILES<br /> ; !define MUI_FINISHPAGE_SHOWREADME &quot;$INSTDIR\UTGame\Published\CookedPC\Script\README_Newtators.txt&quot;<br /> !insertmacro MUI_PAGE_FINISH<br /> !insertmacro MUI_UNPAGE_INSTFILES<br /> !endif<br /> <br /> !insertmacro MUI_LANGUAGE &quot;English&quot;<br /> ; MUI end ------<br /> <br /> Name &quot;${PRODUCT_NAME} ${PRODUCT_VERSION}&quot;<br /> OutFile &quot;${PRODUCT_NAME}-${PRODUCT_VERSION}-${PRODUCT_MODE}.exe&quot;<br /> ShowInstDetails hide<br /> <br /> ;!macro MULTIUSER_INIT_TEXTS<br /> ;!macroend<br /> <br /> ;!ifdef PRODUCT_MODE<br /> ;!endif<br /> <br /> ;--------------------------------<br /> ;Util<br /> !macro redef olddef newdef<br /> !ifdef ${olddef}<br /> !undef ${olddef}<br /> !endif<br /> !define ${olddef} &quot;${newdef}&quot;<br /> !macroend<br /> <br /> ;--------------------------------<br /> !define UDK &quot;UDKGame&quot;<br /> !define UDK_SRC &quot;Development\Src&quot;<br /> !define UDK_CONT &quot;UDKGame\Content&quot;<br /> ;!define UDK_PAK_PATH &quot;$INSTDIR\${UDK_CONT}&quot;<br /> ;!define UDK_UNPAK_PATH &quot;$INSTDIR\UDKGame\Content\GamedEx&quot;<br /> <br /> !define GAMED &quot;Gamed&quot;<br /> <br /> !macro GPAK_SECG GPAK_NAME _a _b<br /> !insertmacro redef GPAK_INST &quot;$INSTDIR\${UDK_CONT}\${GPAK_NAME}&quot;<br /> !insertmacro redef GPAK_TXT &quot;${UDK_SRC}\${GPAK_NAME}&quot;<br /> !insertmacro redef GPAK_UC &quot;${UDK_SRC}\${GPAK_NAME}\Classes&quot;<br /> !insertmacro redef GPAK_U &quot;${UDK}\script&quot;<br /> !insertmacro redef GPAK_CONT &quot;${UDK_CONT}\${GPAK_NAME}&quot;<br /> SectionGroup ${GPAK_NAME} SEC_${GPAK_NAME}<br /> SetOverwrite ifnewer<br /> Section ${_a} ${GPAK_NAME}01<br /> SetOutPath &quot;$GPAK_INST&quot;<br /> File &quot;${GPAK_TXT}\${GPAK_NAME}_README.txt&quot;<br /> File &quot;${GPAK_TXT}\${GPAK_NAME}_ChangeLog.txt&quot;<br /> File &quot;${GPAK_U}\${GPAK_NAME}.u&quot;<br /> SectionEnd<br /> <br /> !ifdef ${_b}<br /> Section ${_b} ${GPAK_NAME}02<br /> SetOutPath &quot;${GPAK_INST}${GPAK_CONT}&quot;<br /> File &quot;${GPAK_CONT}\${GPAK_NAME}\*.udk&quot;<br /> File &quot;${GPAK_CONT}\${GPAK_NAME}\*.upk&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_c}<br /> Section ${_c} ${GPAK_NAME}03<br /> SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GAMED_PAK}\config\${GPAK_NAME}.ini&quot;<br /> ;File &quot;${GAMED_PAK}\${GPAK_NAME}.int&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_d}<br /> Section ${_d} ${GPAK_NAME}04<br /> ;SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.uc&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.uci&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_c}<br /> Section ${_c} ${GPAK_NAME}05<br /> ;SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.pdf&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.upk&quot;<br /> SectionEnd<br /> !endif<br /> SectionGroupEnd<br /> !macroend<br /> <br /> !macro UN_GPAK_SECG GPAK_NAME _a _b<br /> <br /> !macroend<br /> &lt;/syntaxhighlight&gt;<br /> [[File:File:File:TemptHeader.png]]<br /> &lt;syntaxhighlight lang=&quot;nsis&quot;&gt;<br /> ;<br /> ; GameDex-DevEd.nsi<br /> ; Creation Date:<br /> ; Last Updated: 19/04/2010 10:21<br /> ; Contributors: 00zX<br /> ; Attribution-Noncommercial-Share Alike 3.0 Unported<br /> ; http://creativecommons.org/licenses/by-nc-sa/3.0/<br /> ;<br /> ;--------------------------------<br /> !define PRODUCT_MODE_DEVELOPMENT<br /> <br /> !include &quot;Gamed.nsh&quot;<br /> <br /> ShowUnInstDetails show<br /> ;--------------------------------<br /> ;Package SubTypes<br /> !define SCR Script<br /> !define CONT Content<br /> !define CFG Config<br /> !define SRC Source<br /> !define Mod ModDesign<br /> <br /> ;Packages<br /> !define GPAKA_DESC &quot;Core Plugin&quot;<br /> !define GPAKB_DESC &quot;Gamed&quot;<br /> !define GPAKC_DESC &quot;Scaleform Interface&quot;<br /> !define GPAKD_DESC &quot;Project: Caster&quot;<br /> <br /> !macro GPAK GPAK_NAME ;GPAK_DESC<br /> !ifdef GPAK_NAME<br /> !insertmacro redef GPAK_PATH &quot;${GAMED_PAK}\${GPAK_NAME}&quot;<br /> !insertmacro GPAK_SECG ${GPAK_NAME} ${SCR} ${CONT}<br /> !endif<br /> !macroend<br /> <br /> SectionGroup /e &quot;!UDK Packages&quot; SECG_UDK<br /> !insertmacro GPAK GamedPlug<br /> !insertmacro GPAK GamedEx<br /> !insertmacro GPAK GamedGFx<br /> !insertmacro GPAK GamedCaster<br /> SectionGroupEnd<br /> <br /> SectionGroup &quot;ModTool&quot; SECG_MOD<br /> Section /o &quot;QuadMX&quot; SEC07<br /> SectionEnd<br /> Section /o &quot;jEdit Theme&quot; SEC08<br /> SectionEnd<br /> Section /o &quot;MonoDevelop Theme&quot; SEC09<br /> SectionEnd<br /> Section /o &quot;Wiki MonoBook (CodeNoir) Theme&quot; SEC10<br /> SectionEnd<br /> Section /o &quot;NSIS Theme&quot; SEC11<br /> SetOverwrite ifnewer<br /> SetOutPath &quot;$INSTDIR\NSIS\Contrib\Gamed&quot;<br /> File &quot;Gamed-DevEd.nsi&quot;<br /> File &quot;Gamed-Std.nsi&quot;<br /> File &quot;NSIS\Contrib\Gamed\Docs\License.txt&quot;<br /> File &quot;NSIS\Contrib\Gamed\Graphics\Header\TemptHeader.bmp&quot;<br /> File &quot;NSIS\Contrib\Gamed\Graphics\Icons\SweetRevengeTemptIcon5s.ico&quot;<br /> File &quot;NSIS\Contrib\Gamed\Graphics\Wizard\RevengeTempt.bmp&quot;<br /> SectionEnd<br /> SectionGroupEnd<br /> &lt;/syntaxhighlight&gt;<br /> ===Creating an NSIS package script===</div> 00zX https://wiki.beyondunreal.com/File:TemptHeader.png?diff=45045 File:TemptHeader.png 2012-03-06T10:59:43Z <p>00zX: Header image, NSIS themes dont have alot in this area. Standard sizes</p> <hr /> <div>== Summary ==<br /> Header image, NSIS themes dont have alot in this area. Standard sizes<br /> == Licensing: ==<br /> {{CC-by-nc-sa-3.0}}</div> 00zX https://wiki.beyondunreal.com/File:SweetRevengeTemptIcon6l.png?diff=45044 File:SweetRevengeTemptIcon6l.png 2012-03-06T10:56:57Z <p>00zX: Icon for NSIS theme, I find NSIS does resize this. Obviously not my logo, it belongs to Epic and Unreal thanks.</p> <hr /> <div>== Summary ==<br /> Icon for NSIS theme, I find NSIS does resize this. Obviously not my logo, it belongs to Epic and Unreal thanks.<br /> == Licensing: ==<br /> {{CC-by-nc-sa-3.0}}</div> 00zX https://wiki.beyondunreal.com/File:RevengeTempt.png?diff=45043 File:RevengeTempt.png 2012-03-06T10:55:09Z <p>00zX: This is the wizard picture for the NSIS theme.</p> <hr /> <div>== Summary ==<br /> This is the wizard picture for the NSIS theme.<br /> == Licensing: ==<br /> {{CC-by-nc-sa-3.0}}</div> 00zX https://wiki.beyondunreal.com/User:00zX/Setting_Up_Your_UScript_Environment?diff=45042 User:00zX/Setting Up Your UScript Environment 2012-03-06T10:43:55Z <p>00zX: uurgh</p> <hr /> <div>Step by step process of installing, setting up jEdit for use with Uscript. From start to finish, using/committing to repository's and building using Apache Ant. A major portion of this tutorial is dedicated to giving you the knowledge to editing/customizing your programming environment to your liking (I do feel this can help to improve workflow).<br /> <br /> {{ambox|text=you can replace any of these with a program of your choosing, some of the [[Unreal_Wiki:Basic_procedures|basic procedure]] in this tutorial are generic enough that program doesnt matter. Some of these steps however are only directly relevant to the programs listed below.}}<br /> Tools suggested for this tutorial:<br /> *[[jEdit]] - Programmers text editor [[Legacy:JEdit|jEdit]]<br /> *[[GIT]] - Source/Build Repository<br /> *[[UnCodeX]] - UScript Class Browser<br /> *[[NSIS]] - Installer/Packaging<br /> <br /> ==Introduction to jEdit==<br /> :[http://www.jedit.org/ jEdit] is a powerful, cross platform, java based programmers text editor.&lt;br&gt;<br /> <br /> ===Edit Modes===<br /> :jEdit uses what is called edit modes, these specify:<br /> ::* Syntax highlighting rules<br /> ::* Auto indent behavior<br /> ::* Various other customizations for editing a certain filetype<br /> <br /> :These edit modes are easily installed an updated, they use the XML language and jEdits own document type definition for modes (xmode.dtd). More information on edit modes can be found within jEdits Help section along with a section on writing edit modes so you can customize jEdits UScript mode to your liking.&lt;br&gt;<br /> <br /> ====Setting jEdits Mode====<br /> ::By default jEdit comes with a UScript mode which can be located in the {'''jEdit Home Directory'''}\Modes this edit mode is very light weight and doesnt cover all engine versions.&lt;br&gt;<br /> ::Im going to recommend not using this directory if you plan to modify your edit mode or use one of the custom ones provided below, the reason for this is simpler backups when using the document directory.&lt;br&gt;<br /> <br /> ::On jEdits main toolbar you will find the utilities button, under that is the global options which contains the options for all edit modes. Syntax highlighting colours can be found in here also.<br /> <br /> ::[[User:Wormbo/UScript_edit_mode|Wormbo's UScript jEdit Mode]]&lt;br&gt;<br /> ::[[User:00zX/UScript.xml|My modified UScript jEdit Mode]]&lt;br&gt;<br /> <br /> ===Recommended Plugins===<br /> :* Project Viewer: Usability.<br /> :* Buffer Tabs: Usability.<br /> :* Dirty Gutter: Diff.<br /> :* TaskList: TODO, NOTE, FIXME's<br /> :* Text Autocomplete: Usability - Code Completion.<br /> :* WhiteSpace: Usability/Readability.<br /> <br /> ===Plugin Installation and Settings===<br /> ::jEdits Plugin Manager and Settings can be accessed through the Plugins button on the main toolbar (show picture).&lt;br&gt;<br /> <br /> ::To install new plugins, click on the plugin manager and you will notice a tab up the top of the new window which says install (show picture).<br /> Navigate to this and select the check-boxes for all plugins you wish to install then hit install in the lower left of the panel.<br /> <br /> ::The plugin settings can be found under the Plugins/Plugin Option button on jEdits main toolbar at the top.<br /> <br /> {{ambox|type=notice|text=I'll guide you through the settings for each of the recommended plugins to show you which options I prefer as you may want to adjust these or similar to your liking.}}<br /> &lt;br&gt;<br /> ===Creating your first Project===<br /> :In this part of the tutorial we will be creating a project using jEdit and Project Viewer.<br /> <br /> :First off I prefer to have the project viewer docked on the left hand side of jEdit, you can however put it anywhere you wish to place it.<br /> Right click on All Projects which you should see in your project viewer, add a new group (this is a recommendation), this will help to keep all your UScript UT3/UDK etc separate from any other projects you may wish to create.<br /> I have a group named '''UE3''' for example, then under that group I have '''UT3''' and '''UDK''' to house each of the projects I have for each.<br /> <br /> :Once you have your groups setup to your liking you are ready to create a project, this will require that you have a directory to scan for source files within.<br /> &lt;br&gt;<br /> ====Directory Structure and creating Package Folders====<br /> Firstly you will need to have an understanding of '''[[Engine_Directory_Structure|Unreal Engine's directory structure]]''', from there you will be able to [[Set_up_a_package_directory|create the required directory for a package]] so you can [[compile]] the [[UC_File|*.UC files]] into a [[Script Package File|script package file]](*.U). For Unreal Script [[Classes]] ([[UC_File|*.UC files]]) you will need to first make the ''package'' directory and then the ''Classes'' directory. <br /> <br /> Right click on the group you wish to create the project within, click '''Add Project'''. This will display the create project dialogs (show Picture)<br /> Select a name and the root directory for you project, for now select {'''Your Package'''} directory. Or alternatively if you wish to use multiple [[package]]'s for your project you may add the {[[base source directory]]}, you will however need to filter the imported folders so that only the ones you require for your project are displayed.<br /> <br /> Project Viewer would now have selected the project for you, you can navigate back to all projects using the drop down box at the top of Project Viewer.<br /> &lt;br&gt;<br /> <br /> ===Creating your first Class===<br /> Go to file in jEdits main toolbar, select new and follow this basic procedure [[Create a class]].<br /> <br /> You'll notice that Project Viewer doesnt automatically scan for new classes unless it has been selected to do so. Right click on your project in the Project Viewer panel and select 'Re-import files'.<br /> Make sure the Project and Classes directories are expanded and you should now see {'''Your Class'''} in there.<br /> <br /> ====More on jEdit Modes====<br /> Creating a customized template an macro for creating a new class based on this template.<br /> <br /> ====Customizing Project Viewer====<br /> Specialized section on setting up Project Viewer's context (Right Click) menu to contain a create class button which will create a class based on a UScript template.<br /> <br /> You may skip to [[User:00zX#Compiling|Compiling]] at this point, though I highly recommend you come back and follow up on [[UnCodex]].<br /> <br /> ==Introduction to UnCodex==<br /> This is basically a must have application for anyone doing UScript unless ofcoarse you opt to use other IDE's which contain their own class browsers.<br /> [[UnCodeX]] is still the best out there, it's quick with minimal overhead and is not merely a class browser, <br /> it allows you to hyperlink through class names giving you the ability to surf code flow with ease.<br /> <br /> There are two versions of [[UnCodeX]] that I use, I prefer using the older 227 for anything pre-UE3 or TribesV for those I use the newer 237-beta version.<br /> <br /> ===Setting Up UnCodex===<br /> Working with multiple copies of unreal engine source (for example, numerous [[UDK]] copies) can be tedious to continuously analyze all the time in [[UnCodex]] so I'll guide you through setting it up so you can have numerous shortcuts all which cache different versions of [[Unreal Engine]].<br /> You have to be careful however, this can get confusing as to which copy is in which [[UnCodeX]] window but you can double check the title bar, which I highly recommend you do. I have been caught out a few times with this myself between [[UT3]] and [[UDK]] sources.&lt;br&gt;<br /> <br /> As a general rule of thumb I just use the naming convention:&lt;br&gt;<br /> &quot;Drive:\{UnCodeX}\UnCodeX.exe&quot; -config UnCodeX-{GameName/Version}.ini&lt;br&gt;<br /> <br /> ::'''UT2004''' - &quot;Drive:\{UnCodeX227}\UnCodeX.exe&quot; -config UnCodeX-UT2004.ini&lt;br&gt;<br /> ::'''DeusEx''' - &quot;Drive:\{UnCodeX227}\UnCodeX.exe&quot; -config UnCodeX-DeusEx.ini&lt;br&gt;<br /> ::'''UT3''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UT3.ini&lt;br&gt;<br /> ::'''UDK''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UDK-2009-11-2.ini&lt;br&gt;<br /> ::'''UDK''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UDK-2010-03.ini&lt;br&gt;<br /> <br /> Now these [[INI_File|INI]]'s will have to exist for this to work, so copy the default ''UnCodeX.ini'' and rename it to ''UnCodeX-{GameName/Version}.ini''.<br /> Open this file in jEdit or notepad for editing,<br /> <br /> &lt;pre&gt;<br /> [Sources]<br /> ''Add your source directories here''<br /> &lt;/pre&gt; <br /> ::'''UT2004''' - {[[Base Directory]]}\System\&lt;br&gt;<br /> ::'''UT3''' - {[[User Documents Directory]]}\My Games\Unreal Tournament 3\UTGame\Src\&lt;br&gt;<br /> <br /> {{ambox|type=notice|text=This can be done once [[UnCodeX]] is loaded for this mode.}}&lt;br&gt;<br /> <br /> {{ambox|type=notice|text=For UT3 you will require two directories selected for scanning, one is the exported script directory the other is Src directory within UTGame.<br /> With UT2.x and UDK you work along side Epic's Packages so it'll scan both, you can set [[UnCodeX]] to scan numerous directories for any mode.}}&lt;br&gt;<br /> <br /> {{ambox|type=warning|text=This is an absolute requirement for [[UnCodeX]] to function in multiple mode's correctly. In the past I have forgotten to do this and as the cache is not saved for that source directory you must rescan each time [[UnCodeX]] is loaded.}}<br /> &lt;pre&gt;<br /> [GUI.General]<br /> StateFile=UnCodeX-{GameName-Version}.ucx<br /> &lt;/pre&gt;<br /> <br /> ::'''UT2004''' - StateFile=UnCodeX-UT2004.ucx&lt;br&gt;<br /> ::'''DeusEx''' - StateFile=UnCodeX-DeusEx.ucx&lt;br&gt;<br /> ::'''UT3''' - StateFile=UnCodeX-UT3.ucx&lt;br&gt;<br /> ::'''UDK''' - StateFile=UnCodeX-UDK-2009-11-2.ucx&lt;br&gt;<br /> ::'''UDK''' - StateFile=UnCodeX-UDK-2010-03.ucx&lt;br&gt;<br /> <br /> Once you have done that for your required modes you can boot the shortcut and analyze the source, now every time you boot you would be using the cache for that ini/source.<br /> <br /> ==Introduction to Git==<br /> Git is a free &amp; open source, distributed version control system.<br /> [http://git-scm.com/ GIT]&lt;br&gt;<br /> [http://code.google.com/p/msysgit/ msysgit - windows]&lt;br&gt;<br /> ===GIT command prompt===<br /> '''Creating a repository'''<br /> &lt;syntaxhighlight lang=&quot;bash&quot;&gt;<br /> # cd hello<br /> # ls<br /> # git init<br /> # git add . <br /> &lt;/syntaxhighlight&gt;<br /> '''Pushing a repository to GitHub'''<br /> Create a repository on GitHub then...<br /> &lt;syntaxhighlight lang=&quot;bash&quot;&gt;<br /> # cd hello<br /> # git remote add origin git@github.com:tabrez/hello.git<br /> # git push origin master <br /> &lt;/syntaxhighlight&gt;<br /> &lt;br&gt;<br /> '''GIT GUI'''<br /> <br /> ==Compiling==<br /> ===Using Batch (Windows)===<br /> '''UDK'''<br /> ''Make_64Full''<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> cd..<br /> cd binaries\win64<br /> udk.com make -full -intermediate<br /> pause<br /> &lt;/syntaxhighlight&gt;<br /> ''Make_64Part''<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> @echo off<br /> cd..<br /> cd binaries\win64<br /> @echo on<br /> udk.com make -intermediate<br /> @echo off<br /> pause<br /> &lt;/syntaxhighlight&gt;<br /> &lt;br&gt;<br /> <br /> ''UT3'' - Multi-Package Compile batch<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> @echo Off<br /> prompt $g<br /> rem BASE DIRECTORIES<br /> set UTDIR=&quot;D:\Midway\Unreal Tournament 3&quot;<br /> set UTCOM=%UTDIR%\Binaries\UT3.COM<br /> <br /> rem PROJECT DETAILS<br /> set UP1=UT_<br /> set UP2=UT_GDP_<br /> set K1=MDB<br /> set K2=GameDex<br /> set K3=Newtators<br /> set K4=Mutatoes<br /> <br /> rem script<br /> set UTCONFIG=..\Config<br /> set UTCOMSRC=..\Unpublished\CookedPC\Script<br /> set MYCOMSRC=..\Unpublished\CookedPC\GameDex<br /> <br /> @echo On<br /> del %MYCOMSRC%\%UP1%%K1%.u<br /> del %MYCOMSRC%\%UP1%%K2%.u<br /> del %MYCOMSRC%\%K3%\%UP2%%K3%.u<br /> rem del %MYCOMSRC%\%K4%\%UP2%%K4%.u<br /> <br /> %UTCOM% make -debug -useunpublished -log=CompileLog.log -full<br /> copy %UTCOMSRC%\%UP1%%K1%.u %MYCOMSRC%\%UP1%%K1%.u<br /> copy %UTCOMSRC%\%UP1%%K2%.u %MYCOMSRC%\%UP1%%K2%.u<br /> copy %UTCOMSRC%\%UP2%%K3%.u %MYCOMSRC%\%K3%\%UP2%%K3%.u<br /> copy %UTCOMSRC%\%UP2%%K4%.u %MYCOMSRC%\%K4%\%UP2%%K4%.u<br /> del %UTCOMSRC%\%UP1%%K1%.u<br /> del %UTCOMSRC%\%UP1%%K2%.u<br /> del %UTCOMSRC%\%UP2%%K3%.u<br /> del %UTCOMSRC%\%UP2%%K4%.u<br /> <br /> del %UTCONFIG%\%UP1%%K2%.ini<br /> del %UTCONFIG%\%UP2%%K3%.ini<br /> rem del %UTCONFIG%\%UP2%%K4%.ini<br /> <br /> pause<br /> prompt $p$g<br /> &lt;/syntaxhighlight&gt;<br /> &lt;/div&gt;&lt;/div&gt;<br /> <br /> ==Running Unreal Engine with your package==<br /> ====archetypes====<br /> ====ini's setup====<br /> ====Main Menu====<br /> ====localization====<br /> <br /> ==Introduction to NSIS==<br /> [http://nsis.sourceforge.net/Main_Page NSIS]<br /> <br /> &lt;syntaxhighlight lang=&quot;nsis&quot;&gt;<br /> ;<br /> ; GameDex.nsh<br /> ; Creation Date: 19/04/2010 10:33<br /> ; Last Updated: 04/03/2012 22:33<br /> ; Contributors: 00zX<br /> ; Attribution-Noncommercial-Share Alike 3.0 Unported<br /> ; http://creativecommons.org/licenses/by-nc-sa/3.0/<br /> ;<br /> <br /> XPStyle on<br /> ;SetCompressorDictSize dict_size_mb<br /> SetDatablockOptimize on<br /> SetCompressor /SOLID lzma<br /> <br /> ; HM NIS Edit Wizard helper defines<br /> !define PRODUCT_NAME &quot;Gamed&quot;<br /> !define PRODUCT_VERSION &quot;v3.16&quot;<br /> !define PRODUCT_PUBLISHER &quot;00zX&quot;<br /> ;!define PRODUCT_UNINST_KEY &quot;Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}&quot;<br /> ;!define PRODUCT_UNINST_ROOT_KEY &quot;HKLM&quot;<br /> <br /> ;--------------------------------<br /> ;Include (Custom) Modern UI v2<br /> !include &quot;NSIS\Contrib\Gamed\MUI2_Unreal.nsh&quot;<br /> ;!include &quot;${NSISDIR}\include\MultiUser.nsh&quot;<br /> <br /> ;!define MULTIUSER_MUI<br /> <br /> ; MUI Settings<br /> !define MUI_ABORTWARNING<br /> !define MUI_ICON &quot;NSIS\Contrib\Gamed\Graphics\Icons\SweetRevengeTemptIcon5s.ico&quot;<br /> !define MUI_UNICON &quot;NSIS\Contrib\Gamed\Graphics\Icons\SweetRevengeTemptIcon5s.ico&quot;<br /> <br /> ; UT3 Uninstall Registry Location<br /> ;!define REG_UT &quot;Software\Microsoft\Windows\CurrentVersion\Uninstall\{BFA90209-7AFF-4DB6-8E4B-E57305751AD7}&quot;<br /> <br /> ;Interface Configuration<br /> !define MUI_HEADERIMAGE<br /> !define MUI_HEADERIMAGE_BITMAP &quot;NSIS\Contrib\Gamed\Graphics\Header\TemptHeader.bmp&quot;<br /> <br /> ;--------------------------------<br /> ;Standard Pages<br /> !insertmacro MUI_PAGE_WELCOME<br /> ;!insertmacro MUI_PAGE_LICENSE &quot;NSIS\Contrib\Gamed\Docs\License.txt&quot;<br /> ;!insertmacro MULTIUSER_PAGE_INSTALLMODE<br /> <br /> !ifdef PRODUCT_MODE_STANDARD<br /> !define PRODUCT_MODE &quot;Std&quot;<br /> !insertmacro MUI_PAGE_DIRECTORY<br /> !insertmacro MUI_PAGE_INSTFILES<br /> !insertmacro MUI_PAGE_FINISH<br /> !endif<br /> !ifdef PRODUCT_MODE_DEVELOPMENT<br /> !define PRODUCT_MODE &quot;DevEd&quot;<br /> !define MUI_COMPONENTSPAGE_SMALLDESC ;No value<br /> !insertmacro MUI_PAGE_COMPONENTS<br /> !insertmacro MUI_PAGE_DIRECTORY<br /> !insertmacro MUI_PAGE_INSTFILES<br /> ; !define MUI_FINISHPAGE_SHOWREADME &quot;$INSTDIR\UTGame\Published\CookedPC\Script\README_Newtators.txt&quot;<br /> !insertmacro MUI_PAGE_FINISH<br /> !insertmacro MUI_UNPAGE_INSTFILES<br /> !endif<br /> <br /> !insertmacro MUI_LANGUAGE &quot;English&quot;<br /> ; MUI end ------<br /> <br /> Name &quot;${PRODUCT_NAME} ${PRODUCT_VERSION}&quot;<br /> OutFile &quot;${PRODUCT_NAME}-${PRODUCT_VERSION}-${PRODUCT_MODE}.exe&quot;<br /> ShowInstDetails hide<br /> <br /> ;!macro MULTIUSER_INIT_TEXTS<br /> ;!macroend<br /> <br /> ;!ifdef PRODUCT_MODE<br /> ;!endif<br /> <br /> ;--------------------------------<br /> ;Util<br /> !macro redef olddef newdef<br /> !ifdef ${olddef}<br /> !undef ${olddef}<br /> !endif<br /> !define ${olddef} &quot;${newdef}&quot;<br /> !macroend<br /> <br /> ;--------------------------------<br /> !define UDK &quot;UDKGame&quot;<br /> !define UDK_SRC &quot;Development\Src&quot;<br /> !define UDK_CONT &quot;UDKGame\Content&quot;<br /> ;!define UDK_PAK_PATH &quot;$INSTDIR\${UDK_CONT}&quot;<br /> ;!define UDK_UNPAK_PATH &quot;$INSTDIR\UDKGame\Content\GamedEx&quot;<br /> <br /> !define GAMED &quot;Gamed&quot;<br /> <br /> !macro GPAK_SECG GPAK_NAME _a _b<br /> !insertmacro redef GPAK_INST &quot;$INSTDIR\${UDK_CONT}\${GPAK_NAME}&quot;<br /> !insertmacro redef GPAK_TXT &quot;${UDK_SRC}\${GPAK_NAME}&quot;<br /> !insertmacro redef GPAK_UC &quot;${UDK_SRC}\${GPAK_NAME}\Classes&quot;<br /> !insertmacro redef GPAK_U &quot;${UDK}\script&quot;<br /> !insertmacro redef GPAK_CONT &quot;${UDK_CONT}\${GPAK_NAME}&quot;<br /> SectionGroup ${GPAK_NAME} SEC_${GPAK_NAME}<br /> SetOverwrite ifnewer<br /> Section ${_a} ${GPAK_NAME}01<br /> SetOutPath &quot;$GPAK_INST&quot;<br /> File &quot;${GPAK_TXT}\${GPAK_NAME}_README.txt&quot;<br /> File &quot;${GPAK_TXT}\${GPAK_NAME}_ChangeLog.txt&quot;<br /> File &quot;${GPAK_U}\${GPAK_NAME}.u&quot;<br /> SectionEnd<br /> <br /> !ifdef ${_b}<br /> Section ${_b} ${GPAK_NAME}02<br /> SetOutPath &quot;${GPAK_INST}${GPAK_CONT}&quot;<br /> File &quot;${GPAK_CONT}\${GPAK_NAME}\*.udk&quot;<br /> File &quot;${GPAK_CONT}\${GPAK_NAME}\*.upk&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_c}<br /> Section ${_c} ${GPAK_NAME}03<br /> SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GAMED_PAK}\config\${GPAK_NAME}.ini&quot;<br /> ;File &quot;${GAMED_PAK}\${GPAK_NAME}.int&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_d}<br /> Section ${_d} ${GPAK_NAME}04<br /> ;SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.uc&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.uci&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_c}<br /> Section ${_c} ${GPAK_NAME}05<br /> ;SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.pdf&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.upk&quot;<br /> SectionEnd<br /> !endif<br /> SectionGroupEnd<br /> !macroend<br /> <br /> !macro UN_GPAK_SECG GPAK_NAME _a _b<br /> <br /> !macroend<br /> &lt;/syntaxhighlight&gt;<br /> <br /> ===Creating an NSIS package script===</div> 00zX https://wiki.beyondunreal.com/User:00zX/Setting_Up_Your_UScript_Environment?diff=45041 User:00zX/Setting Up Your UScript Environment 2012-03-06T10:42:59Z <p>00zX: /* Running Unreal Engine with your package */</p> <hr /> <div>Step by step process of installing, setting up jEdit for use with Uscript. From start to finish, using/committing to repository's and building using Apache Ant. A major portion of this tutorial is dedicated to giving you the knowledge to editing/customizing your programming environment to your liking (I do feel this can help to improve workflow).<br /> <br /> {{ambox|text=you can replace any of these with a program of your choosing, some of the [[Unreal_Wiki:Basic_procedures|basic procedure]] in this tutorial are generic enough that program doesnt matter. Some of these steps however are only directly relevant to the programs listed below.}}<br /> Tools suggested for this tutorial:<br /> *[[jEdit]] - Programmers text editor [[Legacy:JEdit|jEdit]]<br /> *[[GIT]] - Source/Build Repository<br /> *[[UnCodeX]] - UScript Class Browser<br /> *[[NSIS]] - Installer/Packaging<br /> <br /> ==Introduction to jEdit==<br /> :[http://www.jedit.org/ jEdit] is a powerful, cross platform, java based programmers text editor.&lt;br&gt;<br /> <br /> ===Edit Modes===<br /> :jEdit uses what is called edit modes, these specify:<br /> ::* Syntax highlighting rules<br /> ::* Auto indent behavior<br /> ::* Various other customizations for editing a certain filetype<br /> <br /> :These edit modes are easily installed an updated, they use the XML language and jEdits own document type definition for modes (xmode.dtd). More information on edit modes can be found within jEdits Help section along with a section on writing edit modes so you can customize jEdits UScript mode to your liking.&lt;br&gt;<br /> <br /> ====Setting jEdits Mode====<br /> ::By default jEdit comes with a UScript mode which can be located in the {'''jEdit Home Directory'''}\Modes this edit mode is very light weight and doesnt cover all engine versions.&lt;br&gt;<br /> ::Im going to recommend not using this directory if you plan to modify your edit mode or use one of the custom ones provided below, the reason for this is simpler backups when using the document directory.&lt;br&gt;<br /> <br /> ::On jEdits main toolbar you will find the utilities button, under that is the global options which contains the options for all edit modes. Syntax highlighting colours can be found in here also.<br /> <br /> ::[[User:Wormbo/UScript_edit_mode|Wormbo's UScript jEdit Mode]]&lt;br&gt;<br /> ::[[User:00zX/UScript.xml|My modified UScript jEdit Mode]]&lt;br&gt;<br /> <br /> ===Recommended Plugins===<br /> :* Project Viewer: Usability.<br /> :* Buffer Tabs: Usability.<br /> :* Dirty Gutter: Diff.<br /> :* TaskList: TODO, NOTE, FIXME's<br /> :* Text Autocomplete: Usability - Code Completion.<br /> :* WhiteSpace: Usability/Readability.<br /> <br /> ===Plugin Installation and Settings===<br /> ::jEdits Plugin Manager and Settings can be accessed through the Plugins button on the main toolbar (show picture).&lt;br&gt;<br /> <br /> ::To install new plugins, click on the plugin manager and you will notice a tab up the top of the new window which says install (show picture).<br /> Navigate to this and select the check-boxes for all plugins you wish to install then hit install in the lower left of the panel.<br /> <br /> ::The plugin settings can be found under the Plugins/Plugin Option button on jEdits main toolbar at the top.<br /> <br /> {{ambox|type=notice|text=I'll guide you through the settings for each of the recommended plugins to show you which options I prefer as you may want to adjust these or similar to your liking.}}<br /> &lt;br&gt;<br /> ===Creating your first Project===<br /> :In this part of the tutorial we will be creating a project using jEdit and Project Viewer.<br /> <br /> :First off I prefer to have the project viewer docked on the left hand side of jEdit, you can however put it anywhere you wish to place it.<br /> Right click on All Projects which you should see in your project viewer, add a new group (this is a recommendation), this will help to keep all your UScript UT3/UDK etc separate from any other projects you may wish to create.<br /> I have a group named '''UE3''' for example, then under that group I have '''UT3''' and '''UDK''' to house each of the projects I have for each.<br /> <br /> :Once you have your groups setup to your liking you are ready to create a project, this will require that you have a directory to scan for source files within.<br /> &lt;br&gt;<br /> ====Directory Structure and creating Package Folders====<br /> Firstly you will need to have an understanding of '''[[Engine_Directory_Structure|Unreal Engine's directory structure]]''', from there you will be able to [[Set_up_a_package_directory|create the required directory for a package]] so you can [[compile]] the [[UC_File|*.UC files]] into a [[Script Package File|script package file]](*.U). For Unreal Script [[Classes]] ([[UC_File|*.UC files]]) you will need to first make the ''package'' directory and then the ''Classes'' directory. <br /> <br /> Right click on the group you wish to create the project within, click '''Add Project'''. This will display the create project dialogs (show Picture)<br /> Select a name and the root directory for you project, for now select {'''Your Package'''} directory. Or alternatively if you wish to use multiple [[package]]'s for your project you may add the {[[base source directory]]}, you will however need to filter the imported folders so that only the ones you require for your project are displayed.<br /> <br /> Project Viewer would now have selected the project for you, you can navigate back to all projects using the drop down box at the top of Project Viewer.<br /> &lt;br&gt;<br /> <br /> ===Creating your first Class===<br /> Go to file in jEdits main toolbar, select new and follow this basic procedure [[Create a class]].<br /> <br /> You'll notice that Project Viewer doesnt automatically scan for new classes unless it has been selected to do so. Right click on your project in the Project Viewer panel and select 'Re-import files'.<br /> Make sure the Project and Classes directories are expanded and you should now see {'''Your Class'''} in there.<br /> <br /> ====More on jEdit Modes====<br /> Creating a customized template an macro for creating a new class based on this template.<br /> <br /> ====Customizing Project Viewer====<br /> Specialized section on setting up Project Viewer's context (Right Click) menu to contain a create class button which will create a class based on a UScript template.<br /> <br /> You may skip to [[User:00zX#Compiling|Compiling]] at this point, though I highly recommend you come back and follow up on [[UnCodex]].<br /> <br /> ==Introduction to UnCodex==<br /> This is basically a must have application for anyone doing UScript unless ofcoarse you opt to use other IDE's which contain their own class browsers.<br /> [[UnCodeX]] is still the best out there, it's quick with minimal overhead and is not merely a class browser, <br /> it allows you to hyperlink through class names giving you the ability to surf code flow with ease.<br /> <br /> There are two versions of [[UnCodeX]] that I use, I prefer using the older 227 for anything pre-UE3 or TribesV for those I use the newer 237-beta version.<br /> <br /> ===Setting Up UnCodex===<br /> Working with multiple copies of unreal engine source (for example, numerous [[UDK]] copies) can be tedious to continuously analyze all the time in [[UnCodex]] so I'll guide you through setting it up so you can have numerous shortcuts all which cache different versions of [[Unreal Engine]].<br /> You have to be careful however, this can get confusing as to which copy is in which [[UnCodeX]] window but you can double check the title bar, which I highly recommend you do. I have been caught out a few times with this myself between [[UT3]] and [[UDK]] sources.&lt;br&gt;<br /> <br /> As a general rule of thumb I just use the naming convention:&lt;br&gt;<br /> &quot;Drive:\{UnCodeX}\UnCodeX.exe&quot; -config UnCodeX-{GameName/Version}.ini&lt;br&gt;<br /> <br /> ::'''UT2004''' - &quot;Drive:\{UnCodeX227}\UnCodeX.exe&quot; -config UnCodeX-UT2004.ini&lt;br&gt;<br /> ::'''DeusEx''' - &quot;Drive:\{UnCodeX227}\UnCodeX.exe&quot; -config UnCodeX-DeusEx.ini&lt;br&gt;<br /> ::'''UT3''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UT3.ini&lt;br&gt;<br /> ::'''UDK''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UDK-2009-11-2.ini&lt;br&gt;<br /> ::'''UDK''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UDK-2010-03.ini&lt;br&gt;<br /> <br /> Now these [[INI_File|INI]]'s will have to exist for this to work, so copy the default ''UnCodeX.ini'' and rename it to ''UnCodeX-{GameName/Version}.ini''.<br /> Open this file in jEdit or notepad for editing,<br /> <br /> &lt;pre&gt;<br /> [Sources]<br /> ''Add your source directories here''<br /> &lt;/pre&gt; <br /> ::'''UT2004''' - {[[Base Directory]]}\System\&lt;br&gt;<br /> ::'''UT3''' - {[[User Documents Directory]]}\My Games\Unreal Tournament 3\UTGame\Src\&lt;br&gt;<br /> <br /> {{ambox|type=notice|text=This can be done once [[UnCodeX]] is loaded for this mode.}}&lt;br&gt;<br /> <br /> {{ambox|type=notice|text=For UT3 you will require two directories selected for scanning, one is the exported script directory the other is Src directory within UTGame.<br /> With UT2.x and UDK you work along side Epic's Packages so it'll scan both, you can set [[UnCodeX]] to scan numerous directories for any mode.}}&lt;br&gt;<br /> <br /> {{ambox|type=warning|text=This is an absolute requirement for [[UnCodeX]] to function in multiple mode's correctly. In the past I have forgotten to do this and as the cache is not saved for that source directory you must rescan each time [[UnCodeX]] is loaded.}}<br /> &lt;pre&gt;<br /> [GUI.General]<br /> StateFile=UnCodeX-{GameName-Version}.ucx<br /> &lt;/pre&gt;<br /> <br /> ::'''UT2004''' - StateFile=UnCodeX-UT2004.ucx&lt;br&gt;<br /> ::'''DeusEx''' - StateFile=UnCodeX-DeusEx.ucx&lt;br&gt;<br /> ::'''UT3''' - StateFile=UnCodeX-UT3.ucx&lt;br&gt;<br /> ::'''UDK''' - StateFile=UnCodeX-UDK-2009-11-2.ucx&lt;br&gt;<br /> ::'''UDK''' - StateFile=UnCodeX-UDK-2010-03.ucx&lt;br&gt;<br /> <br /> Once you have done that for your required modes you can boot the shortcut and analyze the source, now every time you boot you would be using the cache for that ini/source.<br /> <br /> ==Introduction to Git==<br /> Git is a free &amp; open source, distributed version control system.<br /> [http://git-scm.com/ GIT]&lt;br&gt;<br /> [http://code.google.com/p/msysgit/ msysgit - windows]&lt;br&gt;<br /> ===GIT command prompt===<br /> '''Creating a repository'''<br /> &lt;syntaxhighlight lang=&quot;bash&quot;&gt;<br /> # cd hello<br /> # ls<br /> # git init<br /> # git add . <br /> &lt;/syntaxhighlight&gt;<br /> '''Pushing a repository to GitHub'''<br /> Create a repository on GitHub then...<br /> &lt;syntaxhighlight lang=&quot;bash&quot;&gt;<br /> # cd hello<br /> # git remote add origin git@github.com:tabrez/hello.git<br /> # git push origin master <br /> &lt;/syntaxhighlight&gt;<br /> &lt;br&gt;<br /> '''GIT GUI'''<br /> <br /> ==Compiling==<br /> ===Using Batch (Windows)===<br /> '''UDK'''<br /> ''Make_64Full''<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> cd..<br /> cd binaries\win64<br /> udk.com make -full -intermediate<br /> pause<br /> &lt;/syntaxhighlight&gt;<br /> ''Make_64Part''<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> @echo off<br /> cd..<br /> cd binaries\win64<br /> @echo on<br /> udk.com make -intermediate<br /> @echo off<br /> pause<br /> &lt;/syntaxhighlight&gt;<br /> &lt;br&gt;<br /> <br /> ''UT3'' - Multi-Package Compile batch<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> @echo Off<br /> prompt $g<br /> rem BASE DIRECTORIES<br /> set UTDIR=&quot;D:\Midway\Unreal Tournament 3&quot;<br /> set UTCOM=%UTDIR%\Binaries\UT3.COM<br /> <br /> rem PROJECT DETAILS<br /> set UP1=UT_<br /> set UP2=UT_GDP_<br /> set K1=MDB<br /> set K2=GameDex<br /> set K3=Newtators<br /> set K4=Mutatoes<br /> <br /> rem script<br /> set UTCONFIG=..\Config<br /> set UTCOMSRC=..\Unpublished\CookedPC\Script<br /> set MYCOMSRC=..\Unpublished\CookedPC\GameDex<br /> <br /> @echo On<br /> del %MYCOMSRC%\%UP1%%K1%.u<br /> del %MYCOMSRC%\%UP1%%K2%.u<br /> del %MYCOMSRC%\%K3%\%UP2%%K3%.u<br /> rem del %MYCOMSRC%\%K4%\%UP2%%K4%.u<br /> <br /> %UTCOM% make -debug -useunpublished -log=CompileLog.log -full<br /> copy %UTCOMSRC%\%UP1%%K1%.u %MYCOMSRC%\%UP1%%K1%.u<br /> copy %UTCOMSRC%\%UP1%%K2%.u %MYCOMSRC%\%UP1%%K2%.u<br /> copy %UTCOMSRC%\%UP2%%K3%.u %MYCOMSRC%\%K3%\%UP2%%K3%.u<br /> copy %UTCOMSRC%\%UP2%%K4%.u %MYCOMSRC%\%K4%\%UP2%%K4%.u<br /> del %UTCOMSRC%\%UP1%%K1%.u<br /> del %UTCOMSRC%\%UP1%%K2%.u<br /> del %UTCOMSRC%\%UP2%%K3%.u<br /> del %UTCOMSRC%\%UP2%%K4%.u<br /> <br /> del %UTCONFIG%\%UP1%%K2%.ini<br /> del %UTCONFIG%\%UP2%%K3%.ini<br /> rem del %UTCONFIG%\%UP2%%K4%.ini<br /> <br /> pause<br /> prompt $p$g<br /> &lt;/syntaxhighlight&gt;<br /> &lt;/div&gt;&lt;/div&gt;<br /> <br /> ==Running Unreal Engine with your package==<br /> ====archetypes====<br /> ====ini's setup====<br /> ====Main Menu====<br /> ====localization====<br /> <br /> ==archetypes==<br /> ==ini's setup==<br /> ===Main Menu===<br /> ==localization==<br /> <br /> ==Introduction to NSIS==<br /> [http://nsis.sourceforge.net/Main_Page NSIS]<br /> <br /> &lt;syntaxhighlight lang=&quot;nsis&quot;&gt;<br /> ;<br /> ; GameDex.nsh<br /> ; Creation Date: 19/04/2010 10:33<br /> ; Last Updated: 04/03/2012 22:33<br /> ; Contributors: 00zX<br /> ; Attribution-Noncommercial-Share Alike 3.0 Unported<br /> ; http://creativecommons.org/licenses/by-nc-sa/3.0/<br /> ;<br /> <br /> XPStyle on<br /> ;SetCompressorDictSize dict_size_mb<br /> SetDatablockOptimize on<br /> SetCompressor /SOLID lzma<br /> <br /> ; HM NIS Edit Wizard helper defines<br /> !define PRODUCT_NAME &quot;Gamed&quot;<br /> !define PRODUCT_VERSION &quot;v3.16&quot;<br /> !define PRODUCT_PUBLISHER &quot;00zX&quot;<br /> ;!define PRODUCT_UNINST_KEY &quot;Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}&quot;<br /> ;!define PRODUCT_UNINST_ROOT_KEY &quot;HKLM&quot;<br /> <br /> ;--------------------------------<br /> ;Include (Custom) Modern UI v2<br /> !include &quot;NSIS\Contrib\Gamed\MUI2_Unreal.nsh&quot;<br /> ;!include &quot;${NSISDIR}\include\MultiUser.nsh&quot;<br /> <br /> ;!define MULTIUSER_MUI<br /> <br /> ; MUI Settings<br /> !define MUI_ABORTWARNING<br /> !define MUI_ICON &quot;NSIS\Contrib\Gamed\Graphics\Icons\SweetRevengeTemptIcon5s.ico&quot;<br /> !define MUI_UNICON &quot;NSIS\Contrib\Gamed\Graphics\Icons\SweetRevengeTemptIcon5s.ico&quot;<br /> <br /> ; UT3 Uninstall Registry Location<br /> ;!define REG_UT &quot;Software\Microsoft\Windows\CurrentVersion\Uninstall\{BFA90209-7AFF-4DB6-8E4B-E57305751AD7}&quot;<br /> <br /> ;Interface Configuration<br /> !define MUI_HEADERIMAGE<br /> !define MUI_HEADERIMAGE_BITMAP &quot;NSIS\Contrib\Gamed\Graphics\Header\TemptHeader.bmp&quot;<br /> <br /> ;--------------------------------<br /> ;Standard Pages<br /> !insertmacro MUI_PAGE_WELCOME<br /> ;!insertmacro MUI_PAGE_LICENSE &quot;NSIS\Contrib\Gamed\Docs\License.txt&quot;<br /> ;!insertmacro MULTIUSER_PAGE_INSTALLMODE<br /> <br /> !ifdef PRODUCT_MODE_STANDARD<br /> !define PRODUCT_MODE &quot;Std&quot;<br /> !insertmacro MUI_PAGE_DIRECTORY<br /> !insertmacro MUI_PAGE_INSTFILES<br /> !insertmacro MUI_PAGE_FINISH<br /> !endif<br /> !ifdef PRODUCT_MODE_DEVELOPMENT<br /> !define PRODUCT_MODE &quot;DevEd&quot;<br /> !define MUI_COMPONENTSPAGE_SMALLDESC ;No value<br /> !insertmacro MUI_PAGE_COMPONENTS<br /> !insertmacro MUI_PAGE_DIRECTORY<br /> !insertmacro MUI_PAGE_INSTFILES<br /> ; !define MUI_FINISHPAGE_SHOWREADME &quot;$INSTDIR\UTGame\Published\CookedPC\Script\README_Newtators.txt&quot;<br /> !insertmacro MUI_PAGE_FINISH<br /> !insertmacro MUI_UNPAGE_INSTFILES<br /> !endif<br /> <br /> !insertmacro MUI_LANGUAGE &quot;English&quot;<br /> ; MUI end ------<br /> <br /> Name &quot;${PRODUCT_NAME} ${PRODUCT_VERSION}&quot;<br /> OutFile &quot;${PRODUCT_NAME}-${PRODUCT_VERSION}-${PRODUCT_MODE}.exe&quot;<br /> ShowInstDetails hide<br /> <br /> ;!macro MULTIUSER_INIT_TEXTS<br /> ;!macroend<br /> <br /> ;!ifdef PRODUCT_MODE<br /> ;!endif<br /> <br /> ;--------------------------------<br /> ;Util<br /> !macro redef olddef newdef<br /> !ifdef ${olddef}<br /> !undef ${olddef}<br /> !endif<br /> !define ${olddef} &quot;${newdef}&quot;<br /> !macroend<br /> <br /> ;--------------------------------<br /> !define UDK &quot;UDKGame&quot;<br /> !define UDK_SRC &quot;Development\Src&quot;<br /> !define UDK_CONT &quot;UDKGame\Content&quot;<br /> ;!define UDK_PAK_PATH &quot;$INSTDIR\${UDK_CONT}&quot;<br /> ;!define UDK_UNPAK_PATH &quot;$INSTDIR\UDKGame\Content\GamedEx&quot;<br /> <br /> !define GAMED &quot;Gamed&quot;<br /> <br /> !macro GPAK_SECG GPAK_NAME _a _b<br /> !insertmacro redef GPAK_INST &quot;$INSTDIR\${UDK_CONT}\${GPAK_NAME}&quot;<br /> !insertmacro redef GPAK_TXT &quot;${UDK_SRC}\${GPAK_NAME}&quot;<br /> !insertmacro redef GPAK_UC &quot;${UDK_SRC}\${GPAK_NAME}\Classes&quot;<br /> !insertmacro redef GPAK_U &quot;${UDK}\script&quot;<br /> !insertmacro redef GPAK_CONT &quot;${UDK_CONT}\${GPAK_NAME}&quot;<br /> SectionGroup ${GPAK_NAME} SEC_${GPAK_NAME}<br /> SetOverwrite ifnewer<br /> Section ${_a} ${GPAK_NAME}01<br /> SetOutPath &quot;$GPAK_INST&quot;<br /> File &quot;${GPAK_TXT}\${GPAK_NAME}_README.txt&quot;<br /> File &quot;${GPAK_TXT}\${GPAK_NAME}_ChangeLog.txt&quot;<br /> File &quot;${GPAK_U}\${GPAK_NAME}.u&quot;<br /> SectionEnd<br /> <br /> !ifdef ${_b}<br /> Section ${_b} ${GPAK_NAME}02<br /> SetOutPath &quot;${GPAK_INST}${GPAK_CONT}&quot;<br /> File &quot;${GPAK_CONT}\${GPAK_NAME}\*.udk&quot;<br /> File &quot;${GPAK_CONT}\${GPAK_NAME}\*.upk&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_c}<br /> Section ${_c} ${GPAK_NAME}03<br /> SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GAMED_PAK}\config\${GPAK_NAME}.ini&quot;<br /> ;File &quot;${GAMED_PAK}\${GPAK_NAME}.int&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_d}<br /> Section ${_d} ${GPAK_NAME}04<br /> ;SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.uc&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.uci&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_c}<br /> Section ${_c} ${GPAK_NAME}05<br /> ;SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.pdf&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.upk&quot;<br /> SectionEnd<br /> !endif<br /> SectionGroupEnd<br /> !macroend<br /> <br /> !macro UN_GPAK_SECG GPAK_NAME _a _b<br /> <br /> !macroend<br /> &lt;/syntaxhighlight&gt;<br /> <br /> ===Creating an NSIS package script===</div> 00zX https://wiki.beyondunreal.com/User:00zX/Setting_Up_Your_UScript_Environment?diff=45040 User:00zX/Setting Up Your UScript Environment 2012-03-06T10:42:11Z <p>00zX: /* Running Unreal Engine with your package */</p> <hr /> <div>Step by step process of installing, setting up jEdit for use with Uscript. From start to finish, using/committing to repository's and building using Apache Ant. A major portion of this tutorial is dedicated to giving you the knowledge to editing/customizing your programming environment to your liking (I do feel this can help to improve workflow).<br /> <br /> {{ambox|text=you can replace any of these with a program of your choosing, some of the [[Unreal_Wiki:Basic_procedures|basic procedure]] in this tutorial are generic enough that program doesnt matter. Some of these steps however are only directly relevant to the programs listed below.}}<br /> Tools suggested for this tutorial:<br /> *[[jEdit]] - Programmers text editor [[Legacy:JEdit|jEdit]]<br /> *[[GIT]] - Source/Build Repository<br /> *[[UnCodeX]] - UScript Class Browser<br /> *[[NSIS]] - Installer/Packaging<br /> <br /> ==Introduction to jEdit==<br /> :[http://www.jedit.org/ jEdit] is a powerful, cross platform, java based programmers text editor.&lt;br&gt;<br /> <br /> ===Edit Modes===<br /> :jEdit uses what is called edit modes, these specify:<br /> ::* Syntax highlighting rules<br /> ::* Auto indent behavior<br /> ::* Various other customizations for editing a certain filetype<br /> <br /> :These edit modes are easily installed an updated, they use the XML language and jEdits own document type definition for modes (xmode.dtd). More information on edit modes can be found within jEdits Help section along with a section on writing edit modes so you can customize jEdits UScript mode to your liking.&lt;br&gt;<br /> <br /> ====Setting jEdits Mode====<br /> ::By default jEdit comes with a UScript mode which can be located in the {'''jEdit Home Directory'''}\Modes this edit mode is very light weight and doesnt cover all engine versions.&lt;br&gt;<br /> ::Im going to recommend not using this directory if you plan to modify your edit mode or use one of the custom ones provided below, the reason for this is simpler backups when using the document directory.&lt;br&gt;<br /> <br /> ::On jEdits main toolbar you will find the utilities button, under that is the global options which contains the options for all edit modes. Syntax highlighting colours can be found in here also.<br /> <br /> ::[[User:Wormbo/UScript_edit_mode|Wormbo's UScript jEdit Mode]]&lt;br&gt;<br /> ::[[User:00zX/UScript.xml|My modified UScript jEdit Mode]]&lt;br&gt;<br /> <br /> ===Recommended Plugins===<br /> :* Project Viewer: Usability.<br /> :* Buffer Tabs: Usability.<br /> :* Dirty Gutter: Diff.<br /> :* TaskList: TODO, NOTE, FIXME's<br /> :* Text Autocomplete: Usability - Code Completion.<br /> :* WhiteSpace: Usability/Readability.<br /> <br /> ===Plugin Installation and Settings===<br /> ::jEdits Plugin Manager and Settings can be accessed through the Plugins button on the main toolbar (show picture).&lt;br&gt;<br /> <br /> ::To install new plugins, click on the plugin manager and you will notice a tab up the top of the new window which says install (show picture).<br /> Navigate to this and select the check-boxes for all plugins you wish to install then hit install in the lower left of the panel.<br /> <br /> ::The plugin settings can be found under the Plugins/Plugin Option button on jEdits main toolbar at the top.<br /> <br /> {{ambox|type=notice|text=I'll guide you through the settings for each of the recommended plugins to show you which options I prefer as you may want to adjust these or similar to your liking.}}<br /> &lt;br&gt;<br /> ===Creating your first Project===<br /> :In this part of the tutorial we will be creating a project using jEdit and Project Viewer.<br /> <br /> :First off I prefer to have the project viewer docked on the left hand side of jEdit, you can however put it anywhere you wish to place it.<br /> Right click on All Projects which you should see in your project viewer, add a new group (this is a recommendation), this will help to keep all your UScript UT3/UDK etc separate from any other projects you may wish to create.<br /> I have a group named '''UE3''' for example, then under that group I have '''UT3''' and '''UDK''' to house each of the projects I have for each.<br /> <br /> :Once you have your groups setup to your liking you are ready to create a project, this will require that you have a directory to scan for source files within.<br /> &lt;br&gt;<br /> ====Directory Structure and creating Package Folders====<br /> Firstly you will need to have an understanding of '''[[Engine_Directory_Structure|Unreal Engine's directory structure]]''', from there you will be able to [[Set_up_a_package_directory|create the required directory for a package]] so you can [[compile]] the [[UC_File|*.UC files]] into a [[Script Package File|script package file]](*.U). For Unreal Script [[Classes]] ([[UC_File|*.UC files]]) you will need to first make the ''package'' directory and then the ''Classes'' directory. <br /> <br /> Right click on the group you wish to create the project within, click '''Add Project'''. This will display the create project dialogs (show Picture)<br /> Select a name and the root directory for you project, for now select {'''Your Package'''} directory. Or alternatively if you wish to use multiple [[package]]'s for your project you may add the {[[base source directory]]}, you will however need to filter the imported folders so that only the ones you require for your project are displayed.<br /> <br /> Project Viewer would now have selected the project for you, you can navigate back to all projects using the drop down box at the top of Project Viewer.<br /> &lt;br&gt;<br /> <br /> ===Creating your first Class===<br /> Go to file in jEdits main toolbar, select new and follow this basic procedure [[Create a class]].<br /> <br /> You'll notice that Project Viewer doesnt automatically scan for new classes unless it has been selected to do so. Right click on your project in the Project Viewer panel and select 'Re-import files'.<br /> Make sure the Project and Classes directories are expanded and you should now see {'''Your Class'''} in there.<br /> <br /> ====More on jEdit Modes====<br /> Creating a customized template an macro for creating a new class based on this template.<br /> <br /> ====Customizing Project Viewer====<br /> Specialized section on setting up Project Viewer's context (Right Click) menu to contain a create class button which will create a class based on a UScript template.<br /> <br /> You may skip to [[User:00zX#Compiling|Compiling]] at this point, though I highly recommend you come back and follow up on [[UnCodex]].<br /> <br /> ==Introduction to UnCodex==<br /> This is basically a must have application for anyone doing UScript unless ofcoarse you opt to use other IDE's which contain their own class browsers.<br /> [[UnCodeX]] is still the best out there, it's quick with minimal overhead and is not merely a class browser, <br /> it allows you to hyperlink through class names giving you the ability to surf code flow with ease.<br /> <br /> There are two versions of [[UnCodeX]] that I use, I prefer using the older 227 for anything pre-UE3 or TribesV for those I use the newer 237-beta version.<br /> <br /> ===Setting Up UnCodex===<br /> Working with multiple copies of unreal engine source (for example, numerous [[UDK]] copies) can be tedious to continuously analyze all the time in [[UnCodex]] so I'll guide you through setting it up so you can have numerous shortcuts all which cache different versions of [[Unreal Engine]].<br /> You have to be careful however, this can get confusing as to which copy is in which [[UnCodeX]] window but you can double check the title bar, which I highly recommend you do. I have been caught out a few times with this myself between [[UT3]] and [[UDK]] sources.&lt;br&gt;<br /> <br /> As a general rule of thumb I just use the naming convention:&lt;br&gt;<br /> &quot;Drive:\{UnCodeX}\UnCodeX.exe&quot; -config UnCodeX-{GameName/Version}.ini&lt;br&gt;<br /> <br /> ::'''UT2004''' - &quot;Drive:\{UnCodeX227}\UnCodeX.exe&quot; -config UnCodeX-UT2004.ini&lt;br&gt;<br /> ::'''DeusEx''' - &quot;Drive:\{UnCodeX227}\UnCodeX.exe&quot; -config UnCodeX-DeusEx.ini&lt;br&gt;<br /> ::'''UT3''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UT3.ini&lt;br&gt;<br /> ::'''UDK''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UDK-2009-11-2.ini&lt;br&gt;<br /> ::'''UDK''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UDK-2010-03.ini&lt;br&gt;<br /> <br /> Now these [[INI_File|INI]]'s will have to exist for this to work, so copy the default ''UnCodeX.ini'' and rename it to ''UnCodeX-{GameName/Version}.ini''.<br /> Open this file in jEdit or notepad for editing,<br /> <br /> &lt;pre&gt;<br /> [Sources]<br /> ''Add your source directories here''<br /> &lt;/pre&gt; <br /> ::'''UT2004''' - {[[Base Directory]]}\System\&lt;br&gt;<br /> ::'''UT3''' - {[[User Documents Directory]]}\My Games\Unreal Tournament 3\UTGame\Src\&lt;br&gt;<br /> <br /> {{ambox|type=notice|text=This can be done once [[UnCodeX]] is loaded for this mode.}}&lt;br&gt;<br /> <br /> {{ambox|type=notice|text=For UT3 you will require two directories selected for scanning, one is the exported script directory the other is Src directory within UTGame.<br /> With UT2.x and UDK you work along side Epic's Packages so it'll scan both, you can set [[UnCodeX]] to scan numerous directories for any mode.}}&lt;br&gt;<br /> <br /> {{ambox|type=warning|text=This is an absolute requirement for [[UnCodeX]] to function in multiple mode's correctly. In the past I have forgotten to do this and as the cache is not saved for that source directory you must rescan each time [[UnCodeX]] is loaded.}}<br /> &lt;pre&gt;<br /> [GUI.General]<br /> StateFile=UnCodeX-{GameName-Version}.ucx<br /> &lt;/pre&gt;<br /> <br /> ::'''UT2004''' - StateFile=UnCodeX-UT2004.ucx&lt;br&gt;<br /> ::'''DeusEx''' - StateFile=UnCodeX-DeusEx.ucx&lt;br&gt;<br /> ::'''UT3''' - StateFile=UnCodeX-UT3.ucx&lt;br&gt;<br /> ::'''UDK''' - StateFile=UnCodeX-UDK-2009-11-2.ucx&lt;br&gt;<br /> ::'''UDK''' - StateFile=UnCodeX-UDK-2010-03.ucx&lt;br&gt;<br /> <br /> Once you have done that for your required modes you can boot the shortcut and analyze the source, now every time you boot you would be using the cache for that ini/source.<br /> <br /> ==Introduction to Git==<br /> Git is a free &amp; open source, distributed version control system.<br /> [http://git-scm.com/ GIT]&lt;br&gt;<br /> [http://code.google.com/p/msysgit/ msysgit - windows]&lt;br&gt;<br /> ===GIT command prompt===<br /> '''Creating a repository'''<br /> &lt;syntaxhighlight lang=&quot;bash&quot;&gt;<br /> # cd hello<br /> # ls<br /> # git init<br /> # git add . <br /> &lt;/syntaxhighlight&gt;<br /> '''Pushing a repository to GitHub'''<br /> Create a repository on GitHub then...<br /> &lt;syntaxhighlight lang=&quot;bash&quot;&gt;<br /> # cd hello<br /> # git remote add origin git@github.com:tabrez/hello.git<br /> # git push origin master <br /> &lt;/syntaxhighlight&gt;<br /> &lt;br&gt;<br /> '''GIT GUI'''<br /> <br /> ==Compiling==<br /> ===Using Batch (Windows)===<br /> '''UDK'''<br /> ''Make_64Full''<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> cd..<br /> cd binaries\win64<br /> udk.com make -full -intermediate<br /> pause<br /> &lt;/syntaxhighlight&gt;<br /> ''Make_64Part''<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> @echo off<br /> cd..<br /> cd binaries\win64<br /> @echo on<br /> udk.com make -intermediate<br /> @echo off<br /> pause<br /> &lt;/syntaxhighlight&gt;<br /> &lt;br&gt;<br /> <br /> ''UT3'' - Multi-Package Compile batch<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> @echo Off<br /> prompt $g<br /> rem BASE DIRECTORIES<br /> set UTDIR=&quot;D:\Midway\Unreal Tournament 3&quot;<br /> set UTCOM=%UTDIR%\Binaries\UT3.COM<br /> <br /> rem PROJECT DETAILS<br /> set UP1=UT_<br /> set UP2=UT_GDP_<br /> set K1=MDB<br /> set K2=GameDex<br /> set K3=Newtators<br /> set K4=Mutatoes<br /> <br /> rem script<br /> set UTCONFIG=..\Config<br /> set UTCOMSRC=..\Unpublished\CookedPC\Script<br /> set MYCOMSRC=..\Unpublished\CookedPC\GameDex<br /> <br /> @echo On<br /> del %MYCOMSRC%\%UP1%%K1%.u<br /> del %MYCOMSRC%\%UP1%%K2%.u<br /> del %MYCOMSRC%\%K3%\%UP2%%K3%.u<br /> rem del %MYCOMSRC%\%K4%\%UP2%%K4%.u<br /> <br /> %UTCOM% make -debug -useunpublished -log=CompileLog.log -full<br /> copy %UTCOMSRC%\%UP1%%K1%.u %MYCOMSRC%\%UP1%%K1%.u<br /> copy %UTCOMSRC%\%UP1%%K2%.u %MYCOMSRC%\%UP1%%K2%.u<br /> copy %UTCOMSRC%\%UP2%%K3%.u %MYCOMSRC%\%K3%\%UP2%%K3%.u<br /> copy %UTCOMSRC%\%UP2%%K4%.u %MYCOMSRC%\%K4%\%UP2%%K4%.u<br /> del %UTCOMSRC%\%UP1%%K1%.u<br /> del %UTCOMSRC%\%UP1%%K2%.u<br /> del %UTCOMSRC%\%UP2%%K3%.u<br /> del %UTCOMSRC%\%UP2%%K4%.u<br /> <br /> del %UTCONFIG%\%UP1%%K2%.ini<br /> del %UTCONFIG%\%UP2%%K3%.ini<br /> rem del %UTCONFIG%\%UP2%%K4%.ini<br /> <br /> pause<br /> prompt $p$g<br /> &lt;/syntaxhighlight&gt;<br /> &lt;/div&gt;&lt;/div&gt;<br /> <br /> ==Running Unreal Engine with your package==<br /> ===archetypes===<br /> ===ini's setup===<br /> ====Main Menu===<br /> ===localization===<br /> <br /> ==archetypes==<br /> ==ini's setup==<br /> ===Main Menu===<br /> ==localization==<br /> <br /> ==Introduction to NSIS==<br /> [http://nsis.sourceforge.net/Main_Page NSIS]<br /> <br /> &lt;syntaxhighlight lang=&quot;nsis&quot;&gt;<br /> ;<br /> ; GameDex.nsh<br /> ; Creation Date: 19/04/2010 10:33<br /> ; Last Updated: 04/03/2012 22:33<br /> ; Contributors: 00zX<br /> ; Attribution-Noncommercial-Share Alike 3.0 Unported<br /> ; http://creativecommons.org/licenses/by-nc-sa/3.0/<br /> ;<br /> <br /> XPStyle on<br /> ;SetCompressorDictSize dict_size_mb<br /> SetDatablockOptimize on<br /> SetCompressor /SOLID lzma<br /> <br /> ; HM NIS Edit Wizard helper defines<br /> !define PRODUCT_NAME &quot;Gamed&quot;<br /> !define PRODUCT_VERSION &quot;v3.16&quot;<br /> !define PRODUCT_PUBLISHER &quot;00zX&quot;<br /> ;!define PRODUCT_UNINST_KEY &quot;Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}&quot;<br /> ;!define PRODUCT_UNINST_ROOT_KEY &quot;HKLM&quot;<br /> <br /> ;--------------------------------<br /> ;Include (Custom) Modern UI v2<br /> !include &quot;NSIS\Contrib\Gamed\MUI2_Unreal.nsh&quot;<br /> ;!include &quot;${NSISDIR}\include\MultiUser.nsh&quot;<br /> <br /> ;!define MULTIUSER_MUI<br /> <br /> ; MUI Settings<br /> !define MUI_ABORTWARNING<br /> !define MUI_ICON &quot;NSIS\Contrib\Gamed\Graphics\Icons\SweetRevengeTemptIcon5s.ico&quot;<br /> !define MUI_UNICON &quot;NSIS\Contrib\Gamed\Graphics\Icons\SweetRevengeTemptIcon5s.ico&quot;<br /> <br /> ; UT3 Uninstall Registry Location<br /> ;!define REG_UT &quot;Software\Microsoft\Windows\CurrentVersion\Uninstall\{BFA90209-7AFF-4DB6-8E4B-E57305751AD7}&quot;<br /> <br /> ;Interface Configuration<br /> !define MUI_HEADERIMAGE<br /> !define MUI_HEADERIMAGE_BITMAP &quot;NSIS\Contrib\Gamed\Graphics\Header\TemptHeader.bmp&quot;<br /> <br /> ;--------------------------------<br /> ;Standard Pages<br /> !insertmacro MUI_PAGE_WELCOME<br /> ;!insertmacro MUI_PAGE_LICENSE &quot;NSIS\Contrib\Gamed\Docs\License.txt&quot;<br /> ;!insertmacro MULTIUSER_PAGE_INSTALLMODE<br /> <br /> !ifdef PRODUCT_MODE_STANDARD<br /> !define PRODUCT_MODE &quot;Std&quot;<br /> !insertmacro MUI_PAGE_DIRECTORY<br /> !insertmacro MUI_PAGE_INSTFILES<br /> !insertmacro MUI_PAGE_FINISH<br /> !endif<br /> !ifdef PRODUCT_MODE_DEVELOPMENT<br /> !define PRODUCT_MODE &quot;DevEd&quot;<br /> !define MUI_COMPONENTSPAGE_SMALLDESC ;No value<br /> !insertmacro MUI_PAGE_COMPONENTS<br /> !insertmacro MUI_PAGE_DIRECTORY<br /> !insertmacro MUI_PAGE_INSTFILES<br /> ; !define MUI_FINISHPAGE_SHOWREADME &quot;$INSTDIR\UTGame\Published\CookedPC\Script\README_Newtators.txt&quot;<br /> !insertmacro MUI_PAGE_FINISH<br /> !insertmacro MUI_UNPAGE_INSTFILES<br /> !endif<br /> <br /> !insertmacro MUI_LANGUAGE &quot;English&quot;<br /> ; MUI end ------<br /> <br /> Name &quot;${PRODUCT_NAME} ${PRODUCT_VERSION}&quot;<br /> OutFile &quot;${PRODUCT_NAME}-${PRODUCT_VERSION}-${PRODUCT_MODE}.exe&quot;<br /> ShowInstDetails hide<br /> <br /> ;!macro MULTIUSER_INIT_TEXTS<br /> ;!macroend<br /> <br /> ;!ifdef PRODUCT_MODE<br /> ;!endif<br /> <br /> ;--------------------------------<br /> ;Util<br /> !macro redef olddef newdef<br /> !ifdef ${olddef}<br /> !undef ${olddef}<br /> !endif<br /> !define ${olddef} &quot;${newdef}&quot;<br /> !macroend<br /> <br /> ;--------------------------------<br /> !define UDK &quot;UDKGame&quot;<br /> !define UDK_SRC &quot;Development\Src&quot;<br /> !define UDK_CONT &quot;UDKGame\Content&quot;<br /> ;!define UDK_PAK_PATH &quot;$INSTDIR\${UDK_CONT}&quot;<br /> ;!define UDK_UNPAK_PATH &quot;$INSTDIR\UDKGame\Content\GamedEx&quot;<br /> <br /> !define GAMED &quot;Gamed&quot;<br /> <br /> !macro GPAK_SECG GPAK_NAME _a _b<br /> !insertmacro redef GPAK_INST &quot;$INSTDIR\${UDK_CONT}\${GPAK_NAME}&quot;<br /> !insertmacro redef GPAK_TXT &quot;${UDK_SRC}\${GPAK_NAME}&quot;<br /> !insertmacro redef GPAK_UC &quot;${UDK_SRC}\${GPAK_NAME}\Classes&quot;<br /> !insertmacro redef GPAK_U &quot;${UDK}\script&quot;<br /> !insertmacro redef GPAK_CONT &quot;${UDK_CONT}\${GPAK_NAME}&quot;<br /> SectionGroup ${GPAK_NAME} SEC_${GPAK_NAME}<br /> SetOverwrite ifnewer<br /> Section ${_a} ${GPAK_NAME}01<br /> SetOutPath &quot;$GPAK_INST&quot;<br /> File &quot;${GPAK_TXT}\${GPAK_NAME}_README.txt&quot;<br /> File &quot;${GPAK_TXT}\${GPAK_NAME}_ChangeLog.txt&quot;<br /> File &quot;${GPAK_U}\${GPAK_NAME}.u&quot;<br /> SectionEnd<br /> <br /> !ifdef ${_b}<br /> Section ${_b} ${GPAK_NAME}02<br /> SetOutPath &quot;${GPAK_INST}${GPAK_CONT}&quot;<br /> File &quot;${GPAK_CONT}\${GPAK_NAME}\*.udk&quot;<br /> File &quot;${GPAK_CONT}\${GPAK_NAME}\*.upk&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_c}<br /> Section ${_c} ${GPAK_NAME}03<br /> SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GAMED_PAK}\config\${GPAK_NAME}.ini&quot;<br /> ;File &quot;${GAMED_PAK}\${GPAK_NAME}.int&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_d}<br /> Section ${_d} ${GPAK_NAME}04<br /> ;SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.uc&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.uci&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_c}<br /> Section ${_c} ${GPAK_NAME}05<br /> ;SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.pdf&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.upk&quot;<br /> SectionEnd<br /> !endif<br /> SectionGroupEnd<br /> !macroend<br /> <br /> !macro UN_GPAK_SECG GPAK_NAME _a _b<br /> <br /> !macroend<br /> &lt;/syntaxhighlight&gt;<br /> <br /> ===Creating an NSIS package script===</div> 00zX https://wiki.beyondunreal.com/User:00zX/Setting_Up_Your_UScript_Environment?diff=45039 User:00zX/Setting Up Your UScript Environment 2012-03-06T10:41:47Z <p>00zX: /* Running Unreal Engine with your package */</p> <hr /> <div>Step by step process of installing, setting up jEdit for use with Uscript. From start to finish, using/committing to repository's and building using Apache Ant. A major portion of this tutorial is dedicated to giving you the knowledge to editing/customizing your programming environment to your liking (I do feel this can help to improve workflow).<br /> <br /> {{ambox|text=you can replace any of these with a program of your choosing, some of the [[Unreal_Wiki:Basic_procedures|basic procedure]] in this tutorial are generic enough that program doesnt matter. Some of these steps however are only directly relevant to the programs listed below.}}<br /> Tools suggested for this tutorial:<br /> *[[jEdit]] - Programmers text editor [[Legacy:JEdit|jEdit]]<br /> *[[GIT]] - Source/Build Repository<br /> *[[UnCodeX]] - UScript Class Browser<br /> *[[NSIS]] - Installer/Packaging<br /> <br /> ==Introduction to jEdit==<br /> :[http://www.jedit.org/ jEdit] is a powerful, cross platform, java based programmers text editor.&lt;br&gt;<br /> <br /> ===Edit Modes===<br /> :jEdit uses what is called edit modes, these specify:<br /> ::* Syntax highlighting rules<br /> ::* Auto indent behavior<br /> ::* Various other customizations for editing a certain filetype<br /> <br /> :These edit modes are easily installed an updated, they use the XML language and jEdits own document type definition for modes (xmode.dtd). More information on edit modes can be found within jEdits Help section along with a section on writing edit modes so you can customize jEdits UScript mode to your liking.&lt;br&gt;<br /> <br /> ====Setting jEdits Mode====<br /> ::By default jEdit comes with a UScript mode which can be located in the {'''jEdit Home Directory'''}\Modes this edit mode is very light weight and doesnt cover all engine versions.&lt;br&gt;<br /> ::Im going to recommend not using this directory if you plan to modify your edit mode or use one of the custom ones provided below, the reason for this is simpler backups when using the document directory.&lt;br&gt;<br /> <br /> ::On jEdits main toolbar you will find the utilities button, under that is the global options which contains the options for all edit modes. Syntax highlighting colours can be found in here also.<br /> <br /> ::[[User:Wormbo/UScript_edit_mode|Wormbo's UScript jEdit Mode]]&lt;br&gt;<br /> ::[[User:00zX/UScript.xml|My modified UScript jEdit Mode]]&lt;br&gt;<br /> <br /> ===Recommended Plugins===<br /> :* Project Viewer: Usability.<br /> :* Buffer Tabs: Usability.<br /> :* Dirty Gutter: Diff.<br /> :* TaskList: TODO, NOTE, FIXME's<br /> :* Text Autocomplete: Usability - Code Completion.<br /> :* WhiteSpace: Usability/Readability.<br /> <br /> ===Plugin Installation and Settings===<br /> ::jEdits Plugin Manager and Settings can be accessed through the Plugins button on the main toolbar (show picture).&lt;br&gt;<br /> <br /> ::To install new plugins, click on the plugin manager and you will notice a tab up the top of the new window which says install (show picture).<br /> Navigate to this and select the check-boxes for all plugins you wish to install then hit install in the lower left of the panel.<br /> <br /> ::The plugin settings can be found under the Plugins/Plugin Option button on jEdits main toolbar at the top.<br /> <br /> {{ambox|type=notice|text=I'll guide you through the settings for each of the recommended plugins to show you which options I prefer as you may want to adjust these or similar to your liking.}}<br /> &lt;br&gt;<br /> ===Creating your first Project===<br /> :In this part of the tutorial we will be creating a project using jEdit and Project Viewer.<br /> <br /> :First off I prefer to have the project viewer docked on the left hand side of jEdit, you can however put it anywhere you wish to place it.<br /> Right click on All Projects which you should see in your project viewer, add a new group (this is a recommendation), this will help to keep all your UScript UT3/UDK etc separate from any other projects you may wish to create.<br /> I have a group named '''UE3''' for example, then under that group I have '''UT3''' and '''UDK''' to house each of the projects I have for each.<br /> <br /> :Once you have your groups setup to your liking you are ready to create a project, this will require that you have a directory to scan for source files within.<br /> &lt;br&gt;<br /> ====Directory Structure and creating Package Folders====<br /> Firstly you will need to have an understanding of '''[[Engine_Directory_Structure|Unreal Engine's directory structure]]''', from there you will be able to [[Set_up_a_package_directory|create the required directory for a package]] so you can [[compile]] the [[UC_File|*.UC files]] into a [[Script Package File|script package file]](*.U). For Unreal Script [[Classes]] ([[UC_File|*.UC files]]) you will need to first make the ''package'' directory and then the ''Classes'' directory. <br /> <br /> Right click on the group you wish to create the project within, click '''Add Project'''. This will display the create project dialogs (show Picture)<br /> Select a name and the root directory for you project, for now select {'''Your Package'''} directory. Or alternatively if you wish to use multiple [[package]]'s for your project you may add the {[[base source directory]]}, you will however need to filter the imported folders so that only the ones you require for your project are displayed.<br /> <br /> Project Viewer would now have selected the project for you, you can navigate back to all projects using the drop down box at the top of Project Viewer.<br /> &lt;br&gt;<br /> <br /> ===Creating your first Class===<br /> Go to file in jEdits main toolbar, select new and follow this basic procedure [[Create a class]].<br /> <br /> You'll notice that Project Viewer doesnt automatically scan for new classes unless it has been selected to do so. Right click on your project in the Project Viewer panel and select 'Re-import files'.<br /> Make sure the Project and Classes directories are expanded and you should now see {'''Your Class'''} in there.<br /> <br /> ====More on jEdit Modes====<br /> Creating a customized template an macro for creating a new class based on this template.<br /> <br /> ====Customizing Project Viewer====<br /> Specialized section on setting up Project Viewer's context (Right Click) menu to contain a create class button which will create a class based on a UScript template.<br /> <br /> You may skip to [[User:00zX#Compiling|Compiling]] at this point, though I highly recommend you come back and follow up on [[UnCodex]].<br /> <br /> ==Introduction to UnCodex==<br /> This is basically a must have application for anyone doing UScript unless ofcoarse you opt to use other IDE's which contain their own class browsers.<br /> [[UnCodeX]] is still the best out there, it's quick with minimal overhead and is not merely a class browser, <br /> it allows you to hyperlink through class names giving you the ability to surf code flow with ease.<br /> <br /> There are two versions of [[UnCodeX]] that I use, I prefer using the older 227 for anything pre-UE3 or TribesV for those I use the newer 237-beta version.<br /> <br /> ===Setting Up UnCodex===<br /> Working with multiple copies of unreal engine source (for example, numerous [[UDK]] copies) can be tedious to continuously analyze all the time in [[UnCodex]] so I'll guide you through setting it up so you can have numerous shortcuts all which cache different versions of [[Unreal Engine]].<br /> You have to be careful however, this can get confusing as to which copy is in which [[UnCodeX]] window but you can double check the title bar, which I highly recommend you do. I have been caught out a few times with this myself between [[UT3]] and [[UDK]] sources.&lt;br&gt;<br /> <br /> As a general rule of thumb I just use the naming convention:&lt;br&gt;<br /> &quot;Drive:\{UnCodeX}\UnCodeX.exe&quot; -config UnCodeX-{GameName/Version}.ini&lt;br&gt;<br /> <br /> ::'''UT2004''' - &quot;Drive:\{UnCodeX227}\UnCodeX.exe&quot; -config UnCodeX-UT2004.ini&lt;br&gt;<br /> ::'''DeusEx''' - &quot;Drive:\{UnCodeX227}\UnCodeX.exe&quot; -config UnCodeX-DeusEx.ini&lt;br&gt;<br /> ::'''UT3''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UT3.ini&lt;br&gt;<br /> ::'''UDK''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UDK-2009-11-2.ini&lt;br&gt;<br /> ::'''UDK''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UDK-2010-03.ini&lt;br&gt;<br /> <br /> Now these [[INI_File|INI]]'s will have to exist for this to work, so copy the default ''UnCodeX.ini'' and rename it to ''UnCodeX-{GameName/Version}.ini''.<br /> Open this file in jEdit or notepad for editing,<br /> <br /> &lt;pre&gt;<br /> [Sources]<br /> ''Add your source directories here''<br /> &lt;/pre&gt; <br /> ::'''UT2004''' - {[[Base Directory]]}\System\&lt;br&gt;<br /> ::'''UT3''' - {[[User Documents Directory]]}\My Games\Unreal Tournament 3\UTGame\Src\&lt;br&gt;<br /> <br /> {{ambox|type=notice|text=This can be done once [[UnCodeX]] is loaded for this mode.}}&lt;br&gt;<br /> <br /> {{ambox|type=notice|text=For UT3 you will require two directories selected for scanning, one is the exported script directory the other is Src directory within UTGame.<br /> With UT2.x and UDK you work along side Epic's Packages so it'll scan both, you can set [[UnCodeX]] to scan numerous directories for any mode.}}&lt;br&gt;<br /> <br /> {{ambox|type=warning|text=This is an absolute requirement for [[UnCodeX]] to function in multiple mode's correctly. In the past I have forgotten to do this and as the cache is not saved for that source directory you must rescan each time [[UnCodeX]] is loaded.}}<br /> &lt;pre&gt;<br /> [GUI.General]<br /> StateFile=UnCodeX-{GameName-Version}.ucx<br /> &lt;/pre&gt;<br /> <br /> ::'''UT2004''' - StateFile=UnCodeX-UT2004.ucx&lt;br&gt;<br /> ::'''DeusEx''' - StateFile=UnCodeX-DeusEx.ucx&lt;br&gt;<br /> ::'''UT3''' - StateFile=UnCodeX-UT3.ucx&lt;br&gt;<br /> ::'''UDK''' - StateFile=UnCodeX-UDK-2009-11-2.ucx&lt;br&gt;<br /> ::'''UDK''' - StateFile=UnCodeX-UDK-2010-03.ucx&lt;br&gt;<br /> <br /> Once you have done that for your required modes you can boot the shortcut and analyze the source, now every time you boot you would be using the cache for that ini/source.<br /> <br /> ==Introduction to Git==<br /> Git is a free &amp; open source, distributed version control system.<br /> [http://git-scm.com/ GIT]&lt;br&gt;<br /> [http://code.google.com/p/msysgit/ msysgit - windows]&lt;br&gt;<br /> ===GIT command prompt===<br /> '''Creating a repository'''<br /> &lt;syntaxhighlight lang=&quot;bash&quot;&gt;<br /> # cd hello<br /> # ls<br /> # git init<br /> # git add . <br /> &lt;/syntaxhighlight&gt;<br /> '''Pushing a repository to GitHub'''<br /> Create a repository on GitHub then...<br /> &lt;syntaxhighlight lang=&quot;bash&quot;&gt;<br /> # cd hello<br /> # git remote add origin git@github.com:tabrez/hello.git<br /> # git push origin master <br /> &lt;/syntaxhighlight&gt;<br /> &lt;br&gt;<br /> '''GIT GUI'''<br /> <br /> ==Compiling==<br /> ===Using Batch (Windows)===<br /> '''UDK'''<br /> ''Make_64Full''<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> cd..<br /> cd binaries\win64<br /> udk.com make -full -intermediate<br /> pause<br /> &lt;/syntaxhighlight&gt;<br /> ''Make_64Part''<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> @echo off<br /> cd..<br /> cd binaries\win64<br /> @echo on<br /> udk.com make -intermediate<br /> @echo off<br /> pause<br /> &lt;/syntaxhighlight&gt;<br /> &lt;br&gt;<br /> <br /> ''UT3'' - Multi-Package Compile batch<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> @echo Off<br /> prompt $g<br /> rem BASE DIRECTORIES<br /> set UTDIR=&quot;D:\Midway\Unreal Tournament 3&quot;<br /> set UTCOM=%UTDIR%\Binaries\UT3.COM<br /> <br /> rem PROJECT DETAILS<br /> set UP1=UT_<br /> set UP2=UT_GDP_<br /> set K1=MDB<br /> set K2=GameDex<br /> set K3=Newtators<br /> set K4=Mutatoes<br /> <br /> rem script<br /> set UTCONFIG=..\Config<br /> set UTCOMSRC=..\Unpublished\CookedPC\Script<br /> set MYCOMSRC=..\Unpublished\CookedPC\GameDex<br /> <br /> @echo On<br /> del %MYCOMSRC%\%UP1%%K1%.u<br /> del %MYCOMSRC%\%UP1%%K2%.u<br /> del %MYCOMSRC%\%K3%\%UP2%%K3%.u<br /> rem del %MYCOMSRC%\%K4%\%UP2%%K4%.u<br /> <br /> %UTCOM% make -debug -useunpublished -log=CompileLog.log -full<br /> copy %UTCOMSRC%\%UP1%%K1%.u %MYCOMSRC%\%UP1%%K1%.u<br /> copy %UTCOMSRC%\%UP1%%K2%.u %MYCOMSRC%\%UP1%%K2%.u<br /> copy %UTCOMSRC%\%UP2%%K3%.u %MYCOMSRC%\%K3%\%UP2%%K3%.u<br /> copy %UTCOMSRC%\%UP2%%K4%.u %MYCOMSRC%\%K4%\%UP2%%K4%.u<br /> del %UTCOMSRC%\%UP1%%K1%.u<br /> del %UTCOMSRC%\%UP1%%K2%.u<br /> del %UTCOMSRC%\%UP2%%K3%.u<br /> del %UTCOMSRC%\%UP2%%K4%.u<br /> <br /> del %UTCONFIG%\%UP1%%K2%.ini<br /> del %UTCONFIG%\%UP2%%K3%.ini<br /> rem del %UTCONFIG%\%UP2%%K4%.ini<br /> <br /> pause<br /> prompt $p$g<br /> &lt;/syntaxhighlight&gt;<br /> &lt;/div&gt;&lt;/div&gt;<br /> <br /> ==Running Unreal Engine with your package==<br /> ==archetypes==<br /> ==ini's setup==<br /> ===Main Menu===<br /> ==localization==<br /> <br /> ==Introduction to NSIS==<br /> [http://nsis.sourceforge.net/Main_Page NSIS]<br /> <br /> &lt;syntaxhighlight lang=&quot;nsis&quot;&gt;<br /> ;<br /> ; GameDex.nsh<br /> ; Creation Date: 19/04/2010 10:33<br /> ; Last Updated: 04/03/2012 22:33<br /> ; Contributors: 00zX<br /> ; Attribution-Noncommercial-Share Alike 3.0 Unported<br /> ; http://creativecommons.org/licenses/by-nc-sa/3.0/<br /> ;<br /> <br /> XPStyle on<br /> ;SetCompressorDictSize dict_size_mb<br /> SetDatablockOptimize on<br /> SetCompressor /SOLID lzma<br /> <br /> ; HM NIS Edit Wizard helper defines<br /> !define PRODUCT_NAME &quot;Gamed&quot;<br /> !define PRODUCT_VERSION &quot;v3.16&quot;<br /> !define PRODUCT_PUBLISHER &quot;00zX&quot;<br /> ;!define PRODUCT_UNINST_KEY &quot;Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}&quot;<br /> ;!define PRODUCT_UNINST_ROOT_KEY &quot;HKLM&quot;<br /> <br /> ;--------------------------------<br /> ;Include (Custom) Modern UI v2<br /> !include &quot;NSIS\Contrib\Gamed\MUI2_Unreal.nsh&quot;<br /> ;!include &quot;${NSISDIR}\include\MultiUser.nsh&quot;<br /> <br /> ;!define MULTIUSER_MUI<br /> <br /> ; MUI Settings<br /> !define MUI_ABORTWARNING<br /> !define MUI_ICON &quot;NSIS\Contrib\Gamed\Graphics\Icons\SweetRevengeTemptIcon5s.ico&quot;<br /> !define MUI_UNICON &quot;NSIS\Contrib\Gamed\Graphics\Icons\SweetRevengeTemptIcon5s.ico&quot;<br /> <br /> ; UT3 Uninstall Registry Location<br /> ;!define REG_UT &quot;Software\Microsoft\Windows\CurrentVersion\Uninstall\{BFA90209-7AFF-4DB6-8E4B-E57305751AD7}&quot;<br /> <br /> ;Interface Configuration<br /> !define MUI_HEADERIMAGE<br /> !define MUI_HEADERIMAGE_BITMAP &quot;NSIS\Contrib\Gamed\Graphics\Header\TemptHeader.bmp&quot;<br /> <br /> ;--------------------------------<br /> ;Standard Pages<br /> !insertmacro MUI_PAGE_WELCOME<br /> ;!insertmacro MUI_PAGE_LICENSE &quot;NSIS\Contrib\Gamed\Docs\License.txt&quot;<br /> ;!insertmacro MULTIUSER_PAGE_INSTALLMODE<br /> <br /> !ifdef PRODUCT_MODE_STANDARD<br /> !define PRODUCT_MODE &quot;Std&quot;<br /> !insertmacro MUI_PAGE_DIRECTORY<br /> !insertmacro MUI_PAGE_INSTFILES<br /> !insertmacro MUI_PAGE_FINISH<br /> !endif<br /> !ifdef PRODUCT_MODE_DEVELOPMENT<br /> !define PRODUCT_MODE &quot;DevEd&quot;<br /> !define MUI_COMPONENTSPAGE_SMALLDESC ;No value<br /> !insertmacro MUI_PAGE_COMPONENTS<br /> !insertmacro MUI_PAGE_DIRECTORY<br /> !insertmacro MUI_PAGE_INSTFILES<br /> ; !define MUI_FINISHPAGE_SHOWREADME &quot;$INSTDIR\UTGame\Published\CookedPC\Script\README_Newtators.txt&quot;<br /> !insertmacro MUI_PAGE_FINISH<br /> !insertmacro MUI_UNPAGE_INSTFILES<br /> !endif<br /> <br /> !insertmacro MUI_LANGUAGE &quot;English&quot;<br /> ; MUI end ------<br /> <br /> Name &quot;${PRODUCT_NAME} ${PRODUCT_VERSION}&quot;<br /> OutFile &quot;${PRODUCT_NAME}-${PRODUCT_VERSION}-${PRODUCT_MODE}.exe&quot;<br /> ShowInstDetails hide<br /> <br /> ;!macro MULTIUSER_INIT_TEXTS<br /> ;!macroend<br /> <br /> ;!ifdef PRODUCT_MODE<br /> ;!endif<br /> <br /> ;--------------------------------<br /> ;Util<br /> !macro redef olddef newdef<br /> !ifdef ${olddef}<br /> !undef ${olddef}<br /> !endif<br /> !define ${olddef} &quot;${newdef}&quot;<br /> !macroend<br /> <br /> ;--------------------------------<br /> !define UDK &quot;UDKGame&quot;<br /> !define UDK_SRC &quot;Development\Src&quot;<br /> !define UDK_CONT &quot;UDKGame\Content&quot;<br /> ;!define UDK_PAK_PATH &quot;$INSTDIR\${UDK_CONT}&quot;<br /> ;!define UDK_UNPAK_PATH &quot;$INSTDIR\UDKGame\Content\GamedEx&quot;<br /> <br /> !define GAMED &quot;Gamed&quot;<br /> <br /> !macro GPAK_SECG GPAK_NAME _a _b<br /> !insertmacro redef GPAK_INST &quot;$INSTDIR\${UDK_CONT}\${GPAK_NAME}&quot;<br /> !insertmacro redef GPAK_TXT &quot;${UDK_SRC}\${GPAK_NAME}&quot;<br /> !insertmacro redef GPAK_UC &quot;${UDK_SRC}\${GPAK_NAME}\Classes&quot;<br /> !insertmacro redef GPAK_U &quot;${UDK}\script&quot;<br /> !insertmacro redef GPAK_CONT &quot;${UDK_CONT}\${GPAK_NAME}&quot;<br /> SectionGroup ${GPAK_NAME} SEC_${GPAK_NAME}<br /> SetOverwrite ifnewer<br /> Section ${_a} ${GPAK_NAME}01<br /> SetOutPath &quot;$GPAK_INST&quot;<br /> File &quot;${GPAK_TXT}\${GPAK_NAME}_README.txt&quot;<br /> File &quot;${GPAK_TXT}\${GPAK_NAME}_ChangeLog.txt&quot;<br /> File &quot;${GPAK_U}\${GPAK_NAME}.u&quot;<br /> SectionEnd<br /> <br /> !ifdef ${_b}<br /> Section ${_b} ${GPAK_NAME}02<br /> SetOutPath &quot;${GPAK_INST}${GPAK_CONT}&quot;<br /> File &quot;${GPAK_CONT}\${GPAK_NAME}\*.udk&quot;<br /> File &quot;${GPAK_CONT}\${GPAK_NAME}\*.upk&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_c}<br /> Section ${_c} ${GPAK_NAME}03<br /> SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GAMED_PAK}\config\${GPAK_NAME}.ini&quot;<br /> ;File &quot;${GAMED_PAK}\${GPAK_NAME}.int&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_d}<br /> Section ${_d} ${GPAK_NAME}04<br /> ;SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.uc&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.uci&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_c}<br /> Section ${_c} ${GPAK_NAME}05<br /> ;SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.pdf&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.upk&quot;<br /> SectionEnd<br /> !endif<br /> SectionGroupEnd<br /> !macroend<br /> <br /> !macro UN_GPAK_SECG GPAK_NAME _a _b<br /> <br /> !macroend<br /> &lt;/syntaxhighlight&gt;<br /> <br /> ===Creating an NSIS package script===</div> 00zX https://wiki.beyondunreal.com/User:00zX/Setting_Up_Your_UScript_Environment?diff=45038 User:00zX/Setting Up Your UScript Environment 2012-03-06T10:40:20Z <p>00zX: /* Introduction to UnCodex */</p> <hr /> <div>Step by step process of installing, setting up jEdit for use with Uscript. From start to finish, using/committing to repository's and building using Apache Ant. A major portion of this tutorial is dedicated to giving you the knowledge to editing/customizing your programming environment to your liking (I do feel this can help to improve workflow).<br /> <br /> {{ambox|text=you can replace any of these with a program of your choosing, some of the [[Unreal_Wiki:Basic_procedures|basic procedure]] in this tutorial are generic enough that program doesnt matter. Some of these steps however are only directly relevant to the programs listed below.}}<br /> Tools suggested for this tutorial:<br /> *[[jEdit]] - Programmers text editor [[Legacy:JEdit|jEdit]]<br /> *[[GIT]] - Source/Build Repository<br /> *[[UnCodeX]] - UScript Class Browser<br /> *[[NSIS]] - Installer/Packaging<br /> <br /> ==Introduction to jEdit==<br /> :[http://www.jedit.org/ jEdit] is a powerful, cross platform, java based programmers text editor.&lt;br&gt;<br /> <br /> ===Edit Modes===<br /> :jEdit uses what is called edit modes, these specify:<br /> ::* Syntax highlighting rules<br /> ::* Auto indent behavior<br /> ::* Various other customizations for editing a certain filetype<br /> <br /> :These edit modes are easily installed an updated, they use the XML language and jEdits own document type definition for modes (xmode.dtd). More information on edit modes can be found within jEdits Help section along with a section on writing edit modes so you can customize jEdits UScript mode to your liking.&lt;br&gt;<br /> <br /> ====Setting jEdits Mode====<br /> ::By default jEdit comes with a UScript mode which can be located in the {'''jEdit Home Directory'''}\Modes this edit mode is very light weight and doesnt cover all engine versions.&lt;br&gt;<br /> ::Im going to recommend not using this directory if you plan to modify your edit mode or use one of the custom ones provided below, the reason for this is simpler backups when using the document directory.&lt;br&gt;<br /> <br /> ::On jEdits main toolbar you will find the utilities button, under that is the global options which contains the options for all edit modes. Syntax highlighting colours can be found in here also.<br /> <br /> ::[[User:Wormbo/UScript_edit_mode|Wormbo's UScript jEdit Mode]]&lt;br&gt;<br /> ::[[User:00zX/UScript.xml|My modified UScript jEdit Mode]]&lt;br&gt;<br /> <br /> ===Recommended Plugins===<br /> :* Project Viewer: Usability.<br /> :* Buffer Tabs: Usability.<br /> :* Dirty Gutter: Diff.<br /> :* TaskList: TODO, NOTE, FIXME's<br /> :* Text Autocomplete: Usability - Code Completion.<br /> :* WhiteSpace: Usability/Readability.<br /> <br /> ===Plugin Installation and Settings===<br /> ::jEdits Plugin Manager and Settings can be accessed through the Plugins button on the main toolbar (show picture).&lt;br&gt;<br /> <br /> ::To install new plugins, click on the plugin manager and you will notice a tab up the top of the new window which says install (show picture).<br /> Navigate to this and select the check-boxes for all plugins you wish to install then hit install in the lower left of the panel.<br /> <br /> ::The plugin settings can be found under the Plugins/Plugin Option button on jEdits main toolbar at the top.<br /> <br /> {{ambox|type=notice|text=I'll guide you through the settings for each of the recommended plugins to show you which options I prefer as you may want to adjust these or similar to your liking.}}<br /> &lt;br&gt;<br /> ===Creating your first Project===<br /> :In this part of the tutorial we will be creating a project using jEdit and Project Viewer.<br /> <br /> :First off I prefer to have the project viewer docked on the left hand side of jEdit, you can however put it anywhere you wish to place it.<br /> Right click on All Projects which you should see in your project viewer, add a new group (this is a recommendation), this will help to keep all your UScript UT3/UDK etc separate from any other projects you may wish to create.<br /> I have a group named '''UE3''' for example, then under that group I have '''UT3''' and '''UDK''' to house each of the projects I have for each.<br /> <br /> :Once you have your groups setup to your liking you are ready to create a project, this will require that you have a directory to scan for source files within.<br /> &lt;br&gt;<br /> ====Directory Structure and creating Package Folders====<br /> Firstly you will need to have an understanding of '''[[Engine_Directory_Structure|Unreal Engine's directory structure]]''', from there you will be able to [[Set_up_a_package_directory|create the required directory for a package]] so you can [[compile]] the [[UC_File|*.UC files]] into a [[Script Package File|script package file]](*.U). For Unreal Script [[Classes]] ([[UC_File|*.UC files]]) you will need to first make the ''package'' directory and then the ''Classes'' directory. <br /> <br /> Right click on the group you wish to create the project within, click '''Add Project'''. This will display the create project dialogs (show Picture)<br /> Select a name and the root directory for you project, for now select {'''Your Package'''} directory. Or alternatively if you wish to use multiple [[package]]'s for your project you may add the {[[base source directory]]}, you will however need to filter the imported folders so that only the ones you require for your project are displayed.<br /> <br /> Project Viewer would now have selected the project for you, you can navigate back to all projects using the drop down box at the top of Project Viewer.<br /> &lt;br&gt;<br /> <br /> ===Creating your first Class===<br /> Go to file in jEdits main toolbar, select new and follow this basic procedure [[Create a class]].<br /> <br /> You'll notice that Project Viewer doesnt automatically scan for new classes unless it has been selected to do so. Right click on your project in the Project Viewer panel and select 'Re-import files'.<br /> Make sure the Project and Classes directories are expanded and you should now see {'''Your Class'''} in there.<br /> <br /> ====More on jEdit Modes====<br /> Creating a customized template an macro for creating a new class based on this template.<br /> <br /> ====Customizing Project Viewer====<br /> Specialized section on setting up Project Viewer's context (Right Click) menu to contain a create class button which will create a class based on a UScript template.<br /> <br /> You may skip to [[User:00zX#Compiling|Compiling]] at this point, though I highly recommend you come back and follow up on [[UnCodex]].<br /> <br /> ==Introduction to UnCodex==<br /> This is basically a must have application for anyone doing UScript unless ofcoarse you opt to use other IDE's which contain their own class browsers.<br /> [[UnCodeX]] is still the best out there, it's quick with minimal overhead and is not merely a class browser, <br /> it allows you to hyperlink through class names giving you the ability to surf code flow with ease.<br /> <br /> There are two versions of [[UnCodeX]] that I use, I prefer using the older 227 for anything pre-UE3 or TribesV for those I use the newer 237-beta version.<br /> <br /> ===Setting Up UnCodex===<br /> Working with multiple copies of unreal engine source (for example, numerous [[UDK]] copies) can be tedious to continuously analyze all the time in [[UnCodex]] so I'll guide you through setting it up so you can have numerous shortcuts all which cache different versions of [[Unreal Engine]].<br /> You have to be careful however, this can get confusing as to which copy is in which [[UnCodeX]] window but you can double check the title bar, which I highly recommend you do. I have been caught out a few times with this myself between [[UT3]] and [[UDK]] sources.&lt;br&gt;<br /> <br /> As a general rule of thumb I just use the naming convention:&lt;br&gt;<br /> &quot;Drive:\{UnCodeX}\UnCodeX.exe&quot; -config UnCodeX-{GameName/Version}.ini&lt;br&gt;<br /> <br /> ::'''UT2004''' - &quot;Drive:\{UnCodeX227}\UnCodeX.exe&quot; -config UnCodeX-UT2004.ini&lt;br&gt;<br /> ::'''DeusEx''' - &quot;Drive:\{UnCodeX227}\UnCodeX.exe&quot; -config UnCodeX-DeusEx.ini&lt;br&gt;<br /> ::'''UT3''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UT3.ini&lt;br&gt;<br /> ::'''UDK''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UDK-2009-11-2.ini&lt;br&gt;<br /> ::'''UDK''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UDK-2010-03.ini&lt;br&gt;<br /> <br /> Now these [[INI_File|INI]]'s will have to exist for this to work, so copy the default ''UnCodeX.ini'' and rename it to ''UnCodeX-{GameName/Version}.ini''.<br /> Open this file in jEdit or notepad for editing,<br /> <br /> &lt;pre&gt;<br /> [Sources]<br /> ''Add your source directories here''<br /> &lt;/pre&gt; <br /> ::'''UT2004''' - {[[Base Directory]]}\System\&lt;br&gt;<br /> ::'''UT3''' - {[[User Documents Directory]]}\My Games\Unreal Tournament 3\UTGame\Src\&lt;br&gt;<br /> <br /> {{ambox|type=notice|text=This can be done once [[UnCodeX]] is loaded for this mode.}}&lt;br&gt;<br /> <br /> {{ambox|type=notice|text=For UT3 you will require two directories selected for scanning, one is the exported script directory the other is Src directory within UTGame.<br /> With UT2.x and UDK you work along side Epic's Packages so it'll scan both, you can set [[UnCodeX]] to scan numerous directories for any mode.}}&lt;br&gt;<br /> <br /> {{ambox|type=warning|text=This is an absolute requirement for [[UnCodeX]] to function in multiple mode's correctly. In the past I have forgotten to do this and as the cache is not saved for that source directory you must rescan each time [[UnCodeX]] is loaded.}}<br /> &lt;pre&gt;<br /> [GUI.General]<br /> StateFile=UnCodeX-{GameName-Version}.ucx<br /> &lt;/pre&gt;<br /> <br /> ::'''UT2004''' - StateFile=UnCodeX-UT2004.ucx&lt;br&gt;<br /> ::'''DeusEx''' - StateFile=UnCodeX-DeusEx.ucx&lt;br&gt;<br /> ::'''UT3''' - StateFile=UnCodeX-UT3.ucx&lt;br&gt;<br /> ::'''UDK''' - StateFile=UnCodeX-UDK-2009-11-2.ucx&lt;br&gt;<br /> ::'''UDK''' - StateFile=UnCodeX-UDK-2010-03.ucx&lt;br&gt;<br /> <br /> Once you have done that for your required modes you can boot the shortcut and analyze the source, now every time you boot you would be using the cache for that ini/source.<br /> <br /> ==Introduction to Git==<br /> Git is a free &amp; open source, distributed version control system.<br /> [http://git-scm.com/ GIT]&lt;br&gt;<br /> [http://code.google.com/p/msysgit/ msysgit - windows]&lt;br&gt;<br /> ===GIT command prompt===<br /> '''Creating a repository'''<br /> &lt;syntaxhighlight lang=&quot;bash&quot;&gt;<br /> # cd hello<br /> # ls<br /> # git init<br /> # git add . <br /> &lt;/syntaxhighlight&gt;<br /> '''Pushing a repository to GitHub'''<br /> Create a repository on GitHub then...<br /> &lt;syntaxhighlight lang=&quot;bash&quot;&gt;<br /> # cd hello<br /> # git remote add origin git@github.com:tabrez/hello.git<br /> # git push origin master <br /> &lt;/syntaxhighlight&gt;<br /> &lt;br&gt;<br /> '''GIT GUI'''<br /> <br /> ==Compiling==<br /> ===Using Batch (Windows)===<br /> '''UDK'''<br /> ''Make_64Full''<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> cd..<br /> cd binaries\win64<br /> udk.com make -full -intermediate<br /> pause<br /> &lt;/syntaxhighlight&gt;<br /> ''Make_64Part''<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> @echo off<br /> cd..<br /> cd binaries\win64<br /> @echo on<br /> udk.com make -intermediate<br /> @echo off<br /> pause<br /> &lt;/syntaxhighlight&gt;<br /> &lt;br&gt;<br /> <br /> ''UT3'' - Multi-Package Compile batch<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> @echo Off<br /> prompt $g<br /> rem BASE DIRECTORIES<br /> set UTDIR=&quot;D:\Midway\Unreal Tournament 3&quot;<br /> set UTCOM=%UTDIR%\Binaries\UT3.COM<br /> <br /> rem PROJECT DETAILS<br /> set UP1=UT_<br /> set UP2=UT_GDP_<br /> set K1=MDB<br /> set K2=GameDex<br /> set K3=Newtators<br /> set K4=Mutatoes<br /> <br /> rem script<br /> set UTCONFIG=..\Config<br /> set UTCOMSRC=..\Unpublished\CookedPC\Script<br /> set MYCOMSRC=..\Unpublished\CookedPC\GameDex<br /> <br /> @echo On<br /> del %MYCOMSRC%\%UP1%%K1%.u<br /> del %MYCOMSRC%\%UP1%%K2%.u<br /> del %MYCOMSRC%\%K3%\%UP2%%K3%.u<br /> rem del %MYCOMSRC%\%K4%\%UP2%%K4%.u<br /> <br /> %UTCOM% make -debug -useunpublished -log=CompileLog.log -full<br /> copy %UTCOMSRC%\%UP1%%K1%.u %MYCOMSRC%\%UP1%%K1%.u<br /> copy %UTCOMSRC%\%UP1%%K2%.u %MYCOMSRC%\%UP1%%K2%.u<br /> copy %UTCOMSRC%\%UP2%%K3%.u %MYCOMSRC%\%K3%\%UP2%%K3%.u<br /> copy %UTCOMSRC%\%UP2%%K4%.u %MYCOMSRC%\%K4%\%UP2%%K4%.u<br /> del %UTCOMSRC%\%UP1%%K1%.u<br /> del %UTCOMSRC%\%UP1%%K2%.u<br /> del %UTCOMSRC%\%UP2%%K3%.u<br /> del %UTCOMSRC%\%UP2%%K4%.u<br /> <br /> del %UTCONFIG%\%UP1%%K2%.ini<br /> del %UTCONFIG%\%UP2%%K3%.ini<br /> rem del %UTCONFIG%\%UP2%%K4%.ini<br /> <br /> pause<br /> prompt $p$g<br /> &lt;/syntaxhighlight&gt;<br /> &lt;/div&gt;&lt;/div&gt;<br /> <br /> ==Running Unreal Engine with your package==<br /> ==Introduction to NSIS==<br /> [http://nsis.sourceforge.net/Main_Page NSIS]<br /> <br /> &lt;syntaxhighlight lang=&quot;nsis&quot;&gt;<br /> ;<br /> ; GameDex.nsh<br /> ; Creation Date: 19/04/2010 10:33<br /> ; Last Updated: 04/03/2012 22:33<br /> ; Contributors: 00zX<br /> ; Attribution-Noncommercial-Share Alike 3.0 Unported<br /> ; http://creativecommons.org/licenses/by-nc-sa/3.0/<br /> ;<br /> <br /> XPStyle on<br /> ;SetCompressorDictSize dict_size_mb<br /> SetDatablockOptimize on<br /> SetCompressor /SOLID lzma<br /> <br /> ; HM NIS Edit Wizard helper defines<br /> !define PRODUCT_NAME &quot;Gamed&quot;<br /> !define PRODUCT_VERSION &quot;v3.16&quot;<br /> !define PRODUCT_PUBLISHER &quot;00zX&quot;<br /> ;!define PRODUCT_UNINST_KEY &quot;Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}&quot;<br /> ;!define PRODUCT_UNINST_ROOT_KEY &quot;HKLM&quot;<br /> <br /> ;--------------------------------<br /> ;Include (Custom) Modern UI v2<br /> !include &quot;NSIS\Contrib\Gamed\MUI2_Unreal.nsh&quot;<br /> ;!include &quot;${NSISDIR}\include\MultiUser.nsh&quot;<br /> <br /> ;!define MULTIUSER_MUI<br /> <br /> ; MUI Settings<br /> !define MUI_ABORTWARNING<br /> !define MUI_ICON &quot;NSIS\Contrib\Gamed\Graphics\Icons\SweetRevengeTemptIcon5s.ico&quot;<br /> !define MUI_UNICON &quot;NSIS\Contrib\Gamed\Graphics\Icons\SweetRevengeTemptIcon5s.ico&quot;<br /> <br /> ; UT3 Uninstall Registry Location<br /> ;!define REG_UT &quot;Software\Microsoft\Windows\CurrentVersion\Uninstall\{BFA90209-7AFF-4DB6-8E4B-E57305751AD7}&quot;<br /> <br /> ;Interface Configuration<br /> !define MUI_HEADERIMAGE<br /> !define MUI_HEADERIMAGE_BITMAP &quot;NSIS\Contrib\Gamed\Graphics\Header\TemptHeader.bmp&quot;<br /> <br /> ;--------------------------------<br /> ;Standard Pages<br /> !insertmacro MUI_PAGE_WELCOME<br /> ;!insertmacro MUI_PAGE_LICENSE &quot;NSIS\Contrib\Gamed\Docs\License.txt&quot;<br /> ;!insertmacro MULTIUSER_PAGE_INSTALLMODE<br /> <br /> !ifdef PRODUCT_MODE_STANDARD<br /> !define PRODUCT_MODE &quot;Std&quot;<br /> !insertmacro MUI_PAGE_DIRECTORY<br /> !insertmacro MUI_PAGE_INSTFILES<br /> !insertmacro MUI_PAGE_FINISH<br /> !endif<br /> !ifdef PRODUCT_MODE_DEVELOPMENT<br /> !define PRODUCT_MODE &quot;DevEd&quot;<br /> !define MUI_COMPONENTSPAGE_SMALLDESC ;No value<br /> !insertmacro MUI_PAGE_COMPONENTS<br /> !insertmacro MUI_PAGE_DIRECTORY<br /> !insertmacro MUI_PAGE_INSTFILES<br /> ; !define MUI_FINISHPAGE_SHOWREADME &quot;$INSTDIR\UTGame\Published\CookedPC\Script\README_Newtators.txt&quot;<br /> !insertmacro MUI_PAGE_FINISH<br /> !insertmacro MUI_UNPAGE_INSTFILES<br /> !endif<br /> <br /> !insertmacro MUI_LANGUAGE &quot;English&quot;<br /> ; MUI end ------<br /> <br /> Name &quot;${PRODUCT_NAME} ${PRODUCT_VERSION}&quot;<br /> OutFile &quot;${PRODUCT_NAME}-${PRODUCT_VERSION}-${PRODUCT_MODE}.exe&quot;<br /> ShowInstDetails hide<br /> <br /> ;!macro MULTIUSER_INIT_TEXTS<br /> ;!macroend<br /> <br /> ;!ifdef PRODUCT_MODE<br /> ;!endif<br /> <br /> ;--------------------------------<br /> ;Util<br /> !macro redef olddef newdef<br /> !ifdef ${olddef}<br /> !undef ${olddef}<br /> !endif<br /> !define ${olddef} &quot;${newdef}&quot;<br /> !macroend<br /> <br /> ;--------------------------------<br /> !define UDK &quot;UDKGame&quot;<br /> !define UDK_SRC &quot;Development\Src&quot;<br /> !define UDK_CONT &quot;UDKGame\Content&quot;<br /> ;!define UDK_PAK_PATH &quot;$INSTDIR\${UDK_CONT}&quot;<br /> ;!define UDK_UNPAK_PATH &quot;$INSTDIR\UDKGame\Content\GamedEx&quot;<br /> <br /> !define GAMED &quot;Gamed&quot;<br /> <br /> !macro GPAK_SECG GPAK_NAME _a _b<br /> !insertmacro redef GPAK_INST &quot;$INSTDIR\${UDK_CONT}\${GPAK_NAME}&quot;<br /> !insertmacro redef GPAK_TXT &quot;${UDK_SRC}\${GPAK_NAME}&quot;<br /> !insertmacro redef GPAK_UC &quot;${UDK_SRC}\${GPAK_NAME}\Classes&quot;<br /> !insertmacro redef GPAK_U &quot;${UDK}\script&quot;<br /> !insertmacro redef GPAK_CONT &quot;${UDK_CONT}\${GPAK_NAME}&quot;<br /> SectionGroup ${GPAK_NAME} SEC_${GPAK_NAME}<br /> SetOverwrite ifnewer<br /> Section ${_a} ${GPAK_NAME}01<br /> SetOutPath &quot;$GPAK_INST&quot;<br /> File &quot;${GPAK_TXT}\${GPAK_NAME}_README.txt&quot;<br /> File &quot;${GPAK_TXT}\${GPAK_NAME}_ChangeLog.txt&quot;<br /> File &quot;${GPAK_U}\${GPAK_NAME}.u&quot;<br /> SectionEnd<br /> <br /> !ifdef ${_b}<br /> Section ${_b} ${GPAK_NAME}02<br /> SetOutPath &quot;${GPAK_INST}${GPAK_CONT}&quot;<br /> File &quot;${GPAK_CONT}\${GPAK_NAME}\*.udk&quot;<br /> File &quot;${GPAK_CONT}\${GPAK_NAME}\*.upk&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_c}<br /> Section ${_c} ${GPAK_NAME}03<br /> SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GAMED_PAK}\config\${GPAK_NAME}.ini&quot;<br /> ;File &quot;${GAMED_PAK}\${GPAK_NAME}.int&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_d}<br /> Section ${_d} ${GPAK_NAME}04<br /> ;SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.uc&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.uci&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_c}<br /> Section ${_c} ${GPAK_NAME}05<br /> ;SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.pdf&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.upk&quot;<br /> SectionEnd<br /> !endif<br /> SectionGroupEnd<br /> !macroend<br /> <br /> !macro UN_GPAK_SECG GPAK_NAME _a _b<br /> <br /> !macroend<br /> &lt;/syntaxhighlight&gt;<br /> <br /> ===Creating an NSIS package script===</div> 00zX https://wiki.beyondunreal.com/User:00zX/Setting_Up_Your_UScript_Environment?diff=45037 User:00zX/Setting Up Your UScript Environment 2012-03-06T10:37:29Z <p>00zX: /* Introduction to Git */</p> <hr /> <div>Step by step process of installing, setting up jEdit for use with Uscript. From start to finish, using/committing to repository's and building using Apache Ant. A major portion of this tutorial is dedicated to giving you the knowledge to editing/customizing your programming environment to your liking (I do feel this can help to improve workflow).<br /> <br /> {{ambox|text=you can replace any of these with a program of your choosing, some of the [[Unreal_Wiki:Basic_procedures|basic procedure]] in this tutorial are generic enough that program doesnt matter. Some of these steps however are only directly relevant to the programs listed below.}}<br /> Tools suggested for this tutorial:<br /> *[[jEdit]] - Programmers text editor [[Legacy:JEdit|jEdit]]<br /> *[[GIT]] - Source/Build Repository<br /> *[[UnCodeX]] - UScript Class Browser<br /> *[[NSIS]] - Installer/Packaging<br /> <br /> ==Introduction to jEdit==<br /> :[http://www.jedit.org/ jEdit] is a powerful, cross platform, java based programmers text editor.&lt;br&gt;<br /> <br /> ===Edit Modes===<br /> :jEdit uses what is called edit modes, these specify:<br /> ::* Syntax highlighting rules<br /> ::* Auto indent behavior<br /> ::* Various other customizations for editing a certain filetype<br /> <br /> :These edit modes are easily installed an updated, they use the XML language and jEdits own document type definition for modes (xmode.dtd). More information on edit modes can be found within jEdits Help section along with a section on writing edit modes so you can customize jEdits UScript mode to your liking.&lt;br&gt;<br /> <br /> ====Setting jEdits Mode====<br /> ::By default jEdit comes with a UScript mode which can be located in the {'''jEdit Home Directory'''}\Modes this edit mode is very light weight and doesnt cover all engine versions.&lt;br&gt;<br /> ::Im going to recommend not using this directory if you plan to modify your edit mode or use one of the custom ones provided below, the reason for this is simpler backups when using the document directory.&lt;br&gt;<br /> <br /> ::On jEdits main toolbar you will find the utilities button, under that is the global options which contains the options for all edit modes. Syntax highlighting colours can be found in here also.<br /> <br /> ::[[User:Wormbo/UScript_edit_mode|Wormbo's UScript jEdit Mode]]&lt;br&gt;<br /> ::[[User:00zX/UScript.xml|My modified UScript jEdit Mode]]&lt;br&gt;<br /> <br /> ===Recommended Plugins===<br /> :* Project Viewer: Usability.<br /> :* Buffer Tabs: Usability.<br /> :* Dirty Gutter: Diff.<br /> :* TaskList: TODO, NOTE, FIXME's<br /> :* Text Autocomplete: Usability - Code Completion.<br /> :* WhiteSpace: Usability/Readability.<br /> <br /> ===Plugin Installation and Settings===<br /> ::jEdits Plugin Manager and Settings can be accessed through the Plugins button on the main toolbar (show picture).&lt;br&gt;<br /> <br /> ::To install new plugins, click on the plugin manager and you will notice a tab up the top of the new window which says install (show picture).<br /> Navigate to this and select the check-boxes for all plugins you wish to install then hit install in the lower left of the panel.<br /> <br /> ::The plugin settings can be found under the Plugins/Plugin Option button on jEdits main toolbar at the top.<br /> <br /> {{ambox|type=notice|text=I'll guide you through the settings for each of the recommended plugins to show you which options I prefer as you may want to adjust these or similar to your liking.}}<br /> &lt;br&gt;<br /> ===Creating your first Project===<br /> :In this part of the tutorial we will be creating a project using jEdit and Project Viewer.<br /> <br /> :First off I prefer to have the project viewer docked on the left hand side of jEdit, you can however put it anywhere you wish to place it.<br /> Right click on All Projects which you should see in your project viewer, add a new group (this is a recommendation), this will help to keep all your UScript UT3/UDK etc separate from any other projects you may wish to create.<br /> I have a group named '''UE3''' for example, then under that group I have '''UT3''' and '''UDK''' to house each of the projects I have for each.<br /> <br /> :Once you have your groups setup to your liking you are ready to create a project, this will require that you have a directory to scan for source files within.<br /> &lt;br&gt;<br /> ====Directory Structure and creating Package Folders====<br /> Firstly you will need to have an understanding of '''[[Engine_Directory_Structure|Unreal Engine's directory structure]]''', from there you will be able to [[Set_up_a_package_directory|create the required directory for a package]] so you can [[compile]] the [[UC_File|*.UC files]] into a [[Script Package File|script package file]](*.U). For Unreal Script [[Classes]] ([[UC_File|*.UC files]]) you will need to first make the ''package'' directory and then the ''Classes'' directory. <br /> <br /> Right click on the group you wish to create the project within, click '''Add Project'''. This will display the create project dialogs (show Picture)<br /> Select a name and the root directory for you project, for now select {'''Your Package'''} directory. Or alternatively if you wish to use multiple [[package]]'s for your project you may add the {[[base source directory]]}, you will however need to filter the imported folders so that only the ones you require for your project are displayed.<br /> <br /> Project Viewer would now have selected the project for you, you can navigate back to all projects using the drop down box at the top of Project Viewer.<br /> &lt;br&gt;<br /> <br /> ===Creating your first Class===<br /> Go to file in jEdits main toolbar, select new and follow this basic procedure [[Create a class]].<br /> <br /> You'll notice that Project Viewer doesnt automatically scan for new classes unless it has been selected to do so. Right click on your project in the Project Viewer panel and select 'Re-import files'.<br /> Make sure the Project and Classes directories are expanded and you should now see {'''Your Class'''} in there.<br /> <br /> ====More on jEdit Modes====<br /> Creating a customized template an macro for creating a new class based on this template.<br /> <br /> ====Customizing Project Viewer====<br /> Specialized section on setting up Project Viewer's context (Right Click) menu to contain a create class button which will create a class based on a UScript template.<br /> <br /> You may skip to [[User:00zX#Compiling|Compiling]] at this point, though I highly recommend you come back and follow up on [[UnCodex]].<br /> <br /> ==Introduction to UnCodex==<br /> This is basically a must have application for anyone doing UScript unless ofcoarse you opt to use other IDE's which contain their own class browsers.<br /> Personally I think [[UnCodeX]] is still the best out there and its quick with minimal overhead.<br /> <br /> There are two versions of [[UnCodeX]] that I use, I prefer using the older 227 for anything pre-UE3 or TribesV for those I use the newer 237-beta version.<br /> <br /> {{ambox|type=notice|text=Ideally jEdit would allow UScript class browsing like it does Java. There was an Eclipse plugin, theres a Visual Studio IDE called [Nfringe] and there is also (Gah I forget the name).}}<br /> &lt;br&gt;<br /> ===Setting Up UnCodex===<br /> Working with multiple copies of unreal engine source (for example, numerous [[UDK]] copies) can be tedious to continuously analyze all the time in [[UnCodex]] so I'll guide you through setting it up so you can have numerous shortcuts all which cache different versions of [[Unreal Engine]].<br /> You have to be careful however, this can get confusing as to which copy is in which [[UnCodeX]] window but you can double check the title bar, which I highly recommend you do. I have been caught out a few times with this myself between [[UT3]] and [[UDK]] sources.&lt;br&gt;<br /> <br /> As a general rule of thumb I just use the naming convention:&lt;br&gt;<br /> &quot;Drive:\{UnCodeX}\UnCodeX.exe&quot; -config UnCodeX-{GameName/Version}.ini&lt;br&gt;<br /> <br /> ::'''UT2004''' - &quot;Drive:\{UnCodeX227}\UnCodeX.exe&quot; -config UnCodeX-UT2004.ini&lt;br&gt;<br /> ::'''DeusEx''' - &quot;Drive:\{UnCodeX227}\UnCodeX.exe&quot; -config UnCodeX-DeusEx.ini&lt;br&gt;<br /> ::'''UT3''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UT3.ini&lt;br&gt;<br /> ::'''UDK''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UDK-2009-11-2.ini&lt;br&gt;<br /> ::'''UDK''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UDK-2010-03.ini&lt;br&gt;<br /> <br /> Now these [[INI_File|INI]]'s will have to exist for this to work, so copy the default ''UnCodeX.ini'' and rename it to ''UnCodeX-{GameName/Version}.ini''.<br /> Open this file in jEdit or notepad for editing,<br /> <br /> &lt;pre&gt;<br /> [Sources]<br /> ''Add your source directories here''<br /> &lt;/pre&gt; <br /> ::'''UT2004''' - {[[Base Directory]]}\System\&lt;br&gt;<br /> ::'''UT3''' - {[[User Documents Directory]]}\My Games\Unreal Tournament 3\UTGame\Src\&lt;br&gt;<br /> <br /> {{ambox|type=notice|text=This can be done once [[UnCodeX]] is loaded for this mode.}}&lt;br&gt;<br /> <br /> {{ambox|type=notice|text=For UT3 you will require two directories selected for scanning, one is the exported script directory the other is Src directory within UTGame.<br /> With UT2.x and UDK you work along side Epic's Packages so it'll scan both, you can set [[UnCodeX]] to scan numerous directories for any mode.}}&lt;br&gt;<br /> <br /> {{ambox|type=warning|text=This is an absolute requirement for [[UnCodeX]] to function in multiple mode's correctly. In the past I have forgotten to do this and as the cache is not saved for that source directory you must rescan each time [[UnCodeX]] is loaded.}}<br /> &lt;pre&gt;<br /> [GUI.General]<br /> StateFile=UnCodeX-{GameName-Version}.ucx<br /> &lt;/pre&gt;<br /> <br /> ::'''UT2004''' - StateFile=UnCodeX-UT2004.ucx&lt;br&gt;<br /> ::'''DeusEx''' - StateFile=UnCodeX-DeusEx.ucx&lt;br&gt;<br /> ::'''UT3''' - StateFile=UnCodeX-UT3.ucx&lt;br&gt;<br /> ::'''UDK''' - StateFile=UnCodeX-UDK-2009-11-2.ucx&lt;br&gt;<br /> ::'''UDK''' - StateFile=UnCodeX-UDK-2010-03.ucx&lt;br&gt;<br /> <br /> Once you have done that for your required modes you can boot the shortcut and analyze the source, now every time you boot you would be using the cache for that ini/source.<br /> <br /> ==Introduction to Git==<br /> Git is a free &amp; open source, distributed version control system.<br /> [http://git-scm.com/ GIT]&lt;br&gt;<br /> [http://code.google.com/p/msysgit/ msysgit - windows]&lt;br&gt;<br /> ===GIT command prompt===<br /> '''Creating a repository'''<br /> &lt;syntaxhighlight lang=&quot;bash&quot;&gt;<br /> # cd hello<br /> # ls<br /> # git init<br /> # git add . <br /> &lt;/syntaxhighlight&gt;<br /> '''Pushing a repository to GitHub'''<br /> Create a repository on GitHub then...<br /> &lt;syntaxhighlight lang=&quot;bash&quot;&gt;<br /> # cd hello<br /> # git remote add origin git@github.com:tabrez/hello.git<br /> # git push origin master <br /> &lt;/syntaxhighlight&gt;<br /> &lt;br&gt;<br /> '''GIT GUI'''<br /> <br /> ==Compiling==<br /> ===Using Batch (Windows)===<br /> '''UDK'''<br /> ''Make_64Full''<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> cd..<br /> cd binaries\win64<br /> udk.com make -full -intermediate<br /> pause<br /> &lt;/syntaxhighlight&gt;<br /> ''Make_64Part''<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> @echo off<br /> cd..<br /> cd binaries\win64<br /> @echo on<br /> udk.com make -intermediate<br /> @echo off<br /> pause<br /> &lt;/syntaxhighlight&gt;<br /> &lt;br&gt;<br /> <br /> ''UT3'' - Multi-Package Compile batch<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> @echo Off<br /> prompt $g<br /> rem BASE DIRECTORIES<br /> set UTDIR=&quot;D:\Midway\Unreal Tournament 3&quot;<br /> set UTCOM=%UTDIR%\Binaries\UT3.COM<br /> <br /> rem PROJECT DETAILS<br /> set UP1=UT_<br /> set UP2=UT_GDP_<br /> set K1=MDB<br /> set K2=GameDex<br /> set K3=Newtators<br /> set K4=Mutatoes<br /> <br /> rem script<br /> set UTCONFIG=..\Config<br /> set UTCOMSRC=..\Unpublished\CookedPC\Script<br /> set MYCOMSRC=..\Unpublished\CookedPC\GameDex<br /> <br /> @echo On<br /> del %MYCOMSRC%\%UP1%%K1%.u<br /> del %MYCOMSRC%\%UP1%%K2%.u<br /> del %MYCOMSRC%\%K3%\%UP2%%K3%.u<br /> rem del %MYCOMSRC%\%K4%\%UP2%%K4%.u<br /> <br /> %UTCOM% make -debug -useunpublished -log=CompileLog.log -full<br /> copy %UTCOMSRC%\%UP1%%K1%.u %MYCOMSRC%\%UP1%%K1%.u<br /> copy %UTCOMSRC%\%UP1%%K2%.u %MYCOMSRC%\%UP1%%K2%.u<br /> copy %UTCOMSRC%\%UP2%%K3%.u %MYCOMSRC%\%K3%\%UP2%%K3%.u<br /> copy %UTCOMSRC%\%UP2%%K4%.u %MYCOMSRC%\%K4%\%UP2%%K4%.u<br /> del %UTCOMSRC%\%UP1%%K1%.u<br /> del %UTCOMSRC%\%UP1%%K2%.u<br /> del %UTCOMSRC%\%UP2%%K3%.u<br /> del %UTCOMSRC%\%UP2%%K4%.u<br /> <br /> del %UTCONFIG%\%UP1%%K2%.ini<br /> del %UTCONFIG%\%UP2%%K3%.ini<br /> rem del %UTCONFIG%\%UP2%%K4%.ini<br /> <br /> pause<br /> prompt $p$g<br /> &lt;/syntaxhighlight&gt;<br /> &lt;/div&gt;&lt;/div&gt;<br /> <br /> ==Running Unreal Engine with your package==<br /> ==Introduction to NSIS==<br /> [http://nsis.sourceforge.net/Main_Page NSIS]<br /> <br /> &lt;syntaxhighlight lang=&quot;nsis&quot;&gt;<br /> ;<br /> ; GameDex.nsh<br /> ; Creation Date: 19/04/2010 10:33<br /> ; Last Updated: 04/03/2012 22:33<br /> ; Contributors: 00zX<br /> ; Attribution-Noncommercial-Share Alike 3.0 Unported<br /> ; http://creativecommons.org/licenses/by-nc-sa/3.0/<br /> ;<br /> <br /> XPStyle on<br /> ;SetCompressorDictSize dict_size_mb<br /> SetDatablockOptimize on<br /> SetCompressor /SOLID lzma<br /> <br /> ; HM NIS Edit Wizard helper defines<br /> !define PRODUCT_NAME &quot;Gamed&quot;<br /> !define PRODUCT_VERSION &quot;v3.16&quot;<br /> !define PRODUCT_PUBLISHER &quot;00zX&quot;<br /> ;!define PRODUCT_UNINST_KEY &quot;Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}&quot;<br /> ;!define PRODUCT_UNINST_ROOT_KEY &quot;HKLM&quot;<br /> <br /> ;--------------------------------<br /> ;Include (Custom) Modern UI v2<br /> !include &quot;NSIS\Contrib\Gamed\MUI2_Unreal.nsh&quot;<br /> ;!include &quot;${NSISDIR}\include\MultiUser.nsh&quot;<br /> <br /> ;!define MULTIUSER_MUI<br /> <br /> ; MUI Settings<br /> !define MUI_ABORTWARNING<br /> !define MUI_ICON &quot;NSIS\Contrib\Gamed\Graphics\Icons\SweetRevengeTemptIcon5s.ico&quot;<br /> !define MUI_UNICON &quot;NSIS\Contrib\Gamed\Graphics\Icons\SweetRevengeTemptIcon5s.ico&quot;<br /> <br /> ; UT3 Uninstall Registry Location<br /> ;!define REG_UT &quot;Software\Microsoft\Windows\CurrentVersion\Uninstall\{BFA90209-7AFF-4DB6-8E4B-E57305751AD7}&quot;<br /> <br /> ;Interface Configuration<br /> !define MUI_HEADERIMAGE<br /> !define MUI_HEADERIMAGE_BITMAP &quot;NSIS\Contrib\Gamed\Graphics\Header\TemptHeader.bmp&quot;<br /> <br /> ;--------------------------------<br /> ;Standard Pages<br /> !insertmacro MUI_PAGE_WELCOME<br /> ;!insertmacro MUI_PAGE_LICENSE &quot;NSIS\Contrib\Gamed\Docs\License.txt&quot;<br /> ;!insertmacro MULTIUSER_PAGE_INSTALLMODE<br /> <br /> !ifdef PRODUCT_MODE_STANDARD<br /> !define PRODUCT_MODE &quot;Std&quot;<br /> !insertmacro MUI_PAGE_DIRECTORY<br /> !insertmacro MUI_PAGE_INSTFILES<br /> !insertmacro MUI_PAGE_FINISH<br /> !endif<br /> !ifdef PRODUCT_MODE_DEVELOPMENT<br /> !define PRODUCT_MODE &quot;DevEd&quot;<br /> !define MUI_COMPONENTSPAGE_SMALLDESC ;No value<br /> !insertmacro MUI_PAGE_COMPONENTS<br /> !insertmacro MUI_PAGE_DIRECTORY<br /> !insertmacro MUI_PAGE_INSTFILES<br /> ; !define MUI_FINISHPAGE_SHOWREADME &quot;$INSTDIR\UTGame\Published\CookedPC\Script\README_Newtators.txt&quot;<br /> !insertmacro MUI_PAGE_FINISH<br /> !insertmacro MUI_UNPAGE_INSTFILES<br /> !endif<br /> <br /> !insertmacro MUI_LANGUAGE &quot;English&quot;<br /> ; MUI end ------<br /> <br /> Name &quot;${PRODUCT_NAME} ${PRODUCT_VERSION}&quot;<br /> OutFile &quot;${PRODUCT_NAME}-${PRODUCT_VERSION}-${PRODUCT_MODE}.exe&quot;<br /> ShowInstDetails hide<br /> <br /> ;!macro MULTIUSER_INIT_TEXTS<br /> ;!macroend<br /> <br /> ;!ifdef PRODUCT_MODE<br /> ;!endif<br /> <br /> ;--------------------------------<br /> ;Util<br /> !macro redef olddef newdef<br /> !ifdef ${olddef}<br /> !undef ${olddef}<br /> !endif<br /> !define ${olddef} &quot;${newdef}&quot;<br /> !macroend<br /> <br /> ;--------------------------------<br /> !define UDK &quot;UDKGame&quot;<br /> !define UDK_SRC &quot;Development\Src&quot;<br /> !define UDK_CONT &quot;UDKGame\Content&quot;<br /> ;!define UDK_PAK_PATH &quot;$INSTDIR\${UDK_CONT}&quot;<br /> ;!define UDK_UNPAK_PATH &quot;$INSTDIR\UDKGame\Content\GamedEx&quot;<br /> <br /> !define GAMED &quot;Gamed&quot;<br /> <br /> !macro GPAK_SECG GPAK_NAME _a _b<br /> !insertmacro redef GPAK_INST &quot;$INSTDIR\${UDK_CONT}\${GPAK_NAME}&quot;<br /> !insertmacro redef GPAK_TXT &quot;${UDK_SRC}\${GPAK_NAME}&quot;<br /> !insertmacro redef GPAK_UC &quot;${UDK_SRC}\${GPAK_NAME}\Classes&quot;<br /> !insertmacro redef GPAK_U &quot;${UDK}\script&quot;<br /> !insertmacro redef GPAK_CONT &quot;${UDK_CONT}\${GPAK_NAME}&quot;<br /> SectionGroup ${GPAK_NAME} SEC_${GPAK_NAME}<br /> SetOverwrite ifnewer<br /> Section ${_a} ${GPAK_NAME}01<br /> SetOutPath &quot;$GPAK_INST&quot;<br /> File &quot;${GPAK_TXT}\${GPAK_NAME}_README.txt&quot;<br /> File &quot;${GPAK_TXT}\${GPAK_NAME}_ChangeLog.txt&quot;<br /> File &quot;${GPAK_U}\${GPAK_NAME}.u&quot;<br /> SectionEnd<br /> <br /> !ifdef ${_b}<br /> Section ${_b} ${GPAK_NAME}02<br /> SetOutPath &quot;${GPAK_INST}${GPAK_CONT}&quot;<br /> File &quot;${GPAK_CONT}\${GPAK_NAME}\*.udk&quot;<br /> File &quot;${GPAK_CONT}\${GPAK_NAME}\*.upk&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_c}<br /> Section ${_c} ${GPAK_NAME}03<br /> SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GAMED_PAK}\config\${GPAK_NAME}.ini&quot;<br /> ;File &quot;${GAMED_PAK}\${GPAK_NAME}.int&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_d}<br /> Section ${_d} ${GPAK_NAME}04<br /> ;SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.uc&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.uci&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_c}<br /> Section ${_c} ${GPAK_NAME}05<br /> ;SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.pdf&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.upk&quot;<br /> SectionEnd<br /> !endif<br /> SectionGroupEnd<br /> !macroend<br /> <br /> !macro UN_GPAK_SECG GPAK_NAME _a _b<br /> <br /> !macroend<br /> &lt;/syntaxhighlight&gt;<br /> <br /> ===Creating an NSIS package script===</div> 00zX https://wiki.beyondunreal.com/User:00zX/Setting_Up_Your_UScript_Environment?diff=45036 User:00zX/Setting Up Your UScript Environment 2012-03-06T10:35:36Z <p>00zX: /* Compiling */</p> <hr /> <div>Step by step process of installing, setting up jEdit for use with Uscript. From start to finish, using/committing to repository's and building using Apache Ant. A major portion of this tutorial is dedicated to giving you the knowledge to editing/customizing your programming environment to your liking (I do feel this can help to improve workflow).<br /> <br /> {{ambox|text=you can replace any of these with a program of your choosing, some of the [[Unreal_Wiki:Basic_procedures|basic procedure]] in this tutorial are generic enough that program doesnt matter. Some of these steps however are only directly relevant to the programs listed below.}}<br /> Tools suggested for this tutorial:<br /> *[[jEdit]] - Programmers text editor [[Legacy:JEdit|jEdit]]<br /> *[[GIT]] - Source/Build Repository<br /> *[[UnCodeX]] - UScript Class Browser<br /> *[[NSIS]] - Installer/Packaging<br /> <br /> ==Introduction to jEdit==<br /> :[http://www.jedit.org/ jEdit] is a powerful, cross platform, java based programmers text editor.&lt;br&gt;<br /> <br /> ===Edit Modes===<br /> :jEdit uses what is called edit modes, these specify:<br /> ::* Syntax highlighting rules<br /> ::* Auto indent behavior<br /> ::* Various other customizations for editing a certain filetype<br /> <br /> :These edit modes are easily installed an updated, they use the XML language and jEdits own document type definition for modes (xmode.dtd). More information on edit modes can be found within jEdits Help section along with a section on writing edit modes so you can customize jEdits UScript mode to your liking.&lt;br&gt;<br /> <br /> ====Setting jEdits Mode====<br /> ::By default jEdit comes with a UScript mode which can be located in the {'''jEdit Home Directory'''}\Modes this edit mode is very light weight and doesnt cover all engine versions.&lt;br&gt;<br /> ::Im going to recommend not using this directory if you plan to modify your edit mode or use one of the custom ones provided below, the reason for this is simpler backups when using the document directory.&lt;br&gt;<br /> <br /> ::On jEdits main toolbar you will find the utilities button, under that is the global options which contains the options for all edit modes. Syntax highlighting colours can be found in here also.<br /> <br /> ::[[User:Wormbo/UScript_edit_mode|Wormbo's UScript jEdit Mode]]&lt;br&gt;<br /> ::[[User:00zX/UScript.xml|My modified UScript jEdit Mode]]&lt;br&gt;<br /> <br /> ===Recommended Plugins===<br /> :* Project Viewer: Usability.<br /> :* Buffer Tabs: Usability.<br /> :* Dirty Gutter: Diff.<br /> :* TaskList: TODO, NOTE, FIXME's<br /> :* Text Autocomplete: Usability - Code Completion.<br /> :* WhiteSpace: Usability/Readability.<br /> <br /> ===Plugin Installation and Settings===<br /> ::jEdits Plugin Manager and Settings can be accessed through the Plugins button on the main toolbar (show picture).&lt;br&gt;<br /> <br /> ::To install new plugins, click on the plugin manager and you will notice a tab up the top of the new window which says install (show picture).<br /> Navigate to this and select the check-boxes for all plugins you wish to install then hit install in the lower left of the panel.<br /> <br /> ::The plugin settings can be found under the Plugins/Plugin Option button on jEdits main toolbar at the top.<br /> <br /> {{ambox|type=notice|text=I'll guide you through the settings for each of the recommended plugins to show you which options I prefer as you may want to adjust these or similar to your liking.}}<br /> &lt;br&gt;<br /> ===Creating your first Project===<br /> :In this part of the tutorial we will be creating a project using jEdit and Project Viewer.<br /> <br /> :First off I prefer to have the project viewer docked on the left hand side of jEdit, you can however put it anywhere you wish to place it.<br /> Right click on All Projects which you should see in your project viewer, add a new group (this is a recommendation), this will help to keep all your UScript UT3/UDK etc separate from any other projects you may wish to create.<br /> I have a group named '''UE3''' for example, then under that group I have '''UT3''' and '''UDK''' to house each of the projects I have for each.<br /> <br /> :Once you have your groups setup to your liking you are ready to create a project, this will require that you have a directory to scan for source files within.<br /> &lt;br&gt;<br /> ====Directory Structure and creating Package Folders====<br /> Firstly you will need to have an understanding of '''[[Engine_Directory_Structure|Unreal Engine's directory structure]]''', from there you will be able to [[Set_up_a_package_directory|create the required directory for a package]] so you can [[compile]] the [[UC_File|*.UC files]] into a [[Script Package File|script package file]](*.U). For Unreal Script [[Classes]] ([[UC_File|*.UC files]]) you will need to first make the ''package'' directory and then the ''Classes'' directory. <br /> <br /> Right click on the group you wish to create the project within, click '''Add Project'''. This will display the create project dialogs (show Picture)<br /> Select a name and the root directory for you project, for now select {'''Your Package'''} directory. Or alternatively if you wish to use multiple [[package]]'s for your project you may add the {[[base source directory]]}, you will however need to filter the imported folders so that only the ones you require for your project are displayed.<br /> <br /> Project Viewer would now have selected the project for you, you can navigate back to all projects using the drop down box at the top of Project Viewer.<br /> &lt;br&gt;<br /> <br /> ===Creating your first Class===<br /> Go to file in jEdits main toolbar, select new and follow this basic procedure [[Create a class]].<br /> <br /> You'll notice that Project Viewer doesnt automatically scan for new classes unless it has been selected to do so. Right click on your project in the Project Viewer panel and select 'Re-import files'.<br /> Make sure the Project and Classes directories are expanded and you should now see {'''Your Class'''} in there.<br /> <br /> ====More on jEdit Modes====<br /> Creating a customized template an macro for creating a new class based on this template.<br /> <br /> ====Customizing Project Viewer====<br /> Specialized section on setting up Project Viewer's context (Right Click) menu to contain a create class button which will create a class based on a UScript template.<br /> <br /> You may skip to [[User:00zX#Compiling|Compiling]] at this point, though I highly recommend you come back and follow up on [[UnCodex]].<br /> <br /> ==Introduction to UnCodex==<br /> This is basically a must have application for anyone doing UScript unless ofcoarse you opt to use other IDE's which contain their own class browsers.<br /> Personally I think [[UnCodeX]] is still the best out there and its quick with minimal overhead.<br /> <br /> There are two versions of [[UnCodeX]] that I use, I prefer using the older 227 for anything pre-UE3 or TribesV for those I use the newer 237-beta version.<br /> <br /> {{ambox|type=notice|text=Ideally jEdit would allow UScript class browsing like it does Java. There was an Eclipse plugin, theres a Visual Studio IDE called [Nfringe] and there is also (Gah I forget the name).}}<br /> &lt;br&gt;<br /> ===Setting Up UnCodex===<br /> Working with multiple copies of unreal engine source (for example, numerous [[UDK]] copies) can be tedious to continuously analyze all the time in [[UnCodex]] so I'll guide you through setting it up so you can have numerous shortcuts all which cache different versions of [[Unreal Engine]].<br /> You have to be careful however, this can get confusing as to which copy is in which [[UnCodeX]] window but you can double check the title bar, which I highly recommend you do. I have been caught out a few times with this myself between [[UT3]] and [[UDK]] sources.&lt;br&gt;<br /> <br /> As a general rule of thumb I just use the naming convention:&lt;br&gt;<br /> &quot;Drive:\{UnCodeX}\UnCodeX.exe&quot; -config UnCodeX-{GameName/Version}.ini&lt;br&gt;<br /> <br /> ::'''UT2004''' - &quot;Drive:\{UnCodeX227}\UnCodeX.exe&quot; -config UnCodeX-UT2004.ini&lt;br&gt;<br /> ::'''DeusEx''' - &quot;Drive:\{UnCodeX227}\UnCodeX.exe&quot; -config UnCodeX-DeusEx.ini&lt;br&gt;<br /> ::'''UT3''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UT3.ini&lt;br&gt;<br /> ::'''UDK''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UDK-2009-11-2.ini&lt;br&gt;<br /> ::'''UDK''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UDK-2010-03.ini&lt;br&gt;<br /> <br /> Now these [[INI_File|INI]]'s will have to exist for this to work, so copy the default ''UnCodeX.ini'' and rename it to ''UnCodeX-{GameName/Version}.ini''.<br /> Open this file in jEdit or notepad for editing,<br /> <br /> &lt;pre&gt;<br /> [Sources]<br /> ''Add your source directories here''<br /> &lt;/pre&gt; <br /> ::'''UT2004''' - {[[Base Directory]]}\System\&lt;br&gt;<br /> ::'''UT3''' - {[[User Documents Directory]]}\My Games\Unreal Tournament 3\UTGame\Src\&lt;br&gt;<br /> <br /> {{ambox|type=notice|text=This can be done once [[UnCodeX]] is loaded for this mode.}}&lt;br&gt;<br /> <br /> {{ambox|type=notice|text=For UT3 you will require two directories selected for scanning, one is the exported script directory the other is Src directory within UTGame.<br /> With UT2.x and UDK you work along side Epic's Packages so it'll scan both, you can set [[UnCodeX]] to scan numerous directories for any mode.}}&lt;br&gt;<br /> <br /> {{ambox|type=warning|text=This is an absolute requirement for [[UnCodeX]] to function in multiple mode's correctly. In the past I have forgotten to do this and as the cache is not saved for that source directory you must rescan each time [[UnCodeX]] is loaded.}}<br /> &lt;pre&gt;<br /> [GUI.General]<br /> StateFile=UnCodeX-{GameName-Version}.ucx<br /> &lt;/pre&gt;<br /> <br /> ::'''UT2004''' - StateFile=UnCodeX-UT2004.ucx&lt;br&gt;<br /> ::'''DeusEx''' - StateFile=UnCodeX-DeusEx.ucx&lt;br&gt;<br /> ::'''UT3''' - StateFile=UnCodeX-UT3.ucx&lt;br&gt;<br /> ::'''UDK''' - StateFile=UnCodeX-UDK-2009-11-2.ucx&lt;br&gt;<br /> ::'''UDK''' - StateFile=UnCodeX-UDK-2010-03.ucx&lt;br&gt;<br /> <br /> Once you have done that for your required modes you can boot the shortcut and analyze the source, now every time you boot you would be using the cache for that ini/source.<br /> <br /> ==Introduction to Git==<br /> Git is a free &amp; open source, distributed version control system.<br /> [http://git-scm.com/ GIT]&lt;br&gt;<br /> [http://code.google.com/p/msysgit/ msysgit - windows]&lt;br&gt;<br /> ===GIT command prompt===<br /> =====Creating a repository======<br /> &lt;syntaxhighlight lang=&quot;bash&quot;&gt;<br /> # cd hello<br /> # ls<br /> # git init<br /> # git add . <br /> &lt;/syntaxhighlight&gt;<br /> =====Pushing a repository to GitHub=====<br /> Create a repository on GitHub then...<br /> &lt;syntaxhighlight lang=&quot;bash&quot;&gt;<br /> # cd hello<br /> # git remote add origin git@github.com:tabrez/hello.git<br /> # git push origin master <br /> &lt;/syntaxhighlight&gt;<br /> &lt;br&gt;<br /> ===GIT GUI===<br /> ====Pushing a repository to GitHub====<br /> ==Compiling==<br /> ===Using Batch (Windows)===<br /> '''UDK'''<br /> ''Make_64Full''<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> cd..<br /> cd binaries\win64<br /> udk.com make -full -intermediate<br /> pause<br /> &lt;/syntaxhighlight&gt;<br /> ''Make_64Part''<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> @echo off<br /> cd..<br /> cd binaries\win64<br /> @echo on<br /> udk.com make -intermediate<br /> @echo off<br /> pause<br /> &lt;/syntaxhighlight&gt;<br /> &lt;br&gt;<br /> <br /> ''UT3'' - Multi-Package Compile batch<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> @echo Off<br /> prompt $g<br /> rem BASE DIRECTORIES<br /> set UTDIR=&quot;D:\Midway\Unreal Tournament 3&quot;<br /> set UTCOM=%UTDIR%\Binaries\UT3.COM<br /> <br /> rem PROJECT DETAILS<br /> set UP1=UT_<br /> set UP2=UT_GDP_<br /> set K1=MDB<br /> set K2=GameDex<br /> set K3=Newtators<br /> set K4=Mutatoes<br /> <br /> rem script<br /> set UTCONFIG=..\Config<br /> set UTCOMSRC=..\Unpublished\CookedPC\Script<br /> set MYCOMSRC=..\Unpublished\CookedPC\GameDex<br /> <br /> @echo On<br /> del %MYCOMSRC%\%UP1%%K1%.u<br /> del %MYCOMSRC%\%UP1%%K2%.u<br /> del %MYCOMSRC%\%K3%\%UP2%%K3%.u<br /> rem del %MYCOMSRC%\%K4%\%UP2%%K4%.u<br /> <br /> %UTCOM% make -debug -useunpublished -log=CompileLog.log -full<br /> copy %UTCOMSRC%\%UP1%%K1%.u %MYCOMSRC%\%UP1%%K1%.u<br /> copy %UTCOMSRC%\%UP1%%K2%.u %MYCOMSRC%\%UP1%%K2%.u<br /> copy %UTCOMSRC%\%UP2%%K3%.u %MYCOMSRC%\%K3%\%UP2%%K3%.u<br /> copy %UTCOMSRC%\%UP2%%K4%.u %MYCOMSRC%\%K4%\%UP2%%K4%.u<br /> del %UTCOMSRC%\%UP1%%K1%.u<br /> del %UTCOMSRC%\%UP1%%K2%.u<br /> del %UTCOMSRC%\%UP2%%K3%.u<br /> del %UTCOMSRC%\%UP2%%K4%.u<br /> <br /> del %UTCONFIG%\%UP1%%K2%.ini<br /> del %UTCONFIG%\%UP2%%K3%.ini<br /> rem del %UTCONFIG%\%UP2%%K4%.ini<br /> <br /> pause<br /> prompt $p$g<br /> &lt;/syntaxhighlight&gt;<br /> &lt;/div&gt;&lt;/div&gt;<br /> <br /> ==Running Unreal Engine with your package==<br /> ==Introduction to NSIS==<br /> [http://nsis.sourceforge.net/Main_Page NSIS]<br /> <br /> &lt;syntaxhighlight lang=&quot;nsis&quot;&gt;<br /> ;<br /> ; GameDex.nsh<br /> ; Creation Date: 19/04/2010 10:33<br /> ; Last Updated: 04/03/2012 22:33<br /> ; Contributors: 00zX<br /> ; Attribution-Noncommercial-Share Alike 3.0 Unported<br /> ; http://creativecommons.org/licenses/by-nc-sa/3.0/<br /> ;<br /> <br /> XPStyle on<br /> ;SetCompressorDictSize dict_size_mb<br /> SetDatablockOptimize on<br /> SetCompressor /SOLID lzma<br /> <br /> ; HM NIS Edit Wizard helper defines<br /> !define PRODUCT_NAME &quot;Gamed&quot;<br /> !define PRODUCT_VERSION &quot;v3.16&quot;<br /> !define PRODUCT_PUBLISHER &quot;00zX&quot;<br /> ;!define PRODUCT_UNINST_KEY &quot;Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}&quot;<br /> ;!define PRODUCT_UNINST_ROOT_KEY &quot;HKLM&quot;<br /> <br /> ;--------------------------------<br /> ;Include (Custom) Modern UI v2<br /> !include &quot;NSIS\Contrib\Gamed\MUI2_Unreal.nsh&quot;<br /> ;!include &quot;${NSISDIR}\include\MultiUser.nsh&quot;<br /> <br /> ;!define MULTIUSER_MUI<br /> <br /> ; MUI Settings<br /> !define MUI_ABORTWARNING<br /> !define MUI_ICON &quot;NSIS\Contrib\Gamed\Graphics\Icons\SweetRevengeTemptIcon5s.ico&quot;<br /> !define MUI_UNICON &quot;NSIS\Contrib\Gamed\Graphics\Icons\SweetRevengeTemptIcon5s.ico&quot;<br /> <br /> ; UT3 Uninstall Registry Location<br /> ;!define REG_UT &quot;Software\Microsoft\Windows\CurrentVersion\Uninstall\{BFA90209-7AFF-4DB6-8E4B-E57305751AD7}&quot;<br /> <br /> ;Interface Configuration<br /> !define MUI_HEADERIMAGE<br /> !define MUI_HEADERIMAGE_BITMAP &quot;NSIS\Contrib\Gamed\Graphics\Header\TemptHeader.bmp&quot;<br /> <br /> ;--------------------------------<br /> ;Standard Pages<br /> !insertmacro MUI_PAGE_WELCOME<br /> ;!insertmacro MUI_PAGE_LICENSE &quot;NSIS\Contrib\Gamed\Docs\License.txt&quot;<br /> ;!insertmacro MULTIUSER_PAGE_INSTALLMODE<br /> <br /> !ifdef PRODUCT_MODE_STANDARD<br /> !define PRODUCT_MODE &quot;Std&quot;<br /> !insertmacro MUI_PAGE_DIRECTORY<br /> !insertmacro MUI_PAGE_INSTFILES<br /> !insertmacro MUI_PAGE_FINISH<br /> !endif<br /> !ifdef PRODUCT_MODE_DEVELOPMENT<br /> !define PRODUCT_MODE &quot;DevEd&quot;<br /> !define MUI_COMPONENTSPAGE_SMALLDESC ;No value<br /> !insertmacro MUI_PAGE_COMPONENTS<br /> !insertmacro MUI_PAGE_DIRECTORY<br /> !insertmacro MUI_PAGE_INSTFILES<br /> ; !define MUI_FINISHPAGE_SHOWREADME &quot;$INSTDIR\UTGame\Published\CookedPC\Script\README_Newtators.txt&quot;<br /> !insertmacro MUI_PAGE_FINISH<br /> !insertmacro MUI_UNPAGE_INSTFILES<br /> !endif<br /> <br /> !insertmacro MUI_LANGUAGE &quot;English&quot;<br /> ; MUI end ------<br /> <br /> Name &quot;${PRODUCT_NAME} ${PRODUCT_VERSION}&quot;<br /> OutFile &quot;${PRODUCT_NAME}-${PRODUCT_VERSION}-${PRODUCT_MODE}.exe&quot;<br /> ShowInstDetails hide<br /> <br /> ;!macro MULTIUSER_INIT_TEXTS<br /> ;!macroend<br /> <br /> ;!ifdef PRODUCT_MODE<br /> ;!endif<br /> <br /> ;--------------------------------<br /> ;Util<br /> !macro redef olddef newdef<br /> !ifdef ${olddef}<br /> !undef ${olddef}<br /> !endif<br /> !define ${olddef} &quot;${newdef}&quot;<br /> !macroend<br /> <br /> ;--------------------------------<br /> !define UDK &quot;UDKGame&quot;<br /> !define UDK_SRC &quot;Development\Src&quot;<br /> !define UDK_CONT &quot;UDKGame\Content&quot;<br /> ;!define UDK_PAK_PATH &quot;$INSTDIR\${UDK_CONT}&quot;<br /> ;!define UDK_UNPAK_PATH &quot;$INSTDIR\UDKGame\Content\GamedEx&quot;<br /> <br /> !define GAMED &quot;Gamed&quot;<br /> <br /> !macro GPAK_SECG GPAK_NAME _a _b<br /> !insertmacro redef GPAK_INST &quot;$INSTDIR\${UDK_CONT}\${GPAK_NAME}&quot;<br /> !insertmacro redef GPAK_TXT &quot;${UDK_SRC}\${GPAK_NAME}&quot;<br /> !insertmacro redef GPAK_UC &quot;${UDK_SRC}\${GPAK_NAME}\Classes&quot;<br /> !insertmacro redef GPAK_U &quot;${UDK}\script&quot;<br /> !insertmacro redef GPAK_CONT &quot;${UDK_CONT}\${GPAK_NAME}&quot;<br /> SectionGroup ${GPAK_NAME} SEC_${GPAK_NAME}<br /> SetOverwrite ifnewer<br /> Section ${_a} ${GPAK_NAME}01<br /> SetOutPath &quot;$GPAK_INST&quot;<br /> File &quot;${GPAK_TXT}\${GPAK_NAME}_README.txt&quot;<br /> File &quot;${GPAK_TXT}\${GPAK_NAME}_ChangeLog.txt&quot;<br /> File &quot;${GPAK_U}\${GPAK_NAME}.u&quot;<br /> SectionEnd<br /> <br /> !ifdef ${_b}<br /> Section ${_b} ${GPAK_NAME}02<br /> SetOutPath &quot;${GPAK_INST}${GPAK_CONT}&quot;<br /> File &quot;${GPAK_CONT}\${GPAK_NAME}\*.udk&quot;<br /> File &quot;${GPAK_CONT}\${GPAK_NAME}\*.upk&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_c}<br /> Section ${_c} ${GPAK_NAME}03<br /> SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GAMED_PAK}\config\${GPAK_NAME}.ini&quot;<br /> ;File &quot;${GAMED_PAK}\${GPAK_NAME}.int&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_d}<br /> Section ${_d} ${GPAK_NAME}04<br /> ;SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.uc&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.uci&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_c}<br /> Section ${_c} ${GPAK_NAME}05<br /> ;SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.pdf&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.upk&quot;<br /> SectionEnd<br /> !endif<br /> SectionGroupEnd<br /> !macroend<br /> <br /> !macro UN_GPAK_SECG GPAK_NAME _a _b<br /> <br /> !macroend<br /> &lt;/syntaxhighlight&gt;<br /> <br /> ===Creating an NSIS package script===</div> 00zX https://wiki.beyondunreal.com/User:00zX/Setting_Up_Your_UScript_Environment?diff=45035 User:00zX/Setting Up Your UScript Environment 2012-03-06T10:31:56Z <p>00zX: /* Introduction to NSIS */</p> <hr /> <div>Step by step process of installing, setting up jEdit for use with Uscript. From start to finish, using/committing to repository's and building using Apache Ant. A major portion of this tutorial is dedicated to giving you the knowledge to editing/customizing your programming environment to your liking (I do feel this can help to improve workflow).<br /> <br /> {{ambox|text=you can replace any of these with a program of your choosing, some of the [[Unreal_Wiki:Basic_procedures|basic procedure]] in this tutorial are generic enough that program doesnt matter. Some of these steps however are only directly relevant to the programs listed below.}}<br /> Tools suggested for this tutorial:<br /> *[[jEdit]] - Programmers text editor [[Legacy:JEdit|jEdit]]<br /> *[[GIT]] - Source/Build Repository<br /> *[[UnCodeX]] - UScript Class Browser<br /> *[[NSIS]] - Installer/Packaging<br /> <br /> ==Introduction to jEdit==<br /> :[http://www.jedit.org/ jEdit] is a powerful, cross platform, java based programmers text editor.&lt;br&gt;<br /> <br /> ===Edit Modes===<br /> :jEdit uses what is called edit modes, these specify:<br /> ::* Syntax highlighting rules<br /> ::* Auto indent behavior<br /> ::* Various other customizations for editing a certain filetype<br /> <br /> :These edit modes are easily installed an updated, they use the XML language and jEdits own document type definition for modes (xmode.dtd). More information on edit modes can be found within jEdits Help section along with a section on writing edit modes so you can customize jEdits UScript mode to your liking.&lt;br&gt;<br /> <br /> ====Setting jEdits Mode====<br /> ::By default jEdit comes with a UScript mode which can be located in the {'''jEdit Home Directory'''}\Modes this edit mode is very light weight and doesnt cover all engine versions.&lt;br&gt;<br /> ::Im going to recommend not using this directory if you plan to modify your edit mode or use one of the custom ones provided below, the reason for this is simpler backups when using the document directory.&lt;br&gt;<br /> <br /> ::On jEdits main toolbar you will find the utilities button, under that is the global options which contains the options for all edit modes. Syntax highlighting colours can be found in here also.<br /> <br /> ::[[User:Wormbo/UScript_edit_mode|Wormbo's UScript jEdit Mode]]&lt;br&gt;<br /> ::[[User:00zX/UScript.xml|My modified UScript jEdit Mode]]&lt;br&gt;<br /> <br /> ===Recommended Plugins===<br /> :* Project Viewer: Usability.<br /> :* Buffer Tabs: Usability.<br /> :* Dirty Gutter: Diff.<br /> :* TaskList: TODO, NOTE, FIXME's<br /> :* Text Autocomplete: Usability - Code Completion.<br /> :* WhiteSpace: Usability/Readability.<br /> <br /> ===Plugin Installation and Settings===<br /> ::jEdits Plugin Manager and Settings can be accessed through the Plugins button on the main toolbar (show picture).&lt;br&gt;<br /> <br /> ::To install new plugins, click on the plugin manager and you will notice a tab up the top of the new window which says install (show picture).<br /> Navigate to this and select the check-boxes for all plugins you wish to install then hit install in the lower left of the panel.<br /> <br /> ::The plugin settings can be found under the Plugins/Plugin Option button on jEdits main toolbar at the top.<br /> <br /> {{ambox|type=notice|text=I'll guide you through the settings for each of the recommended plugins to show you which options I prefer as you may want to adjust these or similar to your liking.}}<br /> &lt;br&gt;<br /> ===Creating your first Project===<br /> :In this part of the tutorial we will be creating a project using jEdit and Project Viewer.<br /> <br /> :First off I prefer to have the project viewer docked on the left hand side of jEdit, you can however put it anywhere you wish to place it.<br /> Right click on All Projects which you should see in your project viewer, add a new group (this is a recommendation), this will help to keep all your UScript UT3/UDK etc separate from any other projects you may wish to create.<br /> I have a group named '''UE3''' for example, then under that group I have '''UT3''' and '''UDK''' to house each of the projects I have for each.<br /> <br /> :Once you have your groups setup to your liking you are ready to create a project, this will require that you have a directory to scan for source files within.<br /> &lt;br&gt;<br /> ====Directory Structure and creating Package Folders====<br /> Firstly you will need to have an understanding of '''[[Engine_Directory_Structure|Unreal Engine's directory structure]]''', from there you will be able to [[Set_up_a_package_directory|create the required directory for a package]] so you can [[compile]] the [[UC_File|*.UC files]] into a [[Script Package File|script package file]](*.U). For Unreal Script [[Classes]] ([[UC_File|*.UC files]]) you will need to first make the ''package'' directory and then the ''Classes'' directory. <br /> <br /> Right click on the group you wish to create the project within, click '''Add Project'''. This will display the create project dialogs (show Picture)<br /> Select a name and the root directory for you project, for now select {'''Your Package'''} directory. Or alternatively if you wish to use multiple [[package]]'s for your project you may add the {[[base source directory]]}, you will however need to filter the imported folders so that only the ones you require for your project are displayed.<br /> <br /> Project Viewer would now have selected the project for you, you can navigate back to all projects using the drop down box at the top of Project Viewer.<br /> &lt;br&gt;<br /> <br /> ===Creating your first Class===<br /> Go to file in jEdits main toolbar, select new and follow this basic procedure [[Create a class]].<br /> <br /> You'll notice that Project Viewer doesnt automatically scan for new classes unless it has been selected to do so. Right click on your project in the Project Viewer panel and select 'Re-import files'.<br /> Make sure the Project and Classes directories are expanded and you should now see {'''Your Class'''} in there.<br /> <br /> ====More on jEdit Modes====<br /> Creating a customized template an macro for creating a new class based on this template.<br /> <br /> ====Customizing Project Viewer====<br /> Specialized section on setting up Project Viewer's context (Right Click) menu to contain a create class button which will create a class based on a UScript template.<br /> <br /> You may skip to [[User:00zX#Compiling|Compiling]] at this point, though I highly recommend you come back and follow up on [[UnCodex]].<br /> <br /> ==Introduction to UnCodex==<br /> This is basically a must have application for anyone doing UScript unless ofcoarse you opt to use other IDE's which contain their own class browsers.<br /> Personally I think [[UnCodeX]] is still the best out there and its quick with minimal overhead.<br /> <br /> There are two versions of [[UnCodeX]] that I use, I prefer using the older 227 for anything pre-UE3 or TribesV for those I use the newer 237-beta version.<br /> <br /> {{ambox|type=notice|text=Ideally jEdit would allow UScript class browsing like it does Java. There was an Eclipse plugin, theres a Visual Studio IDE called [Nfringe] and there is also (Gah I forget the name).}}<br /> &lt;br&gt;<br /> ===Setting Up UnCodex===<br /> Working with multiple copies of unreal engine source (for example, numerous [[UDK]] copies) can be tedious to continuously analyze all the time in [[UnCodex]] so I'll guide you through setting it up so you can have numerous shortcuts all which cache different versions of [[Unreal Engine]].<br /> You have to be careful however, this can get confusing as to which copy is in which [[UnCodeX]] window but you can double check the title bar, which I highly recommend you do. I have been caught out a few times with this myself between [[UT3]] and [[UDK]] sources.&lt;br&gt;<br /> <br /> As a general rule of thumb I just use the naming convention:&lt;br&gt;<br /> &quot;Drive:\{UnCodeX}\UnCodeX.exe&quot; -config UnCodeX-{GameName/Version}.ini&lt;br&gt;<br /> <br /> ::'''UT2004''' - &quot;Drive:\{UnCodeX227}\UnCodeX.exe&quot; -config UnCodeX-UT2004.ini&lt;br&gt;<br /> ::'''DeusEx''' - &quot;Drive:\{UnCodeX227}\UnCodeX.exe&quot; -config UnCodeX-DeusEx.ini&lt;br&gt;<br /> ::'''UT3''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UT3.ini&lt;br&gt;<br /> ::'''UDK''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UDK-2009-11-2.ini&lt;br&gt;<br /> ::'''UDK''' - &quot;Drive:\{UnCodeX237-beta}\UnCodeX.exe&quot; -config UnCodeX-UDK-2010-03.ini&lt;br&gt;<br /> <br /> Now these [[INI_File|INI]]'s will have to exist for this to work, so copy the default ''UnCodeX.ini'' and rename it to ''UnCodeX-{GameName/Version}.ini''.<br /> Open this file in jEdit or notepad for editing,<br /> <br /> &lt;pre&gt;<br /> [Sources]<br /> ''Add your source directories here''<br /> &lt;/pre&gt; <br /> ::'''UT2004''' - {[[Base Directory]]}\System\&lt;br&gt;<br /> ::'''UT3''' - {[[User Documents Directory]]}\My Games\Unreal Tournament 3\UTGame\Src\&lt;br&gt;<br /> <br /> {{ambox|type=notice|text=This can be done once [[UnCodeX]] is loaded for this mode.}}&lt;br&gt;<br /> <br /> {{ambox|type=notice|text=For UT3 you will require two directories selected for scanning, one is the exported script directory the other is Src directory within UTGame.<br /> With UT2.x and UDK you work along side Epic's Packages so it'll scan both, you can set [[UnCodeX]] to scan numerous directories for any mode.}}&lt;br&gt;<br /> <br /> {{ambox|type=warning|text=This is an absolute requirement for [[UnCodeX]] to function in multiple mode's correctly. In the past I have forgotten to do this and as the cache is not saved for that source directory you must rescan each time [[UnCodeX]] is loaded.}}<br /> &lt;pre&gt;<br /> [GUI.General]<br /> StateFile=UnCodeX-{GameName-Version}.ucx<br /> &lt;/pre&gt;<br /> <br /> ::'''UT2004''' - StateFile=UnCodeX-UT2004.ucx&lt;br&gt;<br /> ::'''DeusEx''' - StateFile=UnCodeX-DeusEx.ucx&lt;br&gt;<br /> ::'''UT3''' - StateFile=UnCodeX-UT3.ucx&lt;br&gt;<br /> ::'''UDK''' - StateFile=UnCodeX-UDK-2009-11-2.ucx&lt;br&gt;<br /> ::'''UDK''' - StateFile=UnCodeX-UDK-2010-03.ucx&lt;br&gt;<br /> <br /> Once you have done that for your required modes you can boot the shortcut and analyze the source, now every time you boot you would be using the cache for that ini/source.<br /> <br /> ==Introduction to Git==<br /> Git is a free &amp; open source, distributed version control system.<br /> [http://git-scm.com/ GIT]&lt;br&gt;<br /> [http://code.google.com/p/msysgit/ msysgit - windows]&lt;br&gt;<br /> ===GIT command prompt===<br /> =====Creating a repository======<br /> &lt;syntaxhighlight lang=&quot;bash&quot;&gt;<br /> # cd hello<br /> # ls<br /> # git init<br /> # git add . <br /> &lt;/syntaxhighlight&gt;<br /> =====Pushing a repository to GitHub=====<br /> Create a repository on GitHub then...<br /> &lt;syntaxhighlight lang=&quot;bash&quot;&gt;<br /> # cd hello<br /> # git remote add origin git@github.com:tabrez/hello.git<br /> # git push origin master <br /> &lt;/syntaxhighlight&gt;<br /> &lt;br&gt;<br /> ===GIT GUI===<br /> ====Pushing a repository to GitHub====<br /> ==Compiling==<br /> ===Using Batch (Windows)===<br /> ''UDK'' - Simple Compile batch<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> Drive:\UDK\{UDK-Version}\Binaries\UDK.exe make -debug -intermediate -log=CompileLog.log -full<br /> pause<br /> &lt;/syntaxhighlight&gt;<br /> &lt;br&gt;<br /> <br /> ''UT3'' - Multi-Package Compile batch<br /> &lt;syntaxhighlight lang=&quot;dos&quot;&gt;<br /> @echo Off<br /> prompt $g<br /> rem BASE DIRECTORIES<br /> set UTDIR=&quot;D:\Midway\Unreal Tournament 3&quot;<br /> set UTCOM=%UTDIR%\Binaries\UT3.COM<br /> <br /> rem PROJECT DETAILS<br /> set UP1=UT_<br /> set UP2=UT_GDP_<br /> set K1=MDB<br /> set K2=GameDex<br /> set K3=Newtators<br /> set K4=Mutatoes<br /> <br /> rem script<br /> set UTCONFIG=..\Config<br /> set UTCOMSRC=..\Unpublished\CookedPC\Script<br /> set MYCOMSRC=..\Unpublished\CookedPC\GameDex<br /> <br /> @echo On<br /> del %MYCOMSRC%\%UP1%%K1%.u<br /> del %MYCOMSRC%\%UP1%%K2%.u<br /> del %MYCOMSRC%\%K3%\%UP2%%K3%.u<br /> rem del %MYCOMSRC%\%K4%\%UP2%%K4%.u<br /> <br /> %UTCOM% make -debug -useunpublished -log=CompileLog.log -full<br /> copy %UTCOMSRC%\%UP1%%K1%.u %MYCOMSRC%\%UP1%%K1%.u<br /> copy %UTCOMSRC%\%UP1%%K2%.u %MYCOMSRC%\%UP1%%K2%.u<br /> copy %UTCOMSRC%\%UP2%%K3%.u %MYCOMSRC%\%K3%\%UP2%%K3%.u<br /> copy %UTCOMSRC%\%UP2%%K4%.u %MYCOMSRC%\%K4%\%UP2%%K4%.u<br /> del %UTCOMSRC%\%UP1%%K1%.u<br /> del %UTCOMSRC%\%UP1%%K2%.u<br /> del %UTCOMSRC%\%UP2%%K3%.u<br /> del %UTCOMSRC%\%UP2%%K4%.u<br /> <br /> del %UTCONFIG%\%UP1%%K2%.ini<br /> del %UTCONFIG%\%UP2%%K3%.ini<br /> rem del %UTCONFIG%\%UP2%%K4%.ini<br /> <br /> pause<br /> prompt $p$g<br /> &lt;/syntaxhighlight&gt;<br /> &lt;/div&gt;&lt;/div&gt;<br /> <br /> ==Running Unreal Engine with your package==<br /> ==Introduction to NSIS==<br /> [http://nsis.sourceforge.net/Main_Page NSIS]<br /> <br /> &lt;syntaxhighlight lang=&quot;nsis&quot;&gt;<br /> ;<br /> ; GameDex.nsh<br /> ; Creation Date: 19/04/2010 10:33<br /> ; Last Updated: 04/03/2012 22:33<br /> ; Contributors: 00zX<br /> ; Attribution-Noncommercial-Share Alike 3.0 Unported<br /> ; http://creativecommons.org/licenses/by-nc-sa/3.0/<br /> ;<br /> <br /> XPStyle on<br /> ;SetCompressorDictSize dict_size_mb<br /> SetDatablockOptimize on<br /> SetCompressor /SOLID lzma<br /> <br /> ; HM NIS Edit Wizard helper defines<br /> !define PRODUCT_NAME &quot;Gamed&quot;<br /> !define PRODUCT_VERSION &quot;v3.16&quot;<br /> !define PRODUCT_PUBLISHER &quot;00zX&quot;<br /> ;!define PRODUCT_UNINST_KEY &quot;Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}&quot;<br /> ;!define PRODUCT_UNINST_ROOT_KEY &quot;HKLM&quot;<br /> <br /> ;--------------------------------<br /> ;Include (Custom) Modern UI v2<br /> !include &quot;NSIS\Contrib\Gamed\MUI2_Unreal.nsh&quot;<br /> ;!include &quot;${NSISDIR}\include\MultiUser.nsh&quot;<br /> <br /> ;!define MULTIUSER_MUI<br /> <br /> ; MUI Settings<br /> !define MUI_ABORTWARNING<br /> !define MUI_ICON &quot;NSIS\Contrib\Gamed\Graphics\Icons\SweetRevengeTemptIcon5s.ico&quot;<br /> !define MUI_UNICON &quot;NSIS\Contrib\Gamed\Graphics\Icons\SweetRevengeTemptIcon5s.ico&quot;<br /> <br /> ; UT3 Uninstall Registry Location<br /> ;!define REG_UT &quot;Software\Microsoft\Windows\CurrentVersion\Uninstall\{BFA90209-7AFF-4DB6-8E4B-E57305751AD7}&quot;<br /> <br /> ;Interface Configuration<br /> !define MUI_HEADERIMAGE<br /> !define MUI_HEADERIMAGE_BITMAP &quot;NSIS\Contrib\Gamed\Graphics\Header\TemptHeader.bmp&quot;<br /> <br /> ;--------------------------------<br /> ;Standard Pages<br /> !insertmacro MUI_PAGE_WELCOME<br /> ;!insertmacro MUI_PAGE_LICENSE &quot;NSIS\Contrib\Gamed\Docs\License.txt&quot;<br /> ;!insertmacro MULTIUSER_PAGE_INSTALLMODE<br /> <br /> !ifdef PRODUCT_MODE_STANDARD<br /> !define PRODUCT_MODE &quot;Std&quot;<br /> !insertmacro MUI_PAGE_DIRECTORY<br /> !insertmacro MUI_PAGE_INSTFILES<br /> !insertmacro MUI_PAGE_FINISH<br /> !endif<br /> !ifdef PRODUCT_MODE_DEVELOPMENT<br /> !define PRODUCT_MODE &quot;DevEd&quot;<br /> !define MUI_COMPONENTSPAGE_SMALLDESC ;No value<br /> !insertmacro MUI_PAGE_COMPONENTS<br /> !insertmacro MUI_PAGE_DIRECTORY<br /> !insertmacro MUI_PAGE_INSTFILES<br /> ; !define MUI_FINISHPAGE_SHOWREADME &quot;$INSTDIR\UTGame\Published\CookedPC\Script\README_Newtators.txt&quot;<br /> !insertmacro MUI_PAGE_FINISH<br /> !insertmacro MUI_UNPAGE_INSTFILES<br /> !endif<br /> <br /> !insertmacro MUI_LANGUAGE &quot;English&quot;<br /> ; MUI end ------<br /> <br /> Name &quot;${PRODUCT_NAME} ${PRODUCT_VERSION}&quot;<br /> OutFile &quot;${PRODUCT_NAME}-${PRODUCT_VERSION}-${PRODUCT_MODE}.exe&quot;<br /> ShowInstDetails hide<br /> <br /> ;!macro MULTIUSER_INIT_TEXTS<br /> ;!macroend<br /> <br /> ;!ifdef PRODUCT_MODE<br /> ;!endif<br /> <br /> ;--------------------------------<br /> ;Util<br /> !macro redef olddef newdef<br /> !ifdef ${olddef}<br /> !undef ${olddef}<br /> !endif<br /> !define ${olddef} &quot;${newdef}&quot;<br /> !macroend<br /> <br /> ;--------------------------------<br /> !define UDK &quot;UDKGame&quot;<br /> !define UDK_SRC &quot;Development\Src&quot;<br /> !define UDK_CONT &quot;UDKGame\Content&quot;<br /> ;!define UDK_PAK_PATH &quot;$INSTDIR\${UDK_CONT}&quot;<br /> ;!define UDK_UNPAK_PATH &quot;$INSTDIR\UDKGame\Content\GamedEx&quot;<br /> <br /> !define GAMED &quot;Gamed&quot;<br /> <br /> !macro GPAK_SECG GPAK_NAME _a _b<br /> !insertmacro redef GPAK_INST &quot;$INSTDIR\${UDK_CONT}\${GPAK_NAME}&quot;<br /> !insertmacro redef GPAK_TXT &quot;${UDK_SRC}\${GPAK_NAME}&quot;<br /> !insertmacro redef GPAK_UC &quot;${UDK_SRC}\${GPAK_NAME}\Classes&quot;<br /> !insertmacro redef GPAK_U &quot;${UDK}\script&quot;<br /> !insertmacro redef GPAK_CONT &quot;${UDK_CONT}\${GPAK_NAME}&quot;<br /> SectionGroup ${GPAK_NAME} SEC_${GPAK_NAME}<br /> SetOverwrite ifnewer<br /> Section ${_a} ${GPAK_NAME}01<br /> SetOutPath &quot;$GPAK_INST&quot;<br /> File &quot;${GPAK_TXT}\${GPAK_NAME}_README.txt&quot;<br /> File &quot;${GPAK_TXT}\${GPAK_NAME}_ChangeLog.txt&quot;<br /> File &quot;${GPAK_U}\${GPAK_NAME}.u&quot;<br /> SectionEnd<br /> <br /> !ifdef ${_b}<br /> Section ${_b} ${GPAK_NAME}02<br /> SetOutPath &quot;${GPAK_INST}${GPAK_CONT}&quot;<br /> File &quot;${GPAK_CONT}\${GPAK_NAME}\*.udk&quot;<br /> File &quot;${GPAK_CONT}\${GPAK_NAME}\*.upk&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_c}<br /> Section ${_c} ${GPAK_NAME}03<br /> SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GAMED_PAK}\config\${GPAK_NAME}.ini&quot;<br /> ;File &quot;${GAMED_PAK}\${GPAK_NAME}.int&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_d}<br /> Section ${_d} ${GPAK_NAME}04<br /> ;SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.uc&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.uci&quot;<br /> SectionEnd<br /> !endif<br /> <br /> !ifdef ${_c}<br /> Section ${_c} ${GPAK_NAME}05<br /> ;SetOutPath &quot;$GPAK_INST$GPAK_CONT&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.pdf&quot;<br /> ;File &quot;${GPAK_CONT}\${GPAK_NAME}\*.upk&quot;<br /> SectionEnd<br /> !endif<br /> SectionGroupEnd<br /> !macroend<br /> <br /> !macro UN_GPAK_SECG GPAK_NAME _a _b<br /> <br /> !macroend<br /> &lt;/syntaxhighlight&gt;<br /> <br /> ===Creating an NSIS package script===</div> 00zX https://wiki.beyondunreal.com/User:00zX?diff=45034 User:00zX 2012-03-06T10:27:22Z <p>00zX: /* Wiki */</p> <hr /> <div>__NOTOC__<br /> ==Wiki==<br /> ====General====<br /> :[[User:00zX/Setting_Up_Your_UScript_Environment|Setting Up Your UScript Environment]]<br /> ====UE3====<br /> :[[User:00zX/Using_The_Unreal_Engine_3_Preprocessor|Using The Unreal Engine 3 Preprocessor]]<br /> ====UE2.5====<br /> :[[UE2:Using_the_UT2004_mod_system|Using The UT2004 Mod System]]<br /> ====Rants====<br /> [[User:00zX/Rants|Rants]]<br /> <br /> ==Work==<br /> ====Unreal Development Kit====<br /> :[[User:00zX/Plugin_(UDK)|UDK: ReDeX]] <br /> :''Status:'' '''Testing''' ''Description:'' PC Framework for UDK, its a combination of a framework and macros along with associated parser functionality.<br /> ::'''[[User:00zX/UScriptIt_(UDK)|UScriptIt:]]''' UDK.uci / UCX.uci Parser/Generator written in C#! Converting an slimline version of [[UnrealScript]] into pure [[UnrealScript]]..<br /> ::'''GamedPlug:''' ReDex.uci Main interface for Game Packages, this contains global interfaces and objects.<br /> ::''GamedGFx:''' Scaleform interface along with object saving/loading.<br /> ::'''GamedEx:''' GPAK Game framework built using Redux, support for many features; round based play, archetype systems, additions to particles, materials, etc.<br /> ::'''GamedCaster:''' First Person Multiplayer PvP.<br /> <br /> :[[User:00zX/Project Silky_(UDK)|UDK: Project Silky]] ''Status:'' '''Alpha''' (on hold)<br /> ====Unreal Tournament 3====<br /> :[[User:00zX/GameDex Framework_(UT3)|UT3: GameDex Framework]] ''Status:'' '''Beta''' (on hold)<br /> ::[[User:00zX/GameDex_Framework_(UT3)#Newtators (Mutator pack)|Newtators-v1.9e]] ''Status:'' '''Point Release'''<br /> ::[[User:00zX/GameDex_Framework_(UT3)#Attrition (Gametype)|Attrition-v0.5pb]] ''Status:'' '''Public Beta'''<br /> ====Unreal Tournament 2004====<br /> :[[User:00zX/UC2004_(UT2004)|UT2004: Unreal Championship 2004]] ''Status:'' '''Beta''' (dissolved)<br /> :[[User:00zX/TurboInsta_(UT2004)|UT2004: Turbo Instagib]] ''Status:'' '''Beta'''<br /> :[[User:00zX/CrapLink_(UT2004)|UT2004: Turbo Instagib]] ''Status:'' '''Beta'''<br /> &lt;br&gt;<br /> <br /> ==Highlighters==<br /> <br /> ===UnrealWiki - Code Noir Redex Theme=== <br /> [[File:Monobook-noir-alpha3.gif|700px|thumb|left]]<br /> ====Status: Beta====<br /> To Install copy the contents of the following page into your own ''''User:[name]/monobook.css'''' page.<br /> ::[[User:00zX/monobook.css]]<br /> ::[http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Fwiki.beyondunreal.com%2FUser%3A00zX%2Fmonobook.css&amp;profile=css21&amp;usermedium=all&amp;warning=1&amp;lang=en W3C CSS Validator]<br /> ::[http://i10.photobucket.com/albums/a123/OlympusMons/CodeNoirRedeX.png High Resolution Image]&lt;br&gt;<br /> =====Features=====<br /> :Dark Theme<br /> :High Contrast<br /> :Improved Readability<br /> :Highlighter adjustments for UScript, CSS and XML<br /> :Different coloured borders per GameNameSpace<br /> :Curved Borders in supporting browsers<br /> =====Known Issues=====<br /> :Edit/Input boxes are still black text on white.<br /> :Profile settings page unreadable.<br /> &lt;br&gt;&lt;br&gt;&lt;br&gt;<br /> &lt;br&gt;<br /> <br /> ==Contact Me==<br /> ====IRC==== <br /> _00zX on [irc://irc.enterthegame.com EnterTheGame]<br /> ;* [irc://irc.enterthegame.com/unrealscript #unrealscript on EnterTheGame]<br /> ;* [irc://irc.enterthegame.com/beyondunreal #beyondunreal on EnterTheGame]<br /> _00zX on [irc://irc.gamesurge.net GameSurge]<br /> ;* [irc://irc.irc.gamesurge.net/udkc #udkc on GameSurge]<br /> <br /> ====Other/Profiles====<br /> [[Special:Emailuser/00zX|E-mail 00zX]] or on<br /> ;* [http://www.filefront.com/user/00zX filefront]<br /> ;* [http://delicious.com/00zX delicious]<br /> ;* [http://00zx.pastebin.com pastebin]<br /> <br /> --------&lt;br&gt;</div> 00zX https://wiki.beyondunreal.com/User:00zX?diff=45033 User:00zX 2012-03-06T10:27:00Z <p>00zX: /* Work */</p> <hr /> <div>__NOTOC__<br /> ==Wiki==<br /> ===General===<br /> :[[User:00zX/Setting_Up_Your_UScript_Environment|Setting Up Your UScript Environment]]<br /> ===UE3===<br /> :[[User:00zX/Using_The_Unreal_Engine_3_Preprocessor|Using The Unreal Engine 3 Preprocessor]]<br /> ===UE2.5===<br /> :[[UE2:Using_the_UT2004_mod_system|Using The UT2004 Mod System]]<br /> ===Rants===<br /> [[User:00zX/Rants|Rants]]<br /> <br /> ==Work==<br /> ====Unreal Development Kit====<br /> :[[User:00zX/Plugin_(UDK)|UDK: ReDeX]] <br /> :''Status:'' '''Testing''' ''Description:'' PC Framework for UDK, its a combination of a framework and macros along with associated parser functionality.<br /> ::'''[[User:00zX/UScriptIt_(UDK)|UScriptIt:]]''' UDK.uci / UCX.uci Parser/Generator written in C#! Converting an slimline version of [[UnrealScript]] into pure [[UnrealScript]]..<br /> ::'''GamedPlug:''' ReDex.uci Main interface for Game Packages, this contains global interfaces and objects.<br /> ::''GamedGFx:''' Scaleform interface along with object saving/loading.<br /> ::'''GamedEx:''' GPAK Game framework built using Redux, support for many features; round based play, archetype systems, additions to particles, materials, etc.<br /> ::'''GamedCaster:''' First Person Multiplayer PvP.<br /> <br /> :[[User:00zX/Project Silky_(UDK)|UDK: Project Silky]] ''Status:'' '''Alpha''' (on hold)<br /> ====Unreal Tournament 3====<br /> :[[User:00zX/GameDex Framework_(UT3)|UT3: GameDex Framework]] ''Status:'' '''Beta''' (on hold)<br /> ::[[User:00zX/GameDex_Framework_(UT3)#Newtators (Mutator pack)|Newtators-v1.9e]] ''Status:'' '''Point Release'''<br /> ::[[User:00zX/GameDex_Framework_(UT3)#Attrition (Gametype)|Attrition-v0.5pb]] ''Status:'' '''Public Beta'''<br /> ====Unreal Tournament 2004====<br /> :[[User:00zX/UC2004_(UT2004)|UT2004: Unreal Championship 2004]] ''Status:'' '''Beta''' (dissolved)<br /> :[[User:00zX/TurboInsta_(UT2004)|UT2004: Turbo Instagib]] ''Status:'' '''Beta'''<br /> :[[User:00zX/CrapLink_(UT2004)|UT2004: Turbo Instagib]] ''Status:'' '''Beta'''<br /> &lt;br&gt;<br /> <br /> ==Highlighters==<br /> <br /> ===UnrealWiki - Code Noir Redex Theme=== <br /> [[File:Monobook-noir-alpha3.gif|700px|thumb|left]]<br /> ====Status: Beta====<br /> To Install copy the contents of the following page into your own ''''User:[name]/monobook.css'''' page.<br /> ::[[User:00zX/monobook.css]]<br /> ::[http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Fwiki.beyondunreal.com%2FUser%3A00zX%2Fmonobook.css&amp;profile=css21&amp;usermedium=all&amp;warning=1&amp;lang=en W3C CSS Validator]<br /> ::[http://i10.photobucket.com/albums/a123/OlympusMons/CodeNoirRedeX.png High Resolution Image]&lt;br&gt;<br /> =====Features=====<br /> :Dark Theme<br /> :High Contrast<br /> :Improved Readability<br /> :Highlighter adjustments for UScript, CSS and XML<br /> :Different coloured borders per GameNameSpace<br /> :Curved Borders in supporting browsers<br /> =====Known Issues=====<br /> :Edit/Input boxes are still black text on white.<br /> :Profile settings page unreadable.<br /> &lt;br&gt;&lt;br&gt;&lt;br&gt;<br /> &lt;br&gt;<br /> <br /> ==Contact Me==<br /> ====IRC==== <br /> _00zX on [irc://irc.enterthegame.com EnterTheGame]<br /> ;* [irc://irc.enterthegame.com/unrealscript #unrealscript on EnterTheGame]<br /> ;* [irc://irc.enterthegame.com/beyondunreal #beyondunreal on EnterTheGame]<br /> _00zX on [irc://irc.gamesurge.net GameSurge]<br /> ;* [irc://irc.irc.gamesurge.net/udkc #udkc on GameSurge]<br /> <br /> ====Other/Profiles====<br /> [[Special:Emailuser/00zX|E-mail 00zX]] or on<br /> ;* [http://www.filefront.com/user/00zX filefront]<br /> ;* [http://delicious.com/00zX delicious]<br /> ;* [http://00zx.pastebin.com pastebin]<br /> <br /> --------&lt;br&gt;</div> 00zX https://wiki.beyondunreal.com/User:00zX?diff=45032 User:00zX 2012-03-06T10:25:53Z <p>00zX: /* Work */</p> <hr /> <div>__NOTOC__<br /> ==Wiki==<br /> ===General===<br /> :[[User:00zX/Setting_Up_Your_UScript_Environment|Setting Up Your UScript Environment]]<br /> ===UE3===<br /> :[[User:00zX/Using_The_Unreal_Engine_3_Preprocessor|Using The Unreal Engine 3 Preprocessor]]<br /> ===UE2.5===<br /> :[[UE2:Using_the_UT2004_mod_system|Using The UT2004 Mod System]]<br /> ===Rants===<br /> [[User:00zX/Rants|Rants]]<br /> <br /> ==Work==<br /> ====Unreal Development Kit====<br /> :[[User:00zX/UScriptIt_(UDK)|UDK: UScriptIt]]<br /> :''Description:'' Primarily a group of applications, including highlighters and program schemes.<br /> ::[[User:00zX/UScriptIt_Parser_Generator_(CS)|C#: UScriptIt Parser/Generator]]<br /> ::''Description:'' Converting an slimline version of [[UnrealScript]] into pure [[UnrealScript]].<br /> <br /> :[[User:00zX/Plugin_(UDK)|UDK: ReDeX]] <br /> :''Status:'' '''Testing''' ''Description:'' PC Framework for UDK, its a combination of a framework and macros along with associated parser functionality.<br /> ::'''UScriptIt:''' UDK.uci / UCX.uci Parser/Generator written in C#! Converting an slimline version of [[UnrealScript]] into pure [[UnrealScript]]..<br /> ::'''GamedPlug:''' ReDex.uci Main interface for Game Packages, this contains global interfaces and objects.<br /> ::''GamedGFx:''' Scaleform interface along with object saving/loading.<br /> ::'''GamedEx:''' GPAK Game framework built using Redux, support for many features; round based play, archetype systems, additions to particles, materials, etc.<br /> ::'''GamedCaster:''' First Person Multiplayer PvP.<br /> <br /> :[[User:00zX/Project Silky_(UDK)|UDK: Project Silky]] ''Status:'' '''Alpha''' (on hold)<br /> ====Unreal Tournament 3====<br /> :[[User:00zX/GameDex Framework_(UT3)|UT3: GameDex Framework]] ''Status:'' '''Beta''' (on hold)<br /> ::[[User:00zX/GameDex_Framework_(UT3)#Newtators (Mutator pack)|Newtators-v1.9e]] ''Status:'' '''Point Release'''<br /> ::[[User:00zX/GameDex_Framework_(UT3)#Attrition (Gametype)|Attrition-v0.5pb]] ''Status:'' '''Public Beta'''<br /> ====Unreal Tournament 2004====<br /> :[[User:00zX/UC2004_(UT2004)|UT2004: Unreal Championship 2004]] ''Status:'' '''Beta''' (dissolved)<br /> :[[User:00zX/TurboInsta_(UT2004)|UT2004: Turbo Instagib]] ''Status:'' '''Beta'''<br /> :[[User:00zX/CrapLink_(UT2004)|UT2004: Turbo Instagib]] ''Status:'' '''Beta'''<br /> &lt;br&gt;<br /> <br /> ==Highlighters==<br /> <br /> ===UnrealWiki - Code Noir Redex Theme=== <br /> [[File:Monobook-noir-alpha3.gif|700px|thumb|left]]<br /> ====Status: Beta====<br /> To Install copy the contents of the following page into your own ''''User:[name]/monobook.css'''' page.<br /> ::[[User:00zX/monobook.css]]<br /> ::[http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Fwiki.beyondunreal.com%2FUser%3A00zX%2Fmonobook.css&amp;profile=css21&amp;usermedium=all&amp;warning=1&amp;lang=en W3C CSS Validator]<br /> ::[http://i10.photobucket.com/albums/a123/OlympusMons/CodeNoirRedeX.png High Resolution Image]&lt;br&gt;<br /> =====Features=====<br /> :Dark Theme<br /> :High Contrast<br /> :Improved Readability<br /> :Highlighter adjustments for UScript, CSS and XML<br /> :Different coloured borders per GameNameSpace<br /> :Curved Borders in supporting browsers<br /> =====Known Issues=====<br /> :Edit/Input boxes are still black text on white.<br /> :Profile settings page unreadable.<br /> &lt;br&gt;&lt;br&gt;&lt;br&gt;<br /> &lt;br&gt;<br /> <br /> ==Contact Me==<br /> ====IRC==== <br /> _00zX on [irc://irc.enterthegame.com EnterTheGame]<br /> ;* [irc://irc.enterthegame.com/unrealscript #unrealscript on EnterTheGame]<br /> ;* [irc://irc.enterthegame.com/beyondunreal #beyondunreal on EnterTheGame]<br /> _00zX on [irc://irc.gamesurge.net GameSurge]<br /> ;* [irc://irc.irc.gamesurge.net/udkc #udkc on GameSurge]<br /> <br /> ====Other/Profiles====<br /> [[Special:Emailuser/00zX|E-mail 00zX]] or on<br /> ;* [http://www.filefront.com/user/00zX filefront]<br /> ;* [http://delicious.com/00zX delicious]<br /> ;* [http://00zx.pastebin.com pastebin]<br /> <br /> --------&lt;br&gt;</div> 00zX https://wiki.beyondunreal.com/User:00zX?diff=45031 User:00zX 2012-03-06T10:24:08Z <p>00zX: /* Work */</p> <hr /> <div>__NOTOC__<br /> ==Wiki==<br /> ===General===<br /> :[[User:00zX/Setting_Up_Your_UScript_Environment|Setting Up Your UScript Environment]]<br /> ===UE3===<br /> :[[User:00zX/Using_The_Unreal_Engine_3_Preprocessor|Using The Unreal Engine 3 Preprocessor]]<br /> ===UE2.5===<br /> :[[UE2:Using_the_UT2004_mod_system|Using The UT2004 Mod System]]<br /> ===Rants===<br /> [[User:00zX/Rants|Rants]]<br /> <br /> ==Work==<br /> ====Unreal Development Kit====<br /> :[[User:00zX/UScriptIt_(UDK)|UDK: UScriptIt]]<br /> :''Description:'' Primarily a group of applications, including highlighters and program schemes.<br /> ::[[User:00zX/UScriptIt_Parser_Generator_(CS)|C#: UScriptIt Parser/Generator]]<br /> ::''Description:'' Converting an slimline version of [[UnrealScript]] into pure [[UnrealScript]].<br /> <br /> :[[User:00zX/Plugin_(UDK)|UDK: Redux]] <br /> :''Status:'' '''Testing''' '''Description:''' PC Framework for UDK, its a combination of a framework and macros along with associated parser functionality.<br /> ::'''UScriptIt:''' 'UDK.uci / UCX.uci' Parser/Generator written in C#! Converting an slimline version of [[UnrealScript]] into pure [[UnrealScript]]..<br /> ::''GamedPlug:'' 'ReDex.uci' Main interface for Game Packages, this contains global interfaces and objects.<br /> ::''GamedGFx:'' Scaleform interface along with object saving/loading.<br /> ::''GamedEx:'' 'GPAK' Game framework built using Redux, support for many features; round based play, archetype systems, additions to particles, materials, etc.<br /> ::''GamedCaster:'' First Person Multiplayer PvP.<br /> <br /> :[[User:00zX/Project Silky_(UDK)|UDK: Project Silky]]<br /> : ''Status:'' '''Alpha''' (on hold)<br /> ====Unreal Tournament 3====<br /> :[[User:00zX/GameDex Framework_(UT3)|UT3: GameDex Framework]]<br /> :''Status:'' '''Beta''' (on hold)<br /> ::[[User:00zX/GameDex_Framework_(UT3)#Newtators (Mutator pack)|Newtators-v1.9e]]<br /> ::''Status:'' '''Point Release'''<br /> ::[[User:00zX/GameDex_Framework_(UT3)#Attrition (Gametype)|Attrition-v0.5pb]]<br /> ::''Status:'' '''Public Beta'''<br /> ====Unreal Tournament 2004====<br /> :[[User:00zX/UC2004_(UT2004)|UT2004: Unreal Championship 2004]]<br /> : ''Status:'' '''Beta''' (dissolved)<br /> :[[User:00zX/TurboInsta_(UT2004)|UT2004: Turbo Instagib]]<br /> : ''Status:'' '''Beta'''<br /> &lt;br&gt;<br /> <br /> ==Highlighters==<br /> <br /> ===UnrealWiki - Code Noir Redex Theme=== <br /> [[File:Monobook-noir-alpha3.gif|700px|thumb|left]]<br /> ====Status: Beta====<br /> To Install copy the contents of the following page into your own ''''User:[name]/monobook.css'''' page.<br /> ::[[User:00zX/monobook.css]]<br /> ::[http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Fwiki.beyondunreal.com%2FUser%3A00zX%2Fmonobook.css&amp;profile=css21&amp;usermedium=all&amp;warning=1&amp;lang=en W3C CSS Validator]<br /> ::[http://i10.photobucket.com/albums/a123/OlympusMons/CodeNoirRedeX.png High Resolution Image]&lt;br&gt;<br /> =====Features=====<br /> :Dark Theme<br /> :High Contrast<br /> :Improved Readability<br /> :Highlighter adjustments for UScript, CSS and XML<br /> :Different coloured borders per GameNameSpace<br /> :Curved Borders in supporting browsers<br /> =====Known Issues=====<br /> :Edit/Input boxes are still black text on white.<br /> :Profile settings page unreadable.<br /> &lt;br&gt;&lt;br&gt;&lt;br&gt;<br /> &lt;br&gt;<br /> <br /> ==Contact Me==<br /> ====IRC==== <br /> _00zX on [irc://irc.enterthegame.com EnterTheGame]<br /> ;* [irc://irc.enterthegame.com/unrealscript #unrealscript on EnterTheGame]<br /> ;* [irc://irc.enterthegame.com/beyondunreal #beyondunreal on EnterTheGame]<br /> _00zX on [irc://irc.gamesurge.net GameSurge]<br /> ;* [irc://irc.irc.gamesurge.net/udkc #udkc on GameSurge]<br /> <br /> ====Other/Profiles====<br /> [[Special:Emailuser/00zX|E-mail 00zX]] or on<br /> ;* [http://www.filefront.com/user/00zX filefront]<br /> ;* [http://delicious.com/00zX delicious]<br /> ;* [http://00zx.pastebin.com pastebin]<br /> <br /> --------&lt;br&gt;</div> 00zX https://wiki.beyondunreal.com/User:00zX?diff=45030 User:00zX 2012-03-06T10:23:25Z <p>00zX: /* Work */</p> <hr /> <div>__NOTOC__<br /> ==Wiki==<br /> ===General===<br /> :[[User:00zX/Setting_Up_Your_UScript_Environment|Setting Up Your UScript Environment]]<br /> ===UE3===<br /> :[[User:00zX/Using_The_Unreal_Engine_3_Preprocessor|Using The Unreal Engine 3 Preprocessor]]<br /> ===UE2.5===<br /> :[[UE2:Using_the_UT2004_mod_system|Using The UT2004 Mod System]]<br /> ===Rants===<br /> [[User:00zX/Rants|Rants]]<br /> <br /> ==Work==<br /> ====Unreal Development Kit====<br /> :[[User:00zX/UScriptIt_(UDK)|UDK: UScriptIt]]<br /> :''Description:'' Primarily a group of applications, including highlighters and program schemes.<br /> ::[[User:00zX/UScriptIt_Parser_Generator_(CS)|C#: UScriptIt Parser/Generator]]<br /> ::''Description:'' Converting an slimline version of [[UnrealScript]] into pure [[UnrealScript]].<br /> <br /> :[[User:00zX/Plugin_(UDK)|UDK: Redux]] <br /> :''Status:'' '''Testing''' '''Description:''' PC Framework for UDK, its a combination of a framework and macros along with associated parser functionality.<br /> ::''UScriptIt:'' 'UDK.uci / UCX.uci' Parser/Generator written in C#! Converting an slimline version of [[UnrealScript]] into pure [[UnrealScript]]..<br /> ::''GamedPlug:'' 'ReDex.uci' Main interface for Game Packages, this contains global interfaces and objects.<br /> ::''GamedGFx:'' Scaleform interface along with object saving/loading.<br /> ::''GamedEx:'' 'GPAK' Game framework built using Redux, support for many features; round based play, archetype systems, additions to particles, materials, etc.<br /> ::''GamedCaster:'' First Person Multiplayer PvP.<br /> <br /> :[[User:00zX/Project Silky_(UDK)|UDK: Project Silky]]<br /> : ''Status:'' '''Alpha''' (on hold)<br /> ====Unreal Tournament 3====<br /> :[[User:00zX/GameDex Framework_(UT3)|UT3: GameDex Framework]]<br /> :''Status:'' '''Beta''' (on hold)<br /> ::[[User:00zX/GameDex_Framework_(UT3)#Newtators (Mutator pack)|Newtators-v1.9e]]<br /> ::''Status:'' '''Point Release'''<br /> ::[[User:00zX/GameDex_Framework_(UT3)#Attrition (Gametype)|Attrition-v0.5pb]]<br /> ::''Status:'' '''Public Beta'''<br /> ====Unreal Tournament 2004====<br /> :[[User:00zX/UC2004_(UT2004)|UT2004: Unreal Championship 2004]]<br /> : ''Status:'' '''Beta''' (dissolved)<br /> :[[User:00zX/TurboInsta_(UT2004)|UT2004: Turbo Instagib]]<br /> : ''Status:'' '''Beta'''<br /> &lt;br&gt;<br /> <br /> ==Highlighters==<br /> <br /> ===UnrealWiki - Code Noir Redex Theme=== <br /> [[File:Monobook-noir-alpha3.gif|700px|thumb|left]]<br /> ====Status: Beta====<br /> To Install copy the contents of the following page into your own ''''User:[name]/monobook.css'''' page.<br /> ::[[User:00zX/monobook.css]]<br /> ::[http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Fwiki.beyondunreal.com%2FUser%3A00zX%2Fmonobook.css&amp;profile=css21&amp;usermedium=all&amp;warning=1&amp;lang=en W3C CSS Validator]<br /> ::[http://i10.photobucket.com/albums/a123/OlympusMons/CodeNoirRedeX.png High Resolution Image]&lt;br&gt;<br /> =====Features=====<br /> :Dark Theme<br /> :High Contrast<br /> :Improved Readability<br /> :Highlighter adjustments for UScript, CSS and XML<br /> :Different coloured borders per GameNameSpace<br /> :Curved Borders in supporting browsers<br /> =====Known Issues=====<br /> :Edit/Input boxes are still black text on white.<br /> :Profile settings page unreadable.<br /> &lt;br&gt;&lt;br&gt;&lt;br&gt;<br /> &lt;br&gt;<br /> <br /> ==Contact Me==<br /> ====IRC==== <br /> _00zX on [irc://irc.enterthegame.com EnterTheGame]<br /> ;* [irc://irc.enterthegame.com/unrealscript #unrealscript on EnterTheGame]<br /> ;* [irc://irc.enterthegame.com/beyondunreal #beyondunreal on EnterTheGame]<br /> _00zX on [irc://irc.gamesurge.net GameSurge]<br /> ;* [irc://irc.irc.gamesurge.net/udkc #udkc on GameSurge]<br /> <br /> ====Other/Profiles====<br /> [[Special:Emailuser/00zX|E-mail 00zX]] or on<br /> ;* [http://www.filefront.com/user/00zX filefront]<br /> ;* [http://delicious.com/00zX delicious]<br /> ;* [http://00zx.pastebin.com pastebin]<br /> <br /> --------&lt;br&gt;</div> 00zX https://wiki.beyondunreal.com/User:00zX/Using_The_Unreal_Engine_3_Preprocessor?diff=45029 User:00zX/Using The Unreal Engine 3 Preprocessor 2012-03-06T10:12:21Z <p>00zX: /* Useful Macros */</p> <hr /> <div>==Including Macro Files==<br /> &lt;uscript&gt;<br /> class YourPawn extends UTPawn<br /> config(YourConfig);<br /> <br /> `include(YourMacroFile.uci)<br /> &lt;/uscript&gt;<br /> <br /> ===Example Macro File===<br /> When compiling with the '''-debug''' command line switch, the debug macro will then be defined and will switch our blank spaces to config/exec respectively.<br /> <br /> &lt;uscript&gt;<br /> `if(`notdefined(Debug))<br /> `define dconf<br /> `define dexec<br /> `else<br /> `define dconf config<br /> `define dexec exec<br /> `endif<br /> &lt;/uscript&gt;<br /> <br /> Copy the above template into a blank text document and call the file YourMacroFile.uci<br /> <br /> ==Example of usage==<br /> If we want to add a variable thats configurable only when the macro `DevBuild is defined.<br /> <br /> &lt;uscript&gt;<br /> class YourPawn extends UTPawn<br /> config(YourConfig);<br /> <br /> `include(YourMacroFile.uci)<br /> <br /> var `{dconf} bool bCanDodge;<br /> <br /> function bool Dodge(eDoubleClickDir DoubleClickMove)<br /> {<br /> if(bCanDodge)<br /> return Super.Dodge(DoubleClickMove);<br /> else<br /> return false;<br /> }<br /> <br /> defaultproperties<br /> {<br /> `if(`notdefined(Debug))<br /> bCanDodge=True<br /> `endif<br /> }<br /> &lt;/uscript&gt;<br /> <br /> ===YourConfig===<br /> &lt;pre&gt;<br /> [YourPackage.YourPawn]<br /> bCanDodge=True<br /> &lt;/pre&gt;<br /> <br /> ==Example of usage==<br /> If we want to add a variable that already exists but is not config editable. (PostBeginPlay)<br /> &lt;uscript&gt;<br /> class YourPawn extends UTPawn<br /> config(YourConfig);<br /> <br /> `include(YourMacroFile.uci)<br /> <br /> `if(`isdefined(Debug))<br /> var `{dconf} float newGroundSpeed;<br /> <br /> function PossessedBy(Controller C, bool bVehicleTransition)<br /> {<br /> Super.PossessedBy(C, bVehicleTransition);<br /> <br /> GroundSpeed = newGroundSpeed;<br /> }<br /> `endif<br /> <br /> &lt;/uscript&gt;<br /> ==Useful Macros==<br /> &lt;uscript&gt;<br /> /**<br /> * 2005-2011 Daniel Batten (aka 00zX or MonsOlympus)<br /> */<br /> <br /> /** UDK HELPERS */<br /> <br /> /*`define redef(OldDef, NewDef) `undefine `{OldDef} `define `{OldDef} `{NewDef}*/<br /> <br /> /* Globals */<br /> `define sWorld_Info class'WorldInfo'.static.GetWorldInfo()<br /> `define sGame_RepInfo `{sWorldInfo}.GRI<br /> `define sGravity `{sWorldInfo}.WorldGravityZ<br /> `define sEngine class'Engine'.static<br /> <br /> <br /> /** Timers - checks the timers to see if they are active before setting or clearing them. */<br /> `define CheckClearTimer(name) if(IsTimerActive(nameof(`name))){ClearTimer(nameof(`name));}<br /> `define CheckSetTimer(time, loop, name) if(!IsTimerActive(nameof(`name))){SetTimer(`time, `loop, nameof(`name));}<br /> `define ResetTimer(time, loop, name) SetTimer(`time, `loop, nameof(`name))<br /> <br /> /** Variables and Defaults */<br /> `define SetToDefault(Obj, Var) `{Obj}.`{Var} = `{Obj}.Default.`{Var}<br /> `define SetVar(Obj, Var) `{Obj}.`{Var} = `{Var}<br /> <br /> `define CheckRet(Obj) if(`Obj == none) return<br /> <br /> /** Save/Load Object */<br /> `define SaveObj(Obj, FileName, Bool, Ver) `sEngine().BasicSaveObject(`{Obj}, `{FileName}, `{Bool}, `{Ver})<br /> `define LoadObj(Obj, FileName, Bool, Ver) `sEngine().BasicSaveObject(`{Obj}, `{FileName}, `{Bool}, `{Ver})<br /> <br /> /** MetaTags */<br /> `define mUI(min, max) &lt;UIMin=`min | UIMax=`max&gt;<br /> `define mClamp(min, max) &lt;ClampMin=`min | ClampMax=`max&gt;<br /> `define mUIClamp(min, max) &lt;UIMin=`min | UIMax=`max | ClampMin=`min | ClampMax=`max&gt;<br /> <br /> /* Debugging */<br /> `define LogName 'Debug'<br /> `define LogdLine() `logd(&quot;------------------------------------------------------&quot;,,`{LogName});<br /> `define LogFunc(Name) `log(Self$&quot;.&quot;$class.name$&quot;.&quot;$GetFuncName()$&quot;()&quot;,,`Name);<br /> `define LogdFunc() `logd(Self$&quot;.&quot;$class.name$&quot;.&quot;$GetFuncName()$&quot;()&quot;,,`{LogName});<br /> `define LogF(string) `logd(GetFuncName()$&quot;(): &quot;$`{string},,`{LogName});<br /> <br /> /* Pawn */<br /> `define ColHeight CylinderComponent.CollisionHeight<br /> `define ColRadius CylinderComponent.CollisionRadius<br /> `define DefColHeight CylinderComponent.Default.CollisionHeight<br /> `define DefColRadius CylinderComponent.Default.CollisionRadius<br /> &lt;/uscript&gt;<br /> <br /> &lt;br&gt;</div> 00zX https://wiki.beyondunreal.com/User:00zX?diff=45028 User:00zX 2012-03-06T10:07:07Z <p>00zX: /* Work */</p> <hr /> <div>__NOTOC__<br /> ==Wiki==<br /> ===General===<br /> :[[User:00zX/Setting_Up_Your_UScript_Environment|Setting Up Your UScript Environment]]<br /> ===UE3===<br /> :[[User:00zX/Using_The_Unreal_Engine_3_Preprocessor|Using The Unreal Engine 3 Preprocessor]]<br /> ===UE2.5===<br /> :[[UE2:Using_the_UT2004_mod_system|Using The UT2004 Mod System]]<br /> ===Rants===<br /> [[User:00zX/Rants|Rants]]<br /> <br /> ==Work==<br /> ====Unreal Development Kit====<br /> :[[User:00zX/UScriptIt_(UDK)|UDK: UScriptIt]]<br /> :''Description:'' Primarily a group of applications, including highlighters and program schemes.<br /> ::[[User:00zX/UScriptIt_Parser_Generator_(CS)|C#: UScriptIt Parser/Generator]]<br /> ::''Description:'' Converting an slimline version of [[UnrealScript]] into pure [[UnrealScript]].<br /> <br /> :[[User:00zX/Plugin_(UDK)|UDK: Redux]] <br /> :''Status:'' '''Testing''' '''Description:''' PC Framework for UDK, its a combination of a framework and macros along with associated parser functionality.<br /> ::''UScriptIt:'' Parser/Generator written in C#! Converting an slimline version of [[UnrealScript]] into pure [[UnrealScript]]..<br /> ::''GamedGFx:'' Scaleform interface along with object saving/loading.<br /> ::''GamedEx:'' Game framework built using Redux, support for many features; round based play, archetype systems, additions to particles, materials, etc.<br /> ::''GamedCaster:'' First Person Multiplayer PvP.<br /> <br /> :[[User:00zX/Project Silky_(UDK)|UDK: Project Silky]]<br /> : ''Status:'' '''Alpha''' (on hold)<br /> ====Unreal Tournament 3====<br /> :[[User:00zX/GameDex Framework_(UT3)|UT3: GameDex Framework]]<br /> :''Status:'' '''Beta''' (on hold)<br /> ::[[User:00zX/GameDex_Framework_(UT3)#Newtators (Mutator pack)|Newtators-v1.9e]]<br /> ::''Status:'' '''Point Release'''<br /> ::[[User:00zX/GameDex_Framework_(UT3)#Attrition (Gametype)|Attrition-v0.5pb]]<br /> ::''Status:'' '''Public Beta'''<br /> ====Unreal Tournament 2004====<br /> :[[User:00zX/UC2004_(UT2004)|UT2004: Unreal Championship 2004]]<br /> : ''Status:'' '''Beta''' (dissolved)<br /> :[[User:00zX/TurboInsta_(UT2004)|UT2004: Turbo Instagib]]<br /> : ''Status:'' '''Beta'''<br /> &lt;br&gt;<br /> <br /> ==Highlighters==<br /> <br /> ===UnrealWiki - Code Noir Redex Theme=== <br /> [[File:Monobook-noir-alpha3.gif|700px|thumb|left]]<br /> ====Status: Beta====<br /> To Install copy the contents of the following page into your own ''''User:[name]/monobook.css'''' page.<br /> ::[[User:00zX/monobook.css]]<br /> ::[http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Fwiki.beyondunreal.com%2FUser%3A00zX%2Fmonobook.css&amp;profile=css21&amp;usermedium=all&amp;warning=1&amp;lang=en W3C CSS Validator]<br /> ::[http://i10.photobucket.com/albums/a123/OlympusMons/CodeNoirRedeX.png High Resolution Image]&lt;br&gt;<br /> =====Features=====<br /> :Dark Theme<br /> :High Contrast<br /> :Improved Readability<br /> :Highlighter adjustments for UScript, CSS and XML<br /> :Different coloured borders per GameNameSpace<br /> :Curved Borders in supporting browsers<br /> =====Known Issues=====<br /> :Edit/Input boxes are still black text on white.<br /> :Profile settings page unreadable.<br /> &lt;br&gt;&lt;br&gt;&lt;br&gt;<br /> &lt;br&gt;<br /> <br /> ==Contact Me==<br /> ====IRC==== <br /> _00zX on [irc://irc.enterthegame.com EnterTheGame]<br /> ;* [irc://irc.enterthegame.com/unrealscript #unrealscript on EnterTheGame]<br /> ;* [irc://irc.enterthegame.com/beyondunreal #beyondunreal on EnterTheGame]<br /> _00zX on [irc://irc.gamesurge.net GameSurge]<br /> ;* [irc://irc.irc.gamesurge.net/udkc #udkc on GameSurge]<br /> <br /> ====Other/Profiles====<br /> [[Special:Emailuser/00zX|E-mail 00zX]] or on<br /> ;* [http://www.filefront.com/user/00zX filefront]<br /> ;* [http://delicious.com/00zX delicious]<br /> ;* [http://00zx.pastebin.com pastebin]<br /> <br /> --------&lt;br&gt;</div> 00zX https://wiki.beyondunreal.com/User:00zX?diff=44588 User:00zX 2011-09-01T16:09:28Z <p>00zX: /* Work */</p> <hr /> <div>__NOTOC__<br /> ==Wiki==<br /> ===General===<br /> :[[User:00zX/Setting_Up_Your_UScript_Environment|Setting Up Your UScript Environment]]<br /> ===UE3===<br /> :[[User:00zX/Using_The_Unreal_Engine_3_Preprocessor|Using The Unreal Engine 3 Preprocessor]]<br /> ===UE2.5===<br /> :[[UE2:Using_the_UT2004_mod_system|Using The UT2004 Mod System]]<br /> ===Rants===<br /> [[User:00zX/Rants|Rants]]<br /> <br /> ==Work==<br /> ====Unreal Development Kit====<br /> :[[User:00zX/UScriptIt_(UDK)|UDK: UScriptIt]]<br /> :''Description:'' Primarily a group of applications, including highlighters and program schemes.<br /> ::[[User:00zX/UScriptIt_Parser_Generator_(CS)|C#: UScriptIt Parser/Generator]]<br /> ::''Description:'' Converting an slimline version of [[UnrealScript]] into pure [[UnrealScript]].<br /> <br /> :[[User:00zX/Plugin_(UDK)|UDK: Redux]] <br /> :''Status:'' '''Testing'''<br /> :''Description:'' PC Framework for UDK.<br /> ::[[User:00zX/GamedEx_(UDK)|UDK: GamedEx]]<br /> ::''Status:'' '''Prototype'''<br /> ::''Description:'' Game Framework Built on Redux.<br /> :::[[User:00zX/Project Caster_(UDK)|UDK: Project Caster]] <br /> :::''Status:'' '''Prototype'''<br /> :::''Description:'' First Person Multiplayer PvP<br /> <br /> :[[User:00zX/Project Silky_(UDK)|UDK: Project Silky]]<br /> : ''Status:'' '''Alpha''' (on hold)<br /> ====Unreal Tournament 3====<br /> :[[User:00zX/GameDex Framework_(UT3)|UT3: GameDex Framework]]<br /> :''Status:'' '''Beta''' (on hold)<br /> ::[[User:00zX/GameDex_Framework_(UT3)#Newtators (Mutator pack)|Newtators-v1.9e]]<br /> ::''Status:'' '''Point Release'''<br /> ::[[User:00zX/GameDex_Framework_(UT3)#Attrition (Gametype)|Attrition-v0.5pb]]<br /> ::''Status:'' '''Public Beta'''<br /> ====Unreal Tournament 2004====<br /> :[[User:00zX/UC2004_(UT2004)|UT2004: Unreal Championship 2004]]<br /> : ''Status:'' '''Beta''' (dissolved)<br /> :[[User:00zX/TurboInsta_(UT2004)|UT2004: Turbo Instagib]]<br /> : ''Status:'' '''Beta'''<br /> &lt;br&gt;<br /> <br /> ==Highlighters==<br /> <br /> ===UnrealWiki - Code Noir Redex Theme=== <br /> [[File:Monobook-noir-alpha3.gif|700px|thumb|left]]<br /> ====Status: Beta====<br /> To Install copy the contents of the following page into your own ''''User:[name]/monobook.css'''' page.<br /> ::[[User:00zX/monobook.css]]<br /> ::[http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Fwiki.beyondunreal.com%2FUser%3A00zX%2Fmonobook.css&amp;profile=css21&amp;usermedium=all&amp;warning=1&amp;lang=en W3C CSS Validator]<br /> ::[http://i10.photobucket.com/albums/a123/OlympusMons/CodeNoirRedeX.png High Resolution Image]&lt;br&gt;<br /> =====Features=====<br /> :Dark Theme<br /> :High Contrast<br /> :Improved Readability<br /> :Highlighter adjustments for UScript, CSS and XML<br /> :Different coloured borders per GameNameSpace<br /> :Curved Borders in supporting browsers<br /> =====Known Issues=====<br /> :Edit/Input boxes are still black text on white.<br /> :Profile settings page unreadable.<br /> &lt;br&gt;&lt;br&gt;&lt;br&gt;<br /> &lt;br&gt;<br /> <br /> ==Contact Me==<br /> ====IRC==== <br /> _00zX on [irc://irc.enterthegame.com EnterTheGame]<br /> ;* [irc://irc.enterthegame.com/unrealscript #unrealscript on EnterTheGame]<br /> ;* [irc://irc.enterthegame.com/beyondunreal #beyondunreal on EnterTheGame]<br /> _00zX on [irc://irc.gamesurge.net GameSurge]<br /> ;* [irc://irc.irc.gamesurge.net/udkc #udkc on GameSurge]<br /> <br /> ====Other/Profiles====<br /> [[Special:Emailuser/00zX|E-mail 00zX]] or on<br /> ;* [http://www.filefront.com/user/00zX filefront]<br /> ;* [http://delicious.com/00zX delicious]<br /> ;* [http://00zx.pastebin.com pastebin]<br /> <br /> --------&lt;br&gt;</div> 00zX https://wiki.beyondunreal.com/User:00zX/monobook.css?diff=44587 User:00zX/monobook.css 2011-09-01T15:48:07Z <p>00zX: </p> <hr /> <div>/** Namespace's */<br /> /* UE1 */<br /> .ns-102 h1, .ns-103 h1 {color:#7b749b; border: none;}<br /> .ns-102 h4, .ns-103 h4 {color: #59939c;}<br /> /* Tabs &amp; Content */ .ns-102 #content, .ns-103 #content,<br /> body.ns-102 div#p-cactions div.pBody ul li, body.ns-102 div#footer,<br /> body.ns-103 div#p-cactions div.pBody ul li, body.ns-103 div#footer{ border: #bcb936 solid 1px;}<br /> /* UE2 */<br /> .ns-104 h1, .ns-105 h1 {color:#7b749b; border:none;}<br /> .ns-104 #portlet a:visited, .ns-105 #portlet a:visited{border: #257ec2 solid 1px;}<br /> /* Tabs &amp; Content */ .ns-104 #content, .ns-105 #content,<br /> body.ns-104 div#p-cactions div.pBody ul li, body.ns-104 div#footer,<br /> body.ns-105 div#p-cactions div.pBody ul li, body.ns-105 div#footer{ border: #257ec2 solid 1px;}<br /> /* UE3 */ /* #fd3e1c - Old Red */<br /> .ns-106 h1, .ns-107 h1 {color:#7b749b; border: none;}<br /> #portlet a:visited, #portlet a:visited{background: inherit;border-color: #bcb936;}<br /> /* Tabs &amp; Content */ .ns-106 #content, .ns-107 #content,<br /> body.ns-106 div#p-cactions div.pBody ul li, body.ns-106 div#footer,<br /> body.ns-107 div#p-cactions div.pBody ul li, body.ns-107 div#footer{ border: #bcb936 solid 1px;}<br /> /* Legacy */<br /> .ns-100 #content, .ns-101 #content {background: #151515; border: #7b749b solid 1px;}<br /> .ns-100 h1, .ns-101 h1 {color:#7b749b; border: none;}<br /> .ns-100 h4, .ns-101 h4 {color: #257ec2;}<br /> /* Tabs &amp; Content */ .ns-100 #content, .ns-101 #content,<br /> body.ns-100 div#p-cactions div.pBody ul li, body.ns-100 div#footer,<br /> body.ns-101 div#p-cactions div.pBody ul li, body.ns-101 div#footer{ border: #7b749b solid 1px;}<br /> <br /> #siteNotice, #siteNotice a{background: inherit;}<br /> <br /> #recent-edits tbody tr th{<br /> color:#090909;<br /> font-family: arial, trebuchet;<br /> font: 100 normal 130%/100% &quot;Arial Narrow&quot;, sans-serif;<br /> }<br /> /* links */<br /> a:link{color: #66bcd9; text-decoration: none; background: none;}<br /> a:visited{color: #808080; font-style: italic;}<br /> a:hover{color: #59939c; text-decoration: none;}<br /> /* Redlinks */<br /> a.new:link{color: #fd3e1c;}<br /> a.new:hover{color: #ff6600;}<br /> /* Interwiki links */<br /> a.external:link{color: #257ec2;}<br /> a.external:hover{color: #145789;}<br /> a.external:visited{color: #257ec2;}<br /> /* Tab links */<br /> #p-cactions li a:link{color: #c4bfb2;}<br /> #p-cactions li a:visited{color: #7b749b;}<br /> #p-cactions li a:hover{color: #b8b634;}<br /> #p-cactions li.new a:link{color: #fd3e1c;}<br /> #p-cactions li.new a:hover{color: #ff6600;}<br /> /* Main TOC links */<br /> table.infobox a:visited{color: #c4bfb2; font-style: italic;}<br /> table.infobox a:hover{color: #66bcd9; text-decoration: none;}<br /> <br /> html,div{ color: white; background-color: #090909;}<br /> <br /> div#bodyContent div{ background: none;}<br /> <br /> table { color: white; background-color: inherit; }<br /> body { font-style:normal;<br /> font-variant:normal;<br /> line-height:normal;<br /> text-indent: 0.4em;<br /> }<br /> <br /> b { color:#c4bfb2; font-weight: 500;}/*bolder*/<br /> p{ color: white;background-color: inherit;padding-left: 0.8em;}<br /> <br /> dl dt{}<br /> dd b{ color: #59939c;}<br /> <br /> h1, h2, h3, h4 {<br /> background: none;<br /> font-family: arial, trebuchet;<br /> font: 100 normal 130%/100% &quot;Arial Narrow&quot;, sans-serif;<br /> border-bottom: none;<br /> }<br /> <br /> h1 { color: #7b749b; border-bottom: #7b749b solid 1px;<br /> font: 500 normal 160%/180% &quot;Arial Narrow&quot;, sans-serif;<br /> }<br /> h2 { color:#99aadd; font: 300 normal 140%/120% &quot;Arial Narrow&quot;, sans-serif;}h2{ font-size: 142% !important;}<br /> h3, h4 { color: #c0c0c0; font-size: 132%; text-indent: 0.2em;}<br /> <br /> h2 .mw-headline,<br /> h3 .mw-headline{<br /> margin-left: -3pt !important;<br /> padding-left: 3pt !important;<br /> background: #101010 !important;<br /> border-top: #090909 1pt solid !important;<br /> border-right: #090909 1pt solid !important;<br /> -moz-border-radius-topright: 0.6em;<br /> -moz-border-radius-bottomleft: 0.2em;<br /> }<br /> <br /> h2 .mw-headline{<br /> padding-right: 40% !important;<br /> border-left: #99AADD 1pt dotted !important;<br /> border-bottom: #99AADD 1pt solid !important;<br /> background: #101010 !important;<br /> }<br /> <br /> h3 .mw-headline{<br /> padding-right: 3pt !important;<br /> border-left: #202020 1pt dotted !important;<br /> border-bottom: #202020 3pt double !important;<br /> }<br /> <br /> div#mw-pages h3{color: #222222;}<br /> <br /> h5 span.mw-headline{ color: #FFFFFF;}<br /> <br /> h4 { color: #257ec2; font: 100 normal 130%/100% &quot;Arial Narrow&quot;, sans-serif;}<br /> h5 { color: #FFFFFF;}<br /> h6 { color: #000000;}<br /> <br /> hr { background: #151515; color: #909;<br /> margin-top: 1em; margin-bottom: 1em;<br /> }<br /> li,<br /> ul { background: inherit; }<br /> <br /> #pbody,#pbody a{ background: inherit; }<br /> #pbody a{ border: 1px solid #99aadd;}<br /> /*__TOC__*/<br /> #toc { background-color: #494949; border: 1px solid #9f9f9f;-moz-border-radius: 4px;}<br /> #toctitle{ background: none;text-decoration: none;}<br /> <br /> #div.toctitle h2{background: inherit; text-decoration: none;}<br /> <br /> #content { background: #151515;<br /> font-family: arial, trebuchet;<br /> font-size: 100%;<br /> -moz-border-radius-topleft: 0.5em;<br /> -moz-border-radius-bottomleft: 0.5em;<br /> }<br /> <br /> #contentSub,<br /> #bodyContent{ padding-top: 4pt;background: none; }<br /> <br /> div.content div{ background: none;}<br /> <br /> div.thumb{ background: inherit; }<br /> div.plainlinks,<br /> div.noprint{ background: #494949; }<br /> /* Main Contents */<br /> table.infobox,<br /> div.infobox,<br /> div#bodycontent div.infobox{<br /> background: #5f5f5f;<br /> border: 1px solid #000000;<br /> -moz-border-radius: 4px;<br /> }<br /> table.infobox tbody,<br /> table.infobox tbody tr th{cursor: default;padding-left: 8pt;}<br /> table.infobox tbody ul,<br /> table.infobox tbody ul li{<br /> padding-left: 6%;<br /> list-style-image: none;<br /> list-style-type: none;<br /> }<br /> table.infobox tbody ul li{color: #282828;padding-left: 6pt;}<br /> <br /> table.infobox tbody ul li a{<br /> font-family: arial, trebuchet;<br /> font: 100 normal 120%/100% &quot;Arial Narrow&quot;, sans-serif;<br /> margin-left: -12%;<br /> padding-left: 3pt;<br /> padding-right: 4pt;<br /> padding-top: 2pt;<br /> }<br /> table.infobox tbody ul li:hover{<br /> background: #555555;<br /> margin-right: 16%;<br /> -moz-border-radius: 0.4em;<br /> }<br /> <br /> div#bodyContent table.ambox/*,<br /> div#bodyContent table.ambox tbody,<br /> div#bodyContent table.ambox tbody tr,<br /> div#bodyContent table.ambox tbody tr ambox-text.td*/{border: none; -moz-border-radius: 0.4em;}<br /> <br /> /*.ambox,table.ambox,table.ambox tbody{color: #c4bfb2 ; background: none;}*/<br /> .ambox-text{background: none;}<br /> <br /> table.ambox-notice{background: #14344b;}<br /> table.ambox-serious{background: #3b1818;}<br /> table.ambox-content{background: #4b3010;}<br /> table.ambox-style{background: #4b3f10;}<br /> table.ambox-info{background: #303037;}<br /> <br /> #mw-headline {background: inherit;}<br /> <br /> h4 span.mwheadline{text-indent: 0.1em;}<br /> h5 span.mwheadline{color: #FFFFFF;}<br /> h6, h6 span.mwheadline{color: #FFFFFF; }<br /> <br /> table.navbox,<br /> table.navbox tbody tr.navbox-body td.navbox-body,<br /> table.navbox tbody tr.navbox-body th.navbox-group{background: #343434;}<br /> table.navbox tbody tr.navbox-header{<br /> background: #819681;<br /> -moz-border-radius: 0.2em;}<br /> table.navbox tbody tr.navbox-header a{color: #222222;}<br /> <br /> table#recent-edits.infobox tbody tr th{color: #FFFFFF; text-align: justify;}<br /> <br /> div#catlinks{border: #5f5f5f dotted 1px; background: #090909; -moz-border-radius: 0.4em;}<br /> <br /> /* Remove Edit Sections for minor headings */<br /> h3 span.editsection,h4 span.editsection,h5 span.editsection,h6 span.editsection{display: none;}<br /> <br /> /* Search Box */<br /> div#p-search.portlet div#searchBody.pBody{ background: none;}<br /> <br /> div#p-search.portlet div#searchBody.pBody form#searchForm,<br /> div#p-search.portlet div#searchBody.pBody form#searchForm div,<br /> div#p-search.portlet div#searchBody.pBody form#searchForm div input#searchInput{<br /> color: #FFFFFF;<br /> background: #090909;<br /> }<br /> <br /> /* Tabs */<br /> /*#p-cactions li a:visited{background: none;}*/<br /> #p-cactions li.selected,<br /> #p-cactions li.selected a,<br /> #p-cactions li a:hover{background: #151515;}<br /> <br /> div#p-cactions div.pBody ul li{<br /> background: #151515;<br /> padding-top: 4pt;<br /> -moz-border-radius-topleft: 0.4em;<br /> -moz-border-radius-topright: 0.4em;<br /> }<br /> <br /> /*div#p-cactions div.pBody ul li a*/<br /> #p-cactions li a{<br /> font-family: arial, trebuchet;<br /> font: 100 normal 110%/120% &quot;Arial Narrow&quot;, sans-serif;<br /> background: #151515;<br /> }<br /> <br /> /**/<br /> body.mediawiki div#globalWrapper div#footer{ background: #151515;}<br /> <br /> div#bodyContent div table{<br /> background: #819681;<br /> color: #DDDDDD;<br /> }<br /> <br /> div#bodyContent div table tbody{<br /> background: #5f5f5f;<br /> color: #DDDDDD;<br /> }<br /> <br /> div#bodyContent div table tbody tr{<br /> background: #5f5f5f;<br /> color: #AAAAAA;<br /> }<br /> <br /> div#bodyContent div table tbody tr td{<br /> background: #5f5f5f;<br /> color: #AAAAA;<br /> }<br /> <br /> /* Thumb Image adjustments */<br /> div#bodyContent div.thumb,<br /> div#bodyContent div.thumb div.thumbinner,<br /> div#bodyContent div.thumb div.thumbinner a.image{<br /> padding: 4px;<br /> padding-left: 3px;<br /> padding-right: 6px;<br /> color: white;<br /> background: none;<br /> -moz-border-radius: 4px;<br /> }<br /> <br /> div#bodyContent div.thumb,<br /> div#bodyContent div.thumb div.thumbinner a.image img{ border: none;}<br /> <br /> div#bodyContent div.tleft{padding-right: 12px;}<br /> div#bodyContent div.tright{padding-left: 12px;}<br /> <br /> /* Text Alignment Tweaks */<br /> div#bodyContent h2 {text-indent: 0.2em;}<br /> div#bodyContent h3 {text-indent: 0.4em;}<br /> div#bodyContent h4 {text-indent: 0.6em; font: 100 normal 120%/70% &quot;Arial Narrow&quot;, sans-serif;}<br /> <br /> div#bodyContent h1.firstHeading{padding-top: 12pt;font: 100 normal 170%/100% &quot;Arial Narrow&quot;, sans-serif;}<br /> /*================================================================================*/<br /> div#p-tb div.pBody,<br /> div#p-personal,<br /> div#p-personal div.pBody,<br /> div#p-personal div.pBody ul{ background: none;}<br /> <br /> div#p-personal div.pBody{padding-left: 60%;}<br /> <br /> div#column-one div#p-personal{<br /> padding-top: 8pt;<br /> height: 18px;<br /> font-family: arial, trebuchet;<br /> font: 100 normal 130%/100% &quot;Arial Narrow&quot;, sans-serif;<br /> }<br /> <br /> div#column-one div#p-personal div.pBody a{color: #adcc63; text-decoration: none;}<br /> div#column-one div#p-personal div.pBody ul li:hover{color: #000000;background: #adcc63;}<br /> <br /> div#column-one div#p-personal div.pBody ul li{<br /> background: #000000;<br /> border: 1pt #151515 solid;<br /> border-bottom: 2pt #151515 solid;<br /> padding-left: 6pt;<br /> padding-right: 6pt;<br /> margin-left: 2pt;<br /> -moz-border-radius-topleft: 0.5em;<br /> -moz-border-radius-bottomleft: 0.5em;<br /> }<br /> <br /> .mw-specialpagesgroup{background: #151515;}<br /> <br /> div#column-content, div#column-one div#p-cactions{padding-top: 8pt;}<br /> <br /> div#catlinks{<br /> border: 0.5pt #5f5f5f solid;<br /> background: #090909 !important;<br /> -moz-border-radius: 0.4em;<br /> }<br /> <br /> table.navbox { border: #5f5f5f 1pt solid; -moz-border-radius: 0.5em;}<br /> <br /> table.navbox th.navbox-header{background: #343434;}<br /> table.navbox th.navbox-header&gt;div{<br /> border: #151515 1pt solid;<br /> background: #819681;<br /> -moz-border-radius: 0.4em;}<br /> <br /> div#p-navigation h5{<br /> color: #bebebe;<br /> background: #151515;<br /> font-family: arial, trebuchet;<br /> font: 100 normal 130%/100% &quot;Arial Narrow&quot;, sans-serif;<br /> border-left: 3pt #bebebe double;<br /> border-bottom: 1pt #bebebe solid;<br /> padding-right: 34pt;<br /> -moz-border-radius-bottomleft: 0.4em;<br /> -moz-border-radius-topright: 1.2em;<br /> }<br /> <br /> div#p-navigation div.pBody,<br /> div#p-navigation div.pBody ul,<br /> div#p-navigation div.pBody ul li{list-style-image: none;list-style-type: none;}<br /> div#p-navigation div.pBody ul{padding-left: 2pt; border-left: 1pt #9f9f9f solid;}<br /> div#p-navigation div.pBody ul li{padding-top: 2pt;background: #151515;}<br /> <br /> div#p-navigation div.pBody a{<br /> font-family: arial, trebuchet;<br /> font: 100 normal 120%/100% &quot;Arial Narrow&quot;, sans-serif;<br /> border-left: 3pt #bebebe double;<br /> border-bottom: 1pt #bebebe solid;<br /> padding-left: 3pt;<br /> padding-right: 4pt;<br /> padding-top: 2pt;<br /> -moz-border-radius-bottomleft: 0.4em;<br /> -moz-border-radius-topright: 0.8em;<br /> }<br /> <br /> div#p-navigation div.pBody a:link{color:#9f9f9f;}<br /> div#p-navigation div.pBody a:hover{<br /> color:#bfbfbf;<br /> border-left: 3pt #575757 double;<br /> border-bottom: 1pt #575757 solid;<br /> }<br /> <br /> /*================================================================================*/<br /> /* (codenoir) */<br /> div#bodyContent pre{border: #494949 dotted 1px; background: #090909; color: #ffffff}<br /> pre.de1{color:white;}<br /> code{border: none; background: none; color:#ffffff;}<br /> <br /> /** Global Highlighter (codenoir) - Supports: CSS, UScript */<br /> div#bodyContent div.mw-geshi{border: #5f5f5f dotted 1px; background: #090909;-moz-border-radius: 4px;}<br /> <br /> div#bodyContent div.mw-geshi div,<br /> div#bodyContent div.mw-geshi div pre{ border: none;}<br /> /* Keywords */<br /> div#bodyContent span.kw1,<br /> div#bodyContent span.kw4, /* UC: Types */<br /> div#bodyContent span.kw5,<br /> div#bodyContent span.kw6{ color:#66bcd9;}<br /> /* Comments */<br /> div#bodyContent span.co1,<br /> div#bodyContent span.coMULTI{ color:#00c000;}<br /> /* Literals */<br /> div#bodyContent span.st0{ color:#fd3e1c;}<br /> <br /> /** Uscript - Highlighter (codenoir) */<br /> div.source-uscript pre{<br /> border: none;background: none;color: #000000;<br /> -moz-border-radius: 4px;<br /> }<br /> <br /> div.mw-geshi div.uscript pre.de1 span.br0,<br /> div.mw-geshi div.uscript pre.de1 span.sy0,<br /> div.mw-geshi div.uscript pre.de1 span.sy1,<br /> /* casts,enum,struct?*/<br /> div.mw-geshi div.uscript pre.de1 span.me1{ color:#FFFFFF;}<br /> /* Keywords *//* Secondary - True/None/Owner/Self? */<br /> div.mw-geshi div.uscript pre.de1 span.kw8{ color:#66bcd9;}<br /> /* Keywords - Secondary */<br /> div.mw-geshi div.uscript pre.de1 span.kw7{ color:#8f8f8f;}<br /> <br /> body.ns-105 div.mw-geshi div.uscript pre.de1 span.kw10,<br /> body.ns-104 div.mw-geshi div.uscript pre.de1 span.kw10{color:#257ec2;}<br /> /* Major UE Classes */<br /> div.mw-geshi div.uscript pre.de1 span.kw10{ color:#cccc00;}<br /> /* Digit */<br /> div.mw-geshi div.uscript pre.de1 span.nu0{ color:#ff6600;}<br /> /* Markup */<br /> div.mw-geshi div.uscript pre.de1 span.re0{ color:#0066ff;}<br /> /** XML - Highlighter (codenoir) */<br /> div.mw-geshi div.xml pre.de1 span.sc3{ color:#ffffff;}<br /> /* Markup */<br /> div.mw-geshi div.xml pre.de1 span.re0,<br /> div.mw-geshi div.xml pre.de1 span.re1,<br /> div.mw-geshi div.xml pre.de1 span.re2{ color:#0066ff;}<br /> /* Comments */<br /> div.mw-geshi div.xml pre.de1 span.sc-1{ color:#00c000;}<br /> /** NSIS - Highlighter (codenoir) */<br /> div.mw-geshi div.nsis pre.de1 span.kw2{ color:#0066ff;}<br /> div.mw-geshi div.nsis pre.de1 span.re5{ color:#cccc00;}<br /> /** (DOS) BATCH - Highlighter (codenoir) */<br /> div.mw-geshi div.dos pre.de1 span.kw3{ color:#66bcd9;}<br /> div.mw-geshi div.dos pre.de1 span.re2{ color:#cccc00;}<br /> div.mw-geshi div.dos pre.de1 span.sy0{ color:#fd3e1c;}</div> 00zX https://wiki.beyondunreal.com/User:00zX/monobook.css?diff=44586 User:00zX/monobook.css 2011-09-01T15:46:21Z <p>00zX: </p> <hr /> <div>/** Namespace's */<br /> /* UE1 */<br /> .ns-102 h1, .ns-103 h1 {color:#7b749b; border: none;}<br /> .ns-102 h4, .ns-103 h4 {color: #59939c;}<br /> /* Tabs &amp; Content */ .ns-102 #content, .ns-103 #content,<br /> body.ns-102 div#p-cactions div.pBody ul li, body.ns-102 div#footer,<br /> body.ns-103 div#p-cactions div.pBody ul li, body.ns-103 div#footer{ border: #bcb936 solid 1px;}<br /> /* UE2 */<br /> .ns-104 h1, .ns-105 h1 {color:#7b749b; border:none;}<br /> .ns-104 #portlet a:visited, .ns-105 #portlet a:visited{border: #257ec2 solid 1px;}<br /> /* Tabs &amp; Content */ .ns-104 #content, .ns-105 #content,<br /> body.ns-104 div#p-cactions div.pBody ul li, body.ns-104 div#footer,<br /> body.ns-105 div#p-cactions div.pBody ul li, body.ns-105 div#footer{ border: #257ec2 solid 1px;}<br /> /* UE3 */ /* #fd3e1c - Old Red */<br /> .ns-106 h1, .ns-107 h1 {color:#7b749b; border: none;}<br /> #portlet a:visited, #portlet a:visited{background: inherit;border-color: #bcb936;}<br /> /* Tabs &amp; Content */ .ns-106 #content, .ns-107 #content,<br /> body.ns-106 div#p-cactions div.pBody ul li, body.ns-106 div#footer,<br /> body.ns-107 div#p-cactions div.pBody ul li, body.ns-107 div#footer{ border: #bcb936 solid 1px;}<br /> /* Legacy */<br /> .ns-100 #content, .ns-101 #content {background: #151515; border: #7b749b solid 1px;}<br /> .ns-100 h1, .ns-101 h1 {color:#7b749b; border: none;}<br /> .ns-100 h4, .ns-101 h4 {color: #257ec2;}<br /> /* Tabs &amp; Content */ .ns-100 #content, .ns-101 #content,<br /> body.ns-100 div#p-cactions div.pBody ul li, body.ns-100 div#footer,<br /> body.ns-101 div#p-cactions div.pBody ul li, body.ns-101 div#footer{ border: #7b749b solid 1px;}<br /> <br /> #siteNotice, #siteNotice a{background: inherit;}<br /> <br /> #recent-edits tbody tr th{<br /> color:#090909;<br /> font-family: arial, trebuchet;<br /> font: 100 normal 130%/100% &quot;Arial Narrow&quot;, sans-serif;<br /> }<br /> /* links */<br /> a:link{color: #66bcd9; text-decoration: none; background: none;}<br /> a:visited{color: #808080; font-style: italic;}<br /> a:hover{color: #59939c; text-decoration: none;}<br /> /* Redlinks */<br /> a.new:link{color: #fd3e1c;}<br /> a.new:hover{color: #ff6600;}<br /> /* Interwiki links */<br /> a.external:link{color: #257ec2;}<br /> a.external:hover{color: #145789;}<br /> a.external:visited{color: #257ec2;}<br /> /* Tab links */<br /> #p-cactions li a:link{color: #c4bfb2;}<br /> #p-cactions li a:visited{color: #7b749b;}<br /> #p-cactions li a:hover{color: #b8b634;}<br /> #p-cactions li.new a:link{color: #fd3e1c;}<br /> #p-cactions li.new a:hover{color: #ff6600;}<br /> /* Main TOC links */<br /> table.infobox a:visited{color: #c4bfb2; font-style: italic;}<br /> table.infobox a:hover{color: #66bcd9; text-decoration: none;}<br /> <br /> html,div{ color: white; background-color: #090909;}<br /> <br /> div#bodyContent div{ background: none;}<br /> <br /> table { color: white; background-color: inherit; }<br /> body { font-style:normal;<br /> font-variant:normal;<br /> line-height:normal;<br /> text-indent: 0.4em;<br /> }<br /> <br /> b { color:#c4bfb2; font-weight: 500;}/*bolder*/<br /> p{ color: white;background-color: inherit;padding-left: 0.8em;}<br /> <br /> dl dt{}<br /> dd b{ color: #59939c;}<br /> <br /> h1, h2, h3, h4 {<br /> background: none;<br /> font-family: arial, trebuchet;<br /> font: 100 normal 130%/100% &quot;Arial Narrow&quot;, sans-serif;<br /> border-bottom: none;<br /> }<br /> <br /> h1 { color: #7b749b; border-bottom: #7b749b solid 1px;<br /> font: 500 normal 160%/180% &quot;Arial Narrow&quot;, sans-serif;<br /> }<br /> h2 { color:#99aadd; font: 300 normal 140%/120% &quot;Arial Narrow&quot;, sans-serif;}h2{ font-size: 142% !important;}<br /> h3, h4 { color: #c0c0c0; font-size: 132%; text-indent: 0.2em;}<br /> <br /> h2 .mw-headline,<br /> h3 .mw-headline{<br /> margin-left: -3pt !important;<br /> padding-left: 3pt !important;<br /> background: #101010 !important;<br /> border-top: #090909 1pt solid !important;<br /> border-right: #090909 1pt solid !important;<br /> -moz-border-radius-topright: 0.6em;<br /> -moz-border-radius-bottomleft: 0.2em;<br /> }<br /> <br /> h2 .mw-headline{<br /> padding-right: 40% !important;<br /> border-left: #99AADD 1pt dotted !important;<br /> border-bottom: #99AADD 1pt solid !important;<br /> background: #101010 !important;<br /> }<br /> <br /> h3 .mw-headline{<br /> padding-right: 3pt !important;<br /> border-left: #202020 1pt dotted !important;<br /> border-bottom: #202020 3pt double !important;<br /> }<br /> <br /> div#mw-pages h3{color: #222222;}<br /> <br /> h5 span.mw-headline{ color: #FFFFFF;}<br /> <br /> h4 { color: #257ec2; font: 100 normal 130%/100% &quot;Arial Narrow&quot;, sans-serif;}<br /> h5 { color: #FFFFFF;}<br /> h6 { color: #000000;}<br /> <br /> hr { background: #151515; color: #909;<br /> margin-top: 1em; margin-bottom: 1em;<br /> }<br /> li,<br /> ul { background: inherit; }<br /> <br /> #pbody,#pbody a{ background: inherit; }<br /> #pbody a{ border: 1px solid #99aadd;}<br /> /*__TOC__*/<br /> #toc { background-color: #494949; border: 1px solid #9f9f9f;-moz-border-radius: 4px;}<br /> #toctitle{ background: none;text-decoration: none;}<br /> <br /> #div.toctitle h2{background: inherit; text-decoration: none;}<br /> <br /> #content { background: #151515;<br /> font-family: arial, trebuchet;<br /> font-size: 100%;<br /> -moz-border-radius-topleft: 0.5em;<br /> -moz-border-radius-bottomleft: 0.5em;<br /> }<br /> <br /> #contentSub,<br /> #bodyContent{ padding-top: 4pt;background: none; }<br /> <br /> div.content div{ background: none;}<br /> <br /> div.thumb{ background: inherit; }<br /> div.plainlinks,<br /> div.noprint{ background: #494949; }<br /> /* Main Contents */<br /> table.infobox,<br /> div.infobox,<br /> div#bodycontent div.infobox{<br /> background: #5f5f5f;<br /> border: 1px solid #000000;<br /> -moz-border-radius: 4px;<br /> }<br /> table.infobox tbody,<br /> table.infobox tbody tr th{cursor: default;padding-left: 8pt;}<br /> table.infobox tbody ul,<br /> table.infobox tbody ul li{<br /> padding-left: 6%;<br /> list-style-image: none;<br /> list-style-type: none;<br /> }<br /> table.infobox tbody ul li{color: #282828;padding-left: 6pt;}<br /> <br /> table.infobox tbody ul li a{<br /> font-family: arial, trebuchet;<br /> font: 100 normal 120%/100% &quot;Arial Narrow&quot;, sans-serif;<br /> margin-left: -12%;<br /> padding-left: 3pt;<br /> padding-right: 4pt;<br /> padding-top: 2pt;<br /> }<br /> table.infobox tbody ul li:hover{<br /> background: #555555;<br /> margin-right: 16%;<br /> -moz-border-radius: 0.4em;<br /> }<br /> <br /> div#bodyContent table.ambox/*,<br /> div#bodyContent table.ambox tbody,<br /> div#bodyContent table.ambox tbody tr,<br /> div#bodyContent table.ambox tbody tr ambox-text.td*/{border: none; -moz-border-radius: 0.4em;}<br /> <br /> /*.ambox,table.ambox,table.ambox tbody{color: #c4bfb2 ; background: none;}*/<br /> .ambox-text{background: none;}<br /> <br /> table.ambox-notice{background: #14344b;}<br /> table.ambox-serious{background: #3b1818;}<br /> table.ambox-content{background: #4b3010;}<br /> table.ambox-style{background: #4b3f10;}<br /> table.ambox-info{background: #303037;}<br /> <br /> #mw-headline {background: inherit;}<br /> <br /> h4 span.mwheadline{text-indent: 0.1em;}<br /> h5 span.mwheadline{color: #FFFFFF;}<br /> h6, h6 span.mwheadline{color: #FFFFFF; }<br /> <br /> table.navbox,<br /> table.navbox tbody tr.navbox-body td.navbox-body,<br /> table.navbox tbody tr.navbox-body th.navbox-group{background: #343434;}<br /> table.navbox tbody tr.navbox-header{<br /> background: #819681;<br /> -moz-border-radius: 0.2em;}<br /> table.navbox tbody tr.navbox-header a{color: #222222;}<br /> <br /> table#recent-edits.infobox tbody tr th{color: #FFFFFF; text-align: justify;}<br /> <br /> div#catlinks{border: #5f5f5f dotted 1px; background: #090909; -moz-border-radius: 0.4em;}<br /> <br /> /* Remove Edit Sections for minor headings */<br /> h3 span.editsection,h4 span.editsection,h5 span.editsection,h6 span.editsection{display: none;}<br /> <br /> /* Search Box */<br /> div#p-search.portlet div#searchBody.pBody{ background: none;}<br /> <br /> div#p-search.portlet div#searchBody.pBody form#searchForm,<br /> div#p-search.portlet div#searchBody.pBody form#searchForm div,<br /> div#p-search.portlet div#searchBody.pBody form#searchForm div input#searchInput{<br /> color: #FFFFFF;<br /> background: #090909;<br /> }<br /> <br /> /* Tabs */<br /> /*#p-cactions li a:visited{background: none;}*/<br /> #p-cactions li.selected,<br /> #p-cactions li.selected a,<br /> #p-cactions li a:hover{background: #151515;}<br /> <br /> div#p-cactions div.pBody ul li{<br /> background: #151515;<br /> padding-top: 4pt;<br /> -moz-border-radius-topleft: 0.4em;<br /> -moz-border-radius-topright: 0.4em;<br /> }<br /> <br /> /*div#p-cactions div.pBody ul li a*/<br /> #p-cactions li a{<br /> font-family: arial, trebuchet;<br /> font: 100 normal 110%/120% &quot;Arial Narrow&quot;, sans-serif;<br /> background: #151515;<br /> }<br /> <br /> /**/<br /> body.mediawiki div#globalWrapper div#footer{ background: #151515;}<br /> <br /> div#bodyContent div table{<br /> background: #819681;<br /> color: #999999;<br /> }<br /> <br /> div#bodyContent div table tbody{<br /> background: #5f5f5f;<br /> color: #999999;<br /> }<br /> <br /> div#bodyContent div table tbody tr{<br /> background: #5f5f5f;<br /> color: #999999;<br /> }<br /> <br /> /* Thumb Image adjustments */<br /> div#bodyContent div.thumb,<br /> div#bodyContent div.thumb div.thumbinner,<br /> div#bodyContent div.thumb div.thumbinner a.image{<br /> padding: 4px;<br /> padding-left: 3px;<br /> padding-right: 6px;<br /> color: white;<br /> background: none;<br /> -moz-border-radius: 4px;<br /> }<br /> <br /> div#bodyContent div.thumb,<br /> div#bodyContent div.thumb div.thumbinner a.image img{ border: none;}<br /> <br /> div#bodyContent div.tleft{padding-right: 12px;}<br /> div#bodyContent div.tright{padding-left: 12px;}<br /> <br /> /* Text Alignment Tweaks */<br /> div#bodyContent h2 {text-indent: 0.2em;}<br /> div#bodyContent h3 {text-indent: 0.4em;}<br /> div#bodyContent h4 {text-indent: 0.6em; font: 100 normal 120%/70% &quot;Arial Narrow&quot;, sans-serif;}<br /> <br /> div#bodyContent h1.firstHeading{padding-top: 12pt;font: 100 normal 170%/100% &quot;Arial Narrow&quot;, sans-serif;}<br /> /*================================================================================*/<br /> div#p-tb div.pBody,<br /> div#p-personal,<br /> div#p-personal div.pBody,<br /> div#p-personal div.pBody ul{ background: none;}<br /> <br /> div#p-personal div.pBody{padding-left: 60%;}<br /> <br /> div#column-one div#p-personal{<br /> padding-top: 8pt;<br /> height: 18px;<br /> font-family: arial, trebuchet;<br /> font: 100 normal 130%/100% &quot;Arial Narrow&quot;, sans-serif;<br /> }<br /> <br /> div#column-one div#p-personal div.pBody a{color: #adcc63; text-decoration: none;}<br /> div#column-one div#p-personal div.pBody ul li:hover{color: #000000;background: #adcc63;}<br /> <br /> div#column-one div#p-personal div.pBody ul li{<br /> background: #000000;<br /> border: 1pt #151515 solid;<br /> border-bottom: 2pt #151515 solid;<br /> padding-left: 6pt;<br /> padding-right: 6pt;<br /> margin-left: 2pt;<br /> -moz-border-radius-topleft: 0.5em;<br /> -moz-border-radius-bottomleft: 0.5em;<br /> }<br /> <br /> .mw-specialpagesgroup{background: #151515;}<br /> <br /> div#column-content, div#column-one div#p-cactions{padding-top: 8pt;}<br /> <br /> div#catlinks{<br /> border: 0.5pt #5f5f5f solid;<br /> background: #090909 !important;<br /> -moz-border-radius: 0.4em;<br /> }<br /> <br /> table.navbox { border: #5f5f5f 1pt solid; -moz-border-radius: 0.5em;}<br /> <br /> table.navbox th.navbox-header{background: #343434;}<br /> table.navbox th.navbox-header&gt;div{<br /> border: #151515 1pt solid;<br /> background: #819681;<br /> -moz-border-radius: 0.4em;}<br /> <br /> div#p-navigation h5{<br /> color: #bebebe;<br /> background: #151515;<br /> font-family: arial, trebuchet;<br /> font: 100 normal 130%/100% &quot;Arial Narrow&quot;, sans-serif;<br /> border-left: 3pt #bebebe double;<br /> border-bottom: 1pt #bebebe solid;<br /> padding-right: 34pt;<br /> -moz-border-radius-bottomleft: 0.4em;<br /> -moz-border-radius-topright: 1.2em;<br /> }<br /> <br /> div#p-navigation div.pBody,<br /> div#p-navigation div.pBody ul,<br /> div#p-navigation div.pBody ul li{list-style-image: none;list-style-type: none;}<br /> div#p-navigation div.pBody ul{padding-left: 2pt; border-left: 1pt #9f9f9f solid;}<br /> div#p-navigation div.pBody ul li{padding-top: 2pt;background: #151515;}<br /> <br /> div#p-navigation div.pBody a{<br /> font-family: arial, trebuchet;<br /> font: 100 normal 120%/100% &quot;Arial Narrow&quot;, sans-serif;<br /> border-left: 3pt #bebebe double;<br /> border-bottom: 1pt #bebebe solid;<br /> padding-left: 3pt;<br /> padding-right: 4pt;<br /> padding-top: 2pt;<br /> -moz-border-radius-bottomleft: 0.4em;<br /> -moz-border-radius-topright: 0.8em;<br /> }<br /> <br /> div#p-navigation div.pBody a:link{color:#9f9f9f;}<br /> div#p-navigation div.pBody a:hover{<br /> color:#bfbfbf;<br /> border-left: 3pt #575757 double;<br /> border-bottom: 1pt #575757 solid;<br /> }<br /> <br /> /*================================================================================*/<br /> /* (codenoir) */<br /> div#bodyContent pre{border: #494949 dotted 1px; background: #090909; color: #ffffff}<br /> pre.de1{color:white;}<br /> code{border: none; background: none; color:#ffffff;}<br /> <br /> /** Global Highlighter (codenoir) - Supports: CSS, UScript */<br /> div#bodyContent div.mw-geshi{border: #5f5f5f dotted 1px; background: #090909;-moz-border-radius: 4px;}<br /> <br /> div#bodyContent div.mw-geshi div,<br /> div#bodyContent div.mw-geshi div pre{ border: none;}<br /> /* Keywords */<br /> div#bodyContent span.kw1,<br /> div#bodyContent span.kw4, /* UC: Types */<br /> div#bodyContent span.kw5,<br /> div#bodyContent span.kw6{ color:#66bcd9;}<br /> /* Comments */<br /> div#bodyContent span.co1,<br /> div#bodyContent span.coMULTI{ color:#00c000;}<br /> /* Literals */<br /> div#bodyContent span.st0{ color:#fd3e1c;}<br /> <br /> /** Uscript - Highlighter (codenoir) */<br /> div.source-uscript pre{<br /> border: none;background: none;color: #000000;<br /> -moz-border-radius: 4px;<br /> }<br /> <br /> div.mw-geshi div.uscript pre.de1 span.br0,<br /> div.mw-geshi div.uscript pre.de1 span.sy0,<br /> div.mw-geshi div.uscript pre.de1 span.sy1,<br /> /* casts,enum,struct?*/<br /> div.mw-geshi div.uscript pre.de1 span.me1{ color:#FFFFFF;}<br /> /* Keywords *//* Secondary - True/None/Owner/Self? */<br /> div.mw-geshi div.uscript pre.de1 span.kw8{ color:#66bcd9;}<br /> /* Keywords - Secondary */<br /> div.mw-geshi div.uscript pre.de1 span.kw7{ color:#8f8f8f;}<br /> <br /> body.ns-105 div.mw-geshi div.uscript pre.de1 span.kw10,<br /> body.ns-104 div.mw-geshi div.uscript pre.de1 span.kw10{color:#257ec2;}<br /> /* Major UE Classes */<br /> div.mw-geshi div.uscript pre.de1 span.kw10{ color:#cccc00;}<br /> /* Digit */<br /> div.mw-geshi div.uscript pre.de1 span.nu0{ color:#ff6600;}<br /> /* Markup */<br /> div.mw-geshi div.uscript pre.de1 span.re0{ color:#0066ff;}<br /> /** XML - Highlighter (codenoir) */<br /> div.mw-geshi div.xml pre.de1 span.sc3{ color:#ffffff;}<br /> /* Markup */<br /> div.mw-geshi div.xml pre.de1 span.re0,<br /> div.mw-geshi div.xml pre.de1 span.re1,<br /> div.mw-geshi div.xml pre.de1 span.re2{ color:#0066ff;}<br /> /* Comments */<br /> div.mw-geshi div.xml pre.de1 span.sc-1{ color:#00c000;}<br /> /** NSIS - Highlighter (codenoir) */<br /> div.mw-geshi div.nsis pre.de1 span.kw2{ color:#0066ff;}<br /> div.mw-geshi div.nsis pre.de1 span.re5{ color:#cccc00;}<br /> /** (DOS) BATCH - Highlighter (codenoir) */<br /> div.mw-geshi div.dos pre.de1 span.kw3{ color:#66bcd9;}<br /> div.mw-geshi div.dos pre.de1 span.re2{ color:#cccc00;}<br /> div.mw-geshi div.dos pre.de1 span.sy0{ color:#fd3e1c;}</div> 00zX https://wiki.beyondunreal.com/User:00zX/monobook.css?diff=44585 User:00zX/monobook.css 2011-09-01T15:44:44Z <p>00zX: </p> <hr /> <div>/** Namespace's */<br /> /* UE1 */<br /> .ns-102 h1, .ns-103 h1 {color:#7b749b; border: none;}<br /> .ns-102 h4, .ns-103 h4 {color: #59939c;}<br /> /* Tabs &amp; Content */ .ns-102 #content, .ns-103 #content,<br /> body.ns-102 div#p-cactions div.pBody ul li, body.ns-102 div#footer,<br /> body.ns-103 div#p-cactions div.pBody ul li, body.ns-103 div#footer{ border: #bcb936 solid 1px;}<br /> /* UE2 */<br /> .ns-104 h1, .ns-105 h1 {color:#7b749b; border:none;}<br /> .ns-104 #portlet a:visited, .ns-105 #portlet a:visited{border: #257ec2 solid 1px;}<br /> /* Tabs &amp; Content */ .ns-104 #content, .ns-105 #content,<br /> body.ns-104 div#p-cactions div.pBody ul li, body.ns-104 div#footer,<br /> body.ns-105 div#p-cactions div.pBody ul li, body.ns-105 div#footer{ border: #257ec2 solid 1px;}<br /> /* UE3 */ /* #fd3e1c - Old Red */<br /> .ns-106 h1, .ns-107 h1 {color:#7b749b; border: none;}<br /> #portlet a:visited, #portlet a:visited{background: inherit;border-color: #bcb936;}<br /> /* Tabs &amp; Content */ .ns-106 #content, .ns-107 #content,<br /> body.ns-106 div#p-cactions div.pBody ul li, body.ns-106 div#footer,<br /> body.ns-107 div#p-cactions div.pBody ul li, body.ns-107 div#footer{ border: #bcb936 solid 1px;}<br /> /* Legacy */<br /> .ns-100 #content, .ns-101 #content {background: #151515; border: #7b749b solid 1px;}<br /> .ns-100 h1, .ns-101 h1 {color:#7b749b; border: none;}<br /> .ns-100 h4, .ns-101 h4 {color: #257ec2;}<br /> /* Tabs &amp; Content */ .ns-100 #content, .ns-101 #content,<br /> body.ns-100 div#p-cactions div.pBody ul li, body.ns-100 div#footer,<br /> body.ns-101 div#p-cactions div.pBody ul li, body.ns-101 div#footer{ border: #7b749b solid 1px;}<br /> <br /> #siteNotice, #siteNotice a{background: inherit;}<br /> <br /> #recent-edits tbody tr th{<br /> color:#090909;<br /> font-family: arial, trebuchet;<br /> font: 100 normal 130%/100% &quot;Arial Narrow&quot;, sans-serif;<br /> }<br /> /* links */<br /> a:link{color: #66bcd9; text-decoration: none; background: none;}<br /> a:visited{color: #808080; font-style: italic;}<br /> a:hover{color: #59939c; text-decoration: none;}<br /> /* Redlinks */<br /> a.new:link{color: #fd3e1c;}<br /> a.new:hover{color: #ff6600;}<br /> /* Interwiki links */<br /> a.external:link{color: #257ec2;}<br /> a.external:hover{color: #145789;}<br /> a.external:visited{color: #257ec2;}<br /> /* Tab links */<br /> #p-cactions li a:link{color: #c4bfb2;}<br /> #p-cactions li a:visited{color: #7b749b;}<br /> #p-cactions li a:hover{color: #b8b634;}<br /> #p-cactions li.new a:link{color: #fd3e1c;}<br /> #p-cactions li.new a:hover{color: #ff6600;}<br /> /* Main TOC links */<br /> table.infobox a:visited{color: #c4bfb2; font-style: italic;}<br /> table.infobox a:hover{color: #66bcd9; text-decoration: none;}<br /> <br /> html,div{ color: white; background-color: #090909;}<br /> <br /> div#bodyContent div{ background: none;}<br /> <br /> table { color: white; background-color: inherit; }<br /> body { font-style:normal;<br /> font-variant:normal;<br /> line-height:normal;<br /> text-indent: 0.4em;<br /> }<br /> <br /> b { color:#c4bfb2; font-weight: 500;}/*bolder*/<br /> p{ color: white;background-color: inherit;padding-left: 0.8em;}<br /> <br /> dl dt{}<br /> dd b{ color: #59939c;}<br /> <br /> h1, h2, h3, h4 {<br /> background: none;<br /> font-family: arial, trebuchet;<br /> font: 100 normal 130%/100% &quot;Arial Narrow&quot;, sans-serif;<br /> border-bottom: none;<br /> }<br /> <br /> h1 { color: #7b749b; border-bottom: #7b749b solid 1px;<br /> font: 500 normal 160%/180% &quot;Arial Narrow&quot;, sans-serif;<br /> }<br /> h2 { color:#99aadd; font: 300 normal 140%/120% &quot;Arial Narrow&quot;, sans-serif;}h2{ font-size: 142% !important;}<br /> h3, h4 { color: #c0c0c0; font-size: 132%; text-indent: 0.2em;}<br /> <br /> h2 .mw-headline,<br /> h3 .mw-headline{<br /> margin-left: -3pt !important;<br /> padding-left: 3pt !important;<br /> background: #101010 !important;<br /> border-top: #090909 1pt solid !important;<br /> border-right: #090909 1pt solid !important;<br /> -moz-border-radius-topright: 0.6em;<br /> -moz-border-radius-bottomleft: 0.2em;<br /> }<br /> <br /> h2 .mw-headline{<br /> padding-right: 40% !important;<br /> border-left: #99AADD 1pt dotted !important;<br /> border-bottom: #99AADD 1pt solid !important;<br /> background: #101010 !important;<br /> }<br /> <br /> h3 .mw-headline{<br /> padding-right: 3pt !important;<br /> border-left: #202020 1pt dotted !important;<br /> border-bottom: #202020 3pt double !important;<br /> }<br /> <br /> div#mw-pages h3{color: #222222;}<br /> <br /> h5 span.mw-headline{ color: #FFFFFF;}<br /> <br /> h4 { color: #257ec2; font: 100 normal 130%/100% &quot;Arial Narrow&quot;, sans-serif;}<br /> h5 { color: #FFFFFF;}<br /> h6 { color: #000000;}<br /> <br /> hr { background: #151515; color: #909;<br /> margin-top: 1em; margin-bottom: 1em;<br /> }<br /> li,<br /> ul { background: inherit; }<br /> <br /> #pbody,#pbody a{ background: inherit; }<br /> #pbody a{ border: 1px solid #99aadd;}<br /> /*__TOC__*/<br /> #toc { background-color: #494949; border: 1px solid #9f9f9f;-moz-border-radius: 4px;}<br /> #toctitle{ background: none;text-decoration: none;}<br /> <br /> #div.toctitle h2{background: inherit; text-decoration: none;}<br /> <br /> #content { background: #151515;<br /> font-family: arial, trebuchet;<br /> font-size: 100%;<br /> -moz-border-radius-topleft: 0.5em;<br /> -moz-border-radius-bottomleft: 0.5em;<br /> }<br /> <br /> #contentSub,<br /> #bodyContent{ padding-top: 4pt;background: none; }<br /> <br /> div.content div{ background: none;}<br /> <br /> div.thumb{ background: inherit; }<br /> div.plainlinks,<br /> div.noprint{ background: #494949; }<br /> /* Main Contents */<br /> table.infobox,<br /> div.infobox,<br /> div#bodycontent div.infobox{<br /> background: #5f5f5f;<br /> border: 1px solid #000000;<br /> -moz-border-radius: 4px;<br /> }<br /> table.infobox tbody,<br /> table.infobox tbody tr th{cursor: default;padding-left: 8pt;}<br /> table.infobox tbody ul,<br /> table.infobox tbody ul li{<br /> padding-left: 6%;<br /> list-style-image: none;<br /> list-style-type: none;<br /> }<br /> table.infobox tbody ul li{color: #282828;padding-left: 6pt;}<br /> <br /> table.infobox tbody ul li a{<br /> font-family: arial, trebuchet;<br /> font: 100 normal 120%/100% &quot;Arial Narrow&quot;, sans-serif;<br /> margin-left: -12%;<br /> padding-left: 3pt;<br /> padding-right: 4pt;<br /> padding-top: 2pt;<br /> }<br /> table.infobox tbody ul li:hover{<br /> background: #555555;<br /> margin-right: 16%;<br /> -moz-border-radius: 0.4em;<br /> }<br /> <br /> div#bodyContent table.ambox/*,<br /> div#bodyContent table.ambox tbody,<br /> div#bodyContent table.ambox tbody tr,<br /> div#bodyContent table.ambox tbody tr ambox-text.td*/{border: none; -moz-border-radius: 0.4em;}<br /> <br /> /*.ambox,table.ambox,table.ambox tbody{color: #c4bfb2 ; background: none;}*/<br /> .ambox-text{background: none;}<br /> <br /> table.ambox-notice{background: #14344b;}<br /> table.ambox-serious{background: #3b1818;}<br /> table.ambox-content{background: #4b3010;}<br /> table.ambox-style{background: #4b3f10;}<br /> table.ambox-info{background: #303037;}<br /> <br /> #mw-headline {background: inherit;}<br /> <br /> h4 span.mwheadline{text-indent: 0.1em;}<br /> h5 span.mwheadline{color: #FFFFFF;}<br /> h6, h6 span.mwheadline{color: #FFFFFF; }<br /> <br /> table.navbox,<br /> table.navbox tbody tr.navbox-body td.navbox-body,<br /> table.navbox tbody tr.navbox-body th.navbox-group{background: #343434;}<br /> table.navbox tbody tr.navbox-header{<br /> background: #819681;<br /> -moz-border-radius: 0.2em;}<br /> table.navbox tbody tr.navbox-header a{color: #222222;}<br /> <br /> table#recent-edits.infobox tbody tr th{color: #FFFFFF; text-align: justify;}<br /> <br /> div#catlinks{border: #5f5f5f dotted 1px; background: #090909; -moz-border-radius: 0.4em;}<br /> <br /> /* Remove Edit Sections for minor headings */<br /> h3 span.editsection,h4 span.editsection,h5 span.editsection,h6 span.editsection{display: none;}<br /> <br /> /* Search Box */<br /> div#p-search.portlet div#searchBody.pBody{ background: none;}<br /> <br /> div#p-search.portlet div#searchBody.pBody form#searchForm,<br /> div#p-search.portlet div#searchBody.pBody form#searchForm div,<br /> div#p-search.portlet div#searchBody.pBody form#searchForm div input#searchInput{<br /> color: #FFFFFF;<br /> background: #090909;<br /> }<br /> <br /> /* Tabs */<br /> /*#p-cactions li a:visited{background: none;}*/<br /> #p-cactions li.selected,<br /> #p-cactions li.selected a,<br /> #p-cactions li a:hover{background: #151515;}<br /> <br /> div#p-cactions div.pBody ul li{<br /> background: #151515;<br /> padding-top: 4pt;<br /> -moz-border-radius-topleft: 0.4em;<br /> -moz-border-radius-topright: 0.4em;<br /> }<br /> <br /> /*div#p-cactions div.pBody ul li a*/<br /> #p-cactions li a{<br /> font-family: arial, trebuchet;<br /> font: 100 normal 110%/120% &quot;Arial Narrow&quot;, sans-serif;<br /> background: #151515;<br /> }<br /> <br /> /**/<br /> body.mediawiki div#globalWrapper div#footer{ background: #151515;}<br /> <br /> div#bodyContent div table{<br /> background: #819681;<br /> }<br /> <br /> div#bodyContent div table tbody{<br /> background: #5f5f5f;<br /> }<br /> <br /> div#bodyContent div table tbody tr{<br /> background: #5f5f5f;<br /> }<br /> <br /> /* Thumb Image adjustments */<br /> div#bodyContent div.thumb,<br /> div#bodyContent div.thumb div.thumbinner,<br /> div#bodyContent div.thumb div.thumbinner a.image{<br /> padding: 4px;<br /> padding-left: 3px;<br /> padding-right: 6px;<br /> color: white;<br /> background: none;<br /> -moz-border-radius: 4px;<br /> }<br /> <br /> div#bodyContent div.thumb,<br /> div#bodyContent div.thumb div.thumbinner a.image img{ border: none;}<br /> <br /> div#bodyContent div.tleft{padding-right: 12px;}<br /> div#bodyContent div.tright{padding-left: 12px;}<br /> <br /> /* Text Alignment Tweaks */<br /> div#bodyContent h2 {text-indent: 0.2em;}<br /> div#bodyContent h3 {text-indent: 0.4em;}<br /> div#bodyContent h4 {text-indent: 0.6em; font: 100 normal 120%/70% &quot;Arial Narrow&quot;, sans-serif;}<br /> <br /> div#bodyContent h1.firstHeading{padding-top: 12pt;font: 100 normal 170%/100% &quot;Arial Narrow&quot;, sans-serif;}<br /> /*================================================================================*/<br /> div#p-tb div.pBody,<br /> div#p-personal,<br /> div#p-personal div.pBody,<br /> div#p-personal div.pBody ul{ background: none;}<br /> <br /> div#p-personal div.pBody{padding-left: 60%;}<br /> <br /> div#column-one div#p-personal{<br /> padding-top: 8pt;<br /> height: 18px;<br /> font-family: arial, trebuchet;<br /> font: 100 normal 130%/100% &quot;Arial Narrow&quot;, sans-serif;<br /> }<br /> <br /> div#column-one div#p-personal div.pBody a{color: #adcc63; text-decoration: none;}<br /> div#column-one div#p-personal div.pBody ul li:hover{color: #000000;background: #adcc63;}<br /> <br /> div#column-one div#p-personal div.pBody ul li{<br /> background: #000000;<br /> border: 1pt #151515 solid;<br /> border-bottom: 2pt #151515 solid;<br /> padding-left: 6pt;<br /> padding-right: 6pt;<br /> margin-left: 2pt;<br /> -moz-border-radius-topleft: 0.5em;<br /> -moz-border-radius-bottomleft: 0.5em;<br /> }<br /> <br /> .mw-specialpagesgroup{background: #151515;}<br /> <br /> div#column-content, div#column-one div#p-cactions{padding-top: 8pt;}<br /> <br /> div#catlinks{<br /> border: 0.5pt #5f5f5f solid;<br /> background: #090909 !important;<br /> -moz-border-radius: 0.4em;<br /> }<br /> <br /> table.navbox { border: #5f5f5f 1pt solid; -moz-border-radius: 0.5em;}<br /> <br /> table.navbox th.navbox-header{background: #343434;}<br /> table.navbox th.navbox-header&gt;div{<br /> border: #151515 1pt solid;<br /> background: #819681;<br /> -moz-border-radius: 0.4em;}<br /> <br /> div#p-navigation h5{<br /> color: #bebebe;<br /> background: #151515;<br /> font-family: arial, trebuchet;<br /> font: 100 normal 130%/100% &quot;Arial Narrow&quot;, sans-serif;<br /> border-left: 3pt #bebebe double;<br /> border-bottom: 1pt #bebebe solid;<br /> padding-right: 34pt;<br /> -moz-border-radius-bottomleft: 0.4em;<br /> -moz-border-radius-topright: 1.2em;<br /> }<br /> <br /> div#p-navigation div.pBody,<br /> div#p-navigation div.pBody ul,<br /> div#p-navigation div.pBody ul li{list-style-image: none;list-style-type: none;}<br /> div#p-navigation div.pBody ul{padding-left: 2pt; border-left: 1pt #9f9f9f solid;}<br /> div#p-navigation div.pBody ul li{padding-top: 2pt;background: #151515;}<br /> <br /> div#p-navigation div.pBody a{<br /> font-family: arial, trebuchet;<br /> font: 100 normal 120%/100% &quot;Arial Narrow&quot;, sans-serif;<br /> border-left: 3pt #bebebe double;<br /> border-bottom: 1pt #bebebe solid;<br /> padding-left: 3pt;<br /> padding-right: 4pt;<br /> padding-top: 2pt;<br /> -moz-border-radius-bottomleft: 0.4em;<br /> -moz-border-radius-topright: 0.8em;<br /> }<br /> <br /> div#p-navigation div.pBody a:link{color:#9f9f9f;}<br /> div#p-navigation div.pBody a:hover{<br /> color:#bfbfbf;<br /> border-left: 3pt #575757 double;<br /> border-bottom: 1pt #575757 solid;<br /> }<br /> <br /> /*================================================================================*/<br /> /* (codenoir) */<br /> div#bodyContent pre{border: #494949 dotted 1px; background: #090909; color: #ffffff}<br /> pre.de1{color:white;}<br /> code{border: none; background: none; color:#ffffff;}<br /> <br /> /** Global Highlighter (codenoir) - Supports: CSS, UScript */<br /> div#bodyContent div.mw-geshi{border: #5f5f5f dotted 1px; background: #090909;-moz-border-radius: 4px;}<br /> <br /> div#bodyContent div.mw-geshi div,<br /> div#bodyContent div.mw-geshi div pre{ border: none;}<br /> /* Keywords */<br /> div#bodyContent span.kw1,<br /> div#bodyContent span.kw4, /* UC: Types */<br /> div#bodyContent span.kw5,<br /> div#bodyContent span.kw6{ color:#66bcd9;}<br /> /* Comments */<br /> div#bodyContent span.co1,<br /> div#bodyContent span.coMULTI{ color:#00c000;}<br /> /* Literals */<br /> div#bodyContent span.st0{ color:#fd3e1c;}<br /> <br /> /** Uscript - Highlighter (codenoir) */<br /> div.source-uscript pre{<br /> border: none;background: none;color: #000000;<br /> -moz-border-radius: 4px;<br /> }<br /> <br /> div.mw-geshi div.uscript pre.de1 span.br0,<br /> div.mw-geshi div.uscript pre.de1 span.sy0,<br /> div.mw-geshi div.uscript pre.de1 span.sy1,<br /> /* casts,enum,struct?*/<br /> div.mw-geshi div.uscript pre.de1 span.me1{ color:#FFFFFF;}<br /> /* Keywords *//* Secondary - True/None/Owner/Self? */<br /> div.mw-geshi div.uscript pre.de1 span.kw8{ color:#66bcd9;}<br /> /* Keywords - Secondary */<br /> div.mw-geshi div.uscript pre.de1 span.kw7{ color:#8f8f8f;}<br /> <br /> body.ns-105 div.mw-geshi div.uscript pre.de1 span.kw10,<br /> body.ns-104 div.mw-geshi div.uscript pre.de1 span.kw10{color:#257ec2;}<br /> /* Major UE Classes */<br /> div.mw-geshi div.uscript pre.de1 span.kw10{ color:#cccc00;}<br /> /* Digit */<br /> div.mw-geshi div.uscript pre.de1 span.nu0{ color:#ff6600;}<br /> /* Markup */<br /> div.mw-geshi div.uscript pre.de1 span.re0{ color:#0066ff;}<br /> /** XML - Highlighter (codenoir) */<br /> div.mw-geshi div.xml pre.de1 span.sc3{ color:#ffffff;}<br /> /* Markup */<br /> div.mw-geshi div.xml pre.de1 span.re0,<br /> div.mw-geshi div.xml pre.de1 span.re1,<br /> div.mw-geshi div.xml pre.de1 span.re2{ color:#0066ff;}<br /> /* Comments */<br /> div.mw-geshi div.xml pre.de1 span.sc-1{ color:#00c000;}<br /> /** NSIS - Highlighter (codenoir) */<br /> div.mw-geshi div.nsis pre.de1 span.kw2{ color:#0066ff;}<br /> div.mw-geshi div.nsis pre.de1 span.re5{ color:#cccc00;}<br /> /** (DOS) BATCH - Highlighter (codenoir) */<br /> div.mw-geshi div.dos pre.de1 span.kw3{ color:#66bcd9;}<br /> div.mw-geshi div.dos pre.de1 span.re2{ color:#cccc00;}<br /> div.mw-geshi div.dos pre.de1 span.sy0{ color:#fd3e1c;}</div> 00zX https://wiki.beyondunreal.com/User:00zX/monobook.css?diff=44584 User:00zX/monobook.css 2011-09-01T15:42:37Z <p>00zX: Fixing tables</p> <hr /> <div>/** Namespace's */<br /> /* UE1 */<br /> .ns-102 h1, .ns-103 h1 {color:#7b749b; border: none;}<br /> .ns-102 h4, .ns-103 h4 {color: #59939c;}<br /> /* Tabs &amp; Content */ .ns-102 #content, .ns-103 #content,<br /> body.ns-102 div#p-cactions div.pBody ul li, body.ns-102 div#footer,<br /> body.ns-103 div#p-cactions div.pBody ul li, body.ns-103 div#footer{ border: #bcb936 solid 1px;}<br /> /* UE2 */<br /> .ns-104 h1, .ns-105 h1 {color:#7b749b; border:none;}<br /> .ns-104 #portlet a:visited, .ns-105 #portlet a:visited{border: #257ec2 solid 1px;}<br /> /* Tabs &amp; Content */ .ns-104 #content, .ns-105 #content,<br /> body.ns-104 div#p-cactions div.pBody ul li, body.ns-104 div#footer,<br /> body.ns-105 div#p-cactions div.pBody ul li, body.ns-105 div#footer{ border: #257ec2 solid 1px;}<br /> /* UE3 */ /* #fd3e1c - Old Red */<br /> .ns-106 h1, .ns-107 h1 {color:#7b749b; border: none;}<br /> #portlet a:visited, #portlet a:visited{background: inherit;border-color: #bcb936;}<br /> /* Tabs &amp; Content */ .ns-106 #content, .ns-107 #content,<br /> body.ns-106 div#p-cactions div.pBody ul li, body.ns-106 div#footer,<br /> body.ns-107 div#p-cactions div.pBody ul li, body.ns-107 div#footer{ border: #bcb936 solid 1px;}<br /> /* Legacy */<br /> .ns-100 #content, .ns-101 #content {background: #151515; border: #7b749b solid 1px;}<br /> .ns-100 h1, .ns-101 h1 {color:#7b749b; border: none;}<br /> .ns-100 h4, .ns-101 h4 {color: #257ec2;}<br /> /* Tabs &amp; Content */ .ns-100 #content, .ns-101 #content,<br /> body.ns-100 div#p-cactions div.pBody ul li, body.ns-100 div#footer,<br /> body.ns-101 div#p-cactions div.pBody ul li, body.ns-101 div#footer{ border: #7b749b solid 1px;}<br /> <br /> #siteNotice, #siteNotice a{background: inherit;}<br /> <br /> #recent-edits tbody tr th{<br /> color:#090909;<br /> font-family: arial, trebuchet;<br /> font: 100 normal 130%/100% &quot;Arial Narrow&quot;, sans-serif;<br /> }<br /> /* links */<br /> a:link{color: #66bcd9; text-decoration: none; background: none;}<br /> a:visited{color: #808080; font-style: italic;}<br /> a:hover{color: #59939c; text-decoration: none;}<br /> /* Redlinks */<br /> a.new:link{color: #fd3e1c;}<br /> a.new:hover{color: #ff6600;}<br /> /* Interwiki links */<br /> a.external:link{color: #257ec2;}<br /> a.external:hover{color: #145789;}<br /> a.external:visited{color: #257ec2;}<br /> /* Tab links */<br /> #p-cactions li a:link{color: #c4bfb2;}<br /> #p-cactions li a:visited{color: #7b749b;}<br /> #p-cactions li a:hover{color: #b8b634;}<br /> #p-cactions li.new a:link{color: #fd3e1c;}<br /> #p-cactions li.new a:hover{color: #ff6600;}<br /> /* Main TOC links */<br /> table.infobox a:visited{color: #c4bfb2; font-style: italic;}<br /> table.infobox a:hover{color: #66bcd9; text-decoration: none;}<br /> <br /> html,div{ color: white; background-color: #090909;}<br /> <br /> div#bodyContent div{ background: none;}<br /> <br /> table { color: white; background-color: inherit; }<br /> body { font-style:normal;<br /> font-variant:normal;<br /> line-height:normal;<br /> text-indent: 0.4em;<br /> }<br /> <br /> b { color:#c4bfb2; font-weight: 500;}/*bolder*/<br /> p{ color: white;background-color: inherit;padding-left: 0.8em;}<br /> <br /> dl dt{}<br /> dd b{ color: #59939c;}<br /> <br /> h1, h2, h3, h4 {<br /> background: none;<br /> font-family: arial, trebuchet;<br /> font: 100 normal 130%/100% &quot;Arial Narrow&quot;, sans-serif;<br /> border-bottom: none;<br /> }<br /> <br /> h1 { color: #7b749b; border-bottom: #7b749b solid 1px;<br /> font: 500 normal 160%/180% &quot;Arial Narrow&quot;, sans-serif;<br /> }<br /> h2 { color:#99aadd; font: 300 normal 140%/120% &quot;Arial Narrow&quot;, sans-serif;}h2{ font-size: 142% !important;}<br /> h3, h4 { color: #c0c0c0; font-size: 132%; text-indent: 0.2em;}<br /> <br /> h2 .mw-headline,<br /> h3 .mw-headline{<br /> margin-left: -3pt !important;<br /> padding-left: 3pt !important;<br /> background: #101010 !important;<br /> border-top: #090909 1pt solid !important;<br /> border-right: #090909 1pt solid !important;<br /> -moz-border-radius-topright: 0.6em;<br /> -moz-border-radius-bottomleft: 0.2em;<br /> }<br /> <br /> h2 .mw-headline{<br /> padding-right: 40% !important;<br /> border-left: #99AADD 1pt dotted !important;<br /> border-bottom: #99AADD 1pt solid !important;<br /> background: #101010 !important;<br /> }<br /> <br /> h3 .mw-headline{<br /> padding-right: 3pt !important;<br /> border-left: #202020 1pt dotted !important;<br /> border-bottom: #202020 3pt double !important;<br /> }<br /> <br /> div#mw-pages h3{color: #222222;}<br /> <br /> h5 span.mw-headline{ color: #FFFFFF;}<br /> <br /> h4 { color: #257ec2; font: 100 normal 130%/100% &quot;Arial Narrow&quot;, sans-serif;}<br /> h5 { color: #FFFFFF;}<br /> h6 { color: #000000;}<br /> <br /> hr { background: #151515; color: #909;<br /> margin-top: 1em; margin-bottom: 1em;<br /> }<br /> li,<br /> ul { background: inherit; }<br /> <br /> #pbody,#pbody a{ background: inherit; }<br /> #pbody a{ border: 1px solid #99aadd;}<br /> /*__TOC__*/<br /> #toc { background-color: #494949; border: 1px solid #9f9f9f;-moz-border-radius: 4px;}<br /> #toctitle{ background: none;text-decoration: none;}<br /> <br /> #div.toctitle h2{background: inherit; text-decoration: none;}<br /> <br /> #content { background: #151515;<br /> font-family: arial, trebuchet;<br /> font-size: 100%;<br /> -moz-border-radius-topleft: 0.5em;<br /> -moz-border-radius-bottomleft: 0.5em;<br /> }<br /> <br /> #contentSub,<br /> #bodyContent{ padding-top: 4pt;background: none; }<br /> <br /> div.content div{ background: none;}<br /> <br /> div.thumb{ background: inherit; }<br /> div.plainlinks,<br /> div.noprint{ background: #494949; }<br /> /* Main Contents */<br /> table.infobox,<br /> div.infobox,<br /> div#bodycontent div.infobox{<br /> background: #5f5f5f;<br /> border: 1px solid #000000;<br /> -moz-border-radius: 4px;<br /> }<br /> table.infobox tbody,<br /> table.infobox tbody tr th{cursor: default;padding-left: 8pt;}<br /> table.infobox tbody ul,<br /> table.infobox tbody ul li{<br /> padding-left: 6%;<br /> list-style-image: none;<br /> list-style-type: none;<br /> }<br /> table.infobox tbody ul li{color: #282828;padding-left: 6pt;}<br /> <br /> table.infobox tbody ul li a{<br /> font-family: arial, trebuchet;<br /> font: 100 normal 120%/100% &quot;Arial Narrow&quot;, sans-serif;<br /> margin-left: -12%;<br /> padding-left: 3pt;<br /> padding-right: 4pt;<br /> padding-top: 2pt;<br /> }<br /> table.infobox tbody ul li:hover{<br /> background: #555555;<br /> margin-right: 16%;<br /> -moz-border-radius: 0.4em;<br /> }<br /> <br /> div#bodyContent table.ambox/*,<br /> div#bodyContent table.ambox tbody,<br /> div#bodyContent table.ambox tbody tr,<br /> div#bodyContent table.ambox tbody tr ambox-text.td*/{border: none; -moz-border-radius: 0.4em;}<br /> <br /> /*.ambox,table.ambox,table.ambox tbody{color: #c4bfb2 ; background: none;}*/<br /> .ambox-text{background: none;}<br /> <br /> table.ambox-notice{background: #14344b;}<br /> table.ambox-serious{background: #3b1818;}<br /> table.ambox-content{background: #4b3010;}<br /> table.ambox-style{background: #4b3f10;}<br /> table.ambox-info{background: #303037;}<br /> <br /> #mw-headline {background: inherit;}<br /> <br /> h4 span.mwheadline{text-indent: 0.1em;}<br /> h5 span.mwheadline{color: #FFFFFF;}<br /> h6, h6 span.mwheadline{color: #FFFFFF; }<br /> <br /> table.navbox,<br /> table.navbox tbody tr.navbox-body td.navbox-body,<br /> table.navbox tbody tr.navbox-body th.navbox-group{background: #343434;}<br /> table.navbox tbody tr.navbox-header{<br /> background: #819681;<br /> -moz-border-radius: 0.2em;}<br /> table.navbox tbody tr.navbox-header a{color: #222222;}<br /> <br /> table#recent-edits.infobox tbody tr th{color: #FFFFFF; text-align: justify;}<br /> <br /> div#catlinks{border: #5f5f5f dotted 1px; background: #090909; -moz-border-radius: 0.4em;}<br /> <br /> /* Remove Edit Sections for minor headings */<br /> h3 span.editsection,h4 span.editsection,h5 span.editsection,h6 span.editsection{display: none;}<br /> <br /> /* Search Box */<br /> div#p-search.portlet div#searchBody.pBody{ background: none;}<br /> <br /> div#p-search.portlet div#searchBody.pBody form#searchForm,<br /> div#p-search.portlet div#searchBody.pBody form#searchForm div,<br /> div#p-search.portlet div#searchBody.pBody form#searchForm div input#searchInput{<br /> color: #FFFFFF;<br /> background: #090909;<br /> }<br /> <br /> /* Tabs */<br /> /*#p-cactions li a:visited{background: none;}*/<br /> #p-cactions li.selected,<br /> #p-cactions li.selected a,<br /> #p-cactions li a:hover{background: #151515;}<br /> <br /> div#p-cactions div.pBody ul li{<br /> background: #151515;<br /> padding-top: 4pt;<br /> -moz-border-radius-topleft: 0.4em;<br /> -moz-border-radius-topright: 0.4em;<br /> }<br /> <br /> /*div#p-cactions div.pBody ul li a*/<br /> #p-cactions li a{<br /> font-family: arial, trebuchet;<br /> font: 100 normal 110%/120% &quot;Arial Narrow&quot;, sans-serif;<br /> background: #151515;<br /> }<br /> <br /> /**/<br /> body.mediawiki div#globalWrapper div#footer{ background: #151515;}<br /> <br /> div#bodyContent div table{<br /> background: #819681;<br /> }<br /> <br /> /* Thumb Image adjustments */<br /> div#bodyContent div.thumb,<br /> div#bodyContent div.thumb div.thumbinner,<br /> div#bodyContent div.thumb div.thumbinner a.image{<br /> padding: 4px;<br /> padding-left: 3px;<br /> padding-right: 6px;<br /> color: white;<br /> background: none;<br /> -moz-border-radius: 4px;<br /> }<br /> <br /> div#bodyContent div.thumb,<br /> div#bodyContent div.thumb div.thumbinner a.image img{ border: none;}<br /> <br /> div#bodyContent div.tleft{padding-right: 12px;}<br /> div#bodyContent div.tright{padding-left: 12px;}<br /> <br /> /* Text Alignment Tweaks */<br /> div#bodyContent h2 {text-indent: 0.2em;}<br /> div#bodyContent h3 {text-indent: 0.4em;}<br /> div#bodyContent h4 {text-indent: 0.6em; font: 100 normal 120%/70% &quot;Arial Narrow&quot;, sans-serif;}<br /> <br /> div#bodyContent h1.firstHeading{padding-top: 12pt;font: 100 normal 170%/100% &quot;Arial Narrow&quot;, sans-serif;}<br /> /*================================================================================*/<br /> div#p-tb div.pBody,<br /> div#p-personal,<br /> div#p-personal div.pBody,<br /> div#p-personal div.pBody ul{ background: none;}<br /> <br /> div#p-personal div.pBody{padding-left: 60%;}<br /> <br /> div#column-one div#p-personal{<br /> padding-top: 8pt;<br /> height: 18px;<br /> font-family: arial, trebuchet;<br /> font: 100 normal 130%/100% &quot;Arial Narrow&quot;, sans-serif;<br /> }<br /> <br /> div#column-one div#p-personal div.pBody a{color: #adcc63; text-decoration: none;}<br /> div#column-one div#p-personal div.pBody ul li:hover{color: #000000;background: #adcc63;}<br /> <br /> div#column-one div#p-personal div.pBody ul li{<br /> background: #000000;<br /> border: 1pt #151515 solid;<br /> border-bottom: 2pt #151515 solid;<br /> padding-left: 6pt;<br /> padding-right: 6pt;<br /> margin-left: 2pt;<br /> -moz-border-radius-topleft: 0.5em;<br /> -moz-border-radius-bottomleft: 0.5em;<br /> }<br /> <br /> .mw-specialpagesgroup{background: #151515;}<br /> <br /> div#column-content, div#column-one div#p-cactions{padding-top: 8pt;}<br /> <br /> div#catlinks{<br /> border: 0.5pt #5f5f5f solid;<br /> background: #090909 !important;<br /> -moz-border-radius: 0.4em;<br /> }<br /> <br /> table.navbox { border: #5f5f5f 1pt solid; -moz-border-radius: 0.5em;}<br /> <br /> table.navbox th.navbox-header{background: #343434;}<br /> table.navbox th.navbox-header&gt;div{<br /> border: #151515 1pt solid;<br /> background: #819681;<br /> -moz-border-radius: 0.4em;}<br /> <br /> div#p-navigation h5{<br /> color: #bebebe;<br /> background: #151515;<br /> font-family: arial, trebuchet;<br /> font: 100 normal 130%/100% &quot;Arial Narrow&quot;, sans-serif;<br /> border-left: 3pt #bebebe double;<br /> border-bottom: 1pt #bebebe solid;<br /> padding-right: 34pt;<br /> -moz-border-radius-bottomleft: 0.4em;<br /> -moz-border-radius-topright: 1.2em;<br /> }<br /> <br /> div#p-navigation div.pBody,<br /> div#p-navigation div.pBody ul,<br /> div#p-navigation div.pBody ul li{list-style-image: none;list-style-type: none;}<br /> div#p-navigation div.pBody ul{padding-left: 2pt; border-left: 1pt #9f9f9f solid;}<br /> div#p-navigation div.pBody ul li{padding-top: 2pt;background: #151515;}<br /> <br /> div#p-navigation div.pBody a{<br /> font-family: arial, trebuchet;<br /> font: 100 normal 120%/100% &quot;Arial Narrow&quot;, sans-serif;<br /> border-left: 3pt #bebebe double;<br /> border-bottom: 1pt #bebebe solid;<br /> padding-left: 3pt;<br /> padding-right: 4pt;<br /> padding-top: 2pt;<br /> -moz-border-radius-bottomleft: 0.4em;<br /> -moz-border-radius-topright: 0.8em;<br /> }<br /> <br /> div#p-navigation div.pBody a:link{color:#9f9f9f;}<br /> div#p-navigation div.pBody a:hover{<br /> color:#bfbfbf;<br /> border-left: 3pt #575757 double;<br /> border-bottom: 1pt #575757 solid;<br /> }<br /> <br /> /*================================================================================*/<br /> /* (codenoir) */<br /> div#bodyContent pre{border: #494949 dotted 1px; background: #090909; color: #ffffff}<br /> pre.de1{color:white;}<br /> code{border: none; background: none; color:#ffffff;}<br /> <br /> /** Global Highlighter (codenoir) - Supports: CSS, UScript */<br /> div#bodyContent div.mw-geshi{border: #5f5f5f dotted 1px; background: #090909;-moz-border-radius: 4px;}<br /> <br /> div#bodyContent div.mw-geshi div,<br /> div#bodyContent div.mw-geshi div pre{ border: none;}<br /> /* Keywords */<br /> div#bodyContent span.kw1,<br /> div#bodyContent span.kw4, /* UC: Types */<br /> div#bodyContent span.kw5,<br /> div#bodyContent span.kw6{ color:#66bcd9;}<br /> /* Comments */<br /> div#bodyContent span.co1,<br /> div#bodyContent span.coMULTI{ color:#00c000;}<br /> /* Literals */<br /> div#bodyContent span.st0{ color:#fd3e1c;}<br /> <br /> /** Uscript - Highlighter (codenoir) */<br /> div.source-uscript pre{<br /> border: none;background: none;color: #000000;<br /> -moz-border-radius: 4px;<br /> }<br /> <br /> div.mw-geshi div.uscript pre.de1 span.br0,<br /> div.mw-geshi div.uscript pre.de1 span.sy0,<br /> div.mw-geshi div.uscript pre.de1 span.sy1,<br /> /* casts,enum,struct?*/<br /> div.mw-geshi div.uscript pre.de1 span.me1{ color:#FFFFFF;}<br /> /* Keywords *//* Secondary - True/None/Owner/Self? */<br /> div.mw-geshi div.uscript pre.de1 span.kw8{ color:#66bcd9;}<br /> /* Keywords - Secondary */<br /> div.mw-geshi div.uscript pre.de1 span.kw7{ color:#8f8f8f;}<br /> <br /> body.ns-105 div.mw-geshi div.uscript pre.de1 span.kw10,<br /> body.ns-104 div.mw-geshi div.uscript pre.de1 span.kw10{color:#257ec2;}<br /> /* Major UE Classes */<br /> div.mw-geshi div.uscript pre.de1 span.kw10{ color:#cccc00;}<br /> /* Digit */<br /> div.mw-geshi div.uscript pre.de1 span.nu0{ color:#ff6600;}<br /> /* Markup */<br /> div.mw-geshi div.uscript pre.de1 span.re0{ color:#0066ff;}<br /> /** XML - Highlighter (codenoir) */<br /> div.mw-geshi div.xml pre.de1 span.sc3{ color:#ffffff;}<br /> /* Markup */<br /> div.mw-geshi div.xml pre.de1 span.re0,<br /> div.mw-geshi div.xml pre.de1 span.re1,<br /> div.mw-geshi div.xml pre.de1 span.re2{ color:#0066ff;}<br /> /* Comments */<br /> div.mw-geshi div.xml pre.de1 span.sc-1{ color:#00c000;}<br /> /** NSIS - Highlighter (codenoir) */<br /> div.mw-geshi div.nsis pre.de1 span.kw2{ color:#0066ff;}<br /> div.mw-geshi div.nsis pre.de1 span.re5{ color:#cccc00;}<br /> /** (DOS) BATCH - Highlighter (codenoir) */<br /> div.mw-geshi div.dos pre.de1 span.kw3{ color:#66bcd9;}<br /> div.mw-geshi div.dos pre.de1 span.re2{ color:#cccc00;}<br /> div.mw-geshi div.dos pre.de1 span.sy0{ color:#fd3e1c;}</div> 00zX https://wiki.beyondunreal.com/Timing?diff=44582 Timing 2011-08-31T18:59:51Z <p>00zX: </p> <hr /> <div>{{stub}}<br /> <br /> '''Timing''' is a family of functions using which you can schedule other functions to be called asynchronously<br /> at a interval. Only &lt;code&gt;SetTimer&lt;/code&gt; exists in UT2004. <br /> Like in JavaScript, despite asynchronous nature of SetTimer, UnrealScript is still<br /> '''single-threaded'''. It means that you don't have to worry about thread-safety. Race conditions are still possible though.<br /> <br /> == Functions ==<br /> <br /> === SetTimer ===<br /> &lt;uscript&gt;<br /> native final function SetTimer(<br /> float inRate, <br /> optional bool inbLoop, // not optional in UT2004<br /> optional Name inTimerFunc='Timer', // doesn't exist in UT2004<br /> optional Object inObj // doesn't exist in UT2004<br /> );&lt;/uscript&gt;<br /> Sets a timer to call the given function at a set interval. Defaults to calling the 'Timer' event if no function is specified. If inRate is set to 0.f it will effectively disable the previous timer.<br /> <br /> &lt;ul&gt;<br /> &lt;li&gt;&lt;code&gt;inRate&lt;/code&gt; - time interval, in gameplay seconds. If &lt;code&gt;inRate &lt;= 0.0&lt;/code&gt;, it'll reset the timer.&lt;/li&gt;<br /> &lt;li&gt;&lt;code&gt;inbLoop&lt;code&gt; - if false, it'll fire only once. Default to false.&lt;/li&gt;<br /> &lt;li&gt;&lt;code&gt;inTimerFunc&lt;/code&gt; - function name.&lt;/li&gt;<br /> &lt;li&gt;&lt;code&gt;inObj&lt;/code&gt; - object whose function will called. Defaults to &lt;code&gt;self&lt;/code&gt;. Note that timer is still registered on &lt;code&gt;self&lt;/code&gt; object, not on &lt;code&gt;inObj&lt;/code&gt;. Which means, for instance, it's pointless to write something like <br /> &lt;uscript&gt;SetTimer(1.0,,, OtherObj);<br /> Destroy();&lt;/uscript&gt;<br /> because timer will be destroyed.&lt;/li&gt;<br /> &lt;/ul&gt;<br /> <br /> === ClearTimer ===<br /> &lt;uscript&gt;<br /> native final function ClearTimer(<br /> optional Name inTimerFunc='Timer', <br /> optional Object inObj <br /> );&lt;/uscript&gt;<br /> Clears a previously set timer.<br /> * &lt;code&gt;inTimerFunc&lt;/code&gt; - function name.<br /> * &lt;code&gt;inObj&lt;/code&gt; - object whose timers will be cleared.<br /> <br /> === ClearAllTimers ===<br /> &lt;uscript&gt;<br /> native final function ClearAllTimers(<br /> optional Object inObj<br /> );&lt;/uscript&gt;<br /> Clears all timers for the given object.<br /> * &lt;code&gt;inObj&lt;/code&gt; - object whose timers will be cleared.<br /> <br /> === PauseTimer ===<br /> &lt;uscript&gt;<br /> native final function PauseTimer(<br /> bool bPause, <br /> optional Name inTimerFunc='Timer', <br /> optional Object inObj<br /> );&lt;/uscript&gt;<br /> * &lt;code&gt;param&lt;/code&gt;<br /> * &lt;code&gt;inTimerFunc&lt;/code&gt; - function name.<br /> * &lt;code&gt;inObj&lt;/code&gt; - object whose timer will be paused.<br /> <br /> === IsTimerActive ===<br /> &lt;uscript&gt;<br /> native final function bool IsTimerActive(<br /> optional Name inTimerFunc='Timer', <br /> optional Object inObj<br /> );<br /> &lt;/uscript&gt;<br /> Checks is specified timer is active.<br /> * &lt;code&gt;inTimerFunc&lt;/code&gt; - function name.<br /> * &lt;code&gt;inObj&lt;/code&gt; - object whose function will be called.<br /> <br /> === GetTimerCount ===<br /> &lt;uscript&gt;<br /> native final function float GetTimerCount(<br /> optional Name inTimerFunc='Timer',<br /> optional Object inObj<br /> );<br /> &lt;/uscript&gt;<br /> Gets the current count for the specified timer, defaults to 'Timer' if no function is specified. <br /> Returns -1.f if the timer is not currently active. See &lt;code&gt;GetTimerRate&lt;/code&gt; below for explanation.<br /> * &lt;code&gt;inTimerFunc&lt;/code&gt; - function name.<br /> * &lt;code&gt;inObj&lt;/code&gt; - object whose function will be called.<br /> <br /> === GetTimerRate ===<br /> &lt;uscript&gt;<br /> native final function float GetTimerRate(<br /> optional name TimerFuncName = 'Timer', <br /> optional Object inObj<br /> );<br /> &lt;/uscript&gt;<br /> Gets the current rate for the specified timer. <br /> &lt;code&gt;GetTimerRate('SomeTimer') - GetTimerCount('SomeTimer')&lt;/code&gt; is the time remaining before 'SomeTimer' is called.<br /> In other words, &quot;count&quot; starts at 0, increases, and when it reaches &quot;rate&quot;, timer is fired.<br /> * &lt;code&gt;inTimerFunc&lt;/code&gt; - function name.<br /> * &lt;code&gt;inObj&lt;/code&gt; - object whose function will be called.<br /> <br /> === ModifyTimerTimeDilation ===<br /> &lt;uscript&gt;<br /> native final function ModifyTimerTimeDilation(<br /> const name TimerName, <br /> const float InTimerTimeDilation,<br /> optional Object inObj<br /> );&lt;/uscript&gt;<br /> This will search the Timers on this actor and set the passed in TimerTimeDilation<br /> * &lt;code&gt;inTimerFunc&lt;/code&gt; - function name.<br /> * &lt;code&gt;InTimerTimeDilation&lt;/code&gt; - new time dilation for this timer function.<br /> * &lt;code&gt;inObj&lt;/code&gt; - object whose function will be called.<br /> <br /> === ResetTimerTimeDilation ===<br /> &lt;uscript&gt;<br /> native final function ResetTimerTimeDilation(<br /> const name TimerName,<br /> optional Object inObj<br /> );&lt;/uscript&gt;<br /> This will search the Timers on this actor and reset the TimerTimeDilation to 1.0f<br /> * &lt;code&gt;inTimerFunc&lt;/code&gt; - function name.<br /> * &lt;code&gt;inObj&lt;/code&gt; - object for accessing function name.<br /> <br /> == How to make seconds real ==<br /> Multiply rate by &lt;code&gt;WorldInfo.TimeDilation&lt;/code&gt;. Of course, this method isn't absolutely reliable,<br /> as TimeDilation may change before timer fires.<br /> <br /> == See also ==<br /> * [[UE3:Actor native functions (UT3)#SetTimer | SetTimer in UT3]]<br /> * [[UE3:Actor native functions (UDK)#SetTimer | SetTimer in UDK]]</div> 00zX https://wiki.beyondunreal.com/Timing?diff=44581 Timing 2011-08-31T18:56:58Z <p>00zX: </p> <hr /> <div>{{stub}}<br /> <br /> '''Timing''' is a family of functions using which you can schedule other functions to be called asynchronously<br /> at a interval. Only &lt;code&gt;SetTimer&lt;/code&gt; exists in UT2004. <br /> Like in JavaScript, despite asynchronous nature of SetTimer, UnrealScript is still<br /> '''single-threaded'''. It means that you don't have to worry about thread-safety. Race conditions are still possible though.<br /> <br /> == Functions ==<br /> <br /> === SetTimer ===<br /> &lt;uscript&gt;<br /> native final function SetTimer(<br /> float inRate, <br /> optional bool inbLoop, // not optional in UT2004<br /> optional Name inTimerFunc='Timer', // doesn't exist in UT2004<br /> optional Object inObj // doesn't exist in UT2004<br /> );&lt;/uscript&gt;<br /> Sets a timer to call the given function at a set interval. Defaults to calling the 'Timer' event if no function is specified. If inRate is set to 0.f it will effectively disable the previous timer.<br /> <br /> &lt;ul&gt;<br /> &lt;li&gt;&lt;code&gt;inRate&lt;/code&gt; - time interval, in gameplay seconds. If &lt;code&gt;inRate &lt;= 0.0&lt;/code&gt;, it'll reset the timer.&lt;/li&gt;<br /> &lt;li&gt;&lt;code&gt;inbLoop&lt;code&gt; - if false, it'll fire only once. Default to false.&lt;/li&gt;<br /> &lt;li&gt;&lt;code&gt;inTimerFunc&lt;/code&gt; - function name.&lt;/li&gt;<br /> &lt;li&gt;&lt;code&gt;inObj&lt;/code&gt; - object whose function will called. Defaults to &lt;code&gt;self&lt;/code&gt;. Note that timer is still registered on &lt;code&gt;self&lt;/code&gt; object, not on &lt;code&gt;inObj&lt;/code&gt;. Which means, for instance, it's pointless to write something like <br /> &lt;uscript&gt;SetTimer(1.0,,, OtherObj);<br /> Destroy();&lt;/uscript&gt;<br /> because timer will be destroyed.&lt;/li&gt;<br /> &lt;/ul&gt;<br /> <br /> === ClearTimer ===<br /> &lt;uscript&gt;<br /> native final function ClearTimer(<br /> optional Name inTimerFunc='Timer', <br /> optional Object inObj <br /> );&lt;/uscript&gt;<br /> Clears a previously set timer.<br /> * &lt;code&gt;inTimerFunc&lt;/code&gt; - function name.<br /> * &lt;code&gt;inObj&lt;/code&gt; - object whose function will be called.<br /> <br /> === ClearAllTimers ===<br /> &lt;uscript&gt;<br /> native final function ClearAllTimers(<br /> optional Object inObj<br /> );&lt;/uscript&gt;<br /> * &lt;code&gt;inObj&lt;/code&gt; - object whose function will be called.<br /> <br /> === PauseTimer ===<br /> &lt;uscript&gt;<br /> native final function PauseTimer(<br /> bool bPause, <br /> optional Name inTimerFunc='Timer', <br /> optional Object inObj<br /> );&lt;/uscript&gt;<br /> * &lt;code&gt;param&lt;/code&gt;<br /> * &lt;code&gt;inTimerFunc&lt;/code&gt; - function name.<br /> * &lt;code&gt;inObj&lt;/code&gt; - object whose function will be called.<br /> <br /> === IsTimerActive ===<br /> &lt;uscript&gt;<br /> native final function bool IsTimerActive(<br /> optional Name inTimerFunc='Timer', <br /> optional Object inObj<br /> );<br /> &lt;/uscript&gt;<br /> Checks is specified timer is active.<br /> * &lt;code&gt;inTimerFunc&lt;/code&gt; - function name.<br /> * &lt;code&gt;inObj&lt;/code&gt; - object whose function will be called.<br /> <br /> === GetTimerCount ===<br /> &lt;uscript&gt;<br /> native final function float GetTimerCount(<br /> optional Name inTimerFunc='Timer',<br /> optional Object inObj<br /> );<br /> &lt;/uscript&gt;<br /> Gets the current count for the specified timer, defaults to 'Timer' if no function is specified. <br /> Returns -1.f if the timer is not currently active. See &lt;code&gt;GetTimerRate&lt;/code&gt; below for explanation.<br /> * &lt;code&gt;inTimerFunc&lt;/code&gt; - function name.<br /> * &lt;code&gt;inObj&lt;/code&gt; - object whose function will be called.<br /> <br /> === GetTimerRate ===<br /> &lt;uscript&gt;<br /> native final function float GetTimerRate(<br /> optional name TimerFuncName = 'Timer', <br /> optional Object inObj<br /> );<br /> &lt;/uscript&gt;<br /> Gets the current rate for the specified timer. <br /> &lt;code&gt;GetTimerRate('SomeTimer') - GetTimerCount('SomeTimer')&lt;/code&gt; is the time remaining before 'SomeTimer' is called.<br /> In other words, &quot;count&quot; starts at 0, increases, and when it reaches &quot;rate&quot;, timer is fired.<br /> * &lt;code&gt;inTimerFunc&lt;/code&gt; - function name.<br /> * &lt;code&gt;inObj&lt;/code&gt; - object whose function will be called.<br /> <br /> === ModifyTimerTimeDilation ===<br /> &lt;uscript&gt;<br /> native final function ModifyTimerTimeDilation(<br /> const name TimerName, <br /> const float InTimerTimeDilation,<br /> optional Object inObj<br /> );&lt;/uscript&gt;<br /> This will search the Timers on this actor and set the passed in TimerTimeDilation<br /> * &lt;code&gt;inTimerFunc&lt;/code&gt; - function name.<br /> * &lt;code&gt;InTimerTimeDilation&lt;/code&gt; - new time dilation for this timer function.<br /> * &lt;code&gt;inObj&lt;/code&gt; - object whose function will be called.<br /> <br /> === ResetTimerTimeDilation ===<br /> &lt;uscript&gt;<br /> native final function ResetTimerTimeDilation(<br /> const name TimerName,<br /> optional Object inObj<br /> );&lt;/uscript&gt;<br /> This will search the Timers on this actor and reset the TimerTimeDilation to 1.0f<br /> * &lt;code&gt;inTimerFunc&lt;/code&gt; - function name.<br /> * &lt;code&gt;inObj&lt;/code&gt; - object whose function will be called.<br /> <br /> == How to make seconds real ==<br /> Multiply rate by &lt;code&gt;WorldInfo.TimeDilation&lt;/code&gt;. Of course, this method isn't absolutely reliable,<br /> as TimeDilation may change before timer fires.<br /> <br /> == See also ==<br /> * [[UE3:Actor native functions (UT3)#SetTimer | SetTimer in UT3]]<br /> * [[UE3:Actor native functions (UDK)#SetTimer | SetTimer in UDK]]</div> 00zX https://wiki.beyondunreal.com/Timing?diff=44580 Timing 2011-08-31T18:56:32Z <p>00zX: </p> <hr /> <div>{{stub}}<br /> <br /> '''Timing''' is a family of functions using which you can schedule other functions to be called asynchronously<br /> at a interval. Only &lt;code&gt;SetTimer&lt;/code&gt; exists in UT2004. <br /> Like in JavaScript, despite asynchronous nature of SetTimer, UnrealScript is still<br /> '''single-threaded'''. It means that you don't have to worry about thread-safety. Race conditions are still possible though.<br /> <br /> == Functions ==<br /> <br /> === SetTimer ===<br /> &lt;uscript&gt;<br /> native final function SetTimer(<br /> float inRate, <br /> optional bool inbLoop, // not optional in UT2004<br /> optional Name inTimerFunc='Timer', // doesn't exist in UT2004<br /> optional Object inObj // doesn't exist in UT2004<br /> );&lt;/uscript&gt;<br /> Sets a timer to call the given function at a set interval. Defaults to calling the 'Timer' event if no function is specified. If inRate is set to 0.f it will effectively disable the previous timer.<br /> <br /> &lt;ul&gt;<br /> &lt;li&gt;&lt;code&gt;inRate&lt;/code&gt; - time interval, in gameplay seconds. If &lt;code&gt;inRate &lt;= 0.0&lt;/code&gt;, it'll reset the timer.&lt;/li&gt;<br /> &lt;li&gt;&lt;code&gt;inbLoop&lt;code&gt; - if false, it'll fire only once. Default to false.&lt;/li&gt;<br /> &lt;li&gt;&lt;code&gt;inTimerFunc&lt;/code&gt; - function name.&lt;/li&gt;<br /> &lt;li&gt;&lt;code&gt;inObj&lt;/code&gt; - object whose function will called. Defaults to &lt;code&gt;self&lt;/code&gt;. Note that timer is still registered on &lt;code&gt;self&lt;/code&gt; object, not on &lt;code&gt;inObj&lt;/code&gt;. Which means, for instance, it's pointless to write something like <br /> &lt;uscript&gt;SetTimer(1.0,,, OtherObj);<br /> Destroy();&lt;/uscript&gt;<br /> because timer will be destroyed.&lt;/li&gt;<br /> &lt;/ul&gt;<br /> <br /> === ClearTimer ===<br /> &lt;uscript&gt;<br /> native final function ClearTimer(<br /> optional Name inTimerFunc='Timer', <br /> optional Object inObj <br /> );&lt;/uscript&gt;<br /> Clears a previously set timer.<br /> * &lt;code&gt;inTimerFunc&lt;/code&gt; - function name.<br /> * &lt;code&gt;inObj&lt;/code&gt; - object whose function will be called.<br /> <br /> === ClearAllTimers ===<br /> &lt;uscript&gt;<br /> native final function ClearAllTimers(<br /> optional Object inObj<br /> );&lt;/uscript&gt;<br /> * &lt;code&gt;inObj&lt;/code&gt; - object whose function will be called.<br /> <br /> === PauseTimer ===<br /> &lt;uscript&gt;<br /> native final function PauseTimer(<br /> bool bPause, <br /> optional Name inTimerFunc='Timer', <br /> optional Object inObj<br /> );&lt;/uscript&gt;<br /> * &lt;code&gt;param&lt;/code&gt;<br /> * &lt;code&gt;inTimerFunc&lt;/code&gt; - function name.<br /> * &lt;code&gt;inObj&lt;/code&gt; - object whose function will be called.<br /> <br /> === IsTimerActive ===<br /> &lt;uscript&gt;<br /> native final function bool IsTimerActive(<br /> optional Name inTimerFunc='Timer', <br /> optional Object inObj<br /> );<br /> &lt;/uscript&gt;<br /> Checks is specified timer is active.<br /> * &lt;code&gt;inTimerFunc&lt;/code&gt; - function name.<br /> * &lt;code&gt;inObj&lt;/code&gt; - object whose function will be called.<br /> <br /> === GetTimerCount ===<br /> &lt;uscript&gt;<br /> native final function float GetTimerCount(<br /> optional Name inTimerFunc='Timer',<br /> optional Object inObj<br /> );<br /> &lt;/uscript&gt;<br /> Gets the current count for the specified timer, defaults to 'Timer' if no function is specified. <br /> Returns -1.f if the timer is not currently active. See &lt;code&gt;GetTimerRate&lt;/code&gt; below for explanation.<br /> * &lt;code&gt;inTimerFunc&lt;/code&gt; - function name.<br /> * &lt;code&gt;inObj&lt;/code&gt; - object whose function will be called.<br /> <br /> === GetTimerRate ===<br /> &lt;uscript&gt;<br /> native final function float GetTimerRate(<br /> optional name TimerFuncName = 'Timer', <br /> optional Object inObj<br /> );<br /> &lt;/uscript&gt;<br /> Gets the current rate for the specified timer. <br /> &lt;code&gt;GetTimerRate('SomeTimer') - GetTimerCount('SomeTimer')&lt;/code&gt; is the time remaining before 'SomeTimer' is called.<br /> In other words, &quot;count&quot; starts at 0, increases, and when it reaches &quot;rate&quot;, timer is fired.<br /> * &lt;code&gt;inTimerFunc&lt;/code&gt; - function name.<br /> * &lt;code&gt;inObj&lt;/code&gt; - object whose function will be called.<br /> <br /> === ModifyTimerTimeDilation ===<br /> &lt;uscript&gt;<br /> native final function ModifyTimerTimeDilation(<br /> const name TimerName, <br /> const float InTimerTimeDilation,<br /> optional Object inObj<br /> );&lt;/uscript&gt;<br /> This will search the Timers on this actor and set the passed in TimerTimeDilation<br /> * &lt;code&gt;inTimerFunc&lt;/code&gt; - function name.<br /> * &lt;code&gt;InTimerTimeDilation&lt;/code&gt; new time dilation for this timer function.<br /> * &lt;code&gt;inObj&lt;/code&gt; - object whose function will be called.<br /> <br /> === ResetTimerTimeDilation ===<br /> &lt;uscript&gt;<br /> native final function ResetTimerTimeDilation(<br /> const name TimerName,<br /> optional Object inObj<br /> );&lt;/uscript&gt;<br /> This will search the Timers on this actor and reset the TimerTimeDilation to 1.0f<br /> * &lt;code&gt;inTimerFunc&lt;/code&gt; - function name.<br /> * &lt;code&gt;inObj&lt;/code&gt; - object whose function will be called.<br /> <br /> == How to make seconds real ==<br /> Multiply rate by &lt;code&gt;WorldInfo.TimeDilation&lt;/code&gt;. Of course, this method isn't absolutely reliable,<br /> as TimeDilation may change before timer fires.<br /> <br /> == See also ==<br /> * [[UE3:Actor native functions (UT3)#SetTimer | SetTimer in UT3]]<br /> * [[UE3:Actor native functions (UDK)#SetTimer | SetTimer in UDK]]</div> 00zX https://wiki.beyondunreal.com/User:00zX/UScript.xml?diff=44437 User:00zX/UScript.xml 2011-05-18T05:59:20Z <p>00zX: </p> <hr /> <div>&lt;source lang=&quot;xml&quot;&gt;<br /> &lt;?xml version=&quot;1.0&quot;?&gt;<br /> &lt;!DOCTYPE MODE SYSTEM &quot;xmode.dtd&quot;&gt;<br /> &lt;MODE&gt;<br /> &lt;!--<br /> UnrealScript edit mode.<br /> Put this file to your .jedit/modes/ directory and add the following line<br /> to your .jedit/modes/catalog file:<br /> <br /> &lt;MODE NAME=&quot;unrealscript&quot; FILE=&quot;unrealscript.xml&quot; FILE_NAME_GLOB=&quot;*.{uc,puc,uci}&quot;/&gt;<br /> --&gt;<br /> <br /> &lt;PROPS&gt;<br /> &lt;PROPERTY NAME=&quot;commentStart&quot; VALUE=&quot;/*&quot; /&gt;<br /> &lt;PROPERTY NAME=&quot;commentEnd&quot; VALUE=&quot;*/&quot; /&gt;<br /> &lt;PROPERTY NAME=&quot;lineComment&quot; VALUE=&quot;//&quot; /&gt;<br /> &lt;PROPERTY NAME=&quot;newlineComment&quot; VALUE=&quot;///&quot; /&gt;<br /> &lt;PROPERTY NAME=&quot;wordBreakChars&quot; VALUE=&quot;,+-=&amp;lt;&amp;gt;/?^&amp;amp;*&quot; /&gt;<br /> <br /> &lt;!-- Auto indent --&gt;<br /> &lt;PROPERTY NAME=&quot;indentOpenBrackets&quot; VALUE=&quot;{&quot; /&gt;<br /> &lt;PROPERTY NAME=&quot;indentCloseBrackets&quot; VALUE=&quot;}&quot; /&gt;<br /> &lt;PROPERTY NAME=&quot;unalignedOpenBrackets&quot; VALUE=&quot;(&quot; /&gt;<br /> &lt;PROPERTY NAME=&quot;unalignedCloseBrackets&quot; VALUE=&quot;)&quot; /&gt;<br /> &lt;PROPERTY NAME=&quot;indentNextLine&quot;<br /> VALUE=&quot;\s*(((if|while)\s*\(|else\s*|else\s+if\s*\(|for(?:each)?\s*\(.*\))[^{;]*)&quot; /&gt;<br /> &lt;PROPERTY NAME=&quot;unindentThisLine&quot;<br /> VALUE=&quot;^.*(default:\s*|case.*:.*)$&quot; /&gt;<br /> <br /> &lt;PROPERTY NAME=&quot;lineUpClosingBracket&quot; VALUE=&quot;true&quot; /&gt;<br /> &lt;/PROPS&gt;<br /> <br /> &lt;RULES ESCAPE=&quot;\&quot; IGNORE_CASE=&quot;TRUE&quot; HIGHLIGHT_DIGITS=&quot;TRUE&quot; DIGIT_RE=&quot;0x[\p{XDigit}]+|\d+(\.\d*)?(e[+-]?\d+)?[fF]?&quot;&gt;<br /> <br /> &lt;!-- multi line comments --&gt;<br /> &lt;SPAN TYPE=&quot;COMMENT1&quot; DELEGATE=&quot;COMMENT&quot;&gt;<br /> &lt;BEGIN&gt;/*&lt;/BEGIN&gt;<br /> &lt;END&gt;*/&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;SPAN TYPE=&quot;COMMENT2&quot; DELEGATE=&quot;COMMENT&quot;&gt;<br /> &lt;BEGIN&gt;/**&lt;/BEGIN&gt;<br /> &lt;END&gt;*/&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- end of line comments --&gt;<br /> &lt;EOL_SPAN TYPE=&quot;COMMENT1&quot; DELEGATE=&quot;EOLCOMMENT&quot;&gt;//&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN TYPE=&quot;COMMENT2&quot; DELEGATE=&quot;EOLCOMMENT&quot;&gt;///&lt;/EOL_SPAN&gt;<br /> <br /> &lt;!-- string literals --&gt;<br /> &lt;SPAN TYPE=&quot;LITERAL1&quot; NO_LINE_BREAK=&quot;TRUE&quot;&gt;<br /> &lt;BEGIN&gt;&quot;&lt;/BEGIN&gt;<br /> &lt;END&gt;&quot;&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- name and object literals NOTE: Defaults dont actually use these--&gt;<br /> &lt;SPAN TYPE=&quot;LITERAL2&quot; NO_LINE_BREAK=&quot;TRUE&quot; ESCAPE=&quot;\&quot;&gt;<br /> &lt;BEGIN&gt;'&lt;/BEGIN&gt;<br /> &lt;END&gt;'&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- &lt;SPAN_REGEXP AT_WORD_START=&quot;TRUE&quot; TYPE=&quot;LITERAL2&quot; NO_LINE_BREAK=&quot;TRUE&quot;&gt;<br /> &lt;BEGIN&gt;\w*\s*'&lt;/BEGIN&gt;<br /> &lt;END&gt;'&lt;/END&gt;<br /> &lt;/SPAN_REGEXP&gt;--&gt;<br /> <br /> &lt;!-- UE1/2 compiler directives and UCPP pragmas --&gt;<br /> &lt;EOL_SPAN AT_WHITESPACE_END=&quot;TRUE&quot; DELEGATE=&quot;DIRECTIVE&quot; TYPE=&quot;KEYWORD2&quot;&gt;#&lt;/EOL_SPAN&gt;<br /> <br /> &lt;!-- UE3 compiler macros --&gt;<br /> &lt;!-- macro in braces --&gt;<br /> &lt;SPAN TYPE=&quot;MARKUP&quot; MATCH_TYPE=&quot;KEYWORD2&quot; NO_LINE_BREAK=&quot;TRUE&quot;&gt;<br /> &lt;BEGIN&gt;`{&lt;/BEGIN&gt;<br /> &lt;END&gt;}&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- special UE3 compiler macros --&gt;<br /> &lt;EOL_SPAN_REGEXP HASH_CHAR=&quot;`&quot; AT_WHITESPACE_END=&quot;TRUE&quot; DELEGATE=&quot;MAIN&quot;<br /> TYPE=&quot;KEYWORD4&quot;&gt;`(define|else|endif|if|debug)\b&lt;/EOL_SPAN_REGEXP&gt;<br /> <br /> &lt;SPAN AT_WHITESPACE_END=&quot;TRUE&quot; TYPE=&quot;LITERAL4&quot; MATCH_TYPE=&quot;KEYWORD4&quot;&gt;<br /> &lt;BEGIN&gt;`include(&lt;/BEGIN&gt;<br /> &lt;END&gt;)&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;`&quot; TYPE=&quot;KEYWORD4&quot;&gt;`(isdefined|notdefined)\b&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- in-line macro --&gt;<br /> &lt;MARK_FOLLOWING MATCH_TYPE=&quot;KEYWORD2&quot; TYPE=&quot;MARKUP&quot;&gt;`&lt;/MARK_FOLLOWING&gt;<br /> <br /> &lt;!-- GoTo labels --&gt;<br /> &lt;MARK_PREVIOUS TYPE=&quot;LABEL&quot; MATCH_TYPE=&quot;OPERATOR&quot; AT_WHITESPACE_END=&quot;TRUE&quot;&gt;:&lt;/MARK_PREVIOUS&gt;<br /> <br /> &lt;!-- UE3 native replacements --&gt;<br /> &lt;!--&lt;SEQ_REGEXP HASH_CHAR=&quot;{&quot; TYPE=&quot;COMMENT4&quot;&gt;\{[^}]+}&lt;/SEQ_REGEXP&gt;--&gt;<br /> <br /> &lt;!-- operators, separators and brackets --&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;~&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;!&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;@&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;#&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;$&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;^&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;&amp;amp;&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;*&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;-&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;=&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;+&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;|&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;:&lt;/SEQ&gt;<br /> &lt;!-- &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;&amp;lt;&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;&amp;gt;&lt;/SEQ&gt;--&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;/&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;?&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;\&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;)&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;{&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;}&lt;/SEQ&gt;<br /> <br /> &lt;!-- functions --&gt;<br /> &lt;!--&lt;MARK_PREVIOUS TYPE=&quot;FUNCTION&quot; MATCH_TYPE=&quot;OPERATOR&quot;&gt;(&lt;/MARK_PREVIOUS&gt;--&gt;<br /> <br /> &lt;!-- static modifier --&gt;<br /> &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHAR=&quot;s&quot; TYPE=&quot;KEYWORD1&quot;&gt;static\b(?!\s*\.)&lt;/SEQ_REGEXP&gt;<br /> &lt;!-- static function call --&gt;<br /> &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHAR=&quot;s&quot; TYPE=&quot;KEYWORD2&quot;&gt;static\b(?=\s*\.)&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- switch keyword --&gt;<br /> &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHAR=&quot;s&quot; TYPE=&quot;KEYWORD1&quot;&gt;switch\b(?=\s*\()&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- default switch case --&gt;<br /> &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHAR=&quot;d&quot; TYPE=&quot;KEYWORD1&quot;&gt;default\b(?=\s*\:)&lt;/SEQ_REGEXP&gt;<br /> &lt;!-- default value access --&gt;<br /> &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHAR=&quot;d&quot; TYPE=&quot;KEYWORD2&quot;&gt;default\b(?=\s*\.)&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- input variable modifier --&gt;<br /> &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHAR=&quot;i&quot; TYPE=&quot;KEYWORD1&quot;&gt;input\b(?=\s*[\w&amp;gt;])&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- name datatype --&gt;<br /> &lt;!-- &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHAR=&quot;n&quot; TYPE=&quot;KEYWORD3&quot;&gt;name\b(?=\s*[\w&amp;gt;])&lt;/SEQ_REGEXP&gt;--&gt;<br /> <br /> &lt;!-- class keyword --&gt;<br /> &lt;!-- &lt;SEQ_REGEXP AT_WHITESPACE_END=&quot;TRUE&quot; HASH_CHAR=&quot;c&quot; TYPE=&quot;KEYWORD1&quot;&gt;class\b(?=\s*[\w])&lt;/SEQ_REGEXP&gt;--&gt;<br /> &lt;!-- class identifier?? --&gt;<br /> &lt;SEQ_REGEXP AT_WHITESPACE_END=&quot;TRUE&quot; HASH_CHAR=&quot;c&quot; TYPE=&quot;KEYWORD1&quot;&gt;class\b(?=[\s*\w'])&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- class / array datatype --&gt;<br /> &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHARS=&quot;ac.&quot; TYPE=&quot;KEYWORD1&quot;&gt;(?!\.)(array|class)\b(?=\s*[(^\()\w(?!(array|class))&amp;gt;&amp;lt;])&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- class accessor --&gt;<br /> &lt;SEQ_REGEXP AT_WHITESPACE_END=&quot;TRUE&quot; HASH_CHAR=&quot;.&quot; TYPE=&quot;KEYWORD1&quot;&gt;(?!\s*)\.class&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- delegate keyword --&gt;<br /> &lt;SEQ_REGEXP AT_WHITESPACE_END=&quot;TRUE&quot; HASH_CHAR=&quot;d&quot; TYPE=&quot;KEYWORD1&quot;&gt;delegate\b(?=\s*[\w])&lt;/SEQ_REGEXP&gt;<br /> &lt;!-- delegate datatype --&gt;<br /> &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHAR=&quot;d&quot; TYPE=&quot;KEYWORD1&quot;&gt;delegate\b(?=\s*[\w&amp;lt;&amp;gt;])&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- default values section for class and structs --&gt;<br /> &lt;SPAN_REGEXP AT_WHITESPACE_END=&quot;TRUE&quot; HASH_CHARS=&quot;ds&quot; NO_LINE_BREAK=&quot;FALSE&quot; MATCH_TYPE=&quot;KEYWORD1&quot; DELEGATE=&quot;DEFAULTS&quot;&gt;<br /> &lt;BEGIN&gt;(struct)?defaultproperties\s*$&lt;/BEGIN&gt;<br /> &lt;END&gt;}&lt;/END&gt;<br /> &lt;/SPAN_REGEXP&gt;<br /> <br /> &lt;!-- Standard Variable Keyword --&gt;<br /> &lt;SEQ_REGEXP AT_WHITESPACE_END=&quot;TRUE&quot; HASH_CHAR=&quot;v&quot; TYPE=&quot;KEYWORD1&quot; MATCH_TYPE=&quot;KEYWORD4&quot;&gt;var(\b\s+)(?![\s*(])&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- New Operator / Special Editor version of variable declaration --&gt;<br /> &lt;SPAN_REGEXP HASH_CHARS=&quot;vn&quot; TYPE=&quot;KEYWORD4&quot; MATCH_TYPE=&quot;KEYWORD1&quot;&gt;<br /> &lt;BEGIN&gt;(var|new)\b\s*[\w(]&lt;/BEGIN&gt;<br /> &lt;END&gt;)&lt;/END&gt;<br /> &lt;/SPAN_REGEXP&gt;<br /> <br /> &lt;!-- Editor Markup --&gt;<br /> &lt;SPAN_REGEXP HASH_CHAR=&quot;&amp;lt;&quot; NO_LINE_BREAK=&quot;TRUE&quot; TYPE=&quot;MARKUP&quot; DELEGATE=&quot;METADATA&quot;&gt;<br /> &lt;BEGIN&gt;&amp;lt;&lt;/BEGIN&gt;&lt;!--([^(array)&amp;lt;])--&gt;<br /> &lt;END&gt;&amp;gt;&lt;/END&gt;<br /> &lt;/SPAN_REGEXP&gt;<br /> <br /> &lt;!--&lt;SEQ_REGEXP HASH_CHARS=&quot;sc&quot; MATCH_TYPE=&quot;KEYWORD1&quot; DELEGATE=&quot;CPPTEXT&quot;&gt;(struct)?cpptext\b\s*\n*\{.*\}&lt;/SEQ_REGEXP&gt;--&gt;<br /> <br /> &lt;KEYWORDS&gt;<br /> <br /> &lt;!-- Class Syntax --&gt;<br /> &lt;KEYWORD1&gt;Interface&lt;/KEYWORD1&gt;<br /> &lt;!--&lt;KEYWORD1&gt;Class&lt;/KEYWORD1&gt;--&gt;&lt;!--db: added test--&gt;<br /> &lt;INVALID&gt;Expands&lt;/INVALID&gt;&lt;!-- only early UE1, shouldn't really be used --&gt;<br /> &lt;KEYWORD1&gt;Extends&lt;/KEYWORD1&gt;<br /> <br /> &lt;!-- Class Syntax: Optional Specifiers --&gt;<br /> &lt;!-- General --&gt;<br /> &lt;KEYWORD1&gt;Implements&lt;/KEYWORD1&gt;&lt;!-- UE3+ --&gt;<br /> &lt;KEYWORD1&gt;Abstract&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Config&lt;/KEYWORD1&gt;&lt;!-- used for both class and var --&gt;<br /> &lt;KEYWORD1&gt;GlobalConfig&lt;/KEYWORD1&gt;&lt;!-- used for both class and var?? --&gt;<br /> &lt;KEYWORD4&gt;PerObjectConfig&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD1&gt;Native&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;NativeReplication&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;NoExport&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;NoImport&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;NotTransient&lt;/KEYWORD1&gt;&lt;!-- since UE2 --&gt;<br /> &lt;KEYWORD1&gt;Within&lt;/KEYWORD1&gt;&lt;!-- since UE2 --&gt;<br /> &lt;KEYWORD1&gt;DependsOn&lt;/KEYWORD1&gt;&lt;!-- since UE2 --&gt;<br /> &lt;KEYWORD4&gt;Deprecated&lt;/KEYWORD4&gt;&lt;!-- since UE2, marks variables that should no longer be used --&gt;<br /> <br /> &lt;!-- Class Syntax: Secondary Specifiers --&gt;<br /> &lt;!-- Editor --&gt;<br /> &lt;KEYWORD4&gt;AutoExpandCategories&lt;/KEYWORD4&gt;&lt;!-- since UE3? --&gt;<br /> &lt;KEYWORD4&gt;CollapseCatergories&lt;/KEYWORD4&gt;&lt;!-- since UE2 --&gt;<br /> &lt;KEYWORD4&gt;DontCollapseCategories&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD1&gt;EdFindable&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;EditConst&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;EditConstArray&lt;/KEYWORD1&gt;&lt;!-- only UE2 --&gt;<br /> &lt;KEYWORD1&gt;EditFixedSize&lt;/KEYWORD1&gt;&lt;!-- since UE3 --&gt;<br /> &lt;KEYWORD4&gt;HideCategories&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;HideDropDown&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;NotPlaceable&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;Placeable&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD1&gt;ExportStructs&lt;/KEYWORD1&gt;&lt;!-- only UE2 --&gt;<br /> &lt;KEYWORD1&gt;SafeReplace&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;ShowCategories&lt;/KEYWORD1&gt;&lt;!-- since UE2 --&gt;<br /> <br /> &lt;!-- Object Specifiers --&gt;<br /> &lt;KEYWORD4&gt;EditInline&lt;/KEYWORD4&gt;&lt;!-- since UE2 --&gt;<br /> &lt;KEYWORD4&gt;EditInlineUse&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD1&gt;EditInlineNew&lt;/KEYWORD1&gt;&lt;!-- since UE2 --&gt;<br /> &lt;KEYWORD1&gt;EditInlineNotify&lt;/KEYWORD1&gt;&lt;!-- only UE2 --&gt;<br /> &lt;KEYWORD4&gt;NotEditInlineNew&lt;/KEYWORD4&gt;&lt;!-- since UE2 --&gt;<br /> <br /> &lt;!--===================================================================================================--&gt;<br /> &lt;KEYWORD4&gt;Inherits&lt;/KEYWORD4&gt;&lt;!-- native effect, since UE3 --&gt;<br /> &lt;KEYWORD1&gt;Assert&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Cache&lt;/KEYWORD1&gt;&lt;!-- only UE2 --&gt;<br /> &lt;KEYWORD1&gt;CacheExempt&lt;/KEYWORD1&gt;&lt;!-- only UE2 --&gt;<br /> &lt;KEYWORD1&gt;Import&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Init&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Latent&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;ParseConfig&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Skip&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Stop&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Travel&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Export&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;forcescriptorder&lt;/KEYWORD1&gt;<br /> &lt;!--===================================================================================================--&gt;<br /> <br /> &lt;!-- Function Syntax: Primary Specifiers --&gt;<br /> &lt;!--&lt;KEYWORD1&gt;cpptext&lt;/KEYWORD1&gt;--&gt;&lt;!-- only UE2+ --&gt;<br /> &lt;!--&lt;KEYWORD1&gt;cppstruct&lt;/KEYWORD1&gt;--&gt;&lt;!-- only UE2? --&gt;<br /> &lt;!--&lt;KEYWORD1&gt;structcpptext&lt;/KEYWORD1&gt;--&gt;&lt;!-- UE3+ --&gt;<br /> &lt;KEYWORD1&gt;Event&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Function&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Operator&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;PostOperator&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;PreOperator&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Replication&lt;/KEYWORD1&gt;&lt;!-- db: Could update so replication block gets special handling --&gt;<br /> <br /> &lt;KEYWORD1&gt;If&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Else&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Case&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Break&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Continue&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Return&lt;/KEYWORD1&gt;<br /> <br /> &lt;KEYWORD1&gt;State&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Goto&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD2&gt;GotoState&lt;/KEYWORD2&gt;<br /> &lt;!-- State Syntax: Secondary Specifiers --&gt;<br /> &lt;KEYWORD4&gt;Auto&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Ignores&lt;/KEYWORD4&gt;<br /> <br /> &lt;!-- Function Syntax: Iterators --&gt;<br /> &lt;KEYWORD1&gt;For&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;ForEach&lt;/KEYWORD1&gt;<br /> <br /> &lt;KEYWORD1&gt;While&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Do&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Until&lt;/KEYWORD1&gt;<br /> <br /> &lt;!-- db: Secondary Keywords - grey/italic (like uncodex)--&gt;<br /> &lt;KEYWORD4&gt;Self&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Outer&lt;/KEYWORD4&gt;&lt;!--common--&gt;<br /> &lt;COMMENT3&gt;Owner&lt;/COMMENT3&gt;&lt;!--common--&gt;<br /> &lt;KEYWORD4&gt;Instigator&lt;/KEYWORD4&gt;&lt;!--common--&gt;<br /> &lt;KEYWORD4&gt;Optional&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Out&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Object&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Native&lt;/KEYWORD4&gt;<br /> &lt;!--&lt;KEYWORD2&gt;New&lt;/KEYWORD2&gt;--&gt;<br /> &lt;KEYWORD2&gt;None&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;Super&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;Global&lt;/KEYWORD2&gt;<br /> &lt;INVALID&gt;Null&lt;/INVALID&gt;<br /> <br /> &lt;!-- Function Syntax: Secondary Specifiers --&gt;<br /> &lt;INVALID&gt;Intrinsic&lt;/INVALID&gt;&lt;!-- only early UE1, replaced by &quot;native&quot; --&gt;<br /> &lt;INVALID&gt;Virtual&lt;/INVALID&gt;<br /> &lt;KEYWORD4&gt;Static&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Final&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Server&lt;/KEYWORD4&gt;&lt;!-- UE3+ --&gt;<br /> &lt;KEYWORD4&gt;Client&lt;/KEYWORD4&gt;&lt;!-- UE3+ --&gt;<br /> &lt;KEYWORD4&gt;Simulated&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Iterator&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Singular&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Exec&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD1&gt;Reliable&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Unreliable&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Automated&lt;/KEYWORD1&gt;&lt;!-- only UE2 --&gt;<br /> &lt;KEYWORD4&gt;k2override&lt;/KEYWORD4&gt;&lt;!-- UDK+ --&gt;<br /> <br /> &lt;!-- built-in type names --&gt;<br /> &lt;KEYWORD1&gt;Const&lt;/KEYWORD1&gt;<br /> &lt;!--&lt;KEYWORD1&gt;Var&lt;/KEYWORD1&gt;--&gt;<br /> &lt;KEYWORD1&gt;Local&lt;/KEYWORD1&gt;<br /> <br /> &lt;!-- db: modifed these to be keyword 1 from 3 --&gt;<br /> &lt;!-- Variable Primary (Syntax)Flags --&gt;<br /> &lt;KEYWORD1&gt;Bool&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Byte&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Enum&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Float&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Int&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;String&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Struct&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Pointer&lt;/KEYWORD1&gt;&lt;!-- UE2+ --&gt;<br /> &lt;!--&lt;KEYWORD1&gt;Array&lt;/KEYWORD1&gt;--&gt;<br /> &lt;KEYWORD1&gt;Name&lt;/KEYWORD1&gt;<br /> <br /> &lt;KEYWORD1&gt;vector&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;rotator&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;vector2d&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;color&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;quat&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;matrix&lt;/KEYWORD1&gt;<br /> <br /> &lt;!-- Variable Secondary (Syntax)Flags--&gt;<br /> &lt;INVALID&gt;Public&lt;/INVALID&gt;&lt;!-- redundant, members are always public unless marked private or protected --&gt;<br /> &lt;KEYWORD4&gt;Private&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Protected&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Localized&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Config&lt;/KEYWORD4&gt;&lt;!--is also a class flag--&gt;<br /> &lt;KEYWORD4&gt;GlobalConfig&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;RepNotify&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Transient&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD1&gt;DuplicateTransient&lt;/KEYWORD1&gt;&lt;!-- since UE3 --&gt;<br /> &lt;KEYWORD1&gt;Instanced&lt;/KEYWORD1&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD1&gt;DataBinding&lt;/KEYWORD1&gt;&lt;!-- UE3+ --&gt;<br /> &lt;KEYWORD1&gt;Immutable&lt;/KEYWORD1&gt;&lt;!-- UE3+ (struct) --&gt;<br /> &lt;KEYWORD1&gt;Coerce&lt;/KEYWORD1&gt;&lt;!-- (string) --&gt;<br /> &lt;KEYWORD1&gt;Long&lt;/KEYWORD1&gt;&lt;!-- UE2+ (struct) --&gt;<br /> &lt;KEYWORD4&gt;k2Call&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PrivateWrite&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;interp&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Archetype&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;k2pure&lt;/KEYWORD4&gt;<br /> &lt;!-- Editor --&gt;<br /> &lt;KEYWORD4&gt;EditorOnly&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;EditHide&lt;/KEYWORD4&gt;<br /> <br /> &lt;!-- literals and special function calls --&gt;<br /> &lt;KEYWORD2&gt;true&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;false&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;enable&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;disable&lt;/KEYWORD2&gt;<br /> <br /> &lt;!-- literals --&gt;<br /> &lt;KEYWORD2&gt;Vect2D&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;Vect&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;Rot&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;NameOf&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;Normal&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;VSize&lt;/KEYWORD2&gt;<br /> <br /> &lt;KEYWORD2&gt;ArrayCount&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;EnumCount&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;Length&lt;/KEYWORD2&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD2&gt;PathName&lt;/KEYWORD2&gt;<br /> <br /> &lt;/KEYWORDS&gt;<br /> <br /> &lt;!-- Expanded UnrealEngine highlighting rules --&gt;<br /> &lt;IMPORT DELEGATE=&quot;uscript::UEOBJECT&quot;/&gt;<br /> &lt;IMPORT DELEGATE=&quot;uscript::UEFUNCTION&quot;/&gt;<br /> <br /> &lt;/RULES&gt;<br /> <br /> &lt;!-- UnrealEngine Classes--&gt;<br /> &lt;RULES SET=&quot;UEOBJECT&quot; IGNORE_CASE=&quot;TRUE&quot;&gt;<br /> &lt;KEYWORDS&gt;<br /> &lt;!--&lt;KEYWORD1&gt;Class&lt;/KEYWORD1&gt;--&gt;<br /> &lt;KEYWORD1&gt;Name&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;LegacyClassName&lt;/KEYWORD1&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD1&gt;Archetype&lt;/KEYWORD1&gt;&lt;!-- UE3 --&gt;<br /> <br /> &lt;!-- literals --&gt;<br /> &lt;KEYWORD2&gt;False&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;None&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;True&lt;/KEYWORD2&gt;<br /> <br /> &lt;KEYWORD3&gt;Weapon&lt;/KEYWORD3&gt;<br /> &lt;!-- &lt;KEYWORD3&gt;Other&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Instigator&lt;/KEYWORD3&gt;--&gt;<br /> &lt;KEYWORD3&gt;Actor&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Controller&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;LightType&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;Level&lt;/KEYWORD3&gt;&lt;!-- UE2 --&gt;<br /> &lt;KEYWORD3&gt;WorldInfo&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;Pawn&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;PlayerController&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Material&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;PhysicalMaterial&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;MaterialInterface&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;Texture&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Texture2D&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Effects&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Info&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Font&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Projectile&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;PlayerInput&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;SkeletalMesh&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;AnimTree&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;PhysicsAsset&lt;/KEYWORD3&gt;<br /> <br /> &lt;!-- UnrealEngine Enums --&gt;<br /> &lt;KEYWORD3&gt;LinearColor&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;FontRenderInfo&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;InterpCurveVector&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;InterpCurvePointVector&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;TraceHitInfo&lt;/KEYWORD3&gt;<br /> <br /> &lt;!-- User Interface --&gt;<br /> &lt;KEYWORD3&gt;Canvas&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;HUD&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UIRoot&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;UIScene&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;UIObject&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UIImage&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;TextureCoordinates&lt;/KEYWORD3&gt;<br /> <br /> &lt;KEYWORD3&gt;AnimSet&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;AnimNode&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;AnimNodeSequence&lt;/KEYWORD3&gt;<br /> <br /> &lt;KEYWORD3&gt;CameraAnim&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Emitter&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;ParticleSystem&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Projector&lt;/KEYWORD3&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD3&gt;DamageType&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;GameInfo&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;GameRules&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;PlayerReplicationInfo&lt;/KEYWORD3&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD3&gt;GameReplicationInfo&lt;/KEYWORD3&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD3&gt;Inventory&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Vehicle&lt;/KEYWORD3&gt;&lt;!-- UE2.5+ --&gt;<br /> &lt;KEYWORD3&gt;StaticMesh&lt;/KEYWORD3&gt;&lt;!-- UE2+ --&gt;<br /> <br /> &lt;KEYWORD3&gt;NavigationPoint&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;PhysicsVolume&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Mutator&lt;/KEYWORD3&gt;<br /> <br /> &lt;KEYWORD3&gt;ForceFeedbackWaveform&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;FluidSurfaceActor&lt;/KEYWORD3&gt;<br /> <br /> &lt;KEYWORD3&gt;Sequence&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;SequenceEvent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;SequenceObject&lt;/KEYWORD3&gt;<br /> <br /> &lt;KEYWORD3&gt;FaceFXAsset&lt;/KEYWORD3&gt;<br /> <br /> &lt;!--Components UE3--&gt;<br /> &lt;KEYWORD3&gt;Component&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;ActorComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;PrimitiveComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;SVehicleSimBase&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;StaticMeshComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;SkeletalMeshComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;ParticleSystemComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;PointLightComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;SplineComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;AudioComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;DynamicLightEnvironmentComponent&lt;/KEYWORD3&gt;<br /> <br /> &lt;!--UDK specific--&gt;<br /> &lt;KEYWORD3&gt;UDKParticleSystemComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UDKExplosionLight&lt;/KEYWORD3&gt;<br /> <br /> &lt;!--UT3 specific--&gt;<br /> &lt;KEYWORD3&gt;UTSkeletalMeshComponent&lt;/KEYWORD3&gt;<br /> <br /> &lt;!--Sound, was changed--&gt;<br /> &lt;KEYWORD3&gt;Sound&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;SoundNode&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;SoundCue&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;/KEYWORDS&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES SET=&quot;UEFUNCTION&quot; IGNORE_CASE=&quot;TRUE&quot;&gt;<br /> <br /> &lt;!-- UnrealEngine functions --&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;fi&quot; TYPE=&quot;KEYWORD4&quot;&gt;FindChild(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;is&quot; TYPE=&quot;KEYWORD4&quot;&gt;IsA(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;c&quot; TYPE=&quot;KEYWORD4&quot;&gt;ClassIsChildOf(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;isi&quot; TYPE=&quot;KEYWORD4&quot;&gt;IsInState(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;dr&quot; TYPE=&quot;KEYWORD4&quot;&gt;Draw3DLine(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;de&quot; TYPE=&quot;KEYWORD4&quot;&gt;DeProject(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;re&quot; TYPE=&quot;KEYWORD4&quot;&gt;ReplicateMove(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;pr&quot; TYPE=&quot;KEYWORD4&quot;&gt;ProcessMove(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;pl&quot; TYPE=&quot;KEYWORD4&quot;&gt;PlayerTick(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;po&quot; TYPE=&quot;KEYWORD4&quot;&gt;PostRender(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;ge&quot; TYPE=&quot;KEYWORD4&quot;&gt;GetEnum(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;fi&quot; TYPE=&quot;KEYWORD4&quot;&gt;FindObject(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;tr&quot; TYPE=&quot;KEYWORD4&quot;&gt;Trace(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;fa&quot; TYPE=&quot;KEYWORD4&quot;&gt;FastTrace(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;sp&quot; TYPE=&quot;KEYWORD4&quot;&gt;Spawn(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;KEYWORDS&gt;<br /> &lt;!-- Dynamic Arrays --&gt;<br /> &lt;KEYWORD2&gt;Find&lt;/KEYWORD2&gt;&lt;!-- (since UE3) --&gt;<br /> &lt;KEYWORD2&gt;Add&lt;/KEYWORD2&gt;&lt;!-- (since UE3) --&gt;<br /> &lt;KEYWORD2&gt;AddItem&lt;/KEYWORD2&gt;&lt;!-- (since UE3) --&gt;<br /> &lt;KEYWORD2&gt;Insert&lt;/KEYWORD2&gt;&lt;!-- (since UE2) --&gt;<br /> &lt;KEYWORD2&gt;InsertItem&lt;/KEYWORD2&gt;&lt;!-- (since UE3) --&gt;<br /> &lt;KEYWORD2&gt;Remove&lt;/KEYWORD2&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD2&gt;RemoveItem&lt;/KEYWORD2&gt;&lt;!-- UE+ --&gt;<br /> &lt;KEYWORD1&gt;index_none&lt;/KEYWORD1&gt;<br /> <br /> &lt;!-- Constants --&gt;<br /> &lt;KEYWORD2&gt;MaxInt&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;Pi&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;RadToDeg&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;DegToRad&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;UnrRotToRad&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;RadToUnrRot&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;DegToUnrRot&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;UnrRotToDeg&lt;/KEYWORD2&gt;<br /> <br /> &lt;KEYWORD3&gt;Velocity&lt;/KEYWORD3&gt;<br /> <br /> &lt;!-- Math Functions --&gt;<br /> &lt;KEYWORD4&gt;min&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;max&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;abs&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;clamp&lt;/KEYWORD4&gt;<br /> <br /> &lt;KEYWORD4&gt;sin&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;cos&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;atan&lt;/KEYWORD4&gt;<br /> <br /> &lt;KEYWORD4&gt;vlerp&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;vsize&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;vsize2d&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;round&lt;/KEYWORD4&gt;<br /> <br /> &lt;KEYWORD4&gt;fclamp&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;fmin&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;fmax&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;frand&lt;/KEYWORD4&gt;<br /> <br /> &lt;KEYWORD4&gt;RDiff&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;RLerp&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Normalize&lt;/KEYWORD4&gt;<br /> <br /> &lt;!-- Timer functions: UE3--&gt;<br /> &lt;KEYWORD4&gt;SetTimer&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ClearTimer&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;IsTimerActive&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;GetTimerCount&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;GetTimerRate&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ClearAllTimers&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PauseTimer&lt;/KEYWORD4&gt;<br /> <br /> &lt;!-- Object Events --&gt;<br /> &lt;KEYWORD4&gt;BeginState&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;EndState&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PushedState&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PoppedState&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PausedState&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ContinuedState&lt;/KEYWORD4&gt;<br /> <br /> <br /> &lt;KEYWORD4&gt;DynamicLoadObject&lt;/KEYWORD4&gt;<br /> <br /> &lt;!--Components UE3--&gt;<br /> &lt;KEYWORD4&gt;AttachComponent&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;DetachComponent&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ReattachComponent&lt;/KEYWORD4&gt;<br /> &lt;COMMENT3&gt;AttachComponentToSocket&lt;/COMMENT3&gt;<br /> <br /> &lt;!-- SkeletalMesh Component functions --&gt;<br /> &lt;KEYWORD4&gt;GetSocketWorldLocationAndRotation&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;GetSocketByName&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;MatchRefBone&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;TransformFromBoneSpace&lt;/KEYWORD4&gt;<br /> <br /> &lt;!-- Actor Functions --&gt;<br /> &lt;KEYWORD4&gt;SetLocation&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SetRotation&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SetBase&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SetHidden&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SetHardAttach&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SetCollision&lt;/KEYWORD4&gt;<br /> <br /> &lt;!-- Actor Events --&gt;<br /> &lt;KEYWORD4&gt;ReplicatedEvent&lt;/KEYWORD4&gt;&lt;!-- UE3+ --&gt;<br /> &lt;KEYWORD4&gt;Destroyed&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;GainedChild&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;LostChild&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Tick&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Timer&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;HitWall&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Falling&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Landed&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PhysicsVolumeChange&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Touch&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PostTouch&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;UnTouch&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Bump&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;BaseChange&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Attach&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Detach&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SpecialHandling&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;CollisionChanged&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;EncroachingOn&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;EncroachedBy&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;RanInto&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;OnWakeRBPhysics&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;OnSleepRBPhysics&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;OverRotated&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;FellOutOfWorld&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;OutsideWorldBounds&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;TornOff&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PreBeginPlay&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;BroadcastLocalizedMessage&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;BroadcastLocalizedTeamMessage&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PostBeginPlay&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SetInitialState&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ConstraintBrokenNotify&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;NotifySkelControlBeyondLimit&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;TakeDamage&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;HealDamage&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;DebugFreezeGame&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;BecomeViewTarget&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;EndViewTarget&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ModifyHearSoundComponent&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;GetFaceFXAudioComponent&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Reset&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;DebugMessagePlayer&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ReceivedNewEvent&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ForceNetRelevant&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ShutDown&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;OnAnimEnd&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;OnAnimPlay&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;BeginAnimControl&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SetAnimPosition&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;FinishAnimControl&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PlayActorFaceFXAnim&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;StopActorFaceFXAnim&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SetMorphWeight&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SetSkelControlScale&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;GetActorFaceFXAsset&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;GetActorEyesViewPoint&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ScriptGetTeamNum&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SpawnedByKismet&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;InterpolationStarted&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;InterpolationFinished&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;InterpolationChanged&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;RigidBodyCollision&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;OnRanOver&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PostRenderFor&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;RootMotionModeChanged&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;RootMotionProcessed&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;RootMotionExtracted&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PostInitAnimTree&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;OnRigidBodySpringOverextension&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PlayParticleEffect&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;CreateForceField&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;TrailsNotify&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;TrailsNotifyTick&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;TrailsNotifyEnd&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;AnimTreeUpdated&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PostDemoRewind&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ReplicationEnded&lt;/KEYWORD4&gt;<br /> <br /> &lt;!-- Native Iterators --&gt;<br /> &lt;KEYWORD4&gt;AllActors&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;DynamicActors&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;ChildActors&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;BasedActors&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;TouchingActors&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;TraceActors&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;VisibleActors&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;VisibleCollidingActors&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;CollidingActors&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;OverlappingActors&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ComponentList&lt;/KEYWORD4&gt;&lt;!-- UE3+ --&gt;<br /> &lt;KEYWORD4&gt;AllOwnedComponents&lt;/KEYWORD4&gt;&lt;!-- UE3+ --&gt;<br /> &lt;KEYWORD4&gt;LocalPlayerControllers&lt;/KEYWORD4&gt;<br /> &lt;/KEYWORDS&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES IGNORE_CASE=&quot;TRUE&quot; SET=&quot;DIRECTIVE&quot;&gt;<br /> &lt;EOL_SPAN TYPE=&quot;COMMENT2&quot;&gt;//&lt;/EOL_SPAN&gt;<br /> <br /> &lt;!-- exec directives --&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;EXEC_COMMAND&quot; TYPE=&quot;KEYWORD1&quot;&gt;exec&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;EXEC_COMMAND&quot; TYPE=&quot;KEYWORD1&quot;&gt;alwaysexec&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;EXEC_COMMAND&quot; TYPE=&quot;KEYWORD1&quot;&gt;forceexec&lt;/EOL_SPAN&gt;<br /> &lt;!-- source include --&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;EXEC_COMMAND&quot; TYPE=&quot;KEYWORD1&quot;&gt;include&lt;/EOL_SPAN&gt;<br /> &lt;!-- execute command file --&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;EXEC_COMMAND&quot; TYPE=&quot;KEYWORD1&quot;&gt;call&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;EXEC_COMMAND&quot; TYPE=&quot;KEYWORD1&quot;&gt;alwayscall&lt;/EOL_SPAN&gt;<br /> <br /> &lt;!-- throw compiler error --&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;IGNORED&quot; TYPE=&quot;KEYWORD1&quot;&gt;error&lt;/EOL_SPAN&gt;<br /> <br /> &lt;!-- UCPP directives --&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;MAIN&quot; TYPE=&quot;KEYWORD1&quot;&gt;ifdef&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;MAIN&quot; TYPE=&quot;KEYWORD1&quot;&gt;ifndef&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;MAIN&quot; TYPE=&quot;KEYWORD1&quot;&gt;if&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;MAIN&quot; TYPE=&quot;KEYWORD1&quot;&gt;elif&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;IGNORED&quot; TYPE=&quot;KEYWORD1&quot;&gt;else&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;IGNORED&quot; TYPE=&quot;KEYWORD1&quot;&gt;endif&lt;/EOL_SPAN&gt;<br /> <br /> &lt;EOL_SPAN DELEGATE=&quot;MAIN&quot; TYPE=&quot;KEYWORD1&quot;&gt;define&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;MAIN&quot; TYPE=&quot;KEYWORD1&quot;&gt;undef&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;MAIN&quot; TYPE=&quot;KEYWORD1&quot;&gt;linenumber&lt;/EOL_SPAN&gt;<br /> <br /> &lt;EOL_SPAN DELEGATE=&quot;PRAGMA&quot; TYPE=&quot;KEYWORD1&quot;&gt;pragma&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;PRAGMA&quot; TYPE=&quot;KEYWORD1&quot;&gt;ucpp&lt;/EOL_SPAN&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES SET=&quot;METADATA&quot; IGNORE_CASE=&quot;TRUE&quot; HIGHLIGHT_DIGITS=&quot;TRUE&quot; DIGIT_RE=&quot;0x[\p{XDigit}]+|\d+(\.\d*)?(e[+-]?\d+)?[fF]?&quot;&gt;<br /> &lt;!-- operators, separators and brackets --&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;|&lt;/SEQ&gt;<br /> <br /> &lt;IMPORT DELEGATE=&quot;uscript::UEOBJECT&quot;/&gt;<br /> <br /> &lt;KEYWORDS&gt;<br /> &lt;!-- UE3 property tags --&gt;<br /> &lt;MARKUP&gt;AllowAbstract&lt;/MARKUP&gt;<br /> &lt;MARKUP&gt;AutoComment&lt;/MARKUP&gt;<br /> &lt;MARKUP&gt;DisplayName&lt;/MARKUP&gt;<br /> &lt;MARKUP&gt;EditCondition&lt;/MARKUP&gt;<br /> &lt;MARKUP&gt;Tooltip&lt;/MARKUP&gt;<br /> &lt;MARKUP&gt;ClampMin&lt;/MARKUP&gt;<br /> &lt;MARKUP&gt;ClampMax&lt;/MARKUP&gt;<br /> &lt;MARKUP&gt;UIMin&lt;/MARKUP&gt;<br /> &lt;MARKUP&gt;UIMax&lt;/MARKUP&gt;<br /> &lt;MARKUP&gt;MultilineWithMaxRows&lt;/MARKUP&gt;<br /> &lt;/KEYWORDS&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES DEFAULT=&quot;COMMENT1&quot; SET=&quot;COMMENT&quot;&gt;<br /> &lt;!-- UE3 @tags in all kinds of comments --&gt;<br /> &lt;!--&lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHAR=&quot;@&quot; TYPE=&quot;LABEL&quot;&gt;(?&amp;lt;!\w)@\w+&lt;/SEQ_REGEXP&gt;--&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES DEFAULT=&quot;COMMENT3&quot; SET=&quot;DOCCOMMENT&quot;&gt;<br /> &lt;IMPORT DELEGATE=&quot;COMMENT&quot;/&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES DEFAULT=&quot;COMMENT2&quot; SET=&quot;EOLCOMMENT&quot;&gt;<br /> &lt;IMPORT DELEGATE=&quot;COMMENT&quot;/&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES DEFAULT=&quot;COMMENT1&quot; SET=&quot;IGNORED&quot;&gt;<br /> &lt;EOL_SPAN TYPE=&quot;COMMENT2&quot;&gt;//&lt;/EOL_SPAN&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES DEFAULT=&quot;MARKUP&quot; SET=&quot;PRAGMA&quot;&gt;<br /> &lt;!-- UCPP pragmas --&gt;<br /> <br /> &lt;EOL_SPAN TYPE=&quot;COMMENT2&quot;&gt;//&lt;/EOL_SPAN&gt;<br /> <br /> &lt;KEYWORDS&gt;<br /> &lt;KEYWORD1&gt;ucpp&lt;/KEYWORD1&gt;<br /> <br /> &lt;KEYWORD3&gt;notice&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;rename&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;include&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;warning&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;config&lt;/KEYWORD3&gt;<br /> <br /> &lt;LITERAL2&gt;true&lt;/LITERAL2&gt;<br /> &lt;LITERAL2&gt;false&lt;/LITERAL2&gt;<br /> &lt;LITERAL2&gt;on&lt;/LITERAL2&gt;<br /> &lt;LITERAL2&gt;off&lt;/LITERAL2&gt;<br /> &lt;/KEYWORDS&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES IGNORE_CASE=&quot;TRUE&quot; SET=&quot;EXEC_COMMAND&quot; NO_WORD_SEP=&quot;_\\.,+-&amp;lt;&amp;gt;/?^&amp;amp;*&quot;&gt;<br /> &lt;!-- exec directive markup --&gt;<br /> <br /> &lt;EOL_SPAN TYPE=&quot;COMMENT2&quot;&gt;//&lt;/EOL_SPAN&gt;<br /> <br /> &lt;!-- quoted strings --&gt;<br /> &lt;SPAN TYPE=&quot;LITERAL1&quot; NO_LINE_BREAK=&quot;TRUE&quot;&gt;<br /> &lt;BEGIN&gt;&quot;&lt;/BEGIN&gt;<br /> &lt;END&gt;&quot;&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- numbers --&gt;<br /> &lt;SEQ_REGEXP HASH_CHARS=&quot;0123456789&quot; TYPE=&quot;DIGIT&quot;&gt;\b(0x[\p{XDigit}]+|\d+(\.\d*)?(e[+-]?\d+)?[fF]?)\b&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- parameters --&gt;<br /> &lt;MARK_PREVIOUS MATCH_TYPE=&quot;OPERATOR&quot; TYPE=&quot;MARKUP&quot;&gt;=&lt;/MARK_PREVIOUS&gt;<br /> <br /> &lt;!-- boolean values --&gt;<br /> &lt;KEYWORDS&gt;<br /> &lt;LITERAL2&gt;true&lt;/LITERAL2&gt;<br /> &lt;LITERAL2&gt;false&lt;/LITERAL2&gt;<br /> &lt;LITERAL2&gt;yes&lt;/LITERAL2&gt;<br /> &lt;LITERAL2&gt;no&lt;/LITERAL2&gt;<br /> &lt;LITERAL2&gt;on&lt;/LITERAL2&gt;<br /> &lt;LITERAL2&gt;off&lt;/LITERAL2&gt;<br /> &lt;/KEYWORDS&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;!-- CppText blocks in UnrealScript --&gt;<br /> &lt;RULES SET=&quot;CPPTEXT&quot; ESCAPE=&quot;\&quot; IGNORE_CASE=&quot;false&quot;&gt;<br /> <br /> &lt;EOL_SPAN AT_WHITESPACE_END=&quot;TRUE&quot; DELEGATE=&quot;DIRECTIVE&quot; TYPE=&quot;KEYWORD2&quot;&gt;#&lt;/EOL_SPAN&gt;<br /> <br /> &lt;SPAN TYPE=&quot;COMMENT2&quot; DELEGATE=&quot;COMMENT&quot;&gt;<br /> &lt;BEGIN&gt;/**&lt;/BEGIN&gt;<br /> &lt;END&gt;*/&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- multi line comments --&gt;<br /> &lt;SPAN TYPE=&quot;COMMENT1&quot; DELEGATE=&quot;COMMENT&quot;&gt;<br /> &lt;BEGIN&gt;/*&lt;/BEGIN&gt;<br /> &lt;END&gt;*/&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- end of line comments --&gt;<br /> &lt;EOL_SPAN TYPE=&quot;COMMENT1&quot; DELEGATE=&quot;EOLCOMMENT&quot;&gt;//&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN TYPE=&quot;COMMENT2&quot; DELEGATE=&quot;EOLCOMMENT&quot;&gt;///&lt;/EOL_SPAN&gt;<br /> <br /> &lt;!--&lt;IMPORT DELEGATE=&quot;c++::LEX&quot;/&gt;--&gt;<br /> &lt;IMPORT DELEGATE=&quot;c++::CORE&quot;/&gt;<br /> &lt;!--&lt;IMPORT DELEGATE=&quot;c++::DEFINE&quot;/&gt;--&gt;<br /> <br /> &lt;KEYWORDS&gt;<br /> &lt;KEYWORD1&gt;NULL&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;FALSE&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;TRUE&lt;/KEYWORD1&gt;<br /> <br /> &lt;KEYWORD1&gt;BYTE&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;FLOAT&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;INT&lt;/KEYWORD1&gt;<br /> <br /> &lt;KEYWORD1&gt;TCHAR&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;TArray&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;TSet&lt;/KEYWORD1&gt;<br /> <br /> &lt;!-- Unreal Engine CPP Types? --&gt;<br /> &lt;KEYWORD2&gt;FName&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;FVector&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;FRotator&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;FColor&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;FLinearColor&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;FGuid&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;FFrame&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;FCanvas&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD3&gt;FRigidBodyState&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;FRigidBodyCollisionInfo&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;FCollisionImpactData&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;FIntRect&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;FViewport&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;FSceneView&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;FCanvas&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;FArchive&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;FSeqOpOutputInputLink&lt;/KEYWORD3&gt;<br /> <br /> &lt;!-- Native only objects and types? --&gt;<br /> &lt;KEYWORD3&gt;UBOOL&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UClass&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UFunction&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UProperty&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UObject&lt;/KEYWORD3&gt;<br /> <br /> &lt;KEYWORD3&gt;UPackageMap&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UActorChannel&lt;/KEYWORD3&gt;<br /> <br /> &lt;KEYWORD3&gt;UPrimitiveComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;ULevel&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UAnimNodeSequence&lt;/KEYWORD3&gt;<br /> <br /> &lt;!-- Kismet --&gt;<br /> &lt;KEYWORD3&gt;USequenceObject&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;USequenceOp&lt;/KEYWORD3&gt;<br /> <br /> &lt;KEYWORD3&gt;AActor&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;APawn&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;APlayerController&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;AVolume&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;AController&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;AFluidSurfaceActor&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;AProjectile&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;APortalTeleporter&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;ANavigationPoint&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;AScout&lt;/KEYWORD3&gt;<br /> <br /> &lt;!-- PhysX --&gt;<br /> &lt;KEYWORD3&gt;NxActorDesc&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;NxActor&lt;/KEYWORD3&gt;<br /> <br /> &lt;!-- typename --&gt;<br /> &lt;!-- appMemzero --&gt;<br /> &lt;/KEYWORDS&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;!-- defaultproperties and structdefaultproperties --&gt;<br /> &lt;RULES SET=&quot;DEFAULTS&quot; ESCAPE=&quot;\&quot; IGNORE_CASE=&quot;TRUE&quot;&gt;<br /> &lt;!--<br /> highlight initial opening brace like final closing brace<br /> (there are no others in defprops, so this shouldn't be a problem<br /> --&gt;<br /> &lt;SEQ TYPE=&quot;KEYWORD1&quot;&gt;{&lt;/SEQ&gt;<br /> <br /> &lt;!-- multi line comments --&gt;<br /> &lt;SPAN TYPE=&quot;COMMENT1&quot; DELEGATE=&quot;COMMENT&quot;&gt;<br /> &lt;BEGIN&gt;/*&lt;/BEGIN&gt;<br /> &lt;END&gt;*/&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- end of line comments --&gt;<br /> &lt;EOL_SPAN TYPE=&quot;COMMENT1&quot; DELEGATE=&quot;EOLCOMMENT&quot;&gt;//&lt;/EOL_SPAN&gt;<br /> <br /> &lt;!-- string literals --&gt;<br /> &lt;SPAN TYPE=&quot;LITERAL1&quot; NO_LINE_BREAK=&quot;TRUE&quot;&gt;<br /> &lt;BEGIN&gt;&quot;&lt;/BEGIN&gt;<br /> &lt;END&gt;&quot;&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- name and object literals NOTE: Defaults dont actually use these--&gt;<br /> &lt;SPAN TYPE=&quot;LITERAL2&quot; NO_LINE_BREAK=&quot;TRUE&quot; ESCAPE=&quot;\&quot;&gt;<br /> &lt;BEGIN&gt;'&lt;/BEGIN&gt;<br /> &lt;END&gt;'&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- subobjects --&gt;<br /> &lt;EOL_SPAN_REGEXP HASH_CHAR=&quot;b&quot; AT_WHITESPACE_END=&quot;TRUE&quot; DELEGATE=&quot;BEGINOBJECT&quot; MATCH_TYPE=&quot;KEYWORD1&quot;&gt;begin\s+object\s*&lt;/EOL_SPAN_REGEXP&gt;<br /> &lt;EOL_SPAN_REGEXP HASH_CHAR=&quot;e&quot; AT_WHITESPACE_END=&quot;TRUE&quot; MATCH_TYPE=&quot;KEYWORD1&quot;&gt;end\s+object\s*&lt;/EOL_SPAN_REGEXP&gt;<br /> <br /> &lt;!-- regular expression for hexadecimal and decimal numbers, including sign --&gt;<br /> &lt;SEQ_REGEXP HASH_CHARS=&quot;+-0123456789&quot; TYPE=&quot;DIGIT&quot;&gt;\b0x[\p{XDigit}]+|[+-]?\b\d+(\.\d*)?([eE][+-]?\d+)?[fF]?\b&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- everything before &quot;=&quot;, &quot;.&quot;, &quot;(&quot; or &quot;[&quot; is a variable name --&gt;<br /> &lt;MARK_PREVIOUS AT_WORD_START=&quot;TRUE&quot; MATCH_TYPE=&quot;OPERATOR&quot; TYPE=&quot;MARKUP&quot;&gt;=&lt;/MARK_PREVIOUS&gt;<br /> &lt;MARK_PREVIOUS AT_WORD_START=&quot;TRUE&quot; MATCH_TYPE=&quot;OPERATOR&quot; TYPE=&quot;MARKUP&quot;&gt;.&lt;/MARK_PREVIOUS&gt;<br /> &lt;MARK_PREVIOUS AT_WORD_START=&quot;TRUE&quot; MATCH_TYPE=&quot;OPERATOR&quot; TYPE=&quot;MARKUP&quot;&gt;(&lt;/MARK_PREVIOUS&gt;<br /> &lt;MARK_PREVIOUS AT_WORD_START=&quot;TRUE&quot; MATCH_TYPE=&quot;OPERATOR&quot; TYPE=&quot;MARKUP&quot;&gt;[&lt;/MARK_PREVIOUS&gt;&lt;!-- Invalid for arrays in defaults --&gt;<br /> <br /> &lt;!-- closing brackets --&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;]&lt;/SEQ&gt;&lt;!-- Invalid for arrays in defaults --&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;)&lt;/SEQ&gt;<br /> <br /> &lt;!-- comma for dynarray and struct values --&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;,&lt;/SEQ&gt;<br /> <br /> &lt;!-- variable names can be separated from &quot;=&quot; by whitespace, so highlight that case separately --&gt;<br /> &lt;SEQ_REGEXP AT_WHITESPACE_END=&quot;TRUE&quot; HASH_CHARS=&quot;abcdefghijklmnopqrstuvwxyz&quot; TYPE=&quot;MARKUP&quot;&gt;\w+&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;IMPORT DELEGATE=&quot;uscript::UEOBJECT&quot;/&gt;<br /> <br /> &lt;KEYWORDS&gt;<br /> &lt;!-- dynamic array operations --&gt;<br /> &lt;KEYWORD1&gt;Add&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Empty&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Remove&lt;/KEYWORD1&gt;<br /> &lt;/KEYWORDS&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;!-- special highlighting for &quot;Begin Object&quot; lines --&gt;<br /> &lt;RULES SET=&quot;BEGINOBJECT&quot;&gt;<br /> <br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;=&lt;/SEQ&gt;<br /> <br /> &lt;!-- multi line comments --&gt;<br /> &lt;SPAN TYPE=&quot;COMMENT1&quot; DELEGATE=&quot;COMMENT&quot;&gt;<br /> &lt;BEGIN&gt;/*&lt;/BEGIN&gt;<br /> &lt;END&gt;*/&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- end of line comments --&gt;<br /> &lt;EOL_SPAN TYPE=&quot;COMMENT1&quot; DELEGATE=&quot;EOLCOMMENT&quot;&gt;//&lt;/EOL_SPAN&gt;<br /> <br /> &lt;!-- name and object literals--&gt;<br /> &lt;SPAN TYPE=&quot;LITERAL2&quot; NO_LINE_BREAK=&quot;TRUE&quot; ESCAPE=&quot;\&quot;&gt;<br /> &lt;BEGIN&gt;'&lt;/BEGIN&gt;<br /> &lt;END&gt;'&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;IMPORT DELEGATE=&quot;uscript::UEOBJECT&quot;/&gt;<br /> <br /> &lt;KEYWORDS&gt;<br /> &lt;KEYWORD1&gt;ObjName&lt;/KEYWORD1&gt;<br /> &lt;/KEYWORDS&gt;<br /> &lt;/RULES&gt;<br /> &lt;/MODE&gt;<br /> &lt;/source&gt;</div> 00zX https://wiki.beyondunreal.com/User:00zX/UScript.xml?diff=44434 User:00zX/UScript.xml 2011-05-15T18:16:07Z <p>00zX: </p> <hr /> <div>&lt;source lang=&quot;xml&quot;&gt;<br /> &lt;?xml version=&quot;1.0&quot;?&gt;<br /> &lt;!DOCTYPE MODE SYSTEM &quot;xmode.dtd&quot;&gt;<br /> &lt;MODE&gt;<br /> &lt;!--<br /> UnrealScript edit mode.<br /> Put this file to your .jedit/modes/ directory and add the following line<br /> to your .jedit/modes/catalog file:<br /> <br /> &lt;MODE NAME=&quot;unrealscript&quot; FILE=&quot;unrealscript.xml&quot; FILE_NAME_GLOB=&quot;*.{uc,puc,uci}&quot;/&gt;<br /> --&gt;<br /> <br /> &lt;PROPS&gt;<br /> &lt;PROPERTY NAME=&quot;commentStart&quot; VALUE=&quot;/*&quot; /&gt;<br /> &lt;PROPERTY NAME=&quot;commentEnd&quot; VALUE=&quot;*/&quot; /&gt;<br /> &lt;PROPERTY NAME=&quot;lineComment&quot; VALUE=&quot;//&quot; /&gt;<br /> &lt;PROPERTY NAME=&quot;newlineComment&quot; VALUE=&quot;///&quot; /&gt;<br /> &lt;PROPERTY NAME=&quot;wordBreakChars&quot; VALUE=&quot;,+-=&amp;lt;&amp;gt;/?^&amp;amp;*&quot; /&gt;<br /> <br /> &lt;!-- Auto indent --&gt;<br /> &lt;PROPERTY NAME=&quot;indentOpenBrackets&quot; VALUE=&quot;{&quot; /&gt;<br /> &lt;PROPERTY NAME=&quot;indentCloseBrackets&quot; VALUE=&quot;}&quot; /&gt;<br /> &lt;PROPERTY NAME=&quot;unalignedOpenBrackets&quot; VALUE=&quot;(&quot; /&gt;<br /> &lt;PROPERTY NAME=&quot;unalignedCloseBrackets&quot; VALUE=&quot;)&quot; /&gt;<br /> &lt;PROPERTY NAME=&quot;indentNextLine&quot;<br /> VALUE=&quot;\s*(((if|while)\s*\(|else\s*|else\s+if\s*\(|for(?:each)?\s*\(.*\))[^{;]*)&quot; /&gt;<br /> &lt;PROPERTY NAME=&quot;unindentThisLine&quot;<br /> VALUE=&quot;^.*(default:\s*|case.*:.*)$&quot; /&gt;<br /> <br /> &lt;PROPERTY NAME=&quot;lineUpClosingBracket&quot; VALUE=&quot;true&quot; /&gt;<br /> &lt;/PROPS&gt;<br /> <br /> &lt;RULES ESCAPE=&quot;\&quot; IGNORE_CASE=&quot;TRUE&quot; HIGHLIGHT_DIGITS=&quot;TRUE&quot; DIGIT_RE=&quot;0x[\p{XDigit}]+|\d+(\.\d*)?(e[+-]?\d+)?[fF]?&quot;&gt;<br /> <br /> &lt;!-- multi line comments --&gt;<br /> &lt;SPAN TYPE=&quot;COMMENT1&quot; DELEGATE=&quot;COMMENT&quot;&gt;<br /> &lt;BEGIN&gt;/*&lt;/BEGIN&gt;<br /> &lt;END&gt;*/&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;SPAN TYPE=&quot;COMMENT2&quot; DELEGATE=&quot;COMMENT&quot;&gt;<br /> &lt;BEGIN&gt;/**&lt;/BEGIN&gt;<br /> &lt;END&gt;*/&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- end of line comments --&gt;<br /> &lt;EOL_SPAN TYPE=&quot;COMMENT1&quot; DELEGATE=&quot;EOLCOMMENT&quot;&gt;//&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN TYPE=&quot;COMMENT2&quot; DELEGATE=&quot;EOLCOMMENT&quot;&gt;///&lt;/EOL_SPAN&gt;<br /> <br /> &lt;!-- string literals --&gt;<br /> &lt;SPAN TYPE=&quot;LITERAL1&quot; NO_LINE_BREAK=&quot;TRUE&quot;&gt;<br /> &lt;BEGIN&gt;&quot;&lt;/BEGIN&gt;<br /> &lt;END&gt;&quot;&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- name and object literals NOTE: Defaults dont actually use these--&gt;<br /> &lt;SPAN TYPE=&quot;LITERAL2&quot; NO_LINE_BREAK=&quot;TRUE&quot; ESCAPE=&quot;\&quot;&gt;<br /> &lt;BEGIN&gt;'&lt;/BEGIN&gt;<br /> &lt;END&gt;'&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- UE1/2 compiler directives and UCPP pragmas --&gt;<br /> &lt;EOL_SPAN AT_WHITESPACE_END=&quot;TRUE&quot; DELEGATE=&quot;DIRECTIVE&quot; TYPE=&quot;KEYWORD2&quot;&gt;#&lt;/EOL_SPAN&gt;<br /> <br /> &lt;!-- UE3 compiler macros --&gt;<br /> &lt;!-- macro in braces --&gt;<br /> &lt;SPAN TYPE=&quot;MARKUP&quot; MATCH_TYPE=&quot;KEYWORD2&quot; NO_LINE_BREAK=&quot;TRUE&quot;&gt;<br /> &lt;BEGIN&gt;`{&lt;/BEGIN&gt;<br /> &lt;END&gt;}&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- special UE3 compiler macros --&gt;<br /> &lt;EOL_SPAN_REGEXP HASH_CHAR=&quot;`&quot; AT_WHITESPACE_END=&quot;TRUE&quot; DELEGATE=&quot;MAIN&quot;<br /> TYPE=&quot;KEYWORD4&quot;&gt;`(define|else|endif|if|debug)\b&lt;/EOL_SPAN_REGEXP&gt;<br /> <br /> &lt;SPAN AT_WHITESPACE_END=&quot;TRUE&quot; TYPE=&quot;LITERAL4&quot; MATCH_TYPE=&quot;KEYWORD4&quot;&gt;<br /> &lt;BEGIN&gt;`include(&lt;/BEGIN&gt;<br /> &lt;END&gt;)&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;`&quot; TYPE=&quot;KEYWORD4&quot;&gt;`(isdefined|notdefined)\b&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- in-line macro --&gt;<br /> &lt;MARK_FOLLOWING MATCH_TYPE=&quot;KEYWORD2&quot; TYPE=&quot;MARKUP&quot;&gt;`&lt;/MARK_FOLLOWING&gt;<br /> <br /> &lt;!-- GoTo labels --&gt;<br /> &lt;MARK_PREVIOUS TYPE=&quot;LABEL&quot; MATCH_TYPE=&quot;OPERATOR&quot; AT_WHITESPACE_END=&quot;TRUE&quot;&gt;:&lt;/MARK_PREVIOUS&gt;<br /> <br /> &lt;!-- UE3 native replacements --&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;{&quot; TYPE=&quot;COMMENT4&quot;&gt;\{[^}]+}&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- operators, separators and brackets --&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;~&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;!&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;@&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;#&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;$&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;^&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;&amp;amp;&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;*&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;-&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;=&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;+&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;|&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;:&lt;/SEQ&gt;<br /> &lt;!-- &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;&amp;lt;&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;&amp;gt;&lt;/SEQ&gt;--&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;/&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;?&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;\&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;)&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;{&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;}&lt;/SEQ&gt;<br /> <br /> &lt;!-- functions --&gt;<br /> &lt;!--&lt;MARK_PREVIOUS TYPE=&quot;FUNCTION&quot; MATCH_TYPE=&quot;OPERATOR&quot;&gt;(&lt;/MARK_PREVIOUS&gt;--&gt;<br /> <br /> &lt;!-- static modifier --&gt;<br /> &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHAR=&quot;s&quot; TYPE=&quot;KEYWORD1&quot;&gt;static\b(?!\s*\.)&lt;/SEQ_REGEXP&gt;<br /> &lt;!-- static function call --&gt;<br /> &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHAR=&quot;s&quot; TYPE=&quot;KEYWORD2&quot;&gt;static\b(?=\s*\.)&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- switch keyword --&gt;<br /> &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHAR=&quot;s&quot; TYPE=&quot;KEYWORD1&quot;&gt;switch\b(?=\s*\()&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- default switch case --&gt;<br /> &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHAR=&quot;d&quot; TYPE=&quot;KEYWORD1&quot;&gt;default\b(?=\s*\:)&lt;/SEQ_REGEXP&gt;<br /> &lt;!-- default value access --&gt;<br /> &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHAR=&quot;d&quot; TYPE=&quot;KEYWORD2&quot;&gt;default\b(?=\s*\.)&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- input variable modifier --&gt;<br /> &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHAR=&quot;i&quot; TYPE=&quot;KEYWORD1&quot;&gt;input\b(?=\s*[\w&amp;gt;])&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- name datatype --&gt;<br /> &lt;!-- &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHAR=&quot;n&quot; TYPE=&quot;KEYWORD3&quot;&gt;name\b(?=\s*[\w&amp;gt;])&lt;/SEQ_REGEXP&gt;--&gt;<br /> <br /> &lt;!-- class keyword --&gt;<br /> &lt;!-- &lt;SEQ_REGEXP AT_WHITESPACE_END=&quot;TRUE&quot; HASH_CHAR=&quot;c&quot; TYPE=&quot;KEYWORD1&quot;&gt;class\b(?=\s*[\w])&lt;/SEQ_REGEXP&gt;--&gt;<br /> &lt;!-- class identifier?? --&gt;<br /> &lt;!-- &lt;SEQ_REGEXP AT_WHITESPACE_END=&quot;TRUE&quot; HASH_CHAR=&quot;c&quot; TYPE=&quot;KEYWORD1&quot;&gt;class\b(?=[\s*\w'])&lt;/SEQ_REGEXP&gt;--&gt;<br /> <br /> &lt;!--&lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHARS=&quot;a&amp;lt;&quot; TYPE=&quot;MARKUP&quot; DELEGATE=&quot;METADATA&quot;&gt;(?!array)&amp;lt;.*&amp;gt;&lt;/SEQ_REGEXP&gt;--&gt;<br /> <br /> &lt;!-- class / array datatype --&gt;<br /> &lt;!--&lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHARS=&quot;ac&quot; TYPE=&quot;KEYWORD1&quot;&gt;array\b\s*&amp;lt;\s*class\b\s*&amp;lt;\s*\w*\s*&amp;gt;\s+&amp;gt;&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHARS=&quot;ac&quot; TYPE=&quot;INVALID&quot;&gt;array\b\s*&amp;lt;\s*class\b\s*&amp;lt;\s*\w*\s*&amp;gt;&amp;gt;&lt;/SEQ_REGEXP&gt;--&gt;<br /> &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHARS=&quot;ac&quot; TYPE=&quot;KEYWORD1&quot;&gt;(array|class)\b(?=\s*[&amp;lt;\s*(?!(array|class))\w*\s*&amp;gt;])&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;SPAN_REGEXP HASH_CHAR=&quot;&amp;lt;&quot; TYPE=&quot;MARKUP&quot; MATCH_TYPE=&quot;MARKUP&quot; DELEGATE=&quot;METADATA&quot;&gt;<br /> &lt;BEGIN&gt;(?!(array)?\s*&amp;lt;(=)?)?&amp;lt;|(?!&amp;lt;\s*\d)?&amp;lt;&lt;/BEGIN&gt;<br /> &lt;END&gt;&lt;!--(?!&amp;gt;=)?--&gt;&amp;gt;&lt;/END&gt;&lt;!--(&amp;gt;(?![=]))|(&amp;gt;[;])--&gt;<br /> &lt;/SPAN_REGEXP&gt;<br /> <br /> &lt;!-- delegate keyword --&gt;<br /> &lt;SEQ_REGEXP AT_WHITESPACE_END=&quot;TRUE&quot; HASH_CHAR=&quot;d&quot; TYPE=&quot;KEYWORD1&quot;&gt;delegate\b(?=\s*[\w])&lt;/SEQ_REGEXP&gt;<br /> &lt;!-- delegate datatype --&gt;<br /> &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHAR=&quot;d&quot; TYPE=&quot;KEYWORD3&quot;&gt;delegate\b(?=\s*[\w&amp;lt;&amp;gt;])&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- default values section for class and structs --&gt;<br /> &lt;SPAN_REGEXP AT_WHITESPACE_END=&quot;TRUE&quot; HASH_CHARS=&quot;ds&quot; NO_LINE_BREAK=&quot;FALSE&quot; MATCH_TYPE=&quot;KEYWORD1&quot; DELEGATE=&quot;DEFAULTS&quot;&gt;<br /> &lt;BEGIN&gt;(struct)?defaultproperties\s*$&lt;/BEGIN&gt;<br /> &lt;END&gt;}&lt;/END&gt;<br /> &lt;/SPAN_REGEXP&gt;<br /> <br /> &lt;!-- Standard Variable Keyword --&gt;<br /> &lt;SEQ_REGEXP AT_WHITESPACE_END=&quot;TRUE&quot; HASH_CHAR=&quot;v&quot; TYPE=&quot;KEYWORD1&quot; MATCH_TYPE=&quot;KEYWORD4&quot;&gt;var\b\s+(?![(])&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- Special Editor version of variable declaration --&gt;<br /> &lt;SPAN_REGEXP HASH_CHARS=&quot;v&quot; TYPE=&quot;KEYWORD4&quot; MATCH_TYPE=&quot;KEYWORD1&quot;&gt;<br /> &lt;BEGIN&gt;var(?!\b\s+\w*)(\b\s*[(\s*]|\s*[(\s*\w*])&lt;/BEGIN&gt;&lt;!-- TODO: Compress me \b(\s*[(\s*])(\w*)? --&gt;<br /> &lt;END&gt;)&lt;/END&gt;<br /> &lt;/SPAN_REGEXP&gt;<br /> <br /> &lt;KEYWORDS&gt;<br /> <br /> &lt;!-- Class Syntax --&gt;<br /> &lt;KEYWORD1&gt;Interface&lt;/KEYWORD1&gt;<br /> &lt;!--&lt;KEYWORD1&gt;Class&lt;/KEYWORD1&gt;--&gt;&lt;!--db: added test--&gt;<br /> &lt;INVALID&gt;Expands&lt;/INVALID&gt;&lt;!-- only early UE1, shouldn't really be used --&gt;<br /> &lt;KEYWORD1&gt;Extends&lt;/KEYWORD1&gt;<br /> <br /> &lt;!-- Class Syntax: Optional Specifiers --&gt;<br /> &lt;!-- General --&gt;<br /> &lt;KEYWORD1&gt;Implements&lt;/KEYWORD1&gt;&lt;!-- UE3+ --&gt;<br /> &lt;KEYWORD1&gt;Abstract&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Config&lt;/KEYWORD1&gt;&lt;!-- used for both class and var --&gt;<br /> &lt;KEYWORD1&gt;GlobalConfig&lt;/KEYWORD1&gt;&lt;!-- used for both class and var?? --&gt;<br /> &lt;KEYWORD4&gt;PerObjectConfig&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD1&gt;Native&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;NativeReplication&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;NoExport&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;NoImport&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;NotTransient&lt;/KEYWORD1&gt;&lt;!-- since UE2 --&gt;<br /> &lt;KEYWORD1&gt;Within&lt;/KEYWORD1&gt;&lt;!-- since UE2 --&gt;<br /> &lt;KEYWORD1&gt;DependsOn&lt;/KEYWORD1&gt;&lt;!-- since UE2 --&gt;<br /> &lt;KEYWORD4&gt;Deprecated&lt;/KEYWORD4&gt;&lt;!-- since UE2, marks variables that should no longer be used --&gt;<br /> <br /> &lt;!-- Class Syntax: Secondary Specifiers --&gt;<br /> &lt;!-- Editor --&gt;<br /> &lt;KEYWORD4&gt;AutoExpandCategories&lt;/KEYWORD4&gt;&lt;!-- since UE3? --&gt;<br /> &lt;KEYWORD4&gt;CollapseCatergories&lt;/KEYWORD4&gt;&lt;!-- since UE2 --&gt;<br /> &lt;KEYWORD4&gt;DontCollapseCategories&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD1&gt;EdFindable&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;EditConst&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;EditConstArray&lt;/KEYWORD1&gt;&lt;!-- only UE2 --&gt;<br /> &lt;KEYWORD1&gt;EditFixedSize&lt;/KEYWORD1&gt;&lt;!-- since UE3 --&gt;<br /> &lt;KEYWORD4&gt;HideCategories&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;HideDropDown&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;NotPlaceable&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;Placeable&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD1&gt;ExportStructs&lt;/KEYWORD1&gt;&lt;!-- only UE2 --&gt;<br /> &lt;KEYWORD1&gt;SafeReplace&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;ShowCategories&lt;/KEYWORD1&gt;&lt;!-- since UE2 --&gt;<br /> <br /> &lt;!-- Object Specifiers --&gt;<br /> &lt;KEYWORD4&gt;EditInline&lt;/KEYWORD4&gt;&lt;!-- since UE2 --&gt;<br /> &lt;KEYWORD4&gt;EditInlineUse&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD1&gt;EditInlineNew&lt;/KEYWORD1&gt;&lt;!-- since UE2 --&gt;<br /> &lt;KEYWORD1&gt;EditInlineNotify&lt;/KEYWORD1&gt;&lt;!-- only UE2 --&gt;<br /> &lt;KEYWORD4&gt;NotEditInlineNew&lt;/KEYWORD4&gt;&lt;!-- since UE2 --&gt;<br /> <br /> &lt;!--===================================================================================================--&gt;<br /> &lt;KEYWORD4&gt;Inherits&lt;/KEYWORD4&gt;&lt;!-- native effect, since UE3 --&gt;<br /> &lt;KEYWORD1&gt;Assert&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Cache&lt;/KEYWORD1&gt;&lt;!-- only UE2 --&gt;<br /> &lt;KEYWORD1&gt;CacheExempt&lt;/KEYWORD1&gt;&lt;!-- only UE2 --&gt;<br /> &lt;KEYWORD1&gt;Import&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Init&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Latent&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;ParseConfig&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Skip&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Stop&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Travel&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Export&lt;/KEYWORD1&gt;<br /> &lt;!--===================================================================================================--&gt;<br /> <br /> &lt;!-- Function Syntax: Primary Specifiers --&gt;<br /> &lt;!--&lt;KEYWORD1&gt;cpptext&lt;/KEYWORD1&gt;--&gt;&lt;!-- only UE2? --&gt;<br /> &lt;!--&lt;KEYWORD1&gt;cppstruct&lt;/KEYWORD1&gt;--&gt;&lt;!-- only UE2? --&gt;<br /> &lt;!--&lt;KEYWORD1&gt;structcpptext&lt;/KEYWORD1&gt;--&gt;<br /> &lt;KEYWORD1&gt;Event&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Function&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Operator&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;PostOperator&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;PreOperator&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Replication&lt;/KEYWORD1&gt;&lt;!-- db: Could update so replication block gets special handling --&gt;<br /> <br /> &lt;KEYWORD1&gt;If&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Else&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Case&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Break&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Continue&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Return&lt;/KEYWORD1&gt;<br /> <br /> &lt;KEYWORD1&gt;State&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Goto&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD2&gt;GotoState&lt;/KEYWORD2&gt;<br /> &lt;!-- State Syntax: Secondary Specifiers --&gt;<br /> &lt;KEYWORD1&gt;Auto&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Ignores&lt;/KEYWORD1&gt;<br /> <br /> &lt;!-- Function Syntax: Iterators --&gt;<br /> &lt;KEYWORD1&gt;For&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;ForEach&lt;/KEYWORD1&gt;<br /> <br /> &lt;KEYWORD1&gt;While&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Do&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Until&lt;/KEYWORD1&gt;<br /> <br /> &lt;!-- db: Secondary Keywords - grey/italic (like uncodex)--&gt;<br /> &lt;KEYWORD4&gt;Self&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Outer&lt;/KEYWORD4&gt;&lt;!--common--&gt;<br /> &lt;COMMENT3&gt;Owner&lt;/COMMENT3&gt;&lt;!--common--&gt;<br /> &lt;KEYWORD4&gt;Instigator&lt;/KEYWORD4&gt;&lt;!--common--&gt;<br /> &lt;KEYWORD4&gt;Optional&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Out&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Object&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Native&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD2&gt;New&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;None&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;Super&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;Global&lt;/KEYWORD2&gt;<br /> &lt;INVALID&gt;Null&lt;/INVALID&gt;<br /> <br /> &lt;!-- Function Syntax: Secondary Specifiers --&gt;<br /> &lt;INVALID&gt;Intrinsic&lt;/INVALID&gt;&lt;!-- only early UE1, replaced by &quot;native&quot; --&gt;<br /> &lt;INVALID&gt;Virtual&lt;/INVALID&gt;<br /> &lt;KEYWORD4&gt;Static&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Final&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Server&lt;/KEYWORD4&gt;&lt;!-- UE3+ --&gt;<br /> &lt;KEYWORD4&gt;Client&lt;/KEYWORD4&gt;&lt;!-- UE3+ --&gt;<br /> &lt;KEYWORD4&gt;Simulated&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Iterator&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Singular&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Exec&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD1&gt;Reliable&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Unreliable&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Automated&lt;/KEYWORD1&gt;&lt;!-- only UE2 --&gt;<br /> &lt;KEYWORD4&gt;k2override&lt;/KEYWORD4&gt;&lt;!-- UDK+ --&gt;<br /> <br /> &lt;!-- built-in type names --&gt;<br /> &lt;KEYWORD1&gt;Const&lt;/KEYWORD1&gt;<br /> &lt;!--&lt;KEYWORD1&gt;Var&lt;/KEYWORD1&gt;--&gt;<br /> &lt;KEYWORD1&gt;Local&lt;/KEYWORD1&gt;<br /> &lt;!-- db: modifed these to be keyword 1 from 3 --&gt;<br /> &lt;!-- Variable Primary (Syntax)Flags --&gt;<br /> &lt;KEYWORD1&gt;Bool&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Byte&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Enum&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Float&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Int&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;String&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Struct&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Pointer&lt;/KEYWORD1&gt;&lt;!-- UE2+ --&gt;<br /> &lt;!--&lt;KEYWORD1&gt;Array&lt;/KEYWORD1&gt;--&gt;<br /> &lt;KEYWORD1&gt;Name&lt;/KEYWORD1&gt;<br /> <br /> &lt;KEYWORD1&gt;vector&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;rotator&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;vector2d&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;color&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;quat&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;matrix&lt;/KEYWORD1&gt;<br /> <br /> &lt;!-- Variable Secondary (Syntax)Flags--&gt;<br /> &lt;INVALID&gt;Public&lt;/INVALID&gt;&lt;!-- redundant, members are always public unless marked private or protected --&gt;<br /> &lt;KEYWORD4&gt;Private&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Protected&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Localized&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Config&lt;/KEYWORD4&gt;&lt;!--is also a class flag--&gt;<br /> &lt;KEYWORD4&gt;GlobalConfig&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;RepNotify&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Transient&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD1&gt;DuplicateTransient&lt;/KEYWORD1&gt;&lt;!-- since UE3 --&gt;<br /> &lt;KEYWORD1&gt;Instanced&lt;/KEYWORD1&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD1&gt;DataBinding&lt;/KEYWORD1&gt;&lt;!-- UE3+ --&gt;<br /> &lt;KEYWORD1&gt;Immutable&lt;/KEYWORD1&gt;&lt;!-- UE3+ (struct) --&gt;<br /> &lt;KEYWORD1&gt;Coerce&lt;/KEYWORD1&gt;&lt;!-- (string) --&gt;<br /> &lt;KEYWORD1&gt;Long&lt;/KEYWORD1&gt;&lt;!-- UE2+ (struct) --&gt;<br /> &lt;KEYWORD4&gt;k2Call&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PrivateWrite&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;interp&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Archetype&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;k2pure&lt;/KEYWORD4&gt;<br /> &lt;!-- Editor --&gt;<br /> &lt;KEYWORD4&gt;EditorOnly&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;EditHide&lt;/KEYWORD4&gt;<br /> <br /> &lt;!-- literals and special function calls --&gt;<br /> &lt;KEYWORD2&gt;True&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;False&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;enable&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;disable&lt;/KEYWORD2&gt;<br /> <br /> &lt;!-- literals --&gt;<br /> &lt;KEYWORD2&gt;Vect2D&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;Vect&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;Rot&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;NameOf&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;Normal&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;VSize&lt;/KEYWORD2&gt;<br /> <br /> &lt;KEYWORD2&gt;ArrayCount&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;EnumCount&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;Length&lt;/KEYWORD2&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD2&gt;PathName&lt;/KEYWORD2&gt;<br /> <br /> &lt;/KEYWORDS&gt;<br /> <br /> &lt;!-- Expanded UnrealEngine highlighting rules --&gt;<br /> &lt;IMPORT DELEGATE=&quot;uscript::UEOBJECT&quot;/&gt;<br /> &lt;IMPORT DELEGATE=&quot;uscript::UEFUNCTION&quot;/&gt;<br /> <br /> &lt;/RULES&gt;<br /> <br /> &lt;!-- UnrealEngine Classes--&gt;<br /> &lt;RULES SET=&quot;UEOBJECT&quot; IGNORE_CASE=&quot;TRUE&quot;&gt;<br /> &lt;KEYWORDS&gt;<br /> &lt;KEYWORD1&gt;Class&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Name&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;LegacyClassName&lt;/KEYWORD1&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD1&gt;Archetype&lt;/KEYWORD1&gt;&lt;!-- UE3 --&gt;<br /> <br /> &lt;!-- literals --&gt;<br /> &lt;KEYWORD2&gt;False&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;None&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;True&lt;/KEYWORD2&gt;<br /> <br /> &lt;KEYWORD3&gt;Weapon&lt;/KEYWORD3&gt;<br /> &lt;!-- &lt;KEYWORD3&gt;Other&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Instigator&lt;/KEYWORD3&gt;--&gt;<br /> &lt;KEYWORD3&gt;Actor&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Controller&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;LightType&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;Level&lt;/KEYWORD3&gt;&lt;!-- UE2 --&gt;<br /> &lt;KEYWORD3&gt;WorldInfo&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;Pawn&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;PlayerController&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Material&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;PhysicalMaterial&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;MaterialInterface&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;Texture&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Texture2D&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Effects&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Info&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Font&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Projectile&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;PlayerInput&lt;/KEYWORD3&gt;<br /> <br /> &lt;!-- UnrealEngine Enums --&gt;<br /> &lt;KEYWORD3&gt;LinearColor&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;FontRenderInfo&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;InterpCurveVector&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;InterpCurvePointVector&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;TraceHitInfo&lt;/KEYWORD3&gt;<br /> <br /> &lt;!-- User Interface --&gt;<br /> &lt;KEYWORD3&gt;Canvas&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;HUD&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UIRoot&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;UIScene&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;UIObject&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UIImage&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;TextureCoordinates&lt;/KEYWORD3&gt;<br /> <br /> &lt;KEYWORD3&gt;AnimSet&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;AnimNode&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;AnimNodeSequence&lt;/KEYWORD3&gt;<br /> <br /> &lt;KEYWORD3&gt;CameraAnim&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Emitter&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;ParticleSystem&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Projector&lt;/KEYWORD3&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD3&gt;DamageType&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;GameInfo&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;GameRules&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;PlayerReplicationInfo&lt;/KEYWORD3&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD3&gt;GameReplicationInfo&lt;/KEYWORD3&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD3&gt;Inventory&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Vehicle&lt;/KEYWORD3&gt;&lt;!-- UE2.5+ --&gt;<br /> &lt;KEYWORD3&gt;StaticMesh&lt;/KEYWORD3&gt;&lt;!-- UE2+ --&gt;<br /> <br /> &lt;KEYWORD3&gt;NavigationPoint&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;PhysicsVolume&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Mutator&lt;/KEYWORD3&gt;<br /> <br /> &lt;KEYWORD3&gt;ForceFeedbackWaveform&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;FluidSurfaceActor&lt;/KEYWORD3&gt;<br /> <br /> &lt;KEYWORD3&gt;Sequence&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;SequenceEvent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;SequenceObject&lt;/KEYWORD3&gt;<br /> <br /> &lt;KEYWORD3&gt;FaceFXAsset&lt;/KEYWORD3&gt;<br /> <br /> &lt;!--Components UE3--&gt;<br /> &lt;KEYWORD3&gt;Component&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;ActorComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;PrimitiveComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;SVehicleSimBase&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;StaticMeshComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;SkeletalMeshComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;ParticleSystemComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;PointLightComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;SplineComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;AudioComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;DynamicLightEnvironmentComponent&lt;/KEYWORD3&gt;<br /> <br /> &lt;!--UDK specific--&gt;<br /> &lt;KEYWORD3&gt;UDKParticleSystemComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UDKExplosionLight&lt;/KEYWORD3&gt;<br /> <br /> &lt;!--UT3 specific--&gt;<br /> &lt;KEYWORD3&gt;UTSkeletalMeshComponent&lt;/KEYWORD3&gt;<br /> <br /> &lt;!--Sound, was changed--&gt;<br /> &lt;KEYWORD3&gt;Sound&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;SoundNode&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;SoundCue&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;/KEYWORDS&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES SET=&quot;UEFUNCTION&quot; IGNORE_CASE=&quot;TRUE&quot;&gt;<br /> <br /> &lt;!-- UnrealEngine functions --&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;fi&quot; TYPE=&quot;KEYWORD4&quot;&gt;FindChild(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;is&quot; TYPE=&quot;KEYWORD4&quot;&gt;IsA(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;c&quot; TYPE=&quot;KEYWORD4&quot;&gt;ClassIsChildOf(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;isi&quot; TYPE=&quot;KEYWORD4&quot;&gt;IsInState(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;dr&quot; TYPE=&quot;KEYWORD4&quot;&gt;Draw3DLine(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;de&quot; TYPE=&quot;KEYWORD4&quot;&gt;DeProject(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;re&quot; TYPE=&quot;KEYWORD4&quot;&gt;ReplicateMove(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;pr&quot; TYPE=&quot;KEYWORD4&quot;&gt;ProcessMove(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;pl&quot; TYPE=&quot;KEYWORD4&quot;&gt;PlayerTick(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;po&quot; TYPE=&quot;KEYWORD4&quot;&gt;PostRender(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;ge&quot; TYPE=&quot;KEYWORD4&quot;&gt;GetEnum(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;fi&quot; TYPE=&quot;KEYWORD4&quot;&gt;FindObject(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;tr&quot; TYPE=&quot;KEYWORD4&quot;&gt;Trace(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;fa&quot; TYPE=&quot;KEYWORD4&quot;&gt;FastTrace(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;sp&quot; TYPE=&quot;KEYWORD4&quot;&gt;Spawn(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;KEYWORDS&gt;<br /> &lt;!-- Dynamic Arrays --&gt;<br /> &lt;KEYWORD2&gt;Find&lt;/KEYWORD2&gt;&lt;!-- (since UE3) --&gt;<br /> &lt;KEYWORD2&gt;Add&lt;/KEYWORD2&gt;&lt;!-- (since UE3) --&gt;<br /> &lt;KEYWORD2&gt;AddItem&lt;/KEYWORD2&gt;&lt;!-- (since UE3) --&gt;<br /> &lt;KEYWORD2&gt;Insert&lt;/KEYWORD2&gt;&lt;!-- (since UE2) --&gt;<br /> &lt;KEYWORD2&gt;InsertItem&lt;/KEYWORD2&gt;&lt;!-- (since UE3) --&gt;<br /> &lt;KEYWORD2&gt;Remove&lt;/KEYWORD2&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD2&gt;RemoveItem&lt;/KEYWORD2&gt;&lt;!-- UE+ --&gt;<br /> &lt;KEYWORD1&gt;index_none&lt;/KEYWORD1&gt;<br /> <br /> &lt;!-- Constants --&gt;<br /> &lt;KEYWORD2&gt;MaxInt&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;Pi&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;RadToDeg&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;DegToRad&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;UnrRotToRad&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;RadToUnrRot&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;DegToUnrRot&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;UnrRotToDeg&lt;/KEYWORD2&gt;<br /> <br /> &lt;KEYWORD3&gt;Velocity&lt;/KEYWORD3&gt;<br /> <br /> &lt;!--Components UE3--&gt;<br /> &lt;KEYWORD4&gt;AttachComponent&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;DetachComponent&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ReattachComponent&lt;/KEYWORD4&gt;<br /> &lt;COMMENT3&gt;AttachComponentToSocket&lt;/COMMENT3&gt;<br /> <br /> &lt;!-- Object Events --&gt;<br /> &lt;KEYWORD4&gt;BeginState&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;EndState&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PushedState&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PoppedState&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PausedState&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ContinuedState&lt;/KEYWORD4&gt;<br /> <br /> &lt;!-- Actor Events --&gt;<br /> &lt;KEYWORD4&gt;ReplicatedEvent&lt;/KEYWORD4&gt;&lt;!-- UE3+ --&gt;<br /> &lt;KEYWORD4&gt;Destroyed&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;GainedChild&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;LostChild&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Tick&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Timer&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;HitWall&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Falling&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Landed&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PhysicsVolumeChange&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Touch&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PostTouch&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;UnTouch&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Bump&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;BaseChange&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Attach&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Detach&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SpecialHandling&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;CollisionChanged&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;EncroachingOn&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;EncroachedBy&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;RanInto&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;OnWakeRBPhysics&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;OnSleepRBPhysics&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;OverRotated&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;FellOutOfWorld&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;OutsideWorldBounds&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;TornOff&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PreBeginPlay&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;BroadcastLocalizedMessage&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;BroadcastLocalizedTeamMessage&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PostBeginPlay&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SetInitialState&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ConstraintBrokenNotify&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;NotifySkelControlBeyondLimit&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;TakeDamage&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;HealDamage&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;DebugFreezeGame&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;BecomeViewTarget&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;EndViewTarget&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ModifyHearSoundComponent&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;GetFaceFXAudioComponent&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Reset&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;DebugMessagePlayer&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ReceivedNewEvent&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ForceNetRelevant&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ShutDown&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;OnAnimEnd&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;OnAnimPlay&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;BeginAnimControl&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SetAnimPosition&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;FinishAnimControl&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PlayActorFaceFXAnim&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;StopActorFaceFXAnim&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SetMorphWeight&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SetSkelControlScale&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;GetActorFaceFXAsset&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;GetActorEyesViewPoint&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ScriptGetTeamNum&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SpawnedByKismet&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;InterpolationStarted&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;InterpolationFinished&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;InterpolationChanged&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;RigidBodyCollision&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;OnRanOver&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PostRenderFor&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;RootMotionModeChanged&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;RootMotionProcessed&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;RootMotionExtracted&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PostInitAnimTree&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;OnRigidBodySpringOverextension&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PlayParticleEffect&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;CreateForceField&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;TrailsNotify&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;TrailsNotifyTick&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;TrailsNotifyEnd&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;AnimTreeUpdated&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PostDemoRewind&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ReplicationEnded&lt;/KEYWORD4&gt;<br /> <br /> &lt;!-- Math Functions --&gt;<br /> &lt;KEYWORD4&gt;min&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;max&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;abs&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;clamp&lt;/KEYWORD4&gt;<br /> <br /> &lt;KEYWORD4&gt;sin&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;cos&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;atan&lt;/KEYWORD4&gt;<br /> <br /> &lt;KEYWORD4&gt;vlerp&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;vsize&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;vsize2d&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;round&lt;/KEYWORD4&gt;<br /> <br /> &lt;KEYWORD4&gt;fclamp&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;fmin&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;fmax&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;frand&lt;/KEYWORD4&gt;<br /> <br /> &lt;!-- Actor Functions --&gt;<br /> &lt;KEYWORD4&gt;SetLocation&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SetRotation&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SetBase&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SetHidden&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SetHardAttach&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SetCollision&lt;/KEYWORD4&gt;<br /> <br /> &lt;KEYWORD4&gt;DynamicLoadObject&lt;/KEYWORD4&gt;<br /> <br /> &lt;!-- SkeletalMesh Component functions --&gt;<br /> &lt;KEYWORD4&gt;GetSocketWorldLocationAndRotation&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;GetSocketByName&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;MatchRefBone&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;TransformFromBoneSpace&lt;/KEYWORD4&gt;<br /> <br /> &lt;!-- Timer functions: UE3--&gt;<br /> &lt;KEYWORD4&gt;SetTimer&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ClearTimer&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;IsTimerActive&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;GetTimerCount&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;GetTimerRate&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ClearAllTimers&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PauseTimer&lt;/KEYWORD4&gt;<br /> <br /> &lt;!-- Native Iterators --&gt;<br /> &lt;KEYWORD4&gt;AllActors&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;DynamicActors&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;ChildActors&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;BasedActors&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;TouchingActors&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;TraceActors&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;VisibleActors&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;VisibleCollidingActors&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;CollidingActors&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;OverlappingActors&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ComponentList&lt;/KEYWORD4&gt;&lt;!-- UE3+ --&gt;<br /> &lt;KEYWORD4&gt;AllOwnedComponents&lt;/KEYWORD4&gt;&lt;!-- UE3+ --&gt;<br /> &lt;KEYWORD4&gt;LocalPlayerControllers&lt;/KEYWORD4&gt;<br /> &lt;/KEYWORDS&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES IGNORE_CASE=&quot;TRUE&quot; SET=&quot;DIRECTIVE&quot;&gt;<br /> &lt;EOL_SPAN TYPE=&quot;COMMENT2&quot;&gt;//&lt;/EOL_SPAN&gt;<br /> <br /> &lt;!-- exec directives --&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;EXEC_COMMAND&quot; TYPE=&quot;KEYWORD1&quot;&gt;exec&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;EXEC_COMMAND&quot; TYPE=&quot;KEYWORD1&quot;&gt;alwaysexec&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;EXEC_COMMAND&quot; TYPE=&quot;KEYWORD1&quot;&gt;forceexec&lt;/EOL_SPAN&gt;<br /> &lt;!-- source include --&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;EXEC_COMMAND&quot; TYPE=&quot;KEYWORD1&quot;&gt;include&lt;/EOL_SPAN&gt;<br /> &lt;!-- execute command file --&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;EXEC_COMMAND&quot; TYPE=&quot;KEYWORD1&quot;&gt;call&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;EXEC_COMMAND&quot; TYPE=&quot;KEYWORD1&quot;&gt;alwayscall&lt;/EOL_SPAN&gt;<br /> <br /> &lt;!-- throw compiler error --&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;IGNORED&quot; TYPE=&quot;KEYWORD1&quot;&gt;error&lt;/EOL_SPAN&gt;<br /> <br /> &lt;!-- UCPP directives --&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;MAIN&quot; TYPE=&quot;KEYWORD1&quot;&gt;ifdef&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;MAIN&quot; TYPE=&quot;KEYWORD1&quot;&gt;ifndef&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;MAIN&quot; TYPE=&quot;KEYWORD1&quot;&gt;if&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;MAIN&quot; TYPE=&quot;KEYWORD1&quot;&gt;elif&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;IGNORED&quot; TYPE=&quot;KEYWORD1&quot;&gt;else&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;IGNORED&quot; TYPE=&quot;KEYWORD1&quot;&gt;endif&lt;/EOL_SPAN&gt;<br /> <br /> &lt;EOL_SPAN DELEGATE=&quot;MAIN&quot; TYPE=&quot;KEYWORD1&quot;&gt;define&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;MAIN&quot; TYPE=&quot;KEYWORD1&quot;&gt;undef&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;MAIN&quot; TYPE=&quot;KEYWORD1&quot;&gt;linenumber&lt;/EOL_SPAN&gt;<br /> <br /> &lt;EOL_SPAN DELEGATE=&quot;PRAGMA&quot; TYPE=&quot;KEYWORD1&quot;&gt;pragma&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;PRAGMA&quot; TYPE=&quot;KEYWORD1&quot;&gt;ucpp&lt;/EOL_SPAN&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES SET=&quot;METADATA&quot; IGNORE_CASE=&quot;TRUE&quot; HIGHLIGHT_DIGITS=&quot;TRUE&quot; DIGIT_RE=&quot;0x[\p{XDigit}]+|\d+(\.\d*)?(e[+-]?\d+)?[fF]?&quot;&gt;<br /> &lt;!-- operators, separators and brackets --&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;|&lt;/SEQ&gt;<br /> <br /> &lt;KEYWORDS&gt;<br /> &lt;!-- UE3 property tags --&gt;<br /> &lt;!-- db: moved these to keyword 3 instead of 4 to make room --&gt;<br /> <br /> &lt;MARKUP&gt;AllowAbstract&lt;/MARKUP&gt;<br /> &lt;MARKUP&gt;AutoComment&lt;/MARKUP&gt;<br /> &lt;MARKUP&gt;DisplayName&lt;/MARKUP&gt;<br /> &lt;MARKUP&gt;EditCondition&lt;/MARKUP&gt;<br /> &lt;MARKUP&gt;Tooltip&lt;/MARKUP&gt;<br /> &lt;MARKUP&gt;ClampMin&lt;/MARKUP&gt;<br /> &lt;MARKUP&gt;ClampMax&lt;/MARKUP&gt;<br /> &lt;MARKUP&gt;UIMin&lt;/MARKUP&gt;<br /> &lt;MARKUP&gt;UIMax&lt;/MARKUP&gt;<br /> &lt;/KEYWORDS&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES DEFAULT=&quot;COMMENT1&quot; SET=&quot;COMMENT&quot;&gt;<br /> &lt;!-- UE3 @tags in all kinds of comments --&gt;<br /> &lt;!--&lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHAR=&quot;@&quot; TYPE=&quot;LABEL&quot;&gt;(?&amp;lt;!\w)@\w+&lt;/SEQ_REGEXP&gt;--&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES DEFAULT=&quot;COMMENT3&quot; SET=&quot;DOCCOMMENT&quot;&gt;<br /> &lt;IMPORT DELEGATE=&quot;COMMENT&quot;/&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES DEFAULT=&quot;COMMENT2&quot; SET=&quot;EOLCOMMENT&quot;&gt;<br /> &lt;IMPORT DELEGATE=&quot;COMMENT&quot;/&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES DEFAULT=&quot;COMMENT1&quot; SET=&quot;IGNORED&quot;&gt;<br /> &lt;EOL_SPAN TYPE=&quot;COMMENT2&quot;&gt;//&lt;/EOL_SPAN&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES DEFAULT=&quot;MARKUP&quot; SET=&quot;PRAGMA&quot;&gt;<br /> &lt;!-- UCPP pragmas --&gt;<br /> <br /> &lt;EOL_SPAN TYPE=&quot;COMMENT2&quot;&gt;//&lt;/EOL_SPAN&gt;<br /> <br /> &lt;KEYWORDS&gt;<br /> &lt;KEYWORD1&gt;ucpp&lt;/KEYWORD1&gt;<br /> <br /> &lt;KEYWORD3&gt;notice&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;rename&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;include&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;warning&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;config&lt;/KEYWORD3&gt;<br /> <br /> &lt;LITERAL2&gt;true&lt;/LITERAL2&gt;<br /> &lt;LITERAL2&gt;false&lt;/LITERAL2&gt;<br /> &lt;LITERAL2&gt;on&lt;/LITERAL2&gt;<br /> &lt;LITERAL2&gt;off&lt;/LITERAL2&gt;<br /> &lt;/KEYWORDS&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES IGNORE_CASE=&quot;TRUE&quot; SET=&quot;EXEC_COMMAND&quot; NO_WORD_SEP=&quot;_\\.,+-&amp;lt;&amp;gt;/?^&amp;amp;*&quot;&gt;<br /> &lt;!-- exec directive markup --&gt;<br /> <br /> &lt;EOL_SPAN TYPE=&quot;COMMENT2&quot;&gt;//&lt;/EOL_SPAN&gt;<br /> <br /> &lt;!-- quoted strings --&gt;<br /> &lt;SPAN TYPE=&quot;LITERAL1&quot; NO_LINE_BREAK=&quot;TRUE&quot;&gt;<br /> &lt;BEGIN&gt;&quot;&lt;/BEGIN&gt;<br /> &lt;END&gt;&quot;&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- numbers --&gt;<br /> &lt;SEQ_REGEXP HASH_CHARS=&quot;0123456789&quot; TYPE=&quot;DIGIT&quot;&gt;\b(0x[\p{XDigit}]+|\d+(\.\d*)?(e[+-]?\d+)?[fF]?)\b&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- parameters --&gt;<br /> &lt;MARK_PREVIOUS MATCH_TYPE=&quot;OPERATOR&quot; TYPE=&quot;MARKUP&quot;&gt;=&lt;/MARK_PREVIOUS&gt;<br /> <br /> &lt;!-- boolean values --&gt;<br /> &lt;KEYWORDS&gt;<br /> &lt;LITERAL2&gt;true&lt;/LITERAL2&gt;<br /> &lt;LITERAL2&gt;false&lt;/LITERAL2&gt;<br /> &lt;LITERAL2&gt;yes&lt;/LITERAL2&gt;<br /> &lt;LITERAL2&gt;no&lt;/LITERAL2&gt;<br /> &lt;LITERAL2&gt;on&lt;/LITERAL2&gt;<br /> &lt;LITERAL2&gt;off&lt;/LITERAL2&gt;<br /> &lt;/KEYWORDS&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;!-- CppText blocks in UnrealScript --&gt;<br /> &lt;RULES SET=&quot;CPPTEXT&quot; ESCAPE=&quot;\&quot; IGNORE_CASE=&quot;false&quot;&gt;<br /> <br /> &lt;EOL_SPAN AT_WHITESPACE_END=&quot;TRUE&quot; DELEGATE=&quot;DIRECTIVE&quot; TYPE=&quot;KEYWORD2&quot;&gt;#&lt;/EOL_SPAN&gt;<br /> <br /> &lt;SPAN TYPE=&quot;COMMENT2&quot; DELEGATE=&quot;COMMENT&quot;&gt;<br /> &lt;BEGIN&gt;/**&lt;/BEGIN&gt;<br /> &lt;END&gt;*/&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- multi line comments --&gt;<br /> &lt;SPAN TYPE=&quot;COMMENT1&quot; DELEGATE=&quot;COMMENT&quot;&gt;<br /> &lt;BEGIN&gt;/*&lt;/BEGIN&gt;<br /> &lt;END&gt;*/&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- end of line comments --&gt;<br /> &lt;EOL_SPAN TYPE=&quot;COMMENT1&quot; DELEGATE=&quot;EOLCOMMENT&quot;&gt;//&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN TYPE=&quot;COMMENT2&quot; DELEGATE=&quot;EOLCOMMENT&quot;&gt;///&lt;/EOL_SPAN&gt;<br /> <br /> &lt;!--&lt;IMPORT DELEGATE=&quot;c++::LEX&quot;/&gt;--&gt;<br /> &lt;IMPORT DELEGATE=&quot;c++::CORE&quot;/&gt;<br /> &lt;!--&lt;IMPORT DELEGATE=&quot;c++::DEFINE&quot;/&gt;--&gt;<br /> <br /> &lt;KEYWORDS&gt;<br /> &lt;KEYWORD1&gt;NULL&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;FALSE&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;TRUE&lt;/KEYWORD1&gt;<br /> <br /> &lt;KEYWORD1&gt;BYTE&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;FLOAT&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;INT&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;TCHAR&lt;/KEYWORD1&gt;<br /> <br /> &lt;!-- Unreal Engine CPP Types --&gt;<br /> &lt;KEYWORD2&gt;FName&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;FVector&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;FRotator&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;FColor&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;FLinearColor&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;FGuid&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;FFrame&lt;/KEYWORD2&gt;<br /> <br /> &lt;KEYWORD3&gt;FRigidBodyState&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;FRigidBodyCollisionInfo&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;FCollisionImpactData&lt;/KEYWORD3&gt;<br /> <br /> &lt;KEYWORD3&gt;UBOOL&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UPackageMap&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UActorChannel&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UPackageMap&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UFunction&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UProperty&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UPrimitiveComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;ULevel&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UAnimNodeSequence&lt;/KEYWORD3&gt;<br /> <br /> &lt;KEYWORD3&gt;AActor&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;APawn&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;APlayerController&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;AVolume&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;AController&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;AFluidSurfaceActor&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;AProjectile&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;APortalTeleporter&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;ANavigationPoint&lt;/KEYWORD3&gt;<br /> <br /> &lt;KEYWORD3&gt;TArray&lt;/KEYWORD3&gt;<br /> <br /> &lt;!-- PhysX --&gt;<br /> &lt;KEYWORD3&gt;NxActorDesc&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;NxActor&lt;/KEYWORD3&gt;<br /> <br /> &lt;/KEYWORDS&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;!-- defaultproperties and structdefaultproperties --&gt;<br /> &lt;RULES SET=&quot;DEFAULTS&quot; ESCAPE=&quot;\&quot; IGNORE_CASE=&quot;TRUE&quot;&gt;<br /> &lt;!--<br /> highlight initial opening brace like final closing brace<br /> (there are no others in defprops, so this shouldn't be a problem<br /> --&gt;<br /> &lt;SEQ TYPE=&quot;KEYWORD1&quot;&gt;{&lt;/SEQ&gt;<br /> <br /> &lt;!-- multi line comments --&gt;<br /> &lt;SPAN TYPE=&quot;COMMENT1&quot; DELEGATE=&quot;COMMENT&quot;&gt;<br /> &lt;BEGIN&gt;/*&lt;/BEGIN&gt;<br /> &lt;END&gt;*/&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- end of line comments --&gt;<br /> &lt;EOL_SPAN TYPE=&quot;COMMENT1&quot; DELEGATE=&quot;EOLCOMMENT&quot;&gt;//&lt;/EOL_SPAN&gt;<br /> <br /> &lt;!-- string literals --&gt;<br /> &lt;SPAN TYPE=&quot;LITERAL1&quot; NO_LINE_BREAK=&quot;TRUE&quot;&gt;<br /> &lt;BEGIN&gt;&quot;&lt;/BEGIN&gt;<br /> &lt;END&gt;&quot;&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- name and object literals NOTE: Defaults dont actually use these--&gt;<br /> &lt;SPAN TYPE=&quot;LITERAL2&quot; NO_LINE_BREAK=&quot;TRUE&quot; ESCAPE=&quot;\&quot;&gt;<br /> &lt;BEGIN&gt;'&lt;/BEGIN&gt;<br /> &lt;END&gt;'&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- subobjects --&gt;<br /> &lt;EOL_SPAN_REGEXP HASH_CHAR=&quot;b&quot; AT_WHITESPACE_END=&quot;TRUE&quot; DELEGATE=&quot;BEGINOBJECT&quot; MATCH_TYPE=&quot;KEYWORD1&quot;&gt;begin\s+object\s*&lt;/EOL_SPAN_REGEXP&gt;<br /> &lt;EOL_SPAN_REGEXP HASH_CHAR=&quot;e&quot; AT_WHITESPACE_END=&quot;TRUE&quot; MATCH_TYPE=&quot;KEYWORD1&quot;&gt;end\s+object\s*&lt;/EOL_SPAN_REGEXP&gt;<br /> <br /> &lt;!-- regular expression for hexadecimal and decimal numbers, including sign --&gt;<br /> &lt;SEQ_REGEXP HASH_CHARS=&quot;+-0123456789&quot; TYPE=&quot;DIGIT&quot;&gt;\b0x[\p{XDigit}]+|[+-]?\b\d+(\.\d*)?([eE][+-]?\d+)?[fF]?\b&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- everything before &quot;=&quot;, &quot;.&quot;, &quot;(&quot; or &quot;[&quot; is a variable name --&gt;<br /> &lt;MARK_PREVIOUS AT_WORD_START=&quot;TRUE&quot; MATCH_TYPE=&quot;OPERATOR&quot; TYPE=&quot;MARKUP&quot;&gt;=&lt;/MARK_PREVIOUS&gt;<br /> &lt;MARK_PREVIOUS AT_WORD_START=&quot;TRUE&quot; MATCH_TYPE=&quot;OPERATOR&quot; TYPE=&quot;MARKUP&quot;&gt;.&lt;/MARK_PREVIOUS&gt;<br /> &lt;MARK_PREVIOUS AT_WORD_START=&quot;TRUE&quot; MATCH_TYPE=&quot;OPERATOR&quot; TYPE=&quot;MARKUP&quot;&gt;(&lt;/MARK_PREVIOUS&gt;<br /> &lt;MARK_PREVIOUS AT_WORD_START=&quot;TRUE&quot; MATCH_TYPE=&quot;OPERATOR&quot; TYPE=&quot;MARKUP&quot;&gt;[&lt;/MARK_PREVIOUS&gt;&lt;!-- Invalid for arrays in defaults --&gt;<br /> <br /> &lt;!-- closing brackets --&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;]&lt;/SEQ&gt;&lt;!-- Invalid for arrays in defaults --&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;)&lt;/SEQ&gt;<br /> <br /> &lt;!-- comma for dynarray and struct values --&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;,&lt;/SEQ&gt;<br /> <br /> &lt;!-- variable names can be separated from &quot;=&quot; by whitespace, so highlight that case separately --&gt;<br /> &lt;SEQ_REGEXP AT_WHITESPACE_END=&quot;TRUE&quot; HASH_CHARS=&quot;abcdefghijklmnopqrstuvwxyz&quot; TYPE=&quot;MARKUP&quot;&gt;\w+&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;IMPORT DELEGATE=&quot;uscript::UEOBJECT&quot;/&gt;<br /> <br /> &lt;KEYWORDS&gt;<br /> &lt;!-- dynamic array operations --&gt;<br /> &lt;KEYWORD1&gt;Add&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Empty&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Remove&lt;/KEYWORD1&gt;<br /> &lt;/KEYWORDS&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;!-- special highlighting for &quot;Begin Object&quot; lines --&gt;<br /> &lt;RULES SET=&quot;BEGINOBJECT&quot;&gt;<br /> <br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;=&lt;/SEQ&gt;<br /> <br /> &lt;!-- multi line comments --&gt;<br /> &lt;SPAN TYPE=&quot;COMMENT1&quot; DELEGATE=&quot;COMMENT&quot;&gt;<br /> &lt;BEGIN&gt;/*&lt;/BEGIN&gt;<br /> &lt;END&gt;*/&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- end of line comments --&gt;<br /> &lt;EOL_SPAN TYPE=&quot;COMMENT1&quot; DELEGATE=&quot;EOLCOMMENT&quot;&gt;//&lt;/EOL_SPAN&gt;<br /> <br /> &lt;!-- name and object literals--&gt;<br /> &lt;SPAN TYPE=&quot;LITERAL2&quot; NO_LINE_BREAK=&quot;TRUE&quot; ESCAPE=&quot;\&quot;&gt;<br /> &lt;BEGIN&gt;'&lt;/BEGIN&gt;<br /> &lt;END&gt;'&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;IMPORT DELEGATE=&quot;uscript::UEOBJECT&quot;/&gt;<br /> <br /> &lt;KEYWORDS&gt;<br /> &lt;KEYWORD1&gt;ObjName&lt;/KEYWORD1&gt;<br /> &lt;/KEYWORDS&gt;<br /> &lt;/RULES&gt;<br /> &lt;/MODE&gt;<br /> &lt;/source&gt;</div> 00zX https://wiki.beyondunreal.com/User:00zX/UScript.xml?diff=44433 User:00zX/UScript.xml 2011-05-15T16:50:40Z <p>00zX: </p> <hr /> <div>&lt;source lang=&quot;xml&quot;&gt;<br /> &lt;?xml version=&quot;1.0&quot;?&gt;<br /> &lt;!DOCTYPE MODE SYSTEM &quot;xmode.dtd&quot;&gt;<br /> &lt;MODE&gt;<br /> &lt;!--<br /> UnrealScript edit mode.<br /> Put this file to your .jedit/modes/ directory and add the following line<br /> to your .jedit/modes/catalog file:<br /> <br /> &lt;MODE NAME=&quot;unrealscript&quot; FILE=&quot;unrealscript.xml&quot; FILE_NAME_GLOB=&quot;*.{uc,puc,uci}&quot;/&gt;<br /> --&gt;<br /> <br /> &lt;PROPS&gt;<br /> &lt;PROPERTY NAME=&quot;commentStart&quot; VALUE=&quot;/*&quot; /&gt;<br /> &lt;PROPERTY NAME=&quot;commentEnd&quot; VALUE=&quot;*/&quot; /&gt;<br /> &lt;PROPERTY NAME=&quot;lineComment&quot; VALUE=&quot;//&quot; /&gt;<br /> &lt;PROPERTY NAME=&quot;newlineComment&quot; VALUE=&quot;///&quot; /&gt;<br /> &lt;PROPERTY NAME=&quot;wordBreakChars&quot; VALUE=&quot;,+-=&amp;lt;&amp;gt;/?^&amp;amp;*&quot; /&gt;<br /> <br /> &lt;!-- Auto indent --&gt;<br /> &lt;PROPERTY NAME=&quot;indentOpenBrackets&quot; VALUE=&quot;{&quot; /&gt;<br /> &lt;PROPERTY NAME=&quot;indentCloseBrackets&quot; VALUE=&quot;}&quot; /&gt;<br /> &lt;PROPERTY NAME=&quot;unalignedOpenBrackets&quot; VALUE=&quot;(&quot; /&gt;<br /> &lt;PROPERTY NAME=&quot;unalignedCloseBrackets&quot; VALUE=&quot;)&quot; /&gt;<br /> &lt;PROPERTY NAME=&quot;indentNextLine&quot;<br /> VALUE=&quot;\s*(((if|while)\s*\(|else\s*|else\s+if\s*\(|for(?:each)?\s*\(.*\))[^{;]*)&quot; /&gt;<br /> &lt;PROPERTY NAME=&quot;unindentThisLine&quot;<br /> VALUE=&quot;^.*(default:\s*|case.*:.*)$&quot; /&gt;<br /> <br /> &lt;PROPERTY NAME=&quot;lineUpClosingBracket&quot; VALUE=&quot;true&quot; /&gt;<br /> &lt;/PROPS&gt;<br /> <br /> &lt;RULES SET=&quot;WIP&quot; IGNORE_CASE=&quot;TRUE&quot;&gt;<br /> &lt;!-- default values section for class and structs --&gt;<br /> &lt;!--&lt;SEQ_REGEXP HASH_CHARS=&quot;cp&quot; NO_LINE_BREAK=&quot;FALSE&quot; MATCH_TYPE=&quot;KEYWORD1&quot; DELEGATE=&quot;CPPTEXT&quot;&gt;(struct)?cpptext\s*$&lt;/SEQ_REGEXP&gt;--&gt;<br /> &lt;SPAN_REGEXP HASH_CHARS=&quot;st&quot; NO_LINE_BREAK=&quot;FALSE&quot; MATCH_TYPE=&quot;KEYWORD1&quot; DELEGATE=&quot;CPPTEXT&quot;&gt;<br /> &lt;!--&lt;BEGIN&gt;structcpptext(\s*|\n)[{]$&lt;/BEGIN&gt;--&gt;<br /> &lt;BEGIN&gt;structcpptext&lt;/BEGIN&gt;&lt;!--\s([?]{3})[:]?\s+(.+?)$--&gt;<br /> &lt;END&gt;((.*[}].*){2})&lt;!--(?!\.*;?\n*\.*)}--&gt;&lt;!--(?!.*?[}]+.*?){3, }--&gt;&lt;/END&gt;<br /> <br /> &lt;!--&lt;END&gt;(\s*\w*[}])\2&lt;/END&gt;--&gt;<br /> &lt;!--&lt;END&gt;{(?=\s*[}])\2}&lt;/END&gt;--&gt;<br /> &lt;!--&lt;END&gt;(?![{]\s*{3})\s*\w*[}]&lt;/END&gt;--&gt;&lt;!--(?![{]\s?)--&gt;<br /> &lt;/SPAN_REGEXP&gt;<br /> &lt;!--(?!;(\s*|\n)$)[}]\n*$ --&gt;<br /> <br /> &lt;!--\n*$(?!\s*[{]^.*[}]\n*$)--&gt;<br /> <br /> &lt;!--(\s*\w*)(?!\s*\w*(?!{)})--&gt;<br /> <br /> &lt;!--$\s*(?!\s*\w*{)--&gt;<br /> <br /> &lt;!--&lt;SPAN_REGEXP HASH_CHARS=&quot;cp&quot; NO_LINE_BREAK=&quot;FALSE&quot; MATCH_TYPE=&quot;KEYWORD1&quot; DELEGATE=&quot;CPPTEXT&quot;&gt;<br /> &lt;BEGIN&gt;cpptext(\s*|\n)&lt;/BEGIN&gt;<br /> &lt;END&gt;}(\s*|\n)(?![{].*[}])+$&lt;/END&gt;<br /> &lt;/SPAN_REGEXP&gt;--&gt;<br /> <br /> &lt;!--&lt;SPAN AT_WHITESPACE_END=&quot;TRUE&quot; TYPE=&quot;MARKUP&quot; MATCH_TYPE=&quot;KEYWORD4&quot;&gt;<br /> &lt;BEGIN&gt;&amp;lt;&lt;/BEGIN&gt;<br /> &lt;END&gt;&amp;gt;&lt;/END&gt;<br /> &lt;/SPAN&gt;--&gt;<br /> <br /> &lt;!--&lt;SPAN_REGEXP AT_WORD_START=&quot;TRUE&quot; TYPE=&quot;MARKUP&quot; HASH_CHAR=&quot;&amp;lt;&quot; DELEGATE=&quot;METADATA&quot;&gt;<br /> &lt;BEGIN&gt;&amp;lt;&lt;/BEGIN&gt;<br /> &lt;END&gt;&amp;gt;&lt;/END&gt;<br /> &lt;/SPAN_REGEXP&gt;--&gt;<br /> <br /> &lt;!--&lt;SEQ_REGEXP HASH_CHAR=&quot;&amp;lt;&quot; TYPE=&quot;MARKUP&quot; DELEGATE=&quot;METADATA&quot;&gt;&amp;lt;\S*&amp;gt;&lt;/SEQ_REGEXP&gt;--&gt;<br /> <br /> &lt;SPAN_REGEXP AT_WHITESPACE_END=&quot;TRUE&quot; HASH_CHAR=&quot;&amp;lt;&quot; TYPE=&quot;MARKUP&quot; MATCH_TYPE=&quot;MARKUP&quot;&gt;&lt;!--&amp;lt;(\w*|\w*\B*)&amp;gt;--&gt;<br /> &lt;BEGIN&gt;&amp;lt;\S*&lt;/BEGIN&gt;<br /> &lt;END&gt;&amp;gt;&lt;/END&gt;<br /> &lt;/SPAN_REGEXP&gt;<br /> <br /> &lt;!-- Standard Variable Keyword --&gt;<br /> &lt;!--&lt;SEQ_REGEXP AT_WHITESPACE_END=&quot;TRUE&quot; HASH_CHAR=&quot;v&quot; TYPE=&quot;KEYWORD1&quot; MATCH_TYPE=&quot;KEYWORD1&quot;&gt;var\b[(\s*)]|var\s*[(\w)]&lt;/SEQ_REGEXP&gt;--&gt;<br /> <br /> &lt;!-- Special Editor version of variable declaration --&gt;<br /> &lt;!--&lt;SPAN_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHARS=&quot;v&quot; TYPE=&quot;KEYWORD4&quot; MATCH_TYPE=&quot;KEYWORD1&quot;&gt;<br /> &lt;BEGIN&gt;var\b[(\s*)]|var\s*[(\w)]&lt;/BEGIN&gt;<br /> &lt;END&gt;(?!\w[(])|)&lt;/END&gt;<br /> &lt;/SPAN_REGEXP&gt;--&gt;<br /> <br /> &lt;!--var(?=\s)|\b(?=\s*\([\w])--&gt;<br /> &lt;!-- var\b|var(\s*)|var\s*(\w)--&gt;<br /> <br /> &lt;!--&lt;MARK_PREVIOUS TYPE=&quot;KEYWORD1&quot; MATCH_TYPE=&quot;KEYWORD1&quot;&gt;(?=(var(\b|\s*)[(]))&lt;/MARK_PREVIOUS&gt;--&gt;<br /> &lt;!--&lt;SEQ_REGEXP HASH_CHAR=&quot;v&quot; TYPE=&quot;KEYWORD1&quot; MATCH_TYPE=&quot;KEYWORD4&quot;&gt;var\s*[(\s*\w*\s*)]\s*&lt;/SEQ_REGEXP&gt;--&gt;&lt;!--var(\b\s*|\b\s*[(\s*)]\s*|\s*[(\s*\w*\s*)]\s*)--&gt;<br /> &lt;!--&lt;SEQ_REGEXP HASH_CHAR=&quot;v&quot; TYPE=&quot;KEYWORD1&quot; MATCH_TYPE=&quot;KEYWORD4&quot;&gt;var[\s*(\s*\w*\s*)\s*]&lt;/SEQ_REGEXP&gt;--&gt;<br /> &lt;SEQ_REGEXP AT_WHITESPACE_END=&quot;TRUE&quot; HASH_CHAR=&quot;v&quot; TYPE=&quot;KEYWORD1&quot; MATCH_TYPE=&quot;KEYWORD4&quot;&gt;var\b\s+&lt;/SEQ_REGEXP&gt;<br /> &lt;!--&lt;SEQ_REGEXP AT_WHITESPACE_END=&quot;TRUE&quot; HASH_CHAR=&quot;v&quot; TYPE=&quot;KEYWORD1&quot; MATCH_TYPE=&quot;KEYWORD4&quot;&gt;var\s*[(\s*)]&lt;/SEQ_REGEXP&gt;--&gt;<br /> <br /> &lt;SPAN_REGEXP HASH_CHARS=&quot;v&quot; TYPE=&quot;KEYWORD4&quot; MATCH_TYPE=&quot;KEYWORD1&quot;&gt;<br /> &lt;BEGIN&gt;var(?!\b\s+\w*)(\b\s*[(\s*]|\s*[(\s*\w*])&lt;/BEGIN&gt;<br /> &lt;END&gt;)&lt;/END&gt;&lt;!--(?!var?!\b(\s*\w*)*;\n)--&gt;<br /> &lt;/SPAN_REGEXP&gt;<br /> <br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES ESCAPE=&quot;\&quot; IGNORE_CASE=&quot;TRUE&quot; HIGHLIGHT_DIGITS=&quot;TRUE&quot; DIGIT_RE=&quot;0x[\p{XDigit}]+|\d+(\.\d*)?(e[+-]?\d+)?[fF]?&quot;&gt;<br /> <br /> &lt;SPAN TYPE=&quot;COMMENT2&quot; DELEGATE=&quot;COMMENT&quot;&gt;<br /> &lt;BEGIN&gt;/**&lt;/BEGIN&gt;<br /> &lt;END&gt;*/&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- multi line comments --&gt;<br /> &lt;SPAN TYPE=&quot;COMMENT1&quot; DELEGATE=&quot;COMMENT&quot;&gt;<br /> &lt;BEGIN&gt;/*&lt;/BEGIN&gt;<br /> &lt;END&gt;*/&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- end of line comments --&gt;<br /> &lt;EOL_SPAN TYPE=&quot;COMMENT1&quot; DELEGATE=&quot;EOLCOMMENT&quot;&gt;//&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN TYPE=&quot;COMMENT2&quot; DELEGATE=&quot;EOLCOMMENT&quot;&gt;///&lt;/EOL_SPAN&gt;<br /> <br /> &lt;!-- string literals --&gt;<br /> &lt;SPAN TYPE=&quot;LITERAL1&quot; NO_LINE_BREAK=&quot;TRUE&quot;&gt;<br /> &lt;BEGIN&gt;&quot;&lt;/BEGIN&gt;<br /> &lt;END&gt;&quot;&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- name and object literals --&gt;<br /> &lt;SPAN TYPE=&quot;LITERAL2&quot; NO_LINE_BREAK=&quot;TRUE&quot; ESCAPE=&quot;\&quot;&gt;<br /> &lt;BEGIN&gt;'&lt;/BEGIN&gt;<br /> &lt;END&gt;'&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- &lt;SPAN_REGEXP AT_WORD_START=&quot;TRUE&quot; TYPE=&quot;LITERAL2&quot; NO_LINE_BREAK=&quot;TRUE&quot;&gt;<br /> &lt;BEGIN&gt;\w*\s*'&lt;/BEGIN&gt;<br /> &lt;END&gt;'&lt;/END&gt;<br /> &lt;/SPAN_REGEXP&gt;--&gt;<br /> <br /> &lt;!-- UE1/2 compiler directives and UCPP pragmas --&gt;<br /> &lt;EOL_SPAN AT_WHITESPACE_END=&quot;TRUE&quot; DELEGATE=&quot;DIRECTIVE&quot; TYPE=&quot;KEYWORD2&quot;&gt;#&lt;/EOL_SPAN&gt;<br /> <br /> &lt;!-- UE3 compiler macros --&gt;<br /> &lt;!-- macro in braces --&gt;<br /> &lt;SPAN TYPE=&quot;MARKUP&quot; MATCH_TYPE=&quot;KEYWORD2&quot; NO_LINE_BREAK=&quot;TRUE&quot;&gt;<br /> &lt;BEGIN&gt;`{&lt;/BEGIN&gt;<br /> &lt;END&gt;}&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- special UE3 compiler macros --&gt;<br /> &lt;EOL_SPAN_REGEXP HASH_CHAR=&quot;`&quot; AT_WHITESPACE_END=&quot;TRUE&quot; DELEGATE=&quot;MAIN&quot;<br /> TYPE=&quot;KEYWORD4&quot;&gt;`(define|else|endif|if|debug)\b&lt;/EOL_SPAN_REGEXP&gt;<br /> <br /> &lt;SPAN AT_WHITESPACE_END=&quot;TRUE&quot; TYPE=&quot;LITERAL4&quot; MATCH_TYPE=&quot;KEYWORD4&quot;&gt;<br /> &lt;BEGIN&gt;`include(&lt;/BEGIN&gt;<br /> &lt;END&gt;)&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;`&quot; TYPE=&quot;KEYWORD4&quot;&gt;`(isdefined|notdefined)\b&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- in-line macro --&gt;<br /> &lt;MARK_FOLLOWING MATCH_TYPE=&quot;KEYWORD2&quot; TYPE=&quot;MARKUP&quot;&gt;`&lt;/MARK_FOLLOWING&gt;<br /> <br /> &lt;!-- GoTo labels --&gt;<br /> &lt;MARK_PREVIOUS TYPE=&quot;LABEL&quot; MATCH_TYPE=&quot;OPERATOR&quot; AT_WHITESPACE_END=&quot;TRUE&quot;&gt;:&lt;/MARK_PREVIOUS&gt;<br /> <br /> &lt;!-- UE3 native replacements --&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;{&quot; TYPE=&quot;COMMENT4&quot;&gt;\{[^}]+}&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- operators, separators and brackets --&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;~&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;!&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;@&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;#&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;$&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;^&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;&amp;amp;&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;*&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;-&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;=&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;+&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;|&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;:&lt;/SEQ&gt;<br /> &lt;!-- &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;&amp;lt;&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;&amp;gt;&lt;/SEQ&gt;--&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;/&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;?&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;\&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;)&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;{&lt;/SEQ&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;}&lt;/SEQ&gt;<br /> <br /> &lt;!-- functions --&gt;<br /> &lt;!--&lt;MARK_PREVIOUS TYPE=&quot;FUNCTION&quot; MATCH_TYPE=&quot;OPERATOR&quot;&gt;(&lt;/MARK_PREVIOUS&gt;--&gt;<br /> <br /> &lt;!-- static modifier --&gt;<br /> &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHAR=&quot;s&quot; TYPE=&quot;KEYWORD1&quot;&gt;static\b(?!\s*\.)&lt;/SEQ_REGEXP&gt;<br /> &lt;!-- static function call --&gt;<br /> &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHAR=&quot;s&quot; TYPE=&quot;KEYWORD2&quot;&gt;static\b(?=\s*\.)&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- switch keyword --&gt;<br /> &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHAR=&quot;s&quot; TYPE=&quot;KEYWORD1&quot;&gt;switch\b(?=\s*\()&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- default switch case --&gt;<br /> &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHAR=&quot;d&quot; TYPE=&quot;KEYWORD1&quot;&gt;default\b(?=\s*\:)&lt;/SEQ_REGEXP&gt;<br /> &lt;!-- default value access --&gt;<br /> &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHAR=&quot;d&quot; TYPE=&quot;KEYWORD2&quot;&gt;default\b(?=\s*\.)&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- input variable modifier --&gt;<br /> &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHAR=&quot;i&quot; TYPE=&quot;KEYWORD1&quot;&gt;input\b(?=\s*[\w&amp;gt;])&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- name datatype --&gt;<br /> &lt;!-- &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHAR=&quot;n&quot; TYPE=&quot;KEYWORD3&quot;&gt;name\b(?=\s*[\w&amp;gt;])&lt;/SEQ_REGEXP&gt;--&gt;<br /> <br /> &lt;!-- class keyword --&gt;<br /> &lt;!-- &lt;SEQ_REGEXP AT_WHITESPACE_END=&quot;TRUE&quot; HASH_CHAR=&quot;c&quot; TYPE=&quot;KEYWORD1&quot;&gt;class\b(?=\s*[\w])&lt;/SEQ_REGEXP&gt;--&gt;<br /> &lt;!-- class identifier?? --&gt;<br /> &lt;!-- &lt;SEQ_REGEXP AT_WHITESPACE_END=&quot;TRUE&quot; HASH_CHAR=&quot;c&quot; TYPE=&quot;KEYWORD1&quot;&gt;class\b(?=[\s*\w'])&lt;/SEQ_REGEXP&gt;--&gt;<br /> <br /> &lt;!--&lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHARS=&quot;a&amp;lt;&quot; TYPE=&quot;MARKUP&quot; DELEGATE=&quot;METADATA&quot;&gt;(?!array)&amp;lt;.*&amp;gt;&lt;/SEQ_REGEXP&gt;--&gt;<br /> <br /> &lt;!-- class / array datatype --&gt;<br /> &lt;!--&lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHARS=&quot;ac&quot; TYPE=&quot;KEYWORD1&quot;&gt;array\b\s*&amp;lt;\s*class\b\s*&amp;lt;\s*\w*\s*&amp;gt;\s+&amp;gt;&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHARS=&quot;ac&quot; TYPE=&quot;INVALID&quot;&gt;array\b\s*&amp;lt;\s*class\b\s*&amp;lt;\s*\w*\s*&amp;gt;&amp;gt;&lt;/SEQ_REGEXP&gt;--&gt;<br /> &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHARS=&quot;ac&quot; TYPE=&quot;KEYWORD1&quot;&gt;(array|class)\b(?=\s*[&amp;lt;\s*(?!(array|class))\w*\s*&amp;gt;])&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;SPAN_REGEXP HASH_CHAR=&quot;&amp;lt;&quot; TYPE=&quot;MARKUP&quot; MATCH_TYPE=&quot;MARKUP&quot; DELEGATE=&quot;METADATA&quot;&gt;<br /> &lt;BEGIN&gt;(?!(array)?\s*&amp;lt;(=)?)?&amp;lt;|(?!&amp;lt;\s*\d)?&amp;lt;&lt;/BEGIN&gt;<br /> &lt;END&gt;&lt;!--(?!&amp;gt;=)?--&gt;&amp;gt;&lt;/END&gt;&lt;!--(&amp;gt;(?![=]))|(&amp;gt;[;])--&gt;<br /> &lt;/SPAN_REGEXP&gt;<br /> <br /> &lt;!-- delegate keyword --&gt;<br /> &lt;SEQ_REGEXP AT_WHITESPACE_END=&quot;TRUE&quot; HASH_CHAR=&quot;d&quot; TYPE=&quot;KEYWORD1&quot;&gt;delegate\b(?=\s*[\w])&lt;/SEQ_REGEXP&gt;<br /> &lt;!-- delegate datatype --&gt;<br /> &lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHAR=&quot;d&quot; TYPE=&quot;KEYWORD3&quot;&gt;delegate\b(?=\s*[\w&amp;lt;&amp;gt;])&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- default values section for class and structs --&gt;<br /> &lt;SPAN_REGEXP AT_WHITESPACE_END=&quot;TRUE&quot; HASH_CHARS=&quot;ds&quot; NO_LINE_BREAK=&quot;FALSE&quot; MATCH_TYPE=&quot;KEYWORD1&quot; DELEGATE=&quot;DEFAULTS&quot;&gt;<br /> &lt;BEGIN&gt;(struct)?defaultproperties\s*$&lt;/BEGIN&gt;<br /> &lt;END&gt;}&lt;/END&gt;<br /> &lt;/SPAN_REGEXP&gt;<br /> <br /> &lt;!-- Standard Variable Keyword --&gt;<br /> &lt;SEQ_REGEXP AT_WHITESPACE_END=&quot;TRUE&quot; HASH_CHAR=&quot;v&quot; TYPE=&quot;KEYWORD1&quot; MATCH_TYPE=&quot;KEYWORD4&quot;&gt;var\b\s+(?![(])&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- Special Editor version of variable declaration --&gt;<br /> &lt;SPAN_REGEXP HASH_CHARS=&quot;v&quot; TYPE=&quot;KEYWORD4&quot; MATCH_TYPE=&quot;KEYWORD1&quot;&gt;<br /> &lt;BEGIN&gt;var(?!\b\s+\w*)(\b\s*[(\s*]|\s*[(\s*\w*])&lt;/BEGIN&gt;&lt;!-- TODO: Compress me \b(\s*[(\s*])(\w*)? --&gt;<br /> &lt;END&gt;)&lt;/END&gt;<br /> &lt;/SPAN_REGEXP&gt;<br /> &lt;!--&quot;KEYWORD4&quot;--&gt;<br /> &lt;!--&lt;SPAN_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHARS=&quot;ca&amp;lt;&quot; TYPE=&quot;MARKUP&quot; MATCH_TYPE=&quot;MARKUP&quot; DELEGATE=&quot;METADATA&quot;&gt;<br /> &lt;BEGIN&gt;(?!(array|class)\b)(&amp;lt;\s*\w*)&lt;/BEGIN&gt;<br /> &lt;END&gt;&amp;gt;&lt;/END&gt;<br /> &lt;/SPAN_REGEXP&gt;--&gt;<br /> <br /> &lt;!--(?!+\s*&amp;lt;)--&gt;<br /> &lt;!--(?!\s+&amp;gt;\s*\w*)\s*\w*[;]--&gt;<br /> &lt;!--&lt;IMPORT DELEGATE=&quot;uscript::WIP&quot;/&gt;--&gt;<br /> <br /> &lt;KEYWORDS&gt;<br /> <br /> &lt;!-- Class Syntax --&gt;<br /> &lt;KEYWORD1&gt;Interface&lt;/KEYWORD1&gt;<br /> &lt;!--&lt;KEYWORD1&gt;Class&lt;/KEYWORD1&gt;--&gt;&lt;!--db: added test--&gt;<br /> &lt;INVALID&gt;Expands&lt;/INVALID&gt;&lt;!-- only early UE1, shouldn't really be used --&gt;<br /> &lt;KEYWORD1&gt;Extends&lt;/KEYWORD1&gt;<br /> <br /> &lt;!-- Class Syntax: Optional Specifiers --&gt;<br /> &lt;!-- General --&gt;<br /> &lt;KEYWORD1&gt;Implements&lt;/KEYWORD1&gt;&lt;!-- UE3+ --&gt;<br /> &lt;KEYWORD1&gt;Abstract&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Config&lt;/KEYWORD1&gt;&lt;!-- used for both class and var --&gt;<br /> &lt;KEYWORD1&gt;GlobalConfig&lt;/KEYWORD1&gt;&lt;!-- used for both class and var?? --&gt;<br /> &lt;KEYWORD4&gt;PerObjectConfig&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD1&gt;Native&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;NativeReplication&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;NoExport&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;NoImport&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;NotTransient&lt;/KEYWORD1&gt;&lt;!-- since UE2 --&gt;<br /> &lt;KEYWORD1&gt;Within&lt;/KEYWORD1&gt;&lt;!-- since UE2 --&gt;<br /> &lt;KEYWORD1&gt;DependsOn&lt;/KEYWORD1&gt;&lt;!-- since UE2 --&gt;<br /> &lt;KEYWORD4&gt;Deprecated&lt;/KEYWORD4&gt;&lt;!-- since UE2, marks variables that should no longer be used --&gt;<br /> <br /> &lt;!-- Class Syntax: Secondary Specifiers --&gt;<br /> &lt;!-- Editor --&gt;<br /> &lt;KEYWORD4&gt;AutoExpandCategories&lt;/KEYWORD4&gt;&lt;!-- since UE3? --&gt;<br /> &lt;KEYWORD4&gt;CollapseCatergories&lt;/KEYWORD4&gt;&lt;!-- since UE2 --&gt;<br /> &lt;KEYWORD4&gt;DontCollapseCategories&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD1&gt;EdFindable&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;EditConst&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;EditConstArray&lt;/KEYWORD1&gt;&lt;!-- only UE2 --&gt;<br /> &lt;KEYWORD1&gt;EditFixedSize&lt;/KEYWORD1&gt;&lt;!-- since UE3 --&gt;<br /> &lt;KEYWORD4&gt;HideCategories&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;HideDropDown&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;NotPlaceable&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;Placeable&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD1&gt;ExportStructs&lt;/KEYWORD1&gt;&lt;!-- only UE2 --&gt;<br /> &lt;KEYWORD1&gt;SafeReplace&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;ShowCategories&lt;/KEYWORD1&gt;&lt;!-- since UE2 --&gt;<br /> <br /> &lt;!-- Object Specifiers --&gt;<br /> &lt;KEYWORD4&gt;EditInline&lt;/KEYWORD4&gt;&lt;!-- since UE2 --&gt;<br /> &lt;KEYWORD4&gt;EditInlineUse&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD1&gt;EditInlineNew&lt;/KEYWORD1&gt;&lt;!-- since UE2 --&gt;<br /> &lt;KEYWORD1&gt;EditInlineNotify&lt;/KEYWORD1&gt;&lt;!-- only UE2 --&gt;<br /> &lt;KEYWORD4&gt;NotEditInlineNew&lt;/KEYWORD4&gt;&lt;!-- since UE2 --&gt;<br /> <br /> &lt;!--===================================================================================================--&gt;<br /> &lt;KEYWORD4&gt;Inherits&lt;/KEYWORD4&gt;&lt;!-- native effect, since UE3 --&gt;<br /> &lt;KEYWORD1&gt;Assert&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Cache&lt;/KEYWORD1&gt;&lt;!-- only UE2 --&gt;<br /> &lt;KEYWORD1&gt;CacheExempt&lt;/KEYWORD1&gt;&lt;!-- only UE2 --&gt;<br /> &lt;KEYWORD1&gt;Import&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Init&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Latent&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;ParseConfig&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Skip&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Stop&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Travel&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Export&lt;/KEYWORD1&gt;<br /> &lt;!--===================================================================================================--&gt;<br /> <br /> &lt;!-- Function Syntax: Primary Specifiers --&gt;<br /> &lt;!--&lt;KEYWORD1&gt;cpptext&lt;/KEYWORD1&gt;--&gt;&lt;!-- only UE2? --&gt;<br /> &lt;!--&lt;KEYWORD1&gt;cppstruct&lt;/KEYWORD1&gt;--&gt;&lt;!-- only UE2? --&gt;<br /> &lt;!--&lt;KEYWORD1&gt;structcpptext&lt;/KEYWORD1&gt;--&gt;<br /> &lt;KEYWORD1&gt;Event&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Function&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Operator&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;PostOperator&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;PreOperator&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Replication&lt;/KEYWORD1&gt;&lt;!-- db: Could update so replication block gets special handling --&gt;<br /> <br /> &lt;KEYWORD1&gt;If&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Else&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Case&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Break&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Continue&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Return&lt;/KEYWORD1&gt;<br /> <br /> &lt;KEYWORD1&gt;State&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Goto&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD2&gt;GotoState&lt;/KEYWORD2&gt;<br /> &lt;!-- State Syntax: Secondary Specifiers --&gt;<br /> &lt;KEYWORD1&gt;Auto&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Ignores&lt;/KEYWORD1&gt;<br /> <br /> &lt;!-- Function Syntax: Iterators --&gt;<br /> &lt;KEYWORD1&gt;For&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;ForEach&lt;/KEYWORD1&gt;<br /> <br /> &lt;KEYWORD1&gt;While&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Do&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Until&lt;/KEYWORD1&gt;<br /> <br /> &lt;!-- db: Secondary Keywords - grey/italic (like uncodex)--&gt;<br /> &lt;KEYWORD4&gt;Self&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Outer&lt;/KEYWORD4&gt;&lt;!--common--&gt;<br /> &lt;COMMENT3&gt;Owner&lt;/COMMENT3&gt;&lt;!--common--&gt;<br /> &lt;KEYWORD4&gt;Instigator&lt;/KEYWORD4&gt;&lt;!--common--&gt;<br /> &lt;KEYWORD4&gt;Optional&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Out&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Object&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Native&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD2&gt;New&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;None&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;Super&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;Global&lt;/KEYWORD2&gt;<br /> &lt;INVALID&gt;Null&lt;/INVALID&gt;<br /> <br /> &lt;!-- Function Syntax: Secondary Specifiers --&gt;<br /> &lt;INVALID&gt;Intrinsic&lt;/INVALID&gt;&lt;!-- only early UE1, replaced by &quot;native&quot; --&gt;<br /> &lt;INVALID&gt;Virtual&lt;/INVALID&gt;<br /> &lt;KEYWORD4&gt;Static&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Final&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Server&lt;/KEYWORD4&gt;&lt;!-- UE3+ --&gt;<br /> &lt;KEYWORD4&gt;Client&lt;/KEYWORD4&gt;&lt;!-- UE3+ --&gt;<br /> &lt;KEYWORD4&gt;Simulated&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Iterator&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Singular&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Exec&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD1&gt;Reliable&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Unreliable&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Automated&lt;/KEYWORD1&gt;&lt;!-- only UE2 --&gt;<br /> &lt;KEYWORD4&gt;k2override&lt;/KEYWORD4&gt;&lt;!-- UDK+ --&gt;<br /> <br /> &lt;!-- built-in type names --&gt;<br /> &lt;KEYWORD1&gt;Const&lt;/KEYWORD1&gt;<br /> &lt;!--&lt;KEYWORD1&gt;Var&lt;/KEYWORD1&gt;--&gt;<br /> &lt;KEYWORD1&gt;Local&lt;/KEYWORD1&gt;<br /> &lt;!-- db: modifed these to be keyword 1 from 3 --&gt;<br /> &lt;!-- Variable Primary (Syntax)Flags --&gt;<br /> &lt;KEYWORD1&gt;Bool&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Byte&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Enum&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Float&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Int&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;String&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Struct&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Pointer&lt;/KEYWORD1&gt;&lt;!-- UE2+ --&gt;<br /> &lt;!--&lt;KEYWORD1&gt;Array&lt;/KEYWORD1&gt;--&gt;<br /> &lt;KEYWORD1&gt;Name&lt;/KEYWORD1&gt;<br /> <br /> &lt;KEYWORD1&gt;vector&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;rotator&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;vector2d&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;color&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;quat&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;matrix&lt;/KEYWORD1&gt;<br /> <br /> &lt;!-- Variable Secondary (Syntax)Flags--&gt;<br /> &lt;INVALID&gt;Public&lt;/INVALID&gt;&lt;!-- redundant, members are always public unless marked private or protected --&gt;<br /> &lt;KEYWORD4&gt;Private&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Protected&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Localized&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Config&lt;/KEYWORD4&gt;&lt;!--is also a class flag--&gt;<br /> &lt;KEYWORD4&gt;GlobalConfig&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;RepNotify&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Transient&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD1&gt;DuplicateTransient&lt;/KEYWORD1&gt;&lt;!-- since UE3 --&gt;<br /> &lt;KEYWORD1&gt;Instanced&lt;/KEYWORD1&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD1&gt;DataBinding&lt;/KEYWORD1&gt;&lt;!-- UE3+ --&gt;<br /> &lt;KEYWORD1&gt;Immutable&lt;/KEYWORD1&gt;&lt;!-- UE3+ (struct) --&gt;<br /> &lt;KEYWORD1&gt;Coerce&lt;/KEYWORD1&gt;&lt;!-- (string) --&gt;<br /> &lt;KEYWORD1&gt;Long&lt;/KEYWORD1&gt;&lt;!-- UE2+ (struct) --&gt;<br /> &lt;KEYWORD4&gt;k2Call&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PrivateWrite&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;interp&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Archetype&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;k2pure&lt;/KEYWORD4&gt;<br /> &lt;!-- Editor --&gt;<br /> &lt;KEYWORD4&gt;EditorOnly&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;EditHide&lt;/KEYWORD4&gt;<br /> <br /> &lt;!-- literals and special function calls --&gt;<br /> &lt;KEYWORD2&gt;True&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;False&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;enable&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;disable&lt;/KEYWORD2&gt;<br /> <br /> &lt;!-- literals --&gt;<br /> &lt;KEYWORD2&gt;Vect2D&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;Vect&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;Rot&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;NameOf&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;Normal&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;VSize&lt;/KEYWORD2&gt;<br /> <br /> &lt;KEYWORD2&gt;ArrayCount&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;EnumCount&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;Length&lt;/KEYWORD2&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD2&gt;PathName&lt;/KEYWORD2&gt;<br /> <br /> &lt;/KEYWORDS&gt;<br /> <br /> &lt;!-- Expanded UnrealEngine highlighting rules --&gt;<br /> &lt;IMPORT DELEGATE=&quot;uscript::UNREALENGINE&quot;/&gt;<br /> <br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES SET=&quot;UNREALENGINE&quot; IGNORE_CASE=&quot;TRUE&quot;&gt;<br /> <br /> &lt;!-- UnrealEngine functions --&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;fi&quot; TYPE=&quot;KEYWORD4&quot;&gt;FindChild(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;is&quot; TYPE=&quot;KEYWORD4&quot;&gt;IsA(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;c&quot; TYPE=&quot;KEYWORD4&quot;&gt;ClassIsChildOf(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;isi&quot; TYPE=&quot;KEYWORD4&quot;&gt;IsInState(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;dr&quot; TYPE=&quot;KEYWORD4&quot;&gt;Draw3DLine(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;de&quot; TYPE=&quot;KEYWORD4&quot;&gt;DeProject(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;re&quot; TYPE=&quot;KEYWORD4&quot;&gt;ReplicateMove(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;pr&quot; TYPE=&quot;KEYWORD4&quot;&gt;ProcessMove(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;pl&quot; TYPE=&quot;KEYWORD4&quot;&gt;PlayerTick(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;po&quot; TYPE=&quot;KEYWORD4&quot;&gt;PostRender(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;ge&quot; TYPE=&quot;KEYWORD4&quot;&gt;GetEnum(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;fi&quot; TYPE=&quot;KEYWORD4&quot;&gt;FindObject(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;tr&quot; TYPE=&quot;KEYWORD4&quot;&gt;Trace(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;fa&quot; TYPE=&quot;KEYWORD4&quot;&gt;FastTrace(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> &lt;SEQ_REGEXP HASH_CHAR=&quot;sp&quot; TYPE=&quot;KEYWORD4&quot;&gt;Spawn(?=[(]\s*|\w*[)])&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;KEYWORDS&gt;<br /> &lt;!-- Dynamic Arrays --&gt;<br /> &lt;KEYWORD2&gt;Find&lt;/KEYWORD2&gt;&lt;!-- (since UE3) --&gt;<br /> &lt;KEYWORD2&gt;Add&lt;/KEYWORD2&gt;&lt;!-- (since UE3) --&gt;<br /> &lt;KEYWORD2&gt;AddItem&lt;/KEYWORD2&gt;&lt;!-- (since UE3) --&gt;<br /> &lt;KEYWORD2&gt;Insert&lt;/KEYWORD2&gt;&lt;!-- (since UE2) --&gt;<br /> &lt;KEYWORD2&gt;InsertItem&lt;/KEYWORD2&gt;&lt;!-- (since UE3) --&gt;<br /> &lt;KEYWORD2&gt;Remove&lt;/KEYWORD2&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD2&gt;RemoveItem&lt;/KEYWORD2&gt;&lt;!-- UE+ --&gt;<br /> &lt;KEYWORD1&gt;index_none&lt;/KEYWORD1&gt;<br /> <br /> &lt;!-- Constants --&gt;<br /> &lt;KEYWORD2&gt;MaxInt&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;Pi&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;RadToDeg&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;DegToRad&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;UnrRotToRad&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;RadToUnrRot&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;DegToUnrRot&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;UnrRotToDeg&lt;/KEYWORD2&gt;<br /> <br /> &lt;KEYWORD3&gt;Velocity&lt;/KEYWORD3&gt;<br /> <br /> &lt;!-- UnrealEngine Classes--&gt;<br /> &lt;KEYWORD3&gt;Weapon&lt;/KEYWORD3&gt;<br /> &lt;!-- &lt;KEYWORD3&gt;Other&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Instigator&lt;/KEYWORD3&gt;--&gt;<br /> &lt;KEYWORD3&gt;Actor&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Controller&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;LightType&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;Level&lt;/KEYWORD3&gt;&lt;!-- UE2 --&gt;<br /> &lt;KEYWORD3&gt;WorldInfo&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;Pawn&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;PlayerController&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Material&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;PhysicalMaterial&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;MaterialInterface&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;Texture&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Texture2D&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Effects&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Info&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Font&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Projectile&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;PlayerInput&lt;/KEYWORD3&gt;<br /> <br /> &lt;!-- UnrealEngine Enums --&gt;<br /> &lt;KEYWORD3&gt;LinearColor&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;FontRenderInfo&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;InterpCurveVector&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;InterpCurvePointVector&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;TraceHitInfo&lt;/KEYWORD3&gt;<br /> <br /> &lt;!-- User Interface --&gt;<br /> &lt;KEYWORD3&gt;Canvas&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;HUD&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UIRoot&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;UIScene&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;UIObject&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UIImage&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;TextureCoordinates&lt;/KEYWORD3&gt;<br /> <br /> &lt;KEYWORD3&gt;AnimSet&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;AnimNode&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;AnimNodeSequence&lt;/KEYWORD3&gt;<br /> <br /> &lt;KEYWORD3&gt;CameraAnim&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Emitter&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;ParticleSystem&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Projector&lt;/KEYWORD3&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD3&gt;DamageType&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;GameInfo&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;GameRules&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;PlayerReplicationInfo&lt;/KEYWORD3&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD3&gt;GameReplicationInfo&lt;/KEYWORD3&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD3&gt;Inventory&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Vehicle&lt;/KEYWORD3&gt;&lt;!-- UE2.5+ --&gt;<br /> &lt;KEYWORD3&gt;StaticMesh&lt;/KEYWORD3&gt;&lt;!-- UE2+ --&gt;<br /> <br /> &lt;KEYWORD3&gt;NavigationPoint&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;PhysicsVolume&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Mutator&lt;/KEYWORD3&gt;<br /> <br /> &lt;KEYWORD3&gt;ForceFeedbackWaveform&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;FluidSurfaceActor&lt;/KEYWORD3&gt;<br /> <br /> &lt;KEYWORD3&gt;Sequence&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;SequenceEvent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;SequenceObject&lt;/KEYWORD3&gt;<br /> <br /> &lt;KEYWORD3&gt;FaceFXAsset&lt;/KEYWORD3&gt;<br /> <br /> &lt;!--Components UE3--&gt;<br /> &lt;KEYWORD4&gt;AttachComponent&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;DetachComponent&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ReattachComponent&lt;/KEYWORD4&gt;<br /> &lt;COMMENT3&gt;AttachComponentToSocket&lt;/COMMENT3&gt;<br /> &lt;KEYWORD3&gt;Component&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;ActorComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;PrimitiveComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;SVehicleSimBase&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;StaticMeshComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;SkeletalMeshComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;ParticleSystemComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;PointLightComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;SplineComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;AudioComponent&lt;/KEYWORD3&gt;<br /> <br /> &lt;!--UDK specific--&gt;<br /> &lt;KEYWORD3&gt;UDKParticleSystemComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UDKExplosionLight&lt;/KEYWORD3&gt;<br /> <br /> &lt;!--UT3 specific--&gt;<br /> &lt;KEYWORD3&gt;UTSkeletalMeshComponent&lt;/KEYWORD3&gt;<br /> <br /> &lt;!--Sound, was changed--&gt;<br /> &lt;KEYWORD3&gt;Sound&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;SoundNode&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;SoundCue&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> <br /> &lt;!-- Object Events --&gt;<br /> &lt;KEYWORD4&gt;BeginState&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;EndState&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PushedState&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PoppedState&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PausedState&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ContinuedState&lt;/KEYWORD4&gt;<br /> <br /> &lt;!-- Actor Events --&gt;<br /> &lt;KEYWORD4&gt;ReplicatedEvent&lt;/KEYWORD4&gt;&lt;!-- UE3+ --&gt;<br /> &lt;KEYWORD4&gt;Destroyed&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;GainedChild&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;LostChild&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Tick&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Timer&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;HitWall&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Falling&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Landed&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PhysicsVolumeChange&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Touch&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PostTouch&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;UnTouch&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Bump&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;BaseChange&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Attach&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Detach&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SpecialHandling&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;CollisionChanged&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;EncroachingOn&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;EncroachedBy&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;RanInto&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;OnWakeRBPhysics&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;OnSleepRBPhysics&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;OverRotated&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;FellOutOfWorld&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;OutsideWorldBounds&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;TornOff&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PreBeginPlay&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;BroadcastLocalizedMessage&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;BroadcastLocalizedTeamMessage&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PostBeginPlay&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SetInitialState&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ConstraintBrokenNotify&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;NotifySkelControlBeyondLimit&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;TakeDamage&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;HealDamage&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;DebugFreezeGame&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;BecomeViewTarget&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;EndViewTarget&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ModifyHearSoundComponent&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;GetFaceFXAudioComponent&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;Reset&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;DebugMessagePlayer&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ReceivedNewEvent&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ForceNetRelevant&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ShutDown&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;OnAnimEnd&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;OnAnimPlay&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;BeginAnimControl&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SetAnimPosition&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;FinishAnimControl&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PlayActorFaceFXAnim&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;StopActorFaceFXAnim&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SetMorphWeight&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SetSkelControlScale&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;GetActorFaceFXAsset&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;GetActorEyesViewPoint&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ScriptGetTeamNum&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SpawnedByKismet&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;InterpolationStarted&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;InterpolationFinished&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;InterpolationChanged&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;RigidBodyCollision&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;OnRanOver&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PostRenderFor&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;RootMotionModeChanged&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;RootMotionProcessed&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;RootMotionExtracted&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PostInitAnimTree&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;OnRigidBodySpringOverextension&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PlayParticleEffect&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;CreateForceField&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;TrailsNotify&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;TrailsNotifyTick&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;TrailsNotifyEnd&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;AnimTreeUpdated&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PostDemoRewind&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ReplicationEnded&lt;/KEYWORD4&gt;<br /> <br /> &lt;!-- Math Functions --&gt;<br /> &lt;KEYWORD4&gt;min&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;max&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;abs&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;clamp&lt;/KEYWORD4&gt;<br /> <br /> &lt;KEYWORD4&gt;sin&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;cos&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;atan&lt;/KEYWORD4&gt;<br /> <br /> &lt;KEYWORD4&gt;vlerp&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;vsize&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;vsize2d&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;round&lt;/KEYWORD4&gt;<br /> <br /> &lt;KEYWORD4&gt;fclamp&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;fmin&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;fmax&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;frand&lt;/KEYWORD4&gt;<br /> <br /> &lt;!-- Actor Functions --&gt;<br /> &lt;KEYWORD4&gt;SetLocation&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SetRotation&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SetBase&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SetHidden&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SetHardAttach&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;SetCollision&lt;/KEYWORD4&gt;<br /> <br /> &lt;KEYWORD4&gt;DynamicLoadObject&lt;/KEYWORD4&gt;<br /> <br /> &lt;!-- SkeletalMesh Component functions --&gt;<br /> &lt;KEYWORD4&gt;GetSocketWorldLocationAndRotation&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;GetSocketByName&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;MatchRefBone&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;TransformFromBoneSpace&lt;/KEYWORD4&gt;<br /> <br /> &lt;!-- Timer functions: UE3--&gt;<br /> &lt;KEYWORD4&gt;SetTimer&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ClearTimer&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;IsTimerActive&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;GetTimerCount&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;GetTimerRate&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ClearAllTimers&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;PauseTimer&lt;/KEYWORD4&gt;<br /> <br /> &lt;!-- Native Iterators --&gt;<br /> &lt;KEYWORD4&gt;AllActors&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;DynamicActors&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;ChildActors&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;BasedActors&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;TouchingActors&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;TraceActors&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;VisibleActors&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;VisibleCollidingActors&lt;/KEYWORD4&gt;&lt;!-- UE2+ --&gt;<br /> &lt;KEYWORD4&gt;CollidingActors&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;OverlappingActors&lt;/KEYWORD4&gt;<br /> &lt;KEYWORD4&gt;ComponentList&lt;/KEYWORD4&gt;&lt;!-- UE3+ --&gt;<br /> &lt;KEYWORD4&gt;AllOwnedComponents&lt;/KEYWORD4&gt;&lt;!-- UE3+ --&gt;<br /> &lt;KEYWORD4&gt;LocalPlayerControllers&lt;/KEYWORD4&gt;<br /> <br /> &lt;/KEYWORDS&gt;<br /> <br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES IGNORE_CASE=&quot;TRUE&quot; SET=&quot;DIRECTIVE&quot;&gt;<br /> &lt;EOL_SPAN TYPE=&quot;COMMENT2&quot;&gt;//&lt;/EOL_SPAN&gt;<br /> <br /> &lt;!-- exec directives --&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;EXEC_COMMAND&quot; TYPE=&quot;KEYWORD1&quot;&gt;exec&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;EXEC_COMMAND&quot; TYPE=&quot;KEYWORD1&quot;&gt;alwaysexec&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;EXEC_COMMAND&quot; TYPE=&quot;KEYWORD1&quot;&gt;forceexec&lt;/EOL_SPAN&gt;<br /> &lt;!-- source include --&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;EXEC_COMMAND&quot; TYPE=&quot;KEYWORD1&quot;&gt;include&lt;/EOL_SPAN&gt;<br /> &lt;!-- execute command file --&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;EXEC_COMMAND&quot; TYPE=&quot;KEYWORD1&quot;&gt;call&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;EXEC_COMMAND&quot; TYPE=&quot;KEYWORD1&quot;&gt;alwayscall&lt;/EOL_SPAN&gt;<br /> <br /> &lt;!-- throw compiler error --&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;IGNORED&quot; TYPE=&quot;KEYWORD1&quot;&gt;error&lt;/EOL_SPAN&gt;<br /> <br /> &lt;!-- UCPP directives --&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;MAIN&quot; TYPE=&quot;KEYWORD1&quot;&gt;ifdef&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;MAIN&quot; TYPE=&quot;KEYWORD1&quot;&gt;ifndef&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;MAIN&quot; TYPE=&quot;KEYWORD1&quot;&gt;if&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;MAIN&quot; TYPE=&quot;KEYWORD1&quot;&gt;elif&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;IGNORED&quot; TYPE=&quot;KEYWORD1&quot;&gt;else&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;IGNORED&quot; TYPE=&quot;KEYWORD1&quot;&gt;endif&lt;/EOL_SPAN&gt;<br /> <br /> &lt;EOL_SPAN DELEGATE=&quot;MAIN&quot; TYPE=&quot;KEYWORD1&quot;&gt;define&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;MAIN&quot; TYPE=&quot;KEYWORD1&quot;&gt;undef&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;MAIN&quot; TYPE=&quot;KEYWORD1&quot;&gt;linenumber&lt;/EOL_SPAN&gt;<br /> <br /> &lt;EOL_SPAN DELEGATE=&quot;PRAGMA&quot; TYPE=&quot;KEYWORD1&quot;&gt;pragma&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN DELEGATE=&quot;PRAGMA&quot; TYPE=&quot;KEYWORD1&quot;&gt;ucpp&lt;/EOL_SPAN&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES SET=&quot;METADATA&quot; IGNORE_CASE=&quot;TRUE&quot; HIGHLIGHT_DIGITS=&quot;TRUE&quot; DIGIT_RE=&quot;0x[\p{XDigit}]+|\d+(\.\d*)?(e[+-]?\d+)?[fF]?&quot;&gt;<br /> &lt;!-- operators, separators and brackets --&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;|&lt;/SEQ&gt;<br /> <br /> &lt;KEYWORDS&gt;<br /> &lt;!-- UE3 property tags --&gt;<br /> &lt;!-- db: moved these to keyword 3 instead of 4 to make room --&gt;<br /> <br /> &lt;MARKUP&gt;AllowAbstract&lt;/MARKUP&gt;<br /> &lt;MARKUP&gt;AutoComment&lt;/MARKUP&gt;<br /> &lt;MARKUP&gt;DisplayName&lt;/MARKUP&gt;<br /> &lt;MARKUP&gt;EditCondition&lt;/MARKUP&gt;<br /> &lt;MARKUP&gt;Tooltip&lt;/MARKUP&gt;<br /> &lt;MARKUP&gt;ClampMin&lt;/MARKUP&gt;<br /> &lt;MARKUP&gt;ClampMax&lt;/MARKUP&gt;<br /> &lt;MARKUP&gt;UIMin&lt;/MARKUP&gt;<br /> &lt;MARKUP&gt;UIMax&lt;/MARKUP&gt;<br /> &lt;/KEYWORDS&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES DEFAULT=&quot;COMMENT1&quot; SET=&quot;COMMENT&quot;&gt;<br /> &lt;!-- UE3 @tags in all kinds of comments --&gt;<br /> &lt;!--&lt;SEQ_REGEXP AT_WORD_START=&quot;TRUE&quot; HASH_CHAR=&quot;@&quot; TYPE=&quot;LABEL&quot;&gt;(?&amp;lt;!\w)@\w+&lt;/SEQ_REGEXP&gt;--&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES DEFAULT=&quot;COMMENT3&quot; SET=&quot;DOCCOMMENT&quot;&gt;<br /> &lt;IMPORT DELEGATE=&quot;COMMENT&quot;/&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES DEFAULT=&quot;COMMENT2&quot; SET=&quot;EOLCOMMENT&quot;&gt;<br /> &lt;IMPORT DELEGATE=&quot;COMMENT&quot;/&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES DEFAULT=&quot;COMMENT1&quot; SET=&quot;IGNORED&quot;&gt;<br /> &lt;EOL_SPAN TYPE=&quot;COMMENT2&quot;&gt;//&lt;/EOL_SPAN&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES DEFAULT=&quot;MARKUP&quot; SET=&quot;PRAGMA&quot;&gt;<br /> &lt;!-- UCPP pragmas --&gt;<br /> <br /> &lt;EOL_SPAN TYPE=&quot;COMMENT2&quot;&gt;//&lt;/EOL_SPAN&gt;<br /> <br /> &lt;KEYWORDS&gt;<br /> &lt;KEYWORD1&gt;ucpp&lt;/KEYWORD1&gt;<br /> <br /> &lt;KEYWORD3&gt;notice&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;rename&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;include&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;warning&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;config&lt;/KEYWORD3&gt;<br /> <br /> &lt;LITERAL2&gt;true&lt;/LITERAL2&gt;<br /> &lt;LITERAL2&gt;false&lt;/LITERAL2&gt;<br /> &lt;LITERAL2&gt;on&lt;/LITERAL2&gt;<br /> &lt;LITERAL2&gt;off&lt;/LITERAL2&gt;<br /> &lt;/KEYWORDS&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES IGNORE_CASE=&quot;TRUE&quot; SET=&quot;EXEC_COMMAND&quot; NO_WORD_SEP=&quot;_\\.,+-&amp;lt;&amp;gt;/?^&amp;amp;*&quot;&gt;<br /> &lt;!-- exec directive markup --&gt;<br /> <br /> &lt;EOL_SPAN TYPE=&quot;COMMENT2&quot;&gt;//&lt;/EOL_SPAN&gt;<br /> <br /> &lt;!-- quoted strings --&gt;<br /> &lt;SPAN TYPE=&quot;LITERAL1&quot; NO_LINE_BREAK=&quot;TRUE&quot;&gt;<br /> &lt;BEGIN&gt;&quot;&lt;/BEGIN&gt;<br /> &lt;END&gt;&quot;&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- numbers --&gt;<br /> &lt;SEQ_REGEXP HASH_CHARS=&quot;0123456789&quot; TYPE=&quot;DIGIT&quot;&gt;\b(0x[\p{XDigit}]+|\d+(\.\d*)?(e[+-]?\d+)?[fF]?)\b&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- parameters --&gt;<br /> &lt;MARK_PREVIOUS MATCH_TYPE=&quot;OPERATOR&quot; TYPE=&quot;MARKUP&quot;&gt;=&lt;/MARK_PREVIOUS&gt;<br /> <br /> &lt;!-- boolean values --&gt;<br /> &lt;KEYWORDS&gt;<br /> &lt;LITERAL2&gt;true&lt;/LITERAL2&gt;<br /> &lt;LITERAL2&gt;false&lt;/LITERAL2&gt;<br /> &lt;LITERAL2&gt;yes&lt;/LITERAL2&gt;<br /> &lt;LITERAL2&gt;no&lt;/LITERAL2&gt;<br /> &lt;LITERAL2&gt;on&lt;/LITERAL2&gt;<br /> &lt;LITERAL2&gt;off&lt;/LITERAL2&gt;<br /> &lt;/KEYWORDS&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES SET=&quot;CPPTEXT&quot; ESCAPE=&quot;\&quot; IGNORE_CASE=&quot;false&quot;&gt;<br /> <br /> &lt;!-- --&gt;<br /> &lt;EOL_SPAN AT_WHITESPACE_END=&quot;TRUE&quot; DELEGATE=&quot;DIRECTIVE&quot; TYPE=&quot;KEYWORD2&quot;&gt;#&lt;/EOL_SPAN&gt;<br /> <br /> &lt;SPAN TYPE=&quot;COMMENT2&quot; DELEGATE=&quot;COMMENT&quot;&gt;<br /> &lt;BEGIN&gt;/**&lt;/BEGIN&gt;<br /> &lt;END&gt;*/&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- multi line comments --&gt;<br /> &lt;SPAN TYPE=&quot;COMMENT1&quot; DELEGATE=&quot;COMMENT&quot;&gt;<br /> &lt;BEGIN&gt;/*&lt;/BEGIN&gt;<br /> &lt;END&gt;*/&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- end of line comments --&gt;<br /> &lt;EOL_SPAN TYPE=&quot;COMMENT1&quot; DELEGATE=&quot;EOLCOMMENT&quot;&gt;//&lt;/EOL_SPAN&gt;<br /> &lt;EOL_SPAN TYPE=&quot;COMMENT2&quot; DELEGATE=&quot;EOLCOMMENT&quot;&gt;///&lt;/EOL_SPAN&gt;<br /> <br /> &lt;!--&lt;IMPORT DELEGATE=&quot;c++::LEX&quot;/&gt;--&gt;<br /> &lt;IMPORT DELEGATE=&quot;c++::CORE&quot;/&gt;<br /> &lt;!--&lt;IMPORT DELEGATE=&quot;c++::DEFINE&quot;/&gt;--&gt;<br /> <br /> &lt;KEYWORDS&gt;<br /> &lt;KEYWORD1&gt;NULL&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;FALSE&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;TRUE&lt;/KEYWORD1&gt;<br /> <br /> &lt;KEYWORD1&gt;BYTE&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;FLOAT&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;INT&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;TCHAR&lt;/KEYWORD1&gt;<br /> <br /> &lt;!-- Unreal Engine CPP Types --&gt;<br /> &lt;KEYWORD2&gt;FName&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;FVector&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;FRotator&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;FColor&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;FLinearColor&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;FGuid&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;FFrame&lt;/KEYWORD2&gt;<br /> <br /> &lt;KEYWORD3&gt;FRigidBodyState&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;FRigidBodyCollisionInfo&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;FCollisionImpactData&lt;/KEYWORD3&gt;<br /> <br /> &lt;KEYWORD3&gt;UBOOL&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UPackageMap&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UActorChannel&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UPackageMap&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UFunction&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UProperty&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UPrimitiveComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;ULevel&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UAnimNodeSequence&lt;/KEYWORD3&gt;<br /> <br /> &lt;KEYWORD3&gt;AActor&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;APawn&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;APlayerController&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;AVolume&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;AController&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;AFluidSurfaceActor&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;AProjectile&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;APortalTeleporter&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;ANavigationPoint&lt;/KEYWORD3&gt;<br /> <br /> &lt;KEYWORD3&gt;TArray&lt;/KEYWORD3&gt;<br /> <br /> &lt;!-- PhysX --&gt;<br /> &lt;KEYWORD3&gt;NxActorDesc&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;NxActor&lt;/KEYWORD3&gt;<br /> <br /> &lt;/KEYWORDS&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES SET=&quot;DEFAULTS&quot; ESCAPE=&quot;\&quot; IGNORE_CASE=&quot;TRUE&quot;&gt;<br /> &lt;!-- defaultproperties and structdefaultproperties --&gt;<br /> <br /> &lt;!--<br /> highlight initial opening brace like final closing brace<br /> (there are no others in defprops, so this shouldn't be a problem<br /> --&gt;<br /> &lt;SEQ TYPE=&quot;KEYWORD1&quot;&gt;{&lt;/SEQ&gt;<br /> <br /> &lt;!-- multi line comments --&gt;<br /> &lt;SPAN TYPE=&quot;COMMENT1&quot; DELEGATE=&quot;COMMENT&quot;&gt;<br /> &lt;BEGIN&gt;/*&lt;/BEGIN&gt;<br /> &lt;END&gt;*/&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- end of line comments --&gt;<br /> &lt;EOL_SPAN TYPE=&quot;COMMENT2&quot; DELEGATE=&quot;EOLCOMMENT&quot;&gt;//&lt;/EOL_SPAN&gt;<br /> <br /> &lt;!-- string literals --&gt;<br /> &lt;SPAN TYPE=&quot;LITERAL1&quot; NO_LINE_BREAK=&quot;TRUE&quot;&gt;<br /> &lt;BEGIN&gt;&quot;&lt;/BEGIN&gt;<br /> &lt;END&gt;&quot;&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- name and object literals --&gt;<br /> &lt;SPAN TYPE=&quot;LITERAL2&quot; NO_LINE_BREAK=&quot;TRUE&quot; ESCAPE=&quot;\&quot;&gt;<br /> &lt;BEGIN&gt;'&lt;/BEGIN&gt;<br /> &lt;END&gt;'&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- &lt;SPAN_REGEXP AT_WORD_START=&quot;TRUE&quot; TYPE=&quot;LITERAL2&quot; NO_LINE_BREAK=&quot;TRUE&quot;&gt;<br /> &lt;BEGIN&gt;\w*\s*'&lt;/BEGIN&gt;<br /> &lt;END&gt;'&lt;/END&gt;<br /> &lt;/SPAN_REGEXP&gt;--&gt;<br /> <br /> &lt;!-- subobjects --&gt;<br /> &lt;EOL_SPAN_REGEXP HASH_CHAR=&quot;b&quot; AT_WHITESPACE_END=&quot;TRUE&quot; DELEGATE=&quot;BEGINOBJECT&quot; MATCH_TYPE=&quot;KEYWORD1&quot;&gt;begin\s+object\s*&lt;/EOL_SPAN_REGEXP&gt;<br /> &lt;EOL_SPAN_REGEXP HASH_CHAR=&quot;e&quot; AT_WHITESPACE_END=&quot;TRUE&quot; MATCH_TYPE=&quot;KEYWORD1&quot;&gt;end\s+object\s*&lt;/EOL_SPAN_REGEXP&gt;<br /> <br /> &lt;!-- regular expression for hexadecimal and decimal numbers, including sign --&gt;<br /> &lt;SEQ_REGEXP HASH_CHARS=&quot;+-0123456789&quot; TYPE=&quot;DIGIT&quot;&gt;\b0x[\p{XDigit}]+|[+-]?\b\d+(\.\d*)?([eE][+-]?\d+)?[fF]?\b&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;!-- everything before &quot;=&quot;, &quot;.&quot;, &quot;(&quot; or &quot;[&quot; is a variable name --&gt;<br /> &lt;MARK_PREVIOUS AT_WORD_START=&quot;TRUE&quot; MATCH_TYPE=&quot;OPERATOR&quot; TYPE=&quot;MARKUP&quot;&gt;=&lt;/MARK_PREVIOUS&gt;<br /> &lt;MARK_PREVIOUS AT_WORD_START=&quot;TRUE&quot; MATCH_TYPE=&quot;OPERATOR&quot; TYPE=&quot;MARKUP&quot;&gt;.&lt;/MARK_PREVIOUS&gt;<br /> &lt;MARK_PREVIOUS AT_WORD_START=&quot;TRUE&quot; MATCH_TYPE=&quot;OPERATOR&quot; TYPE=&quot;MARKUP&quot;&gt;(&lt;/MARK_PREVIOUS&gt;<br /> &lt;MARK_PREVIOUS AT_WORD_START=&quot;TRUE&quot; MATCH_TYPE=&quot;OPERATOR&quot; TYPE=&quot;MARKUP&quot;&gt;[&lt;/MARK_PREVIOUS&gt;&lt;!-- Invalid for arrays in defaults --&gt;<br /> <br /> &lt;!-- closing brackets --&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;]&lt;/SEQ&gt;&lt;!-- Invalid for arrays in defaults --&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;)&lt;/SEQ&gt;<br /> <br /> &lt;!-- comma for dynarray and struct values --&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;,&lt;/SEQ&gt;<br /> <br /> &lt;!-- variable names can be separated from &quot;=&quot; by whitespace, so highlight that case separately --&gt;<br /> &lt;SEQ_REGEXP AT_WHITESPACE_END=&quot;TRUE&quot; HASH_CHARS=&quot;abcdefghijklmnopqrstuvwxyz&quot; TYPE=&quot;MARKUP&quot;&gt;\w+&lt;/SEQ_REGEXP&gt;<br /> <br /> &lt;KEYWORDS&gt;<br /> &lt;KEYWORD1&gt;class&lt;/KEYWORD1&gt;<br /> <br /> &lt;!-- dynamic array operations --&gt;<br /> &lt;KEYWORD1&gt;Add&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Empty&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Remove&lt;/KEYWORD1&gt;<br /> <br /> &lt;!-- literals --&gt;<br /> &lt;KEYWORD2&gt;False&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;None&lt;/KEYWORD2&gt;<br /> &lt;KEYWORD2&gt;True&lt;/KEYWORD2&gt;<br /> <br /> &lt;!-- UnrealEngine Classes / Enums --&gt;<br /> &lt;KEYWORD3&gt;AnimSet&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;CameraAnim&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Emitter&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;ParticleSystem&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Material&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;MaterialInterface&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;Texture&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Texture2D&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;SkeletalMesh&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;AnimTree&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;PhysicsAsset&lt;/KEYWORD3&gt;<br /> <br /> &lt;!--Components UE3--&gt;<br /> &lt;KEYWORD3&gt;Component&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;ActorComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;PrimitiveComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;SVehicleSimBase&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;StaticMeshComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;SkeletalMeshComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;ParticleSystemComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;PointLightComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;SplineComponent&lt;/KEYWORD3&gt;<br /> <br /> &lt;!--UDK specific--&gt;<br /> &lt;KEYWORD3&gt;UDKParticleSystemComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UDKExplosionLight&lt;/KEYWORD3&gt;<br /> <br /> &lt;!--UT3 specific--&gt;<br /> &lt;KEYWORD3&gt;UTSkeletalMeshComponent&lt;/KEYWORD3&gt;<br /> <br /> &lt;!--Sound, was changed--&gt;<br /> &lt;KEYWORD3&gt;Sound&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;SoundNode&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;SoundCue&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;ParticleSystem&lt;/KEYWORD3&gt;<br /> &lt;/KEYWORDS&gt;<br /> &lt;/RULES&gt;<br /> <br /> &lt;RULES SET=&quot;BEGINOBJECT&quot;&gt;<br /> &lt;!-- special highlighting for &quot;Begin Object&quot; lines --&gt;<br /> &lt;SEQ TYPE=&quot;OPERATOR&quot;&gt;=&lt;/SEQ&gt;<br /> <br /> &lt;!-- multi line comments --&gt;<br /> &lt;SPAN TYPE=&quot;COMMENT1&quot; DELEGATE=&quot;COMMENT&quot;&gt;<br /> &lt;BEGIN&gt;/*&lt;/BEGIN&gt;<br /> &lt;END&gt;*/&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;!-- name and object literals --&gt;<br /> &lt;SPAN TYPE=&quot;LITERAL2&quot; NO_LINE_BREAK=&quot;TRUE&quot; ESCAPE=&quot;\&quot;&gt;<br /> &lt;BEGIN&gt;'&lt;/BEGIN&gt;<br /> &lt;END&gt;'&lt;/END&gt;<br /> &lt;/SPAN&gt;<br /> <br /> &lt;KEYWORDS&gt;<br /> &lt;KEYWORD1&gt;Class&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Name&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;LegacyClassName&lt;/KEYWORD1&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD1&gt;ObjName&lt;/KEYWORD1&gt;<br /> &lt;KEYWORD1&gt;Archetype&lt;/KEYWORD1&gt;&lt;!-- UE3 --&gt;<br /> <br /> &lt;!-- UnrealEngine Classes / Enums --&gt;<br /> &lt;KEYWORD3&gt;AnimSet&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;CameraAnim&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Emitter&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;ParticleSystem&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Material&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;MaterialInterface&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;Texture&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;Texture2D&lt;/KEYWORD3&gt;<br /> <br /> &lt;!--Components UE3--&gt;<br /> &lt;KEYWORD3&gt;Component&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;ActorComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;PrimitiveComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;SVehicleSimBase&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;StaticMeshComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;SkeletalMeshComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;ParticleSystemComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;PointLightComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;SplineComponent&lt;/KEYWORD3&gt;<br /> <br /> &lt;!--UDK specific--&gt;<br /> &lt;KEYWORD3&gt;UDKParticleSystemComponent&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;UDKExplosionLight&lt;/KEYWORD3&gt;<br /> <br /> &lt;!--UT3 specific--&gt;<br /> &lt;KEYWORD3&gt;UTSkeletalMeshComponent&lt;/KEYWORD3&gt;<br /> <br /> &lt;!--Sound, was changed--&gt;<br /> &lt;KEYWORD3&gt;Sound&lt;/KEYWORD3&gt;<br /> &lt;KEYWORD3&gt;SoundNode&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;KEYWORD3&gt;SoundCue&lt;/KEYWORD3&gt;&lt;!-- UE3 --&gt;<br /> &lt;/KEYWORDS&gt;<br /> &lt;/RULES&gt;<br /> &lt;/MODE&gt;<br /> &lt;/source&gt;</div> 00zX https://wiki.beyondunreal.com/Compiler_errors_overview?diff=44316 Compiler errors overview 2011-02-25T23:06:26Z <p>00zX: /* Other errors */</p> <hr /> <div>{{expand}}<br /> <br /> __NOTOC__<br /> ==Preprocessor errors==<br /> {{main|preprocessor errors}}<br /> A description and solution to [[preprocessor]] errors.<br /> <br /> ==Subobjects errors==<br /> {{main|subobject errors}}<br /> A description and solution to [[subobjects]] errors.<br /> <br /> ==Interface errors==<br /> {{main|interface errors}}<br /> A description and solution to [[interface]] errors.<br /> <br /> ==Other errors==<br /> ;Error, Could not load existing package file 'package path' :<br /> <br /> ;Error, '[[ForEach]]'&lt;nowiki&gt;:&lt;/nowiki&gt; An iterator expression is required : After the ForEach keyword a standard function call to an [[iterator]] function is required. That iterator function could be called in the context of the current code (e.g. &quot;foreach AllActors(...)&quot;) or within the context of some other object (e.g. &quot;foreach WorldInfo.AllPawns(...)&quot; calls the AllPawns iterator of the WorldInfo).<br /> <br /> ;Error, Operator '!='&lt;nowiki&gt;:&lt;/nowiki&gt; Comparison will always succeed : You probably already ensured that the values you are trying to compare are really different. In that case it would be pointless to perform exactly the same comparison again.<br /> <br /> ;Error, [[NameOf]] argument is not an identifier : <br /> <br /> ;Error, Illegal character in name :<br /> <br /> ;Error, Left type is incompatible with '[[Operator|OPERATERNAME]]' :<br /> <br /> ===Classes===<br /> ;Error, 'class'&lt;nowiki&gt;:&lt;/nowiki&gt; Limitor 'class name' is not a class name :<br /> <br /> ;Error, Classes with [[config]]/[[globalconfig]] member variables need to specify config file. : You used a ''config'' modifier on a variable but forgot to add the class modifier ''config'' (resulting in the default INI file for your application) or ''config(*name of the INI*)''. <br /> <br /> ;Error, Class '[[localized]]' keyword is no longer required : Self explanatory. The localized modifier was only necessary in early {{UE1}} games, in newer generations this is automatic implied.<br /> <br /> ;Error, failed to find [[DependsOn]]/[[Implements]] class '[[Class]]' while parsing '[[Class]]' : Self explanatory. However it could be that you have made a typo or that you are referencing a [[struct]] rather than a [[class]].<br /> <br /> ;Error, Script vs. class name mismatch (ClassName/FileName) : The name in the header of your class doesn't match the name of the UC file.<br /> <br /> ===Variables===<br /> ;Error, Instance variables are only allowed at class scope (use 'local'?) : [[Variables]] are declared using the keyword '''local''' inside functions. Variables cannot be declared at [[state]] scope.<br /> <br /> ;Error, Not allowed to use '[[Variable#Modifiers_affecting_values|config]]' with object variables : Object variables cannot be made configurable. If you want to store a configurable class, material, sound, etc., consider storing it in a configurable string variable instead and using [[DynamicLoadObject]]() at runtime to load the configured object.<br /> <br /> ;Error, Can't assign Const variables :<br /> <br /> ;Error, Variable declaration&lt;nowiki&gt;:&lt;/nowiki&gt; 'idx' already defined : trying to declare a local variable when one is defined as a function parameter. (Parameters are also local variables!)<br /> <br /> ===States===<br /> ;Error, '[[state]]'&lt;nowiki&gt;:&lt;/nowiki&gt; expecting State, got Function : This was caused by calling a state '''sleep''' where sleep is a function of state. Im guessing any function previously defined can conflict with a state.<br /> <br /> ;Error, '[[Ignores]]'&lt;nowiki&gt;:&lt;/nowiki&gt; 'Function Name' is not a function : The Ignores statement only accepts existing functions. In other words, if you created the function within the state (instead of ignoring it), you would be able to call [[Super]].FunctionName(...) in it.<br /> <br /> ===Functions===<br /> ;Error, Calling a [[singular]] function within a singular function on the same object will always fail : A function with the ''singular'' modifier will only execute if the same object is not already executing another singular function, thus the compiler rejects direct calls to other singular functions.<br /> <br /> ;Error, Bad function definition : This happens when you define a function with an object as the return but that object does not exist.<br /> <br /> ===Arrays===<br /> ;Error, Static arrays of dynamic arrays are not allowed : A variable has been declared with array&lt;''type''&gt; AND ''variablename''[n] at the same time.<br /> <br /> ;Error, Invalid property or function call on a dynamic array : You might have omitted an array index expression in square brackets after the array reference. If not, see [[dynamic arrays]] for a list of (pseudo) functions and properties you can use on dynamic arrays themselves.<br /> <br /> ===Typecasting===<br /> ;Error, Cast from 'object name' to 'object name' is unnecessary :<br /> <br /> ;Error, Cast from '[[class]]' to '[[class]]' will always fail : [[Typecasting]] from one class to another is only allowed to narrow a reference of one type to a subclass of that type. Casting to a class that is not a subclass of the current type would always return None and thus is rejected by the compiler.<br /> <br /> ===Unrecognized===<br /> ;Error, Unrecognized [[type]] 'class name' :<br /> <br /> ;Error, Unrecognized member 'variable name' in class 'class name' : The variable does not exist in this class.<br /> <br /> ===Unknown===<br /> ;Error, Unknown member '[[variable]]' in struct '[[struct]]' : The variable is not declared. Check if you have forgot to declare it or if you have made a typo.<br /> <br /> ;Error, Unknown Function 'function name' in 'Class package.class' :<br /> <br /> ===Unexpected===<br /> ;Error, Unexpected '[[defaultproperties]]' : This seems to occur when you have an end of multi-comment preceded by a line comment on the same line. See [[Compiler issues]]. Keep in mind that you can not specify default properties in code while using the UnrealEd internal script editor. Doing so will give you this error as well. To change the default properties of a class in UnrealEd, you need to type '''editdefault class=''classname''''' in the command line of the editor.<br /> {{CorrectWrong|&lt;uscript&gt;/* The quick brown fox jumps over the lazy dog */<br /> // ...&lt;/uscript&gt;|&lt;uscript&gt;/* The quick brown fox jumps over the lazy dog */ // ...&lt;/uscript&gt;}}<br /> <br /> ;Error, Unexpected end of file at end of Class : Usually caused by an unmatched pair of braces, missing &quot;}&quot;<br /> <br /> ;Error, Unexpected '.' following 'variable name' : accessor usage on a [[class]] scope [[variable]] that doesnt exist.<br /> <br /> ===Replication===<br /> ;Error, Unrecognized variable 'variable name' name in replication definition : A name in a [[replication condition]] does not correspond to any existing variable or (prior to {{UE3}}) function within the same class.<br /> <br /> ===Conflicts===<br /> ;Error, 'Function Name' conflicts with 'Function Package.Class&lt;nowiki&gt;:&lt;/nowiki&gt;FunctionName' :<br /> <br /> ;Error, Redefinition of '[[function]] FUNCNAME' differs from original in [[class|CLASSNAME]] : You either want to override a function but the number or type of parameters in the definition of the parent class differs from your redefinition, or you accidentally chose a name for your function that is already used by a super class, so you will wish to choose another unambiguous name.<br /> <br /> ===Bad or missing expression===<br /> ;Error, Bad or missing expression in parenthesis for '='<br /> <br /> ;Error, Bad or missing expression in parenthesis for Following '&amp;&amp;'<br /> <br /> ;Error, Bad or missing expression in '[[If]]' : a function in an if statement does not return a type.<br /> <br /> ;Error, Bad or missing expression in Call to '[[Function]]', parameter ''number'' :<br /> <br /> ;Error, Bad or missing expression for token&lt;nowiki&gt;:&lt;/nowiki&gt; '[[Function]]', in '[[Return]]' :<br /> <br /> ;Error, Bad or missing expression for token&lt;nowiki&gt;:&lt;/nowiki&gt; '[[Variable]]', in '[[If]]' : To note in this case the variable was an actor reference.<br /> <br /> ;Error, Bad or missing expression for token&lt;nowiki&gt;:&lt;/nowiki&gt; '[[Variable]]', in Call to '[[Function]]', parameter X :<br /> <br /> ;Error, Bad or missing expression after '[[Operator|OPERATORNAME]]'<br /> ;Error, Bad or missing expression after '[[Operator|OPERATORNAME]]'&lt;nowiki&gt;:&lt;/nowiki&gt; '[[Variable|VARIABLENAME]]' : + being an incorrect operator usage? '&amp;&amp;'<br /> <br /> ;Error, '[[type]]' conversion&lt;nowiki&gt;:&lt;/nowiki&gt; Bad or missing expression<br /> <br /> ;Error, Bad or missing expression in '[[NameOf]]'<br /> <br /> ;Error, 'class name'&lt;nowiki&gt;:&lt;/nowiki&gt; Bad command or expression :<br /> <br /> ===Missing===<br /> ;Error, Missing 'function' : Declared a function modifier without a function, defined a function type before function.<br /> {{CorrectWrong|&lt;uscript&gt;final function int FuncName()&lt;/uscript&gt;|<br /> &lt;uscript&gt;final int FuncName() or final int function FuncName()&lt;/uscript&gt;}} <br /> <br /> ;Error, Missing ')' in 'foreach array' : The variable inside the brackets of a foreach loop is not defined.<br /> <br /> ;Error, Missing ';' before 'variable name' : The variable you are trying to access through a typecast is not defined.<br /> <br /> ;Error, Missing ';' before ')' : End of line expected before the character.<br /> {{CorrectWrong|&lt;uscript&gt;...<br /> {<br /> a = b;<br /> }&lt;/uscript&gt;|&lt;uscript&gt;...<br /> {<br /> a = b<br /> }&lt;/uscript&gt;}} <br /> <br /> ;Error, ImportText (''[[struct]]'')&lt;nowiki&gt;:&lt;/nowiki&gt; Missing closing parenthesis&lt;nowiki&gt;:&lt;/nowiki&gt;(''member1''='value',''member2='value'))<br /> <br /> ;Error, Missing variable name : Pretty sure this is caused by using a class limitor on an interface like so, var interface&lt;goo&gt; foo;<br /> <br /> ===Static Functions===<br /> ;Error, Can't call instance functions from within static functions : [[Static Function|Static functions]] can only call other static functions directly. Additionally this can happen if you are trying to call a non-static function via the &quot;Class.static.FunctionName&quot; call modifier.<br /> <br /> ;Error, You can only access default values of variables here : Tried to assign a non [[default variable]] a value, using a non [[default variable]] in a statement, assigning a variable a value from another that is not a default variable. There are instances where you can access non default variables in [[Static Function|Static functions]], if the variable is part of the function definition, a local variable.<br /> <br /> ===Mismatch===<br /> ;Error, Call to '[[function|FUNCTIONNAME]]'&lt;nowiki&gt;:&lt;/nowiki&gt; type mismatch in parameter NUMBER<br /> ;Error, Type mismatch in Call to '[[function|FUNCTIONNAME]]', parameter ''number'' : the [[type]] of [[variable]] being passed to the function <br /> parameter number specified is incorrect.<br /> <br /> ;Error, Type mismatch in '=' : you probably wanted to make a [[bool]]ean compare &quot;==&quot; but ended up assigning something to a variable.<br /> <br /> ;Error, [[Const]] mismatch with '+' :<br /> <br /> ;Error, Type mismatch in array index :<br /> <br /> ==Warnings==<br /> ;Warning, Unresolved reference to Class 'class name' :<br /> <br /> ;Warning, Unresolved reference to '''object'''<br /> <br /> ;Warning, Function parameter&lt;nowiki&gt;:&lt;/nowiki&gt; 'function name' conflicts with previously defined field in 'class name' :<br /> <br /> ;Warning, ''[[function]]''&lt;nowiki&gt;:&lt;/nowiki&gt; Missing return value : a function with a return type has no 'return' that could be reached, for example if the only return is in an if-block and thus can't be accessed in all cases.<br /> <br /> ;Warning, Using a non-qualified name (would have) found&lt;nowiki&gt;:&lt;/nowiki&gt; object package.group.group.name<br /> <br /> ;Warning, '''friendly operator name'''_'''TypeNameTypeName'''&lt;nowiki&gt;:&lt;/nowiki&gt; Missing return value : This is similar to function not having a return value but is the operator version, UScript supports operator overloading so the 'friendly operator name''' will be a reference to a table within the engine $ being Concat as an example.<br /> <br /> ;Warning, Class ''ClassName'' can't bind to DLL ''DLLPath'' : The DLL that should be bound to either doesn't exist in the Win32\UserCode directory or was compiled wrong, for example on another system with debug settings (they only work on the system they were compiled on).<br /> <br /> ;Warning, Variable declaration&lt;nowiki&gt;:&lt;/nowiki&gt; 'VARIABLENAME' conflicts with previously defined field in 'CLASSNAME' : You should not redefine existing variables in subclasses using the ''var'' or ''local'' declaration since the variable is already available from the parent class.<br /> <br /> ;Warning, 'identifier' obscures 'identifier' in base class 'OBJECTNAME' :<br /> <br /> ===Local Variables===<br /> ;Warning, 'variable name' &lt;nowiki&gt;:&lt;/nowiki&gt; unreferenced local variable : A variable is declared within a function and never assigned a value.<br /> <br /> ;Warning, 'variable name'&lt;nowiki&gt;:&lt;/nowiki&gt; unused local variable : A local variable was declared and maybe the function even assigns a value to it, but the value is never accessed elsewhere in the function. (Functions returning a value need not assign that value to a variable, in case you were wondering.)<br /> <br /> ;Warning, 'variable name' &lt;nowiki&gt;:&lt;/nowiki&gt; local variable used before assigned a value : A variable is referenced before it is assigned a value, which means it'll return the default value for that type, whether that is what you are looking for or not. This could be conditionally incorrect, the compiler doesn't check to see in which order things are carried out so it could in fact be wrong, hence only a warning.<br /> <br /> ===Replication===<br /> ;Warning, Reliabe/Unreliable keywords are no longer used in 'replication {}': Those keywords only apply to function replication and are function modifiers in {{UE3}}.<br /> <br /> ===Default Properties===<br /> ;Warning, Import failed for 'variable name'&lt;nowiki&gt;:&lt;/nowiki&gt; property is config (Check to see if the property is listed in the DefaultProperties. It should only be listed in the specific .ini/.int file) : It was tried to assign a default value to a variable that was declared [[config]]. Such a variable is supposed to read it's value always from the associated [[udn3:ConfigurationFiles|INI]] file, so it doesn't make sense to assign it in code and not there.<br /> <br /> ;Warning, Unknown property in defaults&lt;nowiki&gt;:&lt;/nowiki&gt; 'line from defaultproperties block' : A property in the defaults is not a defined variable.<br /> <br /> ;Warning, Invalid property value in defaults&lt;nowiki&gt;:&lt;/nowiki&gt; ''property''=''value'' : A property in the defaults is not a defined variable.<br /> <br /> ;Warning, redundant data&lt;nowiki&gt;:&lt;/nowiki&gt; 'line from defaultproperties block' : There can only be one assignment for a property per class definition, so you probably have a duplicate in the DefaultProperties.<br /> <br /> ;Warning, ObjectProperty package.class.property&lt;nowiki&gt;:&lt;/nowiki&gt; unresolved reference to object'package.group.object' : The specified object could not be found in the package.<br /> <br /> ;Warning, Unable to parse parameter value '' in defaultproperties array operation&lt;nowiki&gt;:&lt;/nowiki&gt; '''array&lt;struct&gt;'''.add((''member1''='value',''member2='value'))<br /> <br /> ==Failure==<br /> ;Failed to load 'object package.group.name'&lt;nowiki&gt;:&lt;/nowiki&gt; Failed to find object 'object package.group.name'<br /> <br /> [[Category:Compiler]] [[Category:Compiler errors]]</div> 00zX https://wiki.beyondunreal.com/Talk:Compiler_errors_overview?diff=44315 Talk:Compiler errors overview 2011-02-25T21:15:39Z <p>00zX: /* Errors format */</p> <hr /> <div>==Errors format==<br /> I thought of changing the format of errors, because it kinda looked like everything's floating. Here's the table format I thought of:<br /> {| style=&quot;color:#111111; background-color:#87898F;&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; width=&quot;100%&quot;|-<br /> ! Error !! Message<br /> |- align=&quot;center&quot;<br /> |#0001||style=&quot;color:red;&quot;|Unexpected '[[defaultproperties]]'<br /> |-<br /> |colspan=&quot;2&quot;|<br /> {| style=&quot;color:#111111; background-color:#87898F;&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; |-<br /> |This seems to occur when you have an end of multi-comment preceded by a line comment on the same line. See [[Compiler issues]]. Keep in mind that you can not specify default properties in code while using the UnrealEd internal script editor. Doing so will give you this error as well. To change the default properties of a class in UnrealEd, you need to type '''editdefault class=''classname''''' in the command line of the editor.<br /> |-<br /> |{{CorrectWrong|&lt;uscript&gt;/* The quick brown fox jumps over the lazy dog */<br /> // ...&lt;/uscript&gt;|&lt;uscript&gt;/* The quick brown fox jumps over the lazy dog */ // ...&lt;/uscript&gt;}}<br /> |}<br /> |}<br /> As you see i did give the error an number for reference purpose.<br /> Please let me know your opinions, also if you will use it then make sure you turn it into a template instead to avoid duplicating so much code. The colors might need some work hehe :P --[[User:Eliot|Eliot]] 02:52, 10 November 2010 (UTC)<br /> <br /> :The colors need indeed some work. I imagine it hard to read through it if it's formatted this way because it will have always three sections :per error and then does it start again. It would probably help if the background color of an error alternates between grey and white (or a :brighter grey) for each error so that you can better distinguish sections.<br /> <br /> :And since the number doesn't have any hard reference (unless they are in fact internally numbered by the compiler) and is rather unofficial, :it shouldn't be at the left of the box but rather discretely added at the back because most people won't use it. Or leave it completely away. ::&gt;<br /> <br /> :Another thing I was wondering about was to get a uniform format for stuff. If we have varying stuff in the compiler message, should we use ''function'' or FUNCTION? The current inconsistency doesn't look that nice.<br /> :--[[User:Crusha|Crusha]] 21:49, 18 December 2010 (UTC)<br /> <br /> ::{| style=&quot;color:#111111; background-color:#C6CFD6; float:left; display:inline-table; border:2px solid #E7E7EF; width:100%;&quot; |-<br /> |'''Message''':||style=&quot;color:Red;&quot;|#0001 Unexpected '[[defaultproperties]]' <br /> |-<br /> |colspan=&quot;2&quot;|<br /> {| style=&quot;color:#111111; background-color:#C6CFD6; float:left; display:inline-table; border:2px solid #E7E7EF; width:100%;&quot; |-<br /> |This seems to occur when you have an end of multi-comment preceded by a line comment on the same line. See [[Compiler issues]]. Keep in mind that you can not specify default properties in code while using the UnrealEd internal script editor. Doing so will give you this error as well. To change the default properties of a class in UnrealEd, you need to type '''editdefault class=''classname''''' in the command line of the editor.<br /> |-<br /> |{{CorrectWrong|&lt;uscript&gt;/* The quick brown fox jumps over the lazy dog */<br /> // ...&lt;/uscript&gt;|&lt;uscript&gt;/* The quick brown fox jumps over the lazy dog */ // ...&lt;/uscript&gt;}}<br /> |}<br /> |} Updated the style? What do you think? :) <br /> ::Maybe &lt;nowiki&gt;[[Function]]&lt;/nowiki&gt; camel cased, might be the best choice. --[[User:Eliot|Eliot]] 17:48, 25 December 2010 (UTC)<br /> :::Looks pretty good to me, if its a template or whatever the template can just be updated later hey? --[[User:00zX|00zX]] 21:15, 25 February 2011 (UTC)<br /> <br /> ==Error duplicates==<br /> Thats defiantly the way the compiler spat it out at me for the Mismatch error, Im not sure but maybe it was changed in some engine versions or it is infact a different error code for virtually the same thing. I usually just put em up as I find em in no particular test order or related to any version in specific so its possible that one was put up when I first started with an older version of UDK.<br /> <br /> In regards to the duplicate on the operator mismatch one is special case in an if statement its not actually always a missing expression but it can be incorrect operator when someone might have wanted to use '&amp;&amp;'. For eg if(foo+bar){//dostuff} pretty sure that was why I put it up. --[[User:00zX|00zX]] 02:11, 1 December 2010 (UTC)</div> 00zX https://wiki.beyondunreal.com/Compiler_errors_overview?diff=44314 Compiler errors overview 2011-02-25T21:01:45Z <p>00zX: /* Other errors */</p> <hr /> <div>{{expand}}<br /> <br /> __NOTOC__<br /> ==Preprocessor errors==<br /> {{main|preprocessor errors}}<br /> A description and solution to [[preprocessor]] errors.<br /> <br /> ==Subobjects errors==<br /> {{main|subobject errors}}<br /> A description and solution to [[subobjects]] errors.<br /> <br /> ==Interface errors==<br /> {{main|interface errors}}<br /> A description and solution to [[interface]] errors.<br /> <br /> ==Other errors==<br /> ;Error, Unexpected '[[defaultproperties]]' : This seems to occur when you have an end of multi-comment preceded by a line comment on the same line. See [[Compiler issues]]. Keep in mind that you can not specify default properties in code while using the UnrealEd internal script editor. Doing so will give you this error as well. To change the default properties of a class in UnrealEd, you need to type '''editdefault class=''classname''''' in the command line of the editor.<br /> {{CorrectWrong|&lt;uscript&gt;/* The quick brown fox jumps over the lazy dog */<br /> // ...&lt;/uscript&gt;|&lt;uscript&gt;/* The quick brown fox jumps over the lazy dog */ // ...&lt;/uscript&gt;}}<br /> <br /> ;Error, Unexpected end of file at end of Class : Usually caused by an unmatched pair of braces, missing &quot;}&quot;<br /> <br /> ;Error, Instance variables are only allowed at class scope (use 'local'?) : [[Variables]] are declared using the keyword '''local''' inside functions. Variables cannot be declared at [[state]] scope.<br /> <br /> ;Error, 'class'&lt;nowiki&gt;:&lt;/nowiki&gt; Limitor 'class name' is not a class name :<br /> <br /> ;Error, Calling a [[singular]] function within a singular function on the same object will always fail : A function with the ''singular'' modifier will only execute if the same object is not already executing another singular function, thus the compiler rejects direct calls to other singular functions.<br /> <br /> ;Error, Classes with [[config]]/[[globalconfig]] member variables need to specify config file. : You used a ''config'' modifier on a variable but forgot to add the class modifier ''config'' (resulting in the default INI file for your application) or ''config(*name of the INI*)''. <br /> <br /> ;Error, Static arrays of dynamic arrays are not allowed : A variable has been declared with array&lt;''type''&gt; AND ''variablename''[n] at the same time.<br /> <br /> ;Error, Cast from '[[class]]' to '[[class]]' will always fail : [[Typecasting]] from one class to another is only allowed to narrow a reference of one type to a subclass of that type. Casting to a class that is not a subclass of the current type would always return None and thus is rejected by the compiler.<br /> <br /> ;Error, Invalid property or function call on a dynamic array : You might have omitted an array index expression in square brackets after the array reference. If not, see [[dynamic arrays]] for a list of (pseudo) functions and properties you can use on dynamic arrays themselves.<br /> <br /> ;Error, Not allowed to use '[[Variable#Modifiers_affecting_values|config]]' with object variables : Object variables cannot be made configurable. If you want to store a configurable class, material, sound, etc., consider storing it in a configurable string variable instead and using [[DynamicLoadObject]]() at runtime to load the configured object.<br /> <br /> ;Error, Could not load existing package file 'package path' :<br /> <br /> ;Error, '[[Ignores]]'&lt;nowiki&gt;:&lt;/nowiki&gt; 'Function Name' is not a function : The Ignores statement only accepts existing functions. In other words, if you created the function within the state (instead of ignoring it), you would be able to call [[Super]].FunctionName(...) in it.<br /> <br /> ;Error, Class '[[localized]]' keyword is no longer required : Self explanatory. The localized modifier was only necessary in early {{UE1}} games, in newer generations this is automatic implied.<br /> <br /> ;Error, Bad function definition : This happens when you define a function with an object as the return but that object does not exist.<br /> <br /> ;Error, 'UTGFxHudWrapper'&lt;nowiki&gt;:&lt;/nowiki&gt; Bad command or expression :<br /> <br /> ;Error, Unrecognized [[type]] 'class name' :<br /> <br /> ;Error, Unrecognized member 'variable name' in class 'class name' : The variable does not exist in this class.<br /> <br /> ;Error, failed to find [[DependsOn]]/[[Implements]] class '[[Class]]' while parsing '[[Class]]' : Self explanatory. However it could be that you have made a typo or that you are referencing a [[struct]] rather than a [[class]].<br /> <br /> ;Error, Script vs. class name mismatch (ClassName/FileName) : The name in the header of your class doesn't match the name of the UC file.<br /> <br /> ;Error, Unknown member '[[variable]]' in struct '[[struct]]' : The variable is not declared. Check if you have forgot to declare it or if you have made a typo.<br /> <br /> ;Error, Unknown Function 'function name' in 'Class package.class' :<br /> <br /> ;Error, '[[ForEach]]'&lt;nowiki&gt;:&lt;/nowiki&gt; An iterator expression is required : After the ForEach keyword a standard function call to an [[iterator]] function is required. That iterator function could be called in the context of the current code (e.g. &quot;foreach AllActors(...)&quot;) or within the context of some other object (e.g. &quot;foreach WorldInfo.AllPawns(...)&quot; calls the AllPawns iterator of the WorldInfo).<br /> <br /> ;Error, Variable declaration&lt;nowiki&gt;:&lt;/nowiki&gt; 'idx' already defined : trying to declare a local variable when one is defined as a function parameter. (Parameters are also local variables!)<br /> <br /> ;Error, Operator '!='&lt;nowiki&gt;:&lt;/nowiki&gt; Comparison will always succeed : You probably already ensured that the values you are trying to compare are really different. In that case it would be pointless to perform exactly the same comparison again.<br /> <br /> ;Error, [[NameOf]] argument is not an identifier : <br /> <br /> ;Error, Illegal character in name :<br /> <br /> ;Error, Left type is incompatible with '[[Operator|OPERATERNAME]]' :<br /> <br /> ;Error, '[[state]]'&lt;nowiki&gt;:&lt;/nowiki&gt; expecting State, got Function : This was caused by calling a state '''sleep''' where sleep is a function of state. Im guessing any function previously defined can conflict with a state.<br /> <br /> ;Error, Cast from 'object name' to 'object name' is unnecessary :<br /> <br /> ;Error, Can't assign Const variables :<br /> <br /> ;Error, Unknown member 'variable name' in struct 'struct name' : [[Struct]] does not contain this [[variable]].<br /> <br /> ;Error, Unexpected '.' following 'variable name' : accessor usage on a [[class]] scope [[variable]] that doesnt exist.<br /> <br /> ;Error, Bad or missing expression in '[[NameOf]]'<br /> <br /> ===Replication===<br /> ;Error, Unrecognized variable 'variable name' name in replication definition : A name in a [[replication condition]] does not correspond to any existing variable or (prior to {{UE3}}) function within the same class.<br /> <br /> ===Conflicts===<br /> ;Error, 'Function Name' conflicts with 'Function Package.Class&lt;nowiki&gt;:&lt;/nowiki&gt;FunctionName' :<br /> <br /> ;Error, Redefinition of '[[function]] FUNCNAME' differs from original in [[class|CLASSNAME]] : You either want to override a function but the number or type of parameters in the definition of the parent class differs from your redefinition, or you accidentally chose a name for your function that is already used by a super class, so you will wish to choose another unambiguous name.<br /> <br /> ===Bad or missing expression===<br /> ;Error, Bad or missing expression in parenthesis for '='<br /> <br /> ;Error, Bad or missing expression in parenthesis for Following '&amp;&amp;'<br /> <br /> ;Error, Bad or missing expression in '[[If]]' : a function in an if statement does not return a type.<br /> <br /> ;Error, Bad or missing expression in Call to '[[Function]]', parameter ''number'' :<br /> <br /> ;Error, Bad or missing expression for token&lt;nowiki&gt;:&lt;/nowiki&gt; '[[Function]]', in '[[Return]]' :<br /> <br /> ;Error, Bad or missing expression for token&lt;nowiki&gt;:&lt;/nowiki&gt; '[[Variable]]', in '[[If]]' : To note in this case the variable was an actor reference.<br /> <br /> ;Error, Bad or missing expression for token&lt;nowiki&gt;:&lt;/nowiki&gt; '[[Variable]]', in Call to '[[Function]]', parameter X :<br /> <br /> ;Error, Bad or missing expression after '[[Operator|OPERATORNAME]]'<br /> ;Error, Bad or missing expression after '[[Operator|OPERATORNAME]]'&lt;nowiki&gt;:&lt;/nowiki&gt; '[[Variable|VARIABLENAME]]' : + being an incorrect operator usage? '&amp;&amp;'<br /> <br /> ;Error, '[[type]]' conversion&lt;nowiki&gt;:&lt;/nowiki&gt; Bad or missing expression<br /> <br /> ===Missing===<br /> ;Error, Missing 'function' : Declared a function modifier without a function, defined a function type before function.<br /> {{CorrectWrong|&lt;uscript&gt;final function int FuncName()&lt;/uscript&gt;|<br /> &lt;uscript&gt;final int FuncName() or final int function FuncName()&lt;/uscript&gt;}} <br /> <br /> ;Error, Missing ')' in 'foreach array' : The variable inside the brackets of a foreach loop is not defined.<br /> <br /> ;Error, Missing ';' before 'variable name' : The variable you are trying to access through a typecast is not defined.<br /> <br /> ;Error, Missing ';' before ')' : End of line expected before the character.<br /> {{CorrectWrong|&lt;uscript&gt;...<br /> {<br /> a = b;<br /> }&lt;/uscript&gt;|&lt;uscript&gt;...<br /> {<br /> a = b<br /> }&lt;/uscript&gt;}} <br /> <br /> ;Error, ImportText (''[[struct]]'')&lt;nowiki&gt;:&lt;/nowiki&gt; Missing closing parenthesis&lt;nowiki&gt;:&lt;/nowiki&gt;(''member1''='value',''member2='value'))<br /> <br /> ;Error, Missing variable name : Pretty sure this is caused by using a class limitor on an interface like so, var interface&lt;goo&gt; foo;<br /> <br /> ===Static Functions===<br /> ;Error, Can't call instance functions from within static functions : [[Static Function|Static functions]] can only call other static functions directly. Additionally this can happen if you are trying to call a non-static function via the &quot;Class.static.FunctionName&quot; call modifier.<br /> <br /> ;Error, You can only access default values of variables here : Tried to assign a non [[default variable]] a value, using a non [[default variable]] in a statement, assigning a variable a value from another that is not a default variable. There are instances where you can access non default variables in [[Static Function|Static functions]], if the variable is part of the function definition, a local variable.<br /> <br /> ===Mismatch===<br /> ;Error, Call to '[[function|FUNCTIONNAME]]'&lt;nowiki&gt;:&lt;/nowiki&gt; type mismatch in parameter NUMBER<br /> ;Error, Type mismatch in Call to '[[function|FUNCTIONNAME]]', parameter ''number'' : the [[type]] of [[variable]] being passed to the function <br /> parameter number specified is incorrect.<br /> <br /> ;Error, Type mismatch in '=' : you probably wanted to make a [[bool]]ean compare &quot;==&quot; but ended up assigning something to a variable.<br /> <br /> ;Error, [[Const]] mismatch with '+' :<br /> <br /> ;Error, Type mismatch in array index :<br /> <br /> ==Warnings==<br /> ;Warning, Unresolved reference to Class 'class name' :<br /> <br /> ;Warning, Unresolved reference to '''object'''<br /> <br /> ;Warning, Function parameter&lt;nowiki&gt;:&lt;/nowiki&gt; 'function name' conflicts with previously defined field in 'class name' :<br /> <br /> ;Warning, ''[[function]]''&lt;nowiki&gt;:&lt;/nowiki&gt; Missing return value : a function with a return type has no 'return' that could be reached, for example if the only return is in an if-block and thus can't be accessed in all cases.<br /> <br /> ;Warning, Using a non-qualified name (would have) found&lt;nowiki&gt;:&lt;/nowiki&gt; object package.group.group.name<br /> <br /> ;Warning, '''friendly operator name'''_'''TypeNameTypeName'''&lt;nowiki&gt;:&lt;/nowiki&gt; Missing return value : This is similar to function not having a return value but is the operator version, UScript supports operator overloading so the 'friendly operator name''' will be a reference to a table within the engine $ being Concat as an example.<br /> <br /> ;Warning, Class ''ClassName'' can't bind to DLL ''DLLPath'' : The DLL that should be bound to either doesn't exist in the Win32\UserCode directory or was compiled wrong, for example on another system with debug settings (they only work on the system they were compiled on).<br /> <br /> ;Warning, Variable declaration&lt;nowiki&gt;:&lt;/nowiki&gt; 'VARIABLENAME' conflicts with previously defined field in 'CLASSNAME' : You should not redefine existing variables in subclasses using the ''var'' or ''local'' declaration since the variable is already available from the parent class.<br /> <br /> ;Warning, 'identifier' obscures 'identifier' in base class 'OBJECTNAME' :<br /> <br /> ===Local Variables===<br /> ;Warning, 'variable name' &lt;nowiki&gt;:&lt;/nowiki&gt; unreferenced local variable : A variable is declared within a function and never assigned a value.<br /> <br /> ;Warning, 'variable name'&lt;nowiki&gt;:&lt;/nowiki&gt; unused local variable : A local variable was declared and maybe the function even assigns a value to it, but the value is never accessed elsewhere in the function. (Functions returning a value need not assign that value to a variable, in case you were wondering.)<br /> <br /> ;Warning, 'variable name' &lt;nowiki&gt;:&lt;/nowiki&gt; local variable used before assigned a value : A variable is referenced before it is assigned a value, which means it'll return the default value for that type, whether that is what you are looking for or not. This could be conditionally incorrect, the compiler doesn't check to see in which order things are carried out so it could in fact be wrong, hence only a warning.<br /> <br /> ===Replication===<br /> ;Warning, Reliabe/Unreliable keywords are no longer used in 'replication {}': Those keywords only apply to function replication and are function modifiers in {{UE3}}.<br /> <br /> ===Default Properties===<br /> ;Warning, Import failed for 'variable name'&lt;nowiki&gt;:&lt;/nowiki&gt; property is config (Check to see if the property is listed in the DefaultProperties. It should only be listed in the specific .ini/.int file) : It was tried to assign a default value to a variable that was declared [[config]]. Such a variable is supposed to read it's value always from the associated [[udn3:ConfigurationFiles|INI]] file, so it doesn't make sense to assign it in code and not there.<br /> <br /> ;Warning, Unknown property in defaults&lt;nowiki&gt;:&lt;/nowiki&gt; 'line from defaultproperties block' : A property in the defaults is not a defined variable.<br /> <br /> ;Warning, Invalid property value in defaults&lt;nowiki&gt;:&lt;/nowiki&gt; ''property''=''value'' : A property in the defaults is not a defined variable.<br /> <br /> ;Warning, redundant data&lt;nowiki&gt;:&lt;/nowiki&gt; 'line from defaultproperties block' : There can only be one assignment for a property per class definition, so you probably have a duplicate in the DefaultProperties.<br /> <br /> ;Warning, ObjectProperty package.class.property&lt;nowiki&gt;:&lt;/nowiki&gt; unresolved reference to object'package.group.object' : The specified object could not be found in the package.<br /> <br /> ;Warning, Unable to parse parameter value '' in defaultproperties array operation&lt;nowiki&gt;:&lt;/nowiki&gt; '''array&lt;struct&gt;'''.add((''member1''='value',''member2='value'))<br /> <br /> ==Failure==<br /> ;Failed to load 'object package.group.name'&lt;nowiki&gt;:&lt;/nowiki&gt; Failed to find object 'object package.group.name'<br /> <br /> [[Category:Compiler]] [[Category:Compiler errors]]</div> 00zX https://wiki.beyondunreal.com/Compiler_errors_overview?diff=44299 Compiler errors overview 2011-02-22T22:25:31Z <p>00zX: /* Other errors */</p> <hr /> <div>{{expand}}<br /> <br /> __NOTOC__<br /> ==Preprocessor errors==<br /> {{main|preprocessor errors}}<br /> A description and solution to [[preprocessor]] errors.<br /> <br /> ==Subobjects errors==<br /> {{main|subobject errors}}<br /> A description and solution to [[subobjects]] errors.<br /> <br /> ==Interface errors==<br /> {{main|interface errors}}<br /> A description and solution to [[interface]] errors.<br /> <br /> ==Other errors==<br /> ;Error, Unexpected '[[defaultproperties]]' : This seems to occur when you have an end of multi-comment preceded by a line comment on the same line. See [[Compiler issues]]. Keep in mind that you can not specify default properties in code while using the UnrealEd internal script editor. Doing so will give you this error as well. To change the default properties of a class in UnrealEd, you need to type '''editdefault class=''classname''''' in the command line of the editor.<br /> {{CorrectWrong|&lt;uscript&gt;/* The quick brown fox jumps over the lazy dog */<br /> // ...&lt;/uscript&gt;|&lt;uscript&gt;/* The quick brown fox jumps over the lazy dog */ // ...&lt;/uscript&gt;}}<br /> <br /> ;Error, Unexpected end of file at end of Class : Usually caused by an unmatched pair of braces, missing &quot;}&quot;<br /> <br /> ;Error, Instance variables are only allowed at class scope (use 'local'?) : [[Variables]] are declared using the keyword '''local''' inside functions. Variables cannot be declared at [[state]] scope.<br /> <br /> ;Error, 'class'&lt;nowiki&gt;:&lt;/nowiki&gt; Limitor 'class name' is not a class name :<br /> <br /> ;Error, Calling a [[singular]] function within a singular function on the same object will always fail : A function with the ''singular'' modifier will only execute if the same object is not already executing another singular function, thus the compiler rejects direct calls to other singular functions.<br /> <br /> ;Error, Classes with [[config]]/[[globalconfig]] member variables need to specify config file. : You used a ''config'' modifier on a variable but forgot to add the class modifier ''config'' (resulting in the default INI file for your application) or ''config(*name of the INI*)''. <br /> <br /> ;Error, Static arrays of dynamic arrays are not allowed : A variable has been declared with array&lt;''type''&gt; AND ''variablename''[n] at the same time.<br /> <br /> ;Error, Cast from '[[class]]' to '[[class]]' will always fail : [[Typecasting]] from one class to another is only allowed to narrow a reference of one type to a subclass of that type. Casting to a class that is not a subclass of the current type would always return None and thus is rejected by the compiler.<br /> <br /> ;Error, Invalid property or function call on a dynamic array : You might have omitted an array index expression in square brackets after the array reference. If not, see [[dynamic arrays]] for a list of (pseudo) functions and properties you can use on dynamic arrays themselves.<br /> <br /> ;Error, Not allowed to use '[[Variable#Modifiers_affecting_values|config]]' with object variables : Object variables cannot be made configurable. If you want to store a configurable class, material, sound, etc., consider storing it in a configurable string variable instead and using [[DynamicLoadObject]]() at runtime to load the configured object.<br /> <br /> ;Error, Could not load existing package file 'package path' :<br /> <br /> ;Error, '[[Ignores]]'&lt;nowiki&gt;:&lt;/nowiki&gt; 'Function Name' is not a function : The Ignores statement only accepts existing functions. In other words, if you created the function within the state (instead of ignoring it), you would be able to call [[Super]].FunctionName(...) in it.<br /> <br /> ;Error, Class '[[localized]]' keyword is no longer required : Self explanatory. The localized modifier was only necessary in early {{UE1}} games, in newer generations this is automatic implied.<br /> <br /> ;Error, Bad function definition : This happens when you define a function with an object as the return but that object does not exist.<br /> <br /> ;Error, 'UTGFxHudWrapper'&lt;nowiki&gt;:&lt;/nowiki&gt; Bad command or expression :<br /> <br /> ;Error, Unrecognized [[type]] 'class name' :<br /> <br /> ;Error, Unrecognized member 'variable name' in class 'class name' :<br /> <br /> ;Error, failed to find [[DependsOn]]/[[Implements]] class '[[Class]]' while parsing '[[Class]]' : Self explanatory. However it could be that you have made a typo or that you are referencing a [[struct]] rather than a [[class]].<br /> <br /> ;Error, Script vs. class name mismatch (ClassName/FileName) : The name in the header of your class doesn't match the name of the UC file.<br /> <br /> ;Error, Unknown member '[[variable]]' in struct '[[struct]]' : The variable is not declared. Check if you have forgot to declare it or if you have made a typo.<br /> <br /> ;Error, Unknown Function 'function name' in 'Class package.class' :<br /> <br /> ;Error, '[[ForEach]]'&lt;nowiki&gt;:&lt;/nowiki&gt; An iterator expression is required : After the ForEach keyword a standard function call to an [[iterator]] function is required. That iterator function could be called in the context of the current code (e.g. &quot;foreach AllActors(...)&quot;) or within the context of some other object (e.g. &quot;foreach WorldInfo.AllPawns(...)&quot; calls the AllPawns iterator of the WorldInfo).<br /> <br /> ;Error, Variable declaration&lt;nowiki&gt;:&lt;/nowiki&gt; 'idx' already defined : trying to declare a local variable when one is defined as a function parameter. (Parameters are also local variables!)<br /> <br /> ;Error, Operator '!='&lt;nowiki&gt;:&lt;/nowiki&gt; Comparison will always succeed : You probably already ensured that the values you are trying to compare are really different. In that case it would be pointless to perform exactly the same comparison again.<br /> <br /> ;Error, [[NameOf]] argument is not an identifier : <br /> <br /> ;Error, Illegal character in name :<br /> <br /> ;Error, Left type is incompatible with '[[Operator|OPERATERNAME]]' :<br /> <br /> ;Error, '[[state]]'&lt;nowiki&gt;:&lt;/nowiki&gt; expecting State, got Function : This was caused by calling a state '''sleep''' where sleep is a function of state. Im guessing any function previously defined can conflict with a state.<br /> <br /> ===Replication===<br /> ;Error, Unrecognized variable 'variable name' name in replication definition : A name in a [[replication condition]] does not correspond to any existing variable or (prior to {{UE3}}) function within the same class.<br /> <br /> ===Conflicts===<br /> ;Error, 'Function Name' conflicts with 'Function Package.Class&lt;nowiki&gt;:&lt;/nowiki&gt;FunctionName' :<br /> <br /> ;Error, Redefinition of '[[function]] FUNCNAME' differs from original in [[class|CLASSNAME]] : You either want to override a function but the number or type of parameters in the definition of the parent class differs from your redefinition, or you accidentally chose a name for your function that is already used by a super class, so you will wish to choose another unambiguous name.<br /> <br /> ===Bad or missing expression===<br /> ;Error, Bad or missing expression in parenthesis for '='<br /> <br /> ;Error, Bad or missing expression in parenthesis for Following '&amp;&amp;'<br /> <br /> ;Error, Bad or missing expression in '[[If]]' : a function in an if statement does not return a type.<br /> <br /> ;Error, Bad or missing expression in Call to '[[Function]]', parameter ''number'' :<br /> <br /> ;Error, Bad or missing expression for token&lt;nowiki&gt;:&lt;/nowiki&gt; '[[Function]]', in '[[Return]]' :<br /> <br /> ;Error, Bad or missing expression for token&lt;nowiki&gt;:&lt;/nowiki&gt; '[[Variable]]', in '[[If]]' : To note in this case the variable was an actor reference.<br /> <br /> ;Error, Bad or missing expression for token&lt;nowiki&gt;:&lt;/nowiki&gt; '[[Variable]]', in Call to '[[Function]]', parameter X :<br /> <br /> ;Error, Bad or missing expression after '[[Operator|OPERATORNAME]]'<br /> ;Error, Bad or missing expression after '[[Operator|OPERATORNAME]]'&lt;nowiki&gt;:&lt;/nowiki&gt; '[[Variable|VARIABLENAME]]' : + being an incorrect operator usage? '&amp;&amp;'<br /> <br /> ;Error, '[[type]]' conversion&lt;nowiki&gt;:&lt;/nowiki&gt; Bad or missing expression<br /> <br /> ===Missing===<br /> ;Error, Missing 'function' : Declared a function modifier without a function, defined a function type before function.<br /> {{CorrectWrong|&lt;uscript&gt;final function int FuncName()&lt;/uscript&gt;|<br /> &lt;uscript&gt;final int FuncName() or final int function FuncName()&lt;/uscript&gt;}} <br /> <br /> ;Error, Missing ')' in 'foreach array' : The variable inside the brackets of a foreach loop is not defined.<br /> <br /> ;Error, Missing ';' before 'variable name' : The variable you are trying to access through a typecast is not defined.<br /> <br /> ;Error, Missing ';' before ')' : End of line expected before the character.<br /> {{CorrectWrong|&lt;uscript&gt;...<br /> {<br /> a = b;<br /> }&lt;/uscript&gt;|&lt;uscript&gt;...<br /> {<br /> a = b<br /> }&lt;/uscript&gt;}} <br /> <br /> ;Error, ImportText (''[[struct]]'')&lt;nowiki&gt;:&lt;/nowiki&gt; Missing closing parenthesis&lt;nowiki&gt;:&lt;/nowiki&gt;(''member1''='value',''member2='value'))<br /> <br /> ;Error, Missing variable name : Pretty sure this is caused by using a class limitor on an interface like so, var interface&lt;goo&gt; foo;<br /> <br /> ===Static Functions===<br /> ;Error, Can't call instance functions from within static functions : [[Static Function|Static functions]] can only call other static functions directly. Additionally this can happen if you are trying to call a non-static function via the &quot;Class.static.FunctionName&quot; call modifier.<br /> <br /> ;Error, You can only access default values of variables here : Tried to assign a non [[default variable]] a value, using a non [[default variable]] in a statement, assigning a variable a value from another that is not a default variable. There are instances where you can access non default variables in [[Static Function|Static functions]], if the variable is part of the function definition, a local variable.<br /> <br /> ===Mismatch===<br /> ;Error, Call to '[[function|FUNCTIONNAME]]'&lt;nowiki&gt;:&lt;/nowiki&gt; type mismatch in parameter NUMBER<br /> ;Error, Type mismatch in Call to '[[function|FUNCTIONNAME]]', parameter ''number'' : the [[type]] of [[variable]] being passed to the function <br /> parameter number specified is incorrect.<br /> <br /> ;Error, Type mismatch in '=' : you probably wanted to make a [[bool]]ean compare &quot;==&quot; but ended up assigning something to a variable.<br /> <br /> ;Error, [[Const]] mismatch with '+' :<br /> <br /> ;Error, Type mismatch in array index :<br /> <br /> ==Warnings==<br /> ;Warning, Unresolved reference to Class 'class name' :<br /> <br /> ;Warning, Unresolved reference to '''object'''<br /> <br /> ;Warning, Function parameter&lt;nowiki&gt;:&lt;/nowiki&gt; 'function name' conflicts with previously defined field in 'class name' :<br /> <br /> ;Warning, ''[[function]]''&lt;nowiki&gt;:&lt;/nowiki&gt; Missing return value : a function with a return type has no 'return' that could be reached, for example if the only return is in an if-block and thus can't be accessed in all cases.<br /> <br /> ;Warning, Using a non-qualified name (would have) found&lt;nowiki&gt;:&lt;/nowiki&gt; object package.group.group.name<br /> <br /> ;Warning, '''friendly operator name'''_'''TypeNameTypeName'''&lt;nowiki&gt;:&lt;/nowiki&gt; Missing return value : This is similar to function not having a return value but is the operator version, UScript supports operator overloading so the 'friendly operator name''' will be a reference to a table within the engine $ being Concat as an example.<br /> <br /> ;Warning, Class ''ClassName'' can't bind to DLL ''DLLPath'' : The DLL that should be bound to either doesn't exist in the Win32\UserCode directory or was compiled wrong, for example on another system with debug settings (they only work on the system they were compiled on).<br /> <br /> ;Warning, Variable declaration&lt;nowiki&gt;:&lt;/nowiki&gt; 'VARIABLENAME' conflicts with previously defined field in 'CLASSNAME' : You should not redefine existing variables in subclasses using the ''var'' or ''local'' declaration since the variable is already available from the parent class.<br /> <br /> ;Warning, 'identifier' obscures 'identifier' in base class 'OBJECTNAME' :<br /> <br /> ===Local Variables===<br /> ;Warning, 'variable name' &lt;nowiki&gt;:&lt;/nowiki&gt; unreferenced local variable : A variable is declared within a function and never assigned a value.<br /> <br /> ;Warning, 'variable name'&lt;nowiki&gt;:&lt;/nowiki&gt; unused local variable : A local variable was declared and maybe the function even assigns a value to it, but the value is never accessed elsewhere in the function. (Functions returning a value need not assign that value to a variable, in case you were wondering.)<br /> <br /> ;Warning, 'variable name' &lt;nowiki&gt;:&lt;/nowiki&gt; local variable used before assigned a value : A variable is referenced before it is assigned a value, which means it'll return the default value for that type, whether that is what you are looking for or not. This could be conditionally incorrect, the compiler doesn't check to see in which order things are carried out so it could in fact be wrong, hence only a warning.<br /> <br /> ===Replication===<br /> ;Warning, Reliabe/Unreliable keywords are no longer used in 'replication {}': Those keywords only apply to function replication and are function modifiers in {{UE3}}.<br /> <br /> ===Default Properties===<br /> ;Warning, Import failed for 'variable name'&lt;nowiki&gt;:&lt;/nowiki&gt; property is config (Check to see if the property is listed in the DefaultProperties. It should only be listed in the specific .ini/.int file) : It was tried to assign a default value to a variable that was declared [[config]]. Such a variable is supposed to read it's value always from the associated [[udn3:ConfigurationFiles|INI]] file, so it doesn't make sense to assign it in code and not there.<br /> <br /> ;Warning, Unknown property in defaults&lt;nowiki&gt;:&lt;/nowiki&gt; 'line from defaultproperties block' : A property in the defaults is not a defined variable.<br /> <br /> ;Warning, Invalid property value in defaults&lt;nowiki&gt;:&lt;/nowiki&gt; ''property''=''value'' : A property in the defaults is not a defined variable.<br /> <br /> ;Warning, redundant data&lt;nowiki&gt;:&lt;/nowiki&gt; 'line from defaultproperties block' : There can only be one assignment for a property per class definition, so you probably have a duplicate in the DefaultProperties.<br /> <br /> ;Warning, ObjectProperty package.class.property&lt;nowiki&gt;:&lt;/nowiki&gt; unresolved reference to object'package.group.object' : The specified object could not be found in the package.<br /> <br /> ;Warning, Unable to parse parameter value '' in defaultproperties array operation&lt;nowiki&gt;:&lt;/nowiki&gt; '''array&lt;struct&gt;'''.add((''member1''='value',''member2='value'))<br /> <br /> ==Failure==<br /> ;Failed to load 'object package.group.name'&lt;nowiki&gt;:&lt;/nowiki&gt; Failed to find object 'object package.group.name'<br /> <br /> [[Category:Compiler]] [[Category:Compiler errors]]</div> 00zX