https://wiki.beyondunreal.com/w/api.php?action=feedcontributions&user=GreatEmerald&feedformat=atom Unreal Wiki - User contributions [en] 2017-11-18T03:14:45Z User contributions MediaWiki 1.25.1 https://wiki.beyondunreal.com/Legacy:UnrealEd_Console?diff=34521 Legacy:UnrealEd Console 2009-07-02T15:23:32Z <p>GreatEmerald: /* StaticMesh Commands */</p> <hr /> <div>Commands for [[Legacy:UnrealEd 3|UnrealEd 3]]'s [[Legacy:Console Bar|Console Bar]]. See also [[Legacy:UnrealEd 2 Console|UnrealEd 2 Console]].<br /> <br /> [[Image:Legacy_interface.Ed3.console.png|center|UnreaEd 3 console bar]]<br /> <br /> The commands can be entered either upper case or lower case. The list of previously used commands (in the current session) are saved in a drop down list, that can be conveniently re-selected (Click &gt;&gt; Enter), so commonly used commands can be quickly re-activated. Be sure that the correct object is selected before entering command. Also, tool bar buttons can be user created for any of the commands listed here. Many of these commands are seldom used, but can be handy when making large scale systemic alterations to a level (numerous repeat operations).<br /> <br /> Commands can be bound to [[Legacy:Custom Toolbox Buttons|Custom Toolbox Buttons]] or keys. See [[Legacy:Binding Editor Commands|binding editor commands]]. See also [[Legacy:UnrealEd Interface|UnrealEd interface]].<br /> <br /> Look for lines in Editor.log that start with &quot;Cmd:&quot; to find out about more possibly interesing console commands.<br /> <br /> ==Actor Commands==<br /> ; ACTOR REPLACE : beware of this adding extra properties you don't want! See [http://forums.beyondunreal.com/showthread.php?threadid=146410 146410]<br /> <br /> ==Brush Commands ==<br /> ; BRUSH MERGEPOLYS : Merge coplanar polygons on a brush<br /> ; BRUSH SEPARATEPOLYS : Separate coplanar polygons on a brush<br /> <br /> ==Fluid Commands ==<br /> ; FLUID REBUILD : ?<br /> <br /> ==Light Commands ==<br /> ; LIGHT APPLY SELECTED= CHANGED= : Rebuild lights<br /> <br /> ==Map Commands ==<br /> ; MAP SENDTO SWAP : Swap order of TWO SELECTED brushes<br /> ; MAP SAVEPOLYS FILE= MERGE= : Seems to be exporting the polys only<br /> ; MAP CHECK : Tools -&gt; Check Map for errors<br /> ; MAP SCALE FACTOR= ADJUSTLIGHTS= SCALESPRITES= SCALELOCATIONS= SCALECOLLISION= : Tools -&gt; Scale Map<br /> <br /> ==Paths Commands ==<br /> ; PATHS REVIEW : Tools -&gt; Review paths<br /> <br /> ===Select Commands ===<br /> ; ''MAP SELECT ADDS'' : selects all additive brushes in the map <br /> ; ''MAP SELECT FIRST'' : select the first created brush in the level <br /> ; ''MAP SELECT LAST'' : select the last created brush in the level <br /> ; ''MAP SELECT NONSOLIDS'' : selects all nonsolid brushes in the map <br /> ; ''MAP SELECT SEMISOLIDS'' : selects all semisolid brushes in the map <br /> ; ''MAP SELECT SUBTRACTS'' : selects all subtractive brushes in the map <br /> ; ''SELECT NONE'' : Deselect any and all selected actors (it is a common error to inadvertently select an actor when moving mouse across one of the view screens). <br /> <br /> ; ''ACTOR SELECT ALL'' : selects all brushes / actors within the map <br /> ; ''ACTOR SELECT DELETED ???'' : <br /> ; ''ACTOR SELECT INSIDE'' : selects all brushes / actors within the builder brush <br /> ; ACTOR SELECT INVERT : inverts the state of selected to unselected or vise versa <br /> ; ACTOR SELECT NONE : deselect the selected actors <br /> ; ''ACTOR SELECT OFCLASS CLASS=&lt;CLASS&gt;'' : selects all actors of a class<br /> ; ''ACTOR SELECT OFSUBCLASS CLASS=&lt;CLASS&gt;'' : selects all actors of a class or subclasses. Eg use with &quot;TournamentWeapon&quot; to select all weapons.<br /> <br /> ==StaticMesh Commands ==<br /> ; STATICMESH FROM SELECTION PACKAGE= NAME= GROUP= : Converts brush to static mesh<br /> ; STATICMESH TO BRUSH : Converts staticmesh to brush<br /> ; STATICMESH REBUILD : Rebuilds the Static Mesh, which is currently selected in the 3D viewport.<br /> ; STATICMESH ALLREBUILD : ?<br /> ; STATICMESH SMOOTH : Rebuilds the Static Mesh, which is currently selected in the 3D viewport, and makes it smoother. Very useful when converting [[Brush]]es to [[Static Mesh]]es.<br /> ; STATICMESH UNSMOOTH : Rebuilds the Static Mesh, which is currently selected in the 3D viewport, and makes it sharper. Useful when the Static Mesh is too smooth.<br /> ; STATICMESH SAVEBRUSHASCOLLISION: Save selected brush as collision for staticmesh<br /> <br /> ==Poly Commands==<br /> ; POLY BEVEL DEPTH= BEVEL= : Context Menu -&gt; Bevel<br /> ; POLY EXTRUDE DEPTH= : Context Menu -&gt; Extrude<br /> ; POLY SET SETFLAGS= : Set polyflags<br /> ; POLY SET CLEARFLAGS= : Clear polyflags<br /> ; POLY SET TEXTURE= : Set Texture<br /> <br /> ==Stat Commands==<br /> ; LSTAT : Lightmap stats<br /> ; STAT ''foo'' : display different statistics about the display, where ''foo'' is one of...<br /> ;* ALL &amp;ndash; toggles display of all categories<br /> ;* ANIM &amp;ndash; toggles animation statistics display<br /> ;* AUDIO &amp;ndash; toggles audio statistics display<br /> ;* DEFAULT &amp;ndash; Resets all displays to default visibility<br /> ;* FPS &amp;ndash; toggles framerate statistics display<br /> ;* GAME &amp;ndash; toggles game statistics display<br /> ;* HARDWARE &amp;ndash; toggles hardware statistics display<br /> ;* HISTOGRAPH &amp;ndash; toggles histograph statistics display<br /> ;* LIGHT &amp;ndash; toggles dynamic light statistics display<br /> ;* MATINEE &amp;ndash; toggles matinee statistics display<br /> ;* NET &amp;ndash; toggles network statistics display<br /> ;* NONE &amp;ndash; turns off all displays<br /> ;* RENDER &amp;ndash; toggles rendering statistcs display<br /> ;* RESET &amp;ndash; same as DEFAULT<br /> ;* XBOXMEM &amp;ndash; toggles XBox memory statistics display<br /> <br /> &quot;POLY TEXSCALE&quot; and &quot;POLY TEXPAN&quot; work. ([[Legacy:TexAlign|TexAlign]] Works in UED3 :))<br /> <br /> ==No longer works ==<br /> <br /> Commands from UEd 2 that don't work in 3. Anyone know if there are new equivalents?<br /> <br /> * POLY TEXINFO<br /> * POLY TEXALIGN FLOOR and POLY TEXALIGN WALLDIR <br /> <br /> ==Related Topics ==<br /> * [[Legacy:UnrealEd Interface|UnrealEd Interface]]<br /> <br /> [[Category:Legacy Mapping|{{PAGENAME}}]]</div> GreatEmerald https://wiki.beyondunreal.com/User:GreatEmerald?diff=34445 User:GreatEmerald 2009-05-27T11:12:55Z <p>GreatEmerald: ;)</p> <hr /> <div>{{softredirect|Liandri:User:GreatEmerald}}</div> GreatEmerald https://wiki.beyondunreal.com/Talk:Typecasting?diff=34444 Talk:Typecasting 2009-05-27T11:11:39Z <p>GreatEmerald: /* Legacy */ new section</p> <hr /> <div>== vector-&gt;bool conversion ==<br /> <br /> Meh, yes, that was obvious, wasn't it? Next time, comment on the talk page, please. —[[User:Wormbo|Wormbo]] 09:57, 26 December 2008 (UTC)<br /> <br /> == Legacy ==<br /> <br /> There's a [[Legacy:Typecasting]] and this page. Shouldn't one be changed to a redirect to another one? Probably Legacy to here? --[[User:GreatEmerald|GreatEmerald]] 11:11, 27 May 2009 (UTC)</div> GreatEmerald https://wiki.beyondunreal.com/Legacy_talk:InputKeyMap?diff=34000 Legacy talk:InputKeyMap 2009-02-07T20:54:50Z <p>GreatEmerald: Bad formatting</p> <hr /> <div>This page seems to have lost formatting for some reason (probably code tags or too many columns). This should be rewritten I guess. --[[User:GreatEmerald|GreatEmerald]] 20:54, 7 February 2009 (UTC)</div> GreatEmerald https://wiki.beyondunreal.com/UnrealScript?diff=33960 UnrealScript 2009-01-20T17:48:42Z <p>GreatEmerald: 19, not 18</p> <hr /> <div>:''See [[UnrealScript overview]] for all Unreal Wiki topics about learning and using UnrealScript.''<br /> <br /> '''UnrealScript''' is the [[Unreal Engine]]'s [[wp:scripting language|scripting language]]. It is a [[wp:strongly-typed|strongly-typed]], [[wp:object-oriented|object-oriented]] programming language very similar to [[wp:Java (programming language)|Java]] and [[wp:C++|C++]]. If you want to learn UnrealScript, you should make yourself familiar with the fundamental concepts of object-oriented programming. It definitely helps already to know another programming language, preferably one that is strongly-typed and object-oriented as well.<br /> <br /> ==Anatomy of an UnrealScript source file==<br /> A typical UnrealScript source file might look similar to the following example from [[Unreal Tournament 2004|UT2004]]:<br /> &lt;uscript line&gt;<br /> class DMRosterBeatTeam extends xDMRoster;<br /> <br /> /*<br /> * Roster for deathmatch levels.<br /> * Each level has its own roster. <br /> * This special roster subclass is used to populate an enemy team with the<br /> * player's selected teammates.<br /> */<br /> <br /> // called immediately after spawning the roster class<br /> function Initialize(int TeamBots)<br /> {<br /> local GameProfile GP;<br /> local int i, j;<br /> <br /> GP = Level.Game.CurrentGameProfile;<br /> if ( GP == none ) {<br /> Log(&quot;DMRosterBeatTeam::Initialized() failed. GameProfile == none.&quot;);<br /> return;<br /> }<br /> <br /> // create roster entries for single player's teammates<br /> for ( i=0; i&lt;GP.PlayerTeam.Length; i++ )<br /> {<br /> j = Roster.Length;<br /> Roster.Length = Roster.Length + 1;<br /> Roster[j] = class'xRosterEntry'.Static.CreateRosterEntryCharacter(GP.PlayerTeam[i]);<br /> }<br /> <br /> // remaining team-specific info, might be used in menus at some point<br /> TeamName = GP.TeamName;<br /> TeamSymbolName = GP.TeamSymbolName;<br /> <br /> super.Initialize(TeamBots);<br /> }<br /> <br /> defaultproperties<br /> {<br /> TeamName=&quot;Death Match&quot;<br /> TeamSymbolName=&quot;TeamSymbols_UT2003.Sym01&quot;<br /> }<br /> &lt;/uscript&gt;<br /> As you can see, UnrealScript is a [[wp:curly brace programming language|curly brace programming language]]: blocks of code are enclosed in curly braces. Each code statement is either followed by a block or terminated by a semicolon.<br /> <br /> * Line 1 contains the mandatory [[class declaration]]. This file contains a class with the name [[UE2:DMRosterBeatTeam (UT2004)|DMRosterBeatTeam]]. The [[extends clause]] specifies that this class [[wp:Inheritance (computer science)|inherits]] attributes, methods and other class members from a class with the name [[UE2:xDMRoster (UT2004)|xDMRoster]], which is said to be the &quot;super class&quot; or &quot;parent class&quot; of DMRosterBeatTeam.<br /> * Lines 3 to 8 are an example for a [[Comments#Block comments|block comment]]. The important parts here are the characters &lt;code&gt;/*&lt;/code&gt; on line 3 and &lt;code&gt;*/&lt;/code&gt; on line 8. Everything between them is ignored by the UnrealScript compiler.<br /> * Line 10 contains another type of comment, an end-of-line comment or just [[Comments#Line comments|line comment]]. Outside of block comments this type of comment starts with the characters &lt;code&gt;//&lt;/code&gt; and continues to the end of the same line. As with block comments, everything on the line following the double slashes is ignored by the compiler.<br /> * Line 11 contains a [[Function declarations|declaration]] for an [[instance function]]. The function's name is specified to be &quot;Initialize&quot; and the function has one parameter of type [[types#int|int]] called &quot;TeamBots&quot;. The block of code on lines 12 to 35 is the function's &quot;body&quot;. Some functions do not have a body. The declaration of those functions is terminated by a semicolon instead.<br /> * The line 13 declares a local variable of [[Types#Object|type]] [[UE2:GameProfile (UT2004)|GameProfile]], a class defined elsewhere, and gives it the name &quot;GP&quot;. The variable is initially empty.<br /> * Line 16 assigns a value to the local variable &quot;GP&quot; so it no longer is empty. To determine the value, the function accesses the variable &quot;Level&quot;. This variable is not declared here, but in a parent class of DMRosterBeatTeam. The object referenced by &quot;Level&quot; has a variable of its own, called &quot;Game&quot;, whose contained object in turn has a variable called &quot;CurrentGameProfile&quot;. The content of that variable is assigned to our local &quot;GP&quot; variable.<br /> * On line 17 there's an [[If statement]] with a block of code that ends on line 20. That block of code is only executed if the expression in the parentheses following the keyword ''If'' returns the value ''True''. The ''If'' condition checks, whether the content of the local &quot;GP&quot; variable equals the special value ''None'', which simply means &quot;empty&quot;.<br /> * Lines 18 and 19 are only executed if the condition (here: &quot;GP is empty&quot;) is true. So, if GP is empty, first the function with the name &quot;Log&quot; is called to write a message to the log file, then the [[Return statement]] exits the function. In this case the code after the ''If'' block will not be executed. In other cases the ''If'' block might not contain a ''Return'' and code execution would continue after the ''If'' block.<br /> * On line 23 there's a typical [[For loop]] that iterates over a [[dynamic array]]. The code on lines 25 to 27 is executed for each element of the &quot;PlayerTeam&quot; array in the object stored in the local &quot;GP&quot; variable. Notice how the ''If'' statement on line 17 ensured that &quot;GP&quot; actually contains an object.<br /> * Line 34 calls another version of the &quot;Initialize&quot; function, that was declared in a parent class of DMRosterBeatTeam, passing on the TeamBots parameter. This call tells us, that the &quot;Initialize&quot; function of the DMRosterBeatTeam class actually [[wp:Method overriding (programming)|overrides]] a function with the same name in its parent class xDMRoster or another parent class further up the class hierarchy.<br /> * Lines 37 to 41 are the [[defaultproperties]] block. This block defines default values for class variables. Both &quot;TeamName&quot; and &quot;TeamSymbolName&quot; are inherited from a parent class.<br /> <br /> {{navbox unrealscript}}</div> GreatEmerald https://wiki.beyondunreal.com/Array?diff=33704 Array 2008-12-15T18:42:11Z <p>GreatEmerald: Fixed the link.</p> <hr /> <div>#REDIRECT [[Legacy:Dynamic Array]]</div> GreatEmerald https://wiki.beyondunreal.com/Legacy_talk:Brush_Sinking?diff=33483 Legacy talk:Brush Sinking 2008-11-30T17:56:16Z <p>GreatEmerald: </p> <hr /> <div>== Flickering surfaces? ==<br /> <br /> This method doesn't create flickering surfaces? I mean, the engine should get quite confused, there are two textures to render at the same spot. Just like with movers, you can't use this method with them. Any explanations? --GreatEmerald<br /> <br /> :Well, brush sinking creates fixed BSP geometry, so there aren't two surfaces to display, but only one. The Unreal Engine doesn't have any flickering problems with BSP because it always displays the last brush's (as per brush order) surfaces. Mover's aren't part of the BSP tree, so the engine needs to figure out their drawing order dynamically, which causes flickering. If you look closely, you will find brush sinking in all generations of the Unreal Engine. It's even used on VCTF-Suspense in UT3! —[[User:Wormbo|Wormbo]] 11:24, 30 November 2008 (UTC)<br /> <br /> ::Interesting! But then why didn't epic sink the floor tiles on Na Pali Haven map in Unreal 1, near the gate? Instead, they used non-solid sheets that disappear after rebuilding! --[[User:GreatEmerald|GreatEmerald]] 13:12, 30 November 2008 (UTC)<br /> <br /> ::No idea. Maybe they weren't aware of this trick back when they designed the Unreal levels. There is an amazingly low number of UT maps using this as well. I've ported the [[brush sinking]] tutorial to the main name space now, btw. —[[User:Wormbo|Wormbo]] 14:39, 30 November 2008 (UTC)<br /> <br /> :::Ooh, nice. Though some more maps could be given as examples, like DM-Gothic for UT99 or ONS-Torlan for subtractive sinking. --[[User:GreatEmerald|GreatEmerald]] 17:56, 30 November 2008 (UTC)</div> GreatEmerald https://wiki.beyondunreal.com/Legacy_talk:Brush_Sinking?diff=33468 Legacy talk:Brush Sinking 2008-11-30T13:12:32Z <p>GreatEmerald: </p> <hr /> <div>== Flickering surfaces? ==<br /> <br /> This method doesn't create flickering surfaces? I mean, the engine should get quite confused, there are two textures to render at the same spot. Just like with movers, you can't use this method with them. Any explanations? --GreatEmerald<br /> <br /> :Well, brush sinking creates fixed BSP geometry, so there aren't two surfaces to display, but only one. The Unreal Engine doesn't have any flickering problems with BSP because it always displays the last brush's (as per brush order) surfaces. Mover's aren't part of the BSP tree, so the engine needs to figure out their drawing order dynamically, which causes flickering. If you look closely, you will find brush sinking in all generations of the Unreal Engine. It's even used on VCTF-Suspense in UT3! —[[User:Wormbo|Wormbo]] 11:24, 30 November 2008 (UTC)<br /> <br /> ::Interesting! But then why didn't epic sink the floor tiles on Na Pali Haven map in Unreal 1, near the gate? Instead, they used non-solid sheets that disappear after rebuilding! --[[User:GreatEmerald|GreatEmerald]] 13:12, 30 November 2008 (UTC)</div> GreatEmerald https://wiki.beyondunreal.com/Legacy_talk:Brush_Sinking?diff=33467 Legacy talk:Brush Sinking 2008-11-30T13:12:02Z <p>GreatEmerald: </p> <hr /> <div>== Flickering surfaces? ==<br /> <br /> This method doesn't create flickering surfaces? I mean, the engine should get quite confused, there are two textures to render at the same spot. Just like with movers, you can't use this method with them. Any explanations? --GreatEmerald<br /> <br /> :Well, brush sinking creates fixed BSP geometry, so there aren't two surfaces to display, but only one. The Unreal Engine doesn't have any flickering problems with BSP because it always displays the last brush's (as per brush order) surfaces. Mover's aren't part of the BSP tree, so the engine needs to figure out their drawing order dynamically, which causes flickering. If you look closely, you will find brush sinking in all generations of the Unreal Engine. It's even used on VCTF-Suspense in UT3! —[[User:Wormbo|Wormbo]] 11:24, 30 November 2008 (UTC)<br /> <br /> ::Interesting! But then why didn't epic sink the floor tiles on Na Pali Haven map, near the gate? Instead, they used non-solid sheets that disappear after rebuilding! --[[User:GreatEmerald|GreatEmerald]] 13:12, 30 November 2008 (UTC)</div> GreatEmerald https://wiki.beyondunreal.com/Legacy_talk:Brush_Sinking?diff=33464 Legacy talk:Brush Sinking 2008-11-29T23:59:16Z <p>GreatEmerald: Flickering surfaces?</p> <hr /> <div>== Flickering surfaces? ==<br /> <br /> This method doesn't create flickering surfaces? I mean, the engine should get quite confused, there are two textures to render at the same spot. Just like with movers, you can't use this method with them. Any explanations?</div> GreatEmerald https://wiki.beyondunreal.com/UE2:UnrealEd_Tip_of_the_Day?diff=33150 UE2:UnrealEd Tip of the Day 2008-10-18T16:39:58Z <p>GreatEmerald: New page: These tips were taken directly from UnrealEd's 3.0 (Unreal II build) Tip of the Day initialisation files. They all start with the words &quot;Did you kno...</p> <hr /> <div>These tips were taken directly from UnrealEd's 3.0 ([[Legacy:Unreal 2|Unreal II]] build) Tip of the Day [[Legacy:INI File|initialisation files]]. They all start with the words &quot;Did you know?&quot;.<br /> <br /> <br /> *You can add brushes with CTRL+A and subtract them with CTRL+S?<br /> *If you right click the &quot;Add Mover&quot; button you can select from a menu of mover types?<br /> *If you right click the &quot;Add Volume&quot; button you can select from a menu of volume types?<br /> *If you right click the toolbar at the top of a viewport, a menu will appear allowing you to control the appearance of that viewport?<br /> *You can toggle the drawing of static meshes with the &quot;W&quot; key?<br /> *You can toggle the drawing of actors with the &quot;H&quot; key?<br /> *You can toggle the drawing of the builder brush with the &quot;B&quot; key?<br /> *You should wear pants while building levels?<br /> *You shouldn't make Shaders that reference themselves?</div> GreatEmerald https://wiki.beyondunreal.com/UE3_talk:UnrealEd_Tip_of_the_Day?diff=33149 UE3 talk:UnrealEd Tip of the Day 2008-10-18T16:29:39Z <p>GreatEmerald: /* UE2 tips? */</p> <hr /> <div>Nice page, Wormbo. Fine job. :) --[[User:SuperApe|SuperApe]] 23:17, 29 September 2008 (UTC)<br /> <br /> == UE2 tips? ==<br /> <br /> What about UE2 UnrealEd tips of the day? There are a few in all UE2 games (UnrealEdTips.ini). Just that this is marked as UE3? --[[User:GreatEmerald|GreatEmerald]] 19:16, 17 October 2008 (UTC)<br /> <br /> It's marked as UE3 because it ''is'' UE3. ;-) Just create a corresponding page for them: [[UE2:UnrealEd Tip of the Day]] &amp;mdash; [[User:Wormbo|Wormbo]] 07:33, 18 October 2008 (UTC)<br /> <br /> :Oh :D But then why there is a section &quot;Unreal Tournament 3&quot;? I mean, all UE3 editors should have the same tips? --[[User:GreatEmerald|GreatEmerald]] 16:29, 18 October 2008 (UTC)</div> GreatEmerald https://wiki.beyondunreal.com/Legacy_talk:Setting_Up_UnrealScript?diff=33148 Legacy talk:Setting Up UnrealScript 2008-10-18T16:28:17Z <p>GreatEmerald: </p> <hr /> <div>==Remake Scripting Environment section?==<br /> The ''Choose a scripting environment'' section is quite ugly now. There are countless ways to set it up - not only 4 like it looks like now. Things like [http://unreal.student.utwente.nl/ UnCodeX online source] is a very nice alternative to actually having to get the UnCodeX program itself. [[MonkeyBuild]] could also be mentioned as a good alternative to UMake. And also it could then be converted to a usual, non-legacy page. --[[User:GreatEmerald|GreatEmerald]] 19:12, 17 October 2008 (UTC)<br /> <br /> All the pages in the &quot;Legacy&quot; namespace should be remade for the regular namespaces. &amp;mdash; [[User:Wormbo|Wormbo]] 07:34, 18 October 2008 (UTC)<br /> <br /> :Indeed, but it's a hell loads of data that needs to be remade... And, as it's said in [[Unreal Wiki:Namespaces]], you can't just copy over stuff... So it's even more to do. Yet I could convert some if I had some free time. --[[User:GreatEmerald|GreatEmerald]] 16:28, 18 October 2008 (UTC)</div> GreatEmerald https://wiki.beyondunreal.com/UE3_talk:UnrealEd_Tip_of_the_Day?diff=33140 UE3 talk:UnrealEd Tip of the Day 2008-10-17T19:16:41Z <p>GreatEmerald: /* UE2 tips? */ new section</p> <hr /> <div>Nice page, Wormbo. Fine job. :) --[[User:SuperApe|SuperApe]] 23:17, 29 September 2008 (UTC)<br /> <br /> == UE2 tips? ==<br /> <br /> What about UE2 UnrealEd tips of the day? There are a few in all UE2 games (UnrealEdTips.ini). Just that this is marked as UE3? --[[User:GreatEmerald|GreatEmerald]] 19:16, 17 October 2008 (UTC)</div> GreatEmerald https://wiki.beyondunreal.com/Legacy_talk:Setting_Up_UnrealScript?diff=33139 Legacy talk:Setting Up UnrealScript 2008-10-17T19:12:40Z <p>GreatEmerald: New page: ==Remake Scripting Environment section?== The ''Choose a scripting environment'' section is quite ugly now. There are countless ways to set it up - not only 4 like it looks like now. Thing...</p> <hr /> <div>==Remake Scripting Environment section?==<br /> The ''Choose a scripting environment'' section is quite ugly now. There are countless ways to set it up - not only 4 like it looks like now. Things like [http://unreal.student.utwente.nl/ UnCodeX online source] is a very nice alternative to actually having to get the UnCodeX program itself. [[MonkeyBuild]] could also be mentioned as a good alternative to UMake. And also it could then be converted to a usual, non-legacy page. --[[User:GreatEmerald|GreatEmerald]] 19:12, 17 October 2008 (UTC)</div> GreatEmerald https://wiki.beyondunreal.com/Legacy:Application?diff=33138 Legacy:Application 2008-10-17T19:01:40Z <p>GreatEmerald: /* Compilers */ Mentioned MonkeyBuild</p> <hr /> <div>This page lists '''applications''' which are useful for working with the [[Legacy:Unreal Engine|Unreal engine]]. Some have been designed specifically for this purpose, some we just recommend as handy to have.<br /> <br /> This page is a forward index, split into sub-pages by type. For a flat list of all pages about applications, see [[:Category:Legacy Application]].<br /> <br /> See also [[Legacy:Third-Party Components|Third-Party Components]] for external components that can be added to maps.<br /> <br /> ==Bundled ==<br /> <br /> Bundled in with [[Legacy:UT2003|UT2003]]:<br /> * [[Legacy:UnrealEd 3|UnrealEd 3]], of course (older [[Legacy:UnrealEd Versions|UnrealEd Versions]] with older games)<br /> * [[Legacy:Maya|Maya]]<br /> * [[Legacy:UDebugger|UDebugger]]<br /> * [[Legacy:UPaint|UPaint]] - Make skins in 3D! Buggy though :(<br /> * [[Legacy:Ucc|Ucc]] &amp;ndash; Unreal's general-purpose command line application.<br /> <br /> ==Third party==<br /> * [[Legacy:Mapping Application|Mapping Application]]<br /> * [[Legacy:Modelling Application|Modelling Application]]<br /> * [[Legacy:Model Conversion Application|Model Conversion Application]]<br /> * [[Legacy:Graphics Application|Graphics Application]]<br /> * [[Legacy:IDE|IDE]]<br /> * [[Legacy:Text Editor|Text Editor]]<br /> * [[Legacy:Documentation Tool|Documentation Tool]]<br /> <br /> ''suggest more grouping pages''<br /> <br /> ===Compilers ===<br /> <br /> * [[Legacy:UMake|UMake]] &amp;ndash; Wrapper tool for &quot;ucc make&quot; with a bunch of additional convenience options<br /> * [[MonkeyBuild]] &amp;ndash; Sequencer for &quot;ucc make&quot; and other UnrealScript development tasks<br /> <br /> ===Documentation ===<br /> * [[Legacy:UClasses|UClasses]] &amp;ndash; Stand-alone Unreal class browser.<br /> * [[Legacy:UnCodeX|UnCodeX]] &amp;ndash; Class browser and document generator<br /> * [[Legacy:UnDox|UnDox]]<br /> * [[Legacy:UnDox Revisited|UnDox Revisited]]<br /> <br /> ===Tools ===<br /> * [[Legacy:CVS|CVS]]<br /> * [[Legacy:Umod Wizard|umod Wizard]] &amp;ndash; Creates UMod installers.<br /> * [[Legacy:UnrVarpu|UnrVarpu]] &amp;ndash; C++ class library (sources included) for decoding Unreal packages<br /> <br /> ==Text Editors ==<br /> <br /> see [[Legacy:Text_Editor|Text_Editor]]<br /> <br /> ==Coding utilities ==<br /> <br /> ==Music utilities ==<br /> * [[Legacy:ModPlug Tracker|ModPlug Tracker]] &amp;ndash; Tool to edit/create Unreal's .umx files.<br /> <br /> ==Sound Editing/Recording tools ==<br /> * [[Legacy:GoldWave|GoldWave]]<br /> <br /> ==General utilities ==<br /> * [[Legacy:Ucc|Ucc]] &amp;ndash; Unreal's general-purpose command line application.<br /> * [[Legacy:Umod Wizard|umod Wizard]] &amp;ndash; Creates UMod installers.<br /> * [[Legacy:UMod Browser|UMod Browser]] &amp;ndash; Extract the contents of any Unreal Modules (UMOD)<br /> * [[Legacy:UMOD Extractor|UMOD Extractor]] &amp;ndash; Extract the contents of a UMod.<br /> * [[Legacy:UT Package Tool|UT Package Tool]] &amp;ndash; Examine and decompile the contents of a UT package.<br /> * [[Legacy:UT2Kx Regcheck|UT2Kx Regcheck]] &amp;ndash; Add and manage your UT2k3 win-registry-keys<br /> * [[Legacy:Unreal Tournament 3 Tweaker|Unreal Tournament 3 Tweaker]]<br /> <br /> ==Wheeee! ==<br /> * [[Legacy:Capturing Unreal Video|Capturing Unreal video]]<br /> <br /> See http://w3.one.net/~darkon/cgi-bin/shire-wiki.cgi?UnrealTournament for a perl script that synchronizes map lists.<br /> <br /> ==Comments==<br /> <br /> ===This index===<br /> <br /> It's got to the point where we have SO MANY pages for apps on this wiki. There's official stuff like UPaint, homemade like Umake and UnCodeX, stuff that's not really Unreal related but that we recommend as useful... basically, this [[MeatBall:ForwardIndex]] is becoming too hard to maintain; and it's getting too long to digest. So maybe we should switch to a reverse index and create [[:Category:Legacy Application]]. Keep forward indexes for specific areas, such as [[Legacy:Texture Editing Program|Texture Editing Program]], or [[Legacy:UnrealScript Editors|UnrealScript Editors]]. Any thoughts on this?<br /> <br /> Mych: [[Legacy:Application|Application]] might have subpages, for that matter.<br /> <br /> '''Tarquin:''' here's my plan:<br /> <br /> ====1. type pages====<br /> <br /> Specialized forward indexes for different types of app, such as<br /> * [[Legacy:Texture Editing Program|Texture editing program]]<br /> * [[Legacy:IDE|IDE]]<br /> * [[Legacy:Text Editor|Text Editor]]<br /> * [[Legacy:Model Editor|Model editor]]<br /> <br /> ... and so on. These names can be easily back-linked from pages for specific apps:<br /> <br /> : foo is an [[Legacy:IDE|IDE]] bla bla bla<br /> <br /> ====2 parent page====<br /> <br /> This page remains a parent page that leads to the above type pages. any apps that don't get listed on a type page stay here.<br /> <br /> ====3 reverse index====<br /> <br /> Use [[:Category:Legacy Application]] so we can generate a flat list of all applications discussed on the wiki<br /> <br /> How does that sound?<br /> <br /> '''Tarquin:''' no opinions? I'll take that as a unanimous yes then<br /> <br /> '''Wormbo:''' Sounds good to me, so if you need an explicit &quot;yes&quot;, you got mine. :)<br /> <br /> '''Ch3z:''' Those Type Pages maybe need a sufix like, &quot;TextureEdit_Apps&quot;, &quot;IDE_Apps&quot;, &quot;TextEdit_Apps&quot;, &quot;ModelEdit_Apps&quot;, &quot;ModelConvert_Apps&quot;? Or maybe a prefix?<br /> <br /> '''Bob_The_Beheader:''' I've noticed when adding a program to the [[Legacy:Graphics_Application|Graphics_Application]] page, some of the programs already listed don't have there own page, and therefore can't be listed on the [[Legacy:Category_Application|Category_Application]] page. Should seperate pages be made for these apps, or are users expected to follow the link to the [[Legacy:Application|Application]] page?<br /> <br /> '''Tarquin:''' Depends if there's anything interesting to say about the app. is [[Legacy:Application|Application]] not prominent enough?<br /> <br /> '''Bob_The_Beheader:''' Tarquin is what ive just done with adding the link to the Text Editor page what you are talking about for Type Pages in step one?</div> GreatEmerald https://wiki.beyondunreal.com/Legacy:Compiling_With_UCC?diff=33137 Legacy:Compiling With UCC 2008-10-17T18:59:18Z <p>GreatEmerald: Mentioned MonkeyBuild</p> <hr /> <div>'''UCC''' is the [[Legacy:UnrealScript|UnrealScript]] compiler. This page explains how to compile with the '''ucc make''' command. As an alternative, you may want to consider using tools like [[Legacy:UMake|UMake]] or [[MonkeyBuild]], which makes the whole thing much simpler. If you are a cygwin geek, you might like use [[Legacy:GnuMake|GnuMake]].<br /> <br /> ==Compiling==<br /> <br /> So, you've spent some time lovingly crafting your mod using well laid out, commented, and maintainable Unreal Script. You have done the decent thing and placed your .uc class files in /UnrealTournament/YourModPackage/Classes. The big moment approaches - will it compile first time?<br /> <br /> Well, there's only one way to find out, and that's to do it. At the very least you need to edit your [[Legacy:Game Ini File|Game Ini File]] and add your package name to the list of editable packages. Search the ini file for a list of lines starting with EditPackages. Add your package to the bottom of the list like so:<br /> <br /> EditPackages=YourModPackage<br /> <br /> Save the changes. You will now be able to compile your mod using the following command:<br /> <br /> ucc make<br /> <br /> By default this command examines all of the EditPackages lines searching for packages which have no corresponding .u (a compiled package file) files and attempts to compile them. If you have previously built YourModPackage and you have updated the code the build command will not recompile your package unless your first delete it. It's well worth creating a small batch file to do this for you, e.g.<br /> <br /> cd C:\UnrealTournament\System<br /> del YourModPackage.u<br /> ucc make<br /> <br /> One of the things that's really easy to forget is the [[Legacy:INT File|INT file]] associated with your new package. This file defines the public classes in the package. Look in any of the [[Legacy:INT File|INT file]]s for examples of this. Remember to include the ''[Public]'' directive at the top of the file though or your mod won't be visible in the UT front end. It's worth keeping a copy of your [[Legacy:INT File|INT file]] in the /UnrealTournament/YourModPackage directory so you don't lose it and always have an up to date version.<br /> <br /> ==Tips==<br /> <br /> To reduce compile time, create the following:<br /> * An ini file, named for example MyProject.ini. Copy UnrealTournament.ini or UT2003.ini and only include those EditPackages entries that your classes depend on.<br /> <br /> * Make a batch file that reads: &lt;br /&gt;&lt;tt&gt;ucc make ini=MyProject.ini&lt;/tt&gt;<br /> <br /> Note that to see output you'll still have to run it from the command prompt. ([[Legacy:UMake|UMake]] does all that automatically for you and stores an .ini file called make.ini in your project directory.)<br /> <br /> ===Batch File===<br /> <br /> When I still used UCC Make I made a batch file that looked like this:<br /> COPY MyMod.U *.U_Backup<br /> DEL MyMod.U<br /> UCC MAKE<br /> PAUSE<br /> <br /> This backs up your U file, deletes it, recompiles it, and then PAUSE, &quot;press any key to continue&quot;. This combined with the INI said above here could make a very nice way to compile.<br /> <br /> ===Mod System Batch File for ut2k4===<br /> <br /> Last Updated: 15 January 2006<br /> <br /> Easy to adjust to any mod just input the unreal tournament 2004 directory, the mod name and the package and your off.<br /> <br /> If you want to add extra packages just copy the lines containing %package1% or package1 and replace them with %package2% or package2.<br /> <br /> &lt;uscript&gt;<br /> :init<br /> @echo Off<br /> set utk4dir=&quot;Your Unreal 2k4 Dir&quot;<br /> set utk4sysdir=%utk4dir%system\<br /> <br /> set modname=&quot;Your Mod Name&quot;<br /> set moddir=%utk4dir%%modname%<br /> set modbakdir=%moddir%SysBak\<br /> set modlogdir=%moddir%System\logs\<br /> <br /> set package1=&quot;Your Package Here&quot;<br /> goto bak<br /> <br /> :bak<br /> md %modbakdir%<br /> md %modlogdir%<br /> copy %moddir%*.ucl %modbakdir%*.ucl<br /> copy %moddir%*.int %modbakdir%*.int<br /> copy %moddir%*.u %modbakdir%*.u<br /> echo //-----------------------Old Files Backed Up!------------------------<br /> goto del<br /> <br /> :del<br /> del /q %utk4sysdir%%Package1%.* &gt; nul<br /> del /q %moddir%%Package1%.* &gt; nul<br /> echo //-----------------------Echo Old Files Deleted!----------------------<br /> goto make<br /> <br /> :make<br /> %utk4dir%UCC.exe make -mod=%modname%<br /> copy %utk4dir%ucc.log %modlogdir%%modname%_ucc.log<br /> echo //---------------------------*.u Complete!----------------------------<br /> goto make&amp;int<br /> <br /> :make&amp;int <br /> %utk4Dir%UCC.exe dumpint -mod=%modname% %moddir%%package1%.u<br /> copy %utk4sysdir%ucc.log %modlogdir%%modname%_int.log<br /> copy %utk4sysdir%%package1%.int %moddir%%package1%.int<br /> del %utk4sysdir%%package1%.int<br /> del %utk4sysdir%ucc.log<br /> echo //--------------------------*.int Complete!---------------------------<br /> goto make&amp;ucl<br /> <br /> :make&amp;ucl<br /> %utk4Dir%UCC.exe exportcache -v -mod=%modname% %moddir%%Package1%.u <br /> copy %utk4sysdir%ucc.log %modlogdir%%modname%_ucl.log<br /> del %utk4sysdir%ucc.log<br /> echo //--------------------------*.ucl Complete!---------------------------<br /> goto end<br /> <br /> :end<br /> echo //--------------------------Make Complete!---------------------------<br /> &lt;/uscript&gt;<br /> <br /> ===Another ucc batch file===<br /> <br /> Displays time and result of last compilation, updates window title, restarts with single key press.<br /> <br /> &lt;uscript&gt;<br /> @echo off<br /> :start<br /> title COMPILING :: MyProject<br /> CLS<br /> <br /> Copy UCC_MyProject.log UCC_MyProject_OLD.log<br /> <br /> del MyProject.u<br /> <br /> ucc make -INI=MyProject.ini -LOG=UCC_MyProject.log<br /> if errorlevel 1 goto end<br /> <br /> title OK :: MyProject<br /> findstr /c:&quot;Log file closed&quot; UCC_MyProject.log<br /> <br /> echo.<br /> pause<br /> goto start<br /> <br /> :end<br /> title ERROR :: MyProject <br /> findstr /c:&quot;Log file closed&quot; UCC_MyProject.log<br /> <br /> echo.<br /> pause<br /> goto start<br /> &lt;/uscript&gt;<br /> <br /> ==Related Topics==<br /> * [[Legacy:Setting Up UnrealScript|Setting Up UnrealScript]]<br /> * [[Legacy:Compiler Errors|Compiler Errors]]<br /> * [[Legacy:UMake|UMake]] &amp;ndash; convenient &quot;ucc make&quot; wrapper tool.<br /> * [[MonkeyBuild]] &amp;ndash; another tool for easier script compiling<br /> * [[Legacy:Set Up Package Folders|Set Up Package Folders]]<br /> * [[Legacy:UT2k4 Default.Ini|UT2k4 Default.ini]] &amp;ndash; Using Default.ini to Compile with mod Support.<br /> * [[Legacy:Commandlet|Commandlet]]<br /> <br /> ==Discussion==<br /> <br /> '''Xaklse:''' Very useful, thanks! But I had many problems with your first batch example. In case anyone has problems with it, here goes my batch file. Mine includes a custom key binding and exports cache to a single file.<br /> <br /> &lt;uscript&gt;<br /> :init<br /> @echo Off<br /> set utk4dir=C:\UT2004\<br /> set utk4sysdir=%utk4dir%System\<br /> <br /> set modname=AshuraDarkReign<br /> set moddir=%utk4dir%%modname%\<br /> set modsysdir=%moddir%System\<br /> set modbakdir=%moddir%SYSBAK\<br /> <br /> set package1=AshuraDarkReign<br /> set package2=ADRGame<br /> set package3=ADRMonsters<br /> goto bak<br /> <br /> :bak<br /> md %modbakdir%<br /> copy %modsysdir%*.ucl %modbakdir%*.ucl<br /> copy %modsysdir%*.int %modbakdir%*.int<br /> copy %modsysdir%*.u %modbakdir%*.u<br /> echo //------------------------Old Files Backed Up!------------------------<br /> goto del<br /> <br /> :del<br /> del /q %modsysdir%%package1%.* &gt; nul<br /> del /q %modsysdir%%package2%.* &gt; nul<br /> del /q %modsysdir%%package3%.* &gt; nul<br /> echo //-------------------------Old Files Deleted!-------------------------<br /> goto make<br /> <br /> :make<br /> %utk4sysdir%UCC.exe make -mod=%modname%<br /> copy %utk4sysdir%ucc.log %modbakdir%%modname%_ucc.log<br /> echo //---------------------------*.u Complete!----------------------------<br /> goto make&amp;int<br /> <br /> :make&amp;int<br /> %utk4sysdir%UCC.exe dumpint -mod=%modname% %modsysdir%%package1%.u<br /> %utk4sysdir%UCC.exe dumpint -mod=%modname% %modsysdir%%package2%.u<br /> %utk4sysdir%UCC.exe dumpint -mod=%modname% %modsysdir%%package3%.u<br /> copy %utk4sysdir%ucc.log %modbakdir%%modname%_int.log<br /> copy %utk4sysdir%%package1%.int %modsysdir%%package1%.int<br /> copy %utk4sysdir%%package2%.int %modsysdir%%package2%.int<br /> copy %utk4sysdir%%package3%.int %modsysdir%%package3%.int<br /> del %utk4sysdir%%package1%.int<br /> del %utk4sysdir%%package2%.int<br /> del %utk4sysdir%%package3%.int<br /> del %utk4sysdir%ucc.log<br /> echo [Public]&gt;&gt;%modsysdir%%package1%.int<br /> echo Object=(Class=Class,MetaClass=XInterface.GUIUserKeyBinding,Name=AshuraDarkReign.ADRKeyBindings)&gt;&gt;%modsysdir%%package1%.int<br /> echo //--------------------------*.int Complete!---------------------------<br /> goto make&amp;ucl<br /> <br /> :make&amp;ucl<br /> %utk4sysdir%UCC.exe exportcache -a -mod=%modname% %package1%.u %package1%.ucl<br /> %utk4sysdir%UCC.exe exportcache -a -mod=%modname% %package2%.u %package1%.ucl<br /> %utk4sysdir%UCC.exe exportcache -a -mod=%modname% %package3%.u %package1%.ucl<br /> echo //--------------------------*.ucl Complete!---------------------------<br /> goto end<br /> <br /> :end<br /> copy %utk4sysdir%ucc.log %modbakdir%%modname%_ucl.log<br /> del %utk4sysdir%ucc.log<br /> echo //-----------------------COMPILATION COMPLETED!-----------------------<br /> pause<br /> &lt;/uscript&gt;<br /> <br /> [[:Category:Legacy Tutorial]]<br /> <br /> [[Legacy:Caetgory Toolchain|Caetgory Toolchain]]<br /> [[Category:Legacy Tutorial|{{PAGENAME}}]]</div> GreatEmerald https://wiki.beyondunreal.com/Legacy:Ucc?diff=33136 Legacy:Ucc 2008-10-17T18:56:55Z <p>GreatEmerald: Mentioned MonkeyBuild</p> <hr /> <div>'''UCC''' stands for Unreal Commandline Client or something like that. This is the console application that compiles .uc [[Legacy:UnrealScript|UnrealScript]] files into .u [[Legacy:Package|package]]s.<br /> <br /> You can use it &quot;by hand&quot; in a windows console / DOS box, but it's not terribly user-friendly. We recommend you use one of these tools instead:<br /> <br /> * [[Legacy:UMake|UMake]]<br /> * [[MonkeyBuild]]<br /> * The multi-purpose [[Legacy:UClasses|UClasses]]<br /> * Write batch files (.bat) for running UCC.<br /> <br /> ==ucc under Linux ==<br /> <br /> The Linux version of [[Legacy:UT2003|UT2003]] comes with an executable called ucc, but it's missing the make functionality and a lot of other bits which make the Windows version so useful for developers. Under Linux, it's just the server executable. So what if you want to develop UnrealScript under Linux? Well, if you have a Windows install of UT2003 available, it's simple... just run it under WineX. Make sure your WineX drive configuration matches that which your Windows install of UT2003 is expecting, and it should work just fine. This is not the place to tell you how to configure WineX, check its documentation for that. Nothing non-standard is required, however.<br /> <br /> Ok, just to clarify, when I say &quot;WineHQ&quot;, I mean the version of Wine available from http://www.winehq.com/ (as opposed to WineX, from http://www.transgaming.com).<br /> <br /> UT2003 for Windows installs under either WineHQ or WineX, although with WineX it crashed near the end for me when it tried to update DirectX without asking me first. UCC runs fine under WineX, either the Transgaming binary or one built from their CVS source. WineHQ doesn't work well with UCC, make seems to hang indefinitely, but not at the same place every time (sometimes it will even complete successfully). If you use WineX to play games, you may want to use WineHQ to install UT2003, or back up the registry and system files from your WineX installation, because UT2003 tries to install DirectX without prompting first (at least, this is what happened to me). UT2003 itself doesn't seem to rely on anything in the registry, it just need the files in place, so if you use WineHQ just to install it, you can then safely move the UT2003 directory elsewhere. I symlinked mine from my .wine directory to my home directory, and that seems to work fine, too. Also, I've had trouble with updates via WineHQ or WineX - the last one, 2186, seemed to install fine, but didn't actually install the files. It looks like for this one, at least, you can unzip the .exe file and install the unpacked files over your existing UT2003 directory - this is what I had to do before I could compile a mutator that uses the GUIUserKeyBinding class. Also, if you have UT2003 for linux installed on the same machine, you can make the files that are the same in both hardlinks from your Wine UT2003 directory to to linux one - use cmp or md5sum to find the identical files. This can save you almost all of the space wasted by two UT2003 installs, since almost all of it is the same, except for the executables and a few other files which use very little space. If I didn't put you to sleep, go enjoy building your mods under Linux. :-)<br /> <br /> ==Related Topics ==<br /> * [[Legacy:Compiling With UCC|Compiling with UCC]]<br /> * [[Legacy:Running A Dedicated Server With UCC|Running a Dedicated Server with UCC]]<br /> * UCC [[Legacy:Commandlet|Commandlet]]s<br /> * [[Legacy:Setting Up UnrealScript|Setting Up UnrealScript]] &amp;ndash; compiling basics<br /> <br /> ==Discussion==<br /> <br /> '''Trystan:''' I need to install RedHat on my box again. What exactly comprises ucc? Is it possible to bundle up the required ucc files and make them available to folks who want to work under Linux? Would Epic permit this? It's got to be a great deal smaller than installing all of UT2003 on a Windows partition. I think I'm going to go install RedHat and find out..<br /> <br /> '''Wormbo:''' Commandlets like MakeCommandlet or [[Legacy:BatchExportCommandlet|BatchExportCommandlet]] are components of UnrealEd and stored in .dll files. I highly doubt that Linux folks can use them.<br /> <br /> '''El Muerte TDS:''' well the only difficult part in porting the any editor stuff is UnrealEd itself (because of the MFC), I don't ''think'' the make and export commandlets would be that difficult.<br /> <br /> '''Mychaeel:''' I found even porting a C++ program from gcc to MSVC++ to be a non-trivial task. I could imagine that doing it the other way around isn't much less of a hassle...<br /> <br /> '''Trystan:''' I was more concerned with the possibility of taking Win32 ucc, all the related and necessary files, putting them in a tar/gzipped file and allowing them to be downloaded separately from anything else. The basic thought being that this would free a Linux developer from having a Windows partition solely for UT2K3 development. We would need Epic's permission to make those files available. That ucc would still require Wine/WineX but most Linux distributions have associated Win32 executables with the Wine executable anyway.<br /> <br /> '''El Muerte TDS:''' Ryan Gordon replied to my email, here's what he had to say: ''ucc make is broken at the moment, the rest is untested, and it adds 15 minutes to the build time to include it. It should be there in the future, but it's low priority.''<br /> <br /> '''MeltDown:''' Take a look at PyUClasses at http://www.unrealtower.org/downloads/26. It can use Wine and ucc.exe to compile mods for UT. See http://www.unrealtower.org/documentation/pyuclasses/ for more information.<br /> <br /> '''Conzar:''' Any status on the windows files to be packaged up? I copied all the .dlls and .exe files in System from the UT2K4 dvd into my System directory and have some compile errors while using ucc.exe.<br /> cedega UCC.exe make<br /> <br /> Can't find 'intAActorexecAddToPackageMap' in 'Engine.dll'<br /> <br /> <br /> History: UPackage::GetDllExport &lt;- UFunction::Bind &lt;- UField::PostLoad &lt;- UStruct::PostLoad &lt;- UFunction::PostLoad &lt;- UObject::ConditionalPostLoad &lt;- (Function Engine.Actor.AddToPackageMap) &lt;- PostLoadObjects &lt;- UObject::EndLoad &lt;- UObject::StaticLoadObject &lt;- (Core.Class Editor.EditorEngine NULL) &lt;- UEngine::Init &lt;- UEditorEngine::InitEditor &lt;- UMakeCommandlet::Main<br /> <br /> '''Wormbo:''' Never copy only .DLLs or only .Us, they only work if the same versions are used. <br /> <br /> '''DarthDevilous:''' Why is there a ''UCC for Linux'' bit here as well as [[Legacy:Using_UCC_Under_Linux|here]]?<br /> <br /> '''Tarquin:''' No idea. someone should merge them.<br /> <br /> '''EricBlade:''' Anyone have any specific knowledge on using &quot;ucc master&quot; to create an install program? There are docs on UDN, but they don't seem too helpful if you don't already know what you're doing with it.<br /> <br /> [[Category:Legacy Application|{{PAGENAME}}]]</div> GreatEmerald https://wiki.beyondunreal.com/MonkeyBuild?diff=33135 MonkeyBuild 2008-10-17T18:55:14Z <p>GreatEmerald: New page: '''MonkeyBuild''' is a free tool for UnrealScript developers that simplifies compilation, testing and publishing (publishing only in Unreal Engine 3). It works i...</p> <hr /> <div>'''MonkeyBuild''' is a free tool for UnrealScript developers that simplifies compilation, testing and publishing (publishing only in [[Legacy:Unreal_Engine_3|Unreal Engine 3]]). It works in all versions of the Unreal Engine and with most games (even those which are not from the Unreal series).<br /> <br /> This tool is a sequencer, which can create and save sequence scripts that can be later executed in a single click. Although it's primary use is UnrealScript compilation ([[Legacy:Ucc|UCC]] make without the need of a batch file or command prompt), MonkeyBuild can do a lot more - like, automatically delete or back up old files, run the game with the mutator on for testing and open the log afterwards; it can also do even UnrealScript unrelated tasks, such as moving files and opening programs. It can also cook projects in [[Unreal Tournament 3]].<br /> <br /> The program already comes with a set of example scripts to help you get started and automatically tries to detect any Unreal Engine games installed on the computer.<br /> <br /> Created by Free Monkey Interactive.<br /> <br /> :[http://free-monkey.com/main/monkeybuild.php Download the latest MonkeyBuild version here.]<br /> <br /> ==Functions==<br /> These are the types of sequences that can be used in MonkneyBuild:<br /> <br /> *Execute - runs any program you specify with any arguments you want. MonkeyBuild can wait until the program ends before continuing with the sequence.<br /> *Wait - adds a delay of the specified length.<br /> *Delete File(s) - deletes a specified file or a group of files (using wildcards).<br /> *Copy File(s) - copies a specified file or a group of files to a specified destination.<br /> *Move File(s) - moves a specified file or a group of files to a specified destination.<br /> *Compile Scripts (MAKE) - Compiles scripts using the UCC Make command. Additional arguments can be added.<br /> *Conform Packages - Runs a &quot;conform&quot; command to make one UnrealScript package network compatible with an older version of the same package. Note that MonkeyBuild will halt sequences if this command is not successful (for example, if one of the files cannot be found).<br /> *Cook Packages (UE3 only) - Cooks Unreal Engine 3 packages to optimize them and allow them to be played on a console.<br /> *Run Game - Runs the executable for the selected game. MonkeyBuild will wait until you exit the game before performing any more commands.<br /> *Run Server - Runs a server for the selected game. Can be used to [[Legacy:Launch_A_Local_Netgame|launch local netgames]].</div> GreatEmerald https://wiki.beyondunreal.com/Legacy:ZoneInfo?diff=33017 Legacy:ZoneInfo 2008-09-15T18:07:26Z <p>GreatEmerald: Really only with EAX</p> <hr /> <div>{{classbox| [[Legacy:UT2004|UT2004]] :: [[Legacy:Actor|Actor]] &gt;&gt; [[Legacy:Info|Info]] &gt;&gt; ZoneInfo (Package: Engine)}}<br /> <br /> The built-in Unreal class for defining properties of [[Legacy:Zone|zone]]s. If you place one ZoneInfo actor in a zone you have partioned, the ZoneInfo defines the properties of the zone. Zones without a ZoneInfo actor take their properties from the [[Legacy:LevelInfo|LevelInfo]] actor.<br /> <br /> This may seem obvious, but after adding a new ZoneInfo actor, the map geometry must be rebuilt for that actor's properties (e.g. ZoneLight) to take effect. Aftwards, you can change the ZoneInfo properties without rebuilding.<br /> <br /> See [[Legacy:Zoning|zoning]] for more on working with zones, and [[Legacy:Map Optimization|Map Optimization]] in general, and [[Legacy:ZoneInfo (UT)|ZoneInfo (UT)]] for the UT version of this class.<br /> <br /> ==Properties==<br /> <br /> ===ZoneInfo Group ===<br /> ; bool bClearToFogColor : Clear to fog color if distance fog is enabled. Use this to prevent HOM effects in the distance fog. Disable this if your distance fog end is never seen<br /> ; bool bDistanceFog : There is distance fog in this zone. See [[Legacy:Distance Fog|Distance Fog]].<br /> ; bool bSoftKillZ : 2000 units of grace for KillZ unless land.<br /> ; bool bTerrainZone : There is terrain in this zone. <br /> ; float KillZ : Any actor falling below this height falls out of the world. For [[Legacy:Pawn|Pawn]]s this means they die, other actors usually get destroyed. The [[Legacy:LevelInfo|LevelInfo]]'s KillZ shows as a red line in side-view orthogonal [[Legacy:UnrealEd Viewport|UnrealEd Viewport]]s.<br /> ; eKillZType KillZType : Specifies the type of KillZ effect to apply.<br /> ; string LocationName (localized) : A description of this zone. This is what appears on the scoreboard in team games as the location of players. You can use [[Legacy:Volume|Volume]]s to create descriptions for a part of a zone.<br /> ; name ZoneTag : Used only in combination with a [[Legacy:ZoneTrigger|ZoneTrigger]]. All other actors and engine features use the Tag.<br /> <br /> ===ZoneLight Group ===<br /> <br /> See [[Legacy:Zonelight|Zonelight]] for more on this.<br /> ; byte AmbientBrightness : <br /> ; byte AmbientHue : <br /> ; byte AmbientSaturation : <br /> ; float DistanceFogBlendTime : <br /> ; color DistanceFogColor : The color of the Distance Fog.<br /> ; float DistanceFogEnd : The distance from the player in which the distance fog completly obscures the world.<br /> ; float DistanceFogStart : The distance from the player in wich the distance fog starts to obscure the world.<br /> ; [[Legacy:Texture|Texture]] EnvironmentMap : <br /> ; float TexUPanSpeed : <br /> ; float TexVPanSpeed : <br /> <br /> ===ZoneSound Group ===<br /> ; [[Legacy:I3DL2Listener|I3DL2Listener]] ZoneEffect ([[Legacy:Editinline|editinline]]) : Environmental sound settings used in this zone. This will only have an effect if the game uses 3D hardware audio with EAX.<br /> <br /> ===ZoneVisibility Group ===<br /> ; bool bLonelyZone : This zone is the only one rendered when viewing from inside this zone. This zone is never rendered if viewing from another zone. This also includes skyboxes, so an outdoor level with only one zone plus a skybox should ''not'' use this.<br /> ; array&lt;[[Legacy:ZoneInfo|ZoneInfo]]&gt; ManualExcludes ([[Legacy:Editinline|editinline]]) : Used for manually specifying zones that are never visible from this zone. This is highly useful for framerate optimization if there are zones in your map that in theory need to be rendered, but are practically not visible from any point of this zone.<br /> <br /> ===UnrealScript-Only Properties ===<br /> ; vector AmbientVector : <br /> ; [[Legacy:SkyZoneInfo|SkyZoneInfo]] SkyZone : Optional sky zone containing this zone's sky. <br /> ; array&lt;[[Legacy:TerrainInfo|TerrainInfo]]&gt; Terrains (const) : <br /> <br /> ==Methods ==<br /> <br /> ===Iterator Functions ===<br /> ; ZoneActors (class&lt;[[Legacy:Actor|Actor]]&gt; BaseClass, out [[Legacy:Actor|Actor]] Actor) : Iterates through all actors in this zone.<br /> <br /> ===Other Functions===<br /> ; LinkToSkybox ( ) [simulated] : This function is called from &lt;tt&gt;PreBeginPlay&lt;/tt&gt; and initialises the link to the Sky Zone for this zone. The [[Legacy:SkyZoneInfo|SkyZoneInfo]] object linked to is determined by the detail settings on the client machine (if there is more than one).<br /> ; ActorEntered ([[Legacy:Actor|Actor]] Other) : This event fires whenever an actor enters the zone. It is responsible for posting any event specified by the &lt;tt&gt;ZonePlayerEvent&lt;/tt&gt; property by calling the &lt;tt&gt;Trigger&lt;/tt&gt; function. The function also applies any zone physics to objects with physics of &lt;tt&gt;PHYS_Projectile&lt;/tt&gt; or objects of type [[Legacy:Effects|Effects]].<br /> ; ActorLeaving ([[Legacy:Actor|Actor]] Other) : This event fires whenever an actor leaves the zone. It is responsible for posting any event specified by the &lt;tt&gt;ZonePlayerEvent&lt;/tt&gt; property by calling the &lt;tt&gt;UnTrigger()&lt;/tt&gt; function.<br /> <br /> ==Known Subclasses==<br /> * [[Legacy:LevelInfo|LevelInfo]]<br /> * [[Legacy:SkyZoneInfo|SkyZoneInfo]]<br /> * [[Legacy:WarpZoneInfo|WarpZoneInfo]]<br /> <br /> ==Related Topics==<br /> * [[Legacy:Map Optimization|Map Optimization]]<br /> * [[Legacy:Zone|Zone]] / [[Legacy:Zoning|Zoning]]<br /> * [[Legacy:Iterator|Iterator]] functions<br /> * [[Legacy:Volume|Volume]] class<br /> <br /> [[Category:Legacy Class (UT2003)|{{PAGENAME}}]]<br /> [[Category:Legacy Class (UT2004)|{{PAGENAME}}]]</div> GreatEmerald https://wiki.beyondunreal.com/Unreal?diff=33005 Unreal 2008-09-13T22:09:12Z <p>GreatEmerald: New page: {{softredirect|Liandri:Unreal}}</p> <hr /> <div>{{softredirect|Liandri:Unreal}}</div> GreatEmerald https://wiki.beyondunreal.com/Unreal_2_Expanded_Multiplayer?diff=33004 Unreal 2 Expanded Multiplayer 2008-09-13T22:08:40Z <p>GreatEmerald: New page: {{softredirect|Liandri:EXpanded MultiPlayer}}</p> <hr /> <div>{{softredirect|Liandri:EXpanded MultiPlayer}}</div> GreatEmerald https://wiki.beyondunreal.com/Template:Softredirect?diff=32896 Template:Softredirect 2008-08-16T14:11:10Z <p>GreatEmerald: Fixed link</p> <hr /> <div>[[Image:Redirectltr.png|#REDIRECT ]]&lt;span class=&quot;redirectText&quot; id=&quot;softredirect&quot;&gt;[[{{{1}}}]]&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%; padding-left:52px;&quot;&gt;This page is a [[Wikipedia:WP:Soft redirect|soft redirect]].&lt;/span&gt;&lt;includeonly&gt;[[Category:Soft redirects|{{PAGENAME}}]]&lt;/includeonly&gt;</div> GreatEmerald https://wiki.beyondunreal.com/Legacy:Unreal_2?diff=32370 Legacy:Unreal 2 2008-07-12T11:52:06Z <p>GreatEmerald: versions</p> <hr /> <div>{|<br /> <br /> |-<br /> |'''''Developer(s)'''''<br /> |Legend Entertainment <br /> |-<br /> |'''''Publisher'''''<br /> |[http://www.atari.com/ Atari] <br /> |-<br /> |'''''Release Date'''''<br /> |Febuary 2003 <br /> |-<br /> |'''''Supported Platform(s)'''''<br /> |Windows&lt;br /&gt;Xbox <br /> |-<br /> |'''''Official Web Site'''''<br /> |http://www.unreal2.com/ <br /> |-<br /> |'''''Demo'''''<br /> |[http://download.beyondunreal.com/27880 Windows] <br /> |-<br /> |'''''Latest Patch'''''<br /> |Version '''2001''' &amp;ndash; 25th March 2003&lt;br /&gt;[http://download.beyondunreal.com/27879 Windows] <br /> |-<br /> |'''''Unreal Engine Version'''''<br /> |[[Unreal Engine Versions/2<br /> |Unreal Engine 2.0]] <br /> |-<br /> |'''''UnrealEd Version'''''<br /> |[[UnrealEd Versions<br /> |UnrealEd 3]] <br /> |}<br /> <br /> ==Description==<br /> <br /> '''Unreal II: The Awakening''' is a first-person shooter video game, designed initially only for a single-player campaign. The game is part of the Unreal series.<br /> <br /> It is set in a different part of the universe to Unreal; according to the Epic timeline is set somewhere in or before the year 2251, whether it is a true prequel or sequel is debated as there is conflicting evidence. It has a different bestiary of weapons, enemies, allies, environments, items, locations, and more. The main tie in is the appearance of the dreaded Skaarj aliens from the series. <br /> <br /> ===Other Games in the Series===<br /> * [[Legacy:Unreal 1|Unreal 1]]<br /> <br /> ==System Requirements==<br /> ; Operating System : Windows 98/ME/2000/XP<br /> <br /> ; CPU : Pentium III or AMD Athlon 733MHz processor (*Pentium® or AMD 1.2 GHz or greater RECOMMENDED)<br /> <br /> ; Memory : 256 MB RAM (384 MB RAM or greater RECOMMENDED)<br /> <br /> ; Hard Disk Space : 3 GB Free<br /> <br /> ; CD ROM or CD/DVD ROM : 8x<br /> <br /> ; Audio System : Windows® compatible sound card (NVIDIA&amp;reg; nForce or other motherboards/soundcards containing the Dolby® Digital Interactive Content Encoder required for Dolby Digital audio.) Sound Blaster&amp;reg; Audigy(tm) series sound card RECOMMENDED<br /> <br /> ; Video System : 32 MB NVIDIA GeForce2 MX or better (64 MB NVIDIA GeForce3/ATi Radeon 8500 or better recommended). DirectX version 8.1 (included) or higher.<br /> <br /> ; Multiplayer : An Internet connection is not required to play this game. However, files created with Unreal Editor may be shared and/or downloaded. An internet connection and a 33.6kbps or faster modem (cable/DSL recommended) is required for sharing and downloading.<br /> <br /> ; Dual-Core Performance Note : This game, along with most older Unreal games, does not run well on dual-core systems with power management. Check with your processor maker for a patch or utility to fix this. An AMD patch can be found [http://www.amd.com/us-en/Processors/TechnicalResources/0,,30_182_871_9706,00.html here] under Dual-Core Optimizer.<br /> <br /> ==Downloads==<br /> <br /> ===Patches/Updates===<br /> * [http://download.beyondunreal.com/27879 Version 2001 (Windows)] <br /> <br /> ===Other===<br /> * [http://www.beyondunreal.com/main/u2/u2essential.php BeyondUnreal's Essential Unreal 2 Files]<br /> <br /> ==Useful Information==<br /> <br /> ===New Features of Unreal 2===<br /> <br /> ====AI Scripting====<br /> <br /> Allows a level designer to script various AI events. Scripts are held in the Scripts/ directory where U2 is installed. The main advantage is that you don't have to use UnrealScript or load up UnrealEd to work with the scripts.<br /> <br /> [[Legacy:AI Scripting|AI Scripting]]<br /> <br /> ====Dialog Engine====<br /> <br /> This allows &quot;spoken&quot; interaction with NPCs. Arguably, dialog was not used to full effect in the game, but arbitratily complex dialog can be constructed due to integration with the AI scripting.<br /> <br /> [[Legacy:Dialog|Dialog]]<br /> <br /> ====User Interface====<br /> <br /> Legend developed their own User Interface/HUD system, presumably for flexibility, and of course speed, because they implemented smooth fades. They've used a kind of Component Object Model, where a given UI is made out of various containers and UI pieces.<br /> <br /> The UIs are defined in text UI scripts, with pretty simple syntax. They are located in the UIScripts/ subdirectory.<br /> <br /> The system is implemented via UIConsole, which is more-or-less an interface to a number of static functions which are the interface to the native C++ code. Interaction between UnrealScript and the UI is acheived by sending events to the UI, and in the opposite direction via the CodeMonkey class.<br /> <br /> The UIScripts appear to completely specify the layout of the UI, and any events that require a response. Appearance is determined by textures in '''UIResT.utx'''.<br /> <br /> [[Legacy:User Interface|User Interface]]<br /> <br /> ==Related Topics==<br /> * [[Legacy:Unreal Engine Versions/2|Unreal Engine 2.0]]<br /> <br /> ==Discussion==<br /> <br /> [[Category:Legacy Game|{{PAGENAME}}]]</div> GreatEmerald https://wiki.beyondunreal.com/Legacy:Mapping_For_VCTF?diff=32329 Legacy:Mapping For VCTF 2008-06-22T15:53:08Z <p>GreatEmerald: /* Discussion */</p> <hr /> <div>'''Vehicle Capture the Flag (VCTF):''' Two teams both have a movable flag that's planted on an immobile flag base. A team scores a point by getting both flags to their home flag base. This is an extention of the Capture the Flag gametype for [[Legacy:UT2004|UT2004]] with the primary difference being vehicle support. Flying Vehicles may not carry the flag and translocator use is prohibited by default. ''It's strongly recommended that mappers review [[Legacy:Mapping For CTF|Mapping for CTF]] as well.''<br /> <br /> ==Design considerations==<br /> <br /> ===Layout===<br /> <br /> An obviousbly linear layout (straight from RedFlagBase to BlueFlagBase) is very easy to make when you have a gametype with only two game objectives and the long range/fast movement of vehicles. Try to spread out (branch out) the routes between flags; spreading the field out and offering more variety in routes to and from the enemy flag. Otherwise, an obvious bottleneck or 'choke spot' will present itself, making flag capture difficult if not impossible; but definately frustrating to play, due to lack of variety.<br /> <br /> That said, vehicles almost demand layouts of considerable size. Pedestrians should feel somewhat &quot;stranded&quot; in remote places in your map without a vehicle. (See ITEM PLACEMENT for pedestrian remedies)<br /> <br /> Vehicles also add firepower and armor to each Team. Therefore, the route to the flag should be appropriately difficult. Defenses of all kinds are encouraged to help make the Capture challenging. (walls, doors, gates, turrets, custom shields, etc.)<br /> <br /> ===Item Placement===<br /> <br /> The flagbases should be inaccessible by larger vehicles, either by structure, barrier or pedestal. Otherwise, players and bots will ride a tank or leviathan on top of their flag to defend and camp on it.<br /> <br /> Neutral vehicles placed in the center can add to gameplay by providing a &quot;soft&quot; gameObjective; a place Teams want to control. Neutral (non-flying) vehicles placed near flagbases allow enemies to make quick getaways.<br /> <br /> With large layouts, pedestrians can feel stranded out in remote locations. Offer them alternative travel to key points with JumpPads, Teleporters, Movers, etc. in those locations.<br /> <br /> ===Vehicles===<br /> <br /> Remember: By default, flying vehicles cannot carry the flag. Also, someone riding on top of any vehicle can pick up the flag without getting off the vehicle (the Manta is excellent for this).<br /> <br /> VehicleFactories will not spawn vehicles in a VCTF map until the gametype is set in LevelInfo to &lt;tt&gt;xGame.XVehicleCTFGame&lt;/tt&gt; and both FlagBases are placed.<br /> <br /> ONSVehicles(Factories) will spawn by automatically setting the TeamNumber to match that of the nearest GameObjective (Flag). Try the custom [[Legacy:TeamVehicleFactory|TeamVehicleFactory]] for greater control over aspects of vehicle spawning.<br /> <br /> ===Botplay===<br /> <br /> Bots will not use vehicles until a proper CTF bot path network is set, with an AssaultPath set to each flag and at least one WHITE (widest) path connects the two flags. The vehicle spawn points must also be accessible to these wide pathways with their own WHITE paths.<br /> <br /> Neutral controllers, controlling bots, turrets, etc., will attack Red and Blue Team members equally. They will ignore other Neutral controllers, as if Neutral was it's own Team. (Team 255)<br /> <br /> ==Creating a VCTF Map ==<br /> <br /> This is a list of critical elements needed to create a simple VCTF map.<br /> * Modify LevelProperties-&gt;LevelInfo-&gt;DefaultGametype to &lt;tt&gt;xGame.xVehicleCTFGame&lt;/tt&gt;.<br /> * A big enough space for vehicles and/or flying vehicles.<br /> * Place two [[Legacy:XRealCTFBase|xRealCTFBase]]s, ones for Red and Blue teams. These must be accessible to a RoadPathNode path network. (see the '''Botplay''' section above)<br /> * Place player starts (set &lt;tt&gt;PlayerStart.TeamNum&lt;/tt&gt;s: 0=red, 1=blue)<br /> * Place an [[Legacy:AssaultPath|AssaultPath]] near each flag (line of sight is good) for the attacking team.<br /> * Place VehicleFactory actors where you want vehicles to spawn. Set the direction you want them to start in. The TeamNumber for the vehicles will be set automatically when using ONSVehicleFactories; whichever gameobjective is closer; the red flag or the blue flag. By using custom actors like the [[Legacy:TeamVehicleFactory|TeamVehicleFactory]], you can set the TeamNumber yourself. (0=red, 1=blue, 255=none or neutral)<br /> * When placing [[Legacy:RoadPathNode|RoadPathNode]]s, keep the paths wide (white) between nodes for large ground vehicles and especially along the paths to the flags. Keep these spaced over 512 or 1024 apart because vehicles are not as agile as players on foot; they need to make wider turns. Try to keep the number of pathnodes even on each team's side of the map. There must be at least one white path connecting the flags to the path network, but more paths are recommended.<br /> * Place [[Legacy:FlyingPathNode|FlyingPathNode]]s (between 1024 and 2048 apart) about 1024 to 2048 above the ground. Don't bother making fine or complicated pathing for flying vehicles, with momentum carrying them, they need to make very wide turns, rises and dives.<br /> <br /> ==Tips==<br /> <br /> ===Vehicle Pathing for VCTF ( by Toonces T. Cat )===<br /> <br /> A few key points to note in the construction of a VCTF level.<br /> <br /> * Using an [[Legacy:AssaultPath|AssaultPath]] after the last [[Legacy:RoadPathNode|RoadPathNode]] that vehicles can reach works, and works well, but introduces new and even more complex issues into the equation. Someone else mentioned it in another thread, but what good is it to have your bot grab the flag and then not have a vehicle available when it returns to the RoadPathed area of the map? The best bet is to have the flag in an area where it can make a double (bi-directional) white connection to one or more RoadPathNodes.<br /> <br /> * Think vertical and you can have your cake and eat it too. I have created a second elevated level that is pathed just for foot use and it also connects to both flags and, even though the bots use it, it does not preclude them from using the vehicles as well. In fact, combos are very possible as I have seen them use the overhead route to get the flag and then jump into a Tank or a Hell Bender that one of their team-mates is using and hitch a ride home...<br /> <br /> * The translocator definitely should be allowed in the game-type. The bots commonly chase a team-mate's vehicle with it and will jump on-board in mid-toss...It is extremely cool to watch them do this... ('''SuperApe''': Toonce's is talking about ignoring the default rules for VCTF that disallow Translocators. This could be done by placing a custom actor (subclass of [[Legacy:XPickUpBase|xPickUpBase]]) and specifying a XWeapon.Transpickup as it's Powerup. See also [http://forums.unrealplayground.com/showthread.php?t=24029 this thread] ('''GreatEmerald''': ''Note: dead link - any replacement?'').)<br /> <br /> * When the flag is in a vehicle accessible area, elevate it above the floor on some type of base that the bots can climb on foot, but not in a vehicle. I am using an octagonal base that is about 256 units in diameter and about 40 units high. It has 4 narrow stairwells cut into it (one on every other side) that the bots can use. It is high enough to stop a vehicle (except for the Leviathan), but not so high that the nearby RoadPathNodes cannot make a good path connection.<br /> <br /> Why do you need this? Because the bots playing defense will pile into a Goliath and camp the flag if they can get on top of it...and I mean literally ON TOP of it. An enemy bot cannot get to it to take the flag if they are there. This is a workaround of sorts, but it is an effective one as even if they are using a Tank, if the attacker engages them, another bot can come up form behind and take the flag...I've watched it a dozen times.<br /> <br /> * As I said above, the 40 unit high barrier will not stop a Leviathan...Hence, tip #5 is do not path the Leviathans if you have them in your level. If a Masterful bot gets into one of them with a couple of his pals, the other team is in big trouble. It's better to keep them out the Leviathans unless a human is driving it. ('''GreatEmerald''': If you need a Leviathan, though, you can set some RoadPathNodes' properties, under Navigation Point, bNoSuperSize to True to keep Leviathans out of some trouble. This way you can also make a defensive Leviathan by setting bNoSuperSize properties only to those nodes that are close to flags, although bots might not want to go in. You might also path everything normally, add an AssaultPath somewhat away from the flag and make all next PathNodes/RoadPathNodes bNoSuperSize to make bots use Leviathans, but not spam with them.)<br /> <br /> * RoadPathNodes can be further cleaned up by changing the MaxRoadDistance value in the properties. The default distance is ten thousand. This can create ALL KINDS of unwanted clutter. In the top orthographic view measure between the nodes that you want to connect using SHIFT+MIDDLEMOUSE to bring up the ruler and adjust the nodes accordingly.<br /> <br /> ==FAQ==<br /> <br /> Frequently asked questions and common problems while mapping for VCTF.<br /> <br /> * ''Where is the VehicleCTF gametype in the UT2004 menu?''<br /> <br /> The VehicleCTF gametype will not show up in the list of available gametypes until at least one VCTF map is placed in the Maps directory. (Filename syntax is : '''VCTF-Foo''')<br /> * ''Vehicles aren't spawning''<br /> <br /> You must modify LevelProperties-&gt;LevelInfo-&gt;DefaultGametype to &lt;tt&gt;xGame.xVehicleCTFGame&lt;/tt&gt; and have both the Red and Blue team FlagBases set in the map. After that, Vehicle Factories will spawn vehicles.<br /> * ''Bots won't use the vehicles''<br /> <br /> There must be at least one fully connected path from one flag to the other and at least one of these paths must be solidly '''white''' all along the route. This will indicate to bots that they can use a vehicle to reach their goal along that path. The VehicleFactories will also have to be connected to at least one of these routes with a white path.<br /> * ''Bots only use the shortest path to the enemy flag and back''<br /> <br /> Use of an AssaultPath close to and within line of sight of the target flag will help bots reach their goal, but to encourage bots to use more of the layout, use other AssaultPaths that meet up to that goal. See [[Legacy:AssaultPath|AssaultPath]] and [[Legacy:Bot Pathing|Bot Pathing]].<br /> <br /> ==External Links==<br /> * [http://forums.unrealplayground.com/showthread.php?t=23758 Unreal Playground Forum: Mapping for VCTF]<br /> * [http://blitz.unrealplayground.com/tutorials/bots.html Blitz's Advanced Bot Pathing Tutorial]<br /> <br /> ==Related Topics==<br /> * [[Legacy:Topics On Mapping|Topics on Mapping]]<br /> * [[Legacy:Mapping For CTF|Mapping for CTF]]<br /> * [[Legacy:Pathing For Vehicles|Pathing For Vehicles]]<br /> * [[Legacy:Pathing 2k4 Flying Vehicles|Pathing 2k4 Flying Vehicles]]<br /> * [[Legacy:Map Flow|Map Flow]]<br /> * [[Legacy:Gametype|Gametype]]<br /> * [[Legacy:Vehicle|Vehicle]] &amp;ndash; Parent class for all vehicles in UT2004<br /> * [[Legacy:Vehicles|Vehicles]] &amp;ndash; Vehicle main topic<br /> <br /> ==Discussion==<br /> <br /> '''SuperApe''': Created. Most borrowed from the external link I wrote a while ago. Toonce's vehicle pathing comments added from [[Legacy:Pathing For Vehicles|Pathing for Vehicles]] and edited slightly. [[Legacy:XVehicleCTFGame|xVehicleCTFGame]], [[Legacy:RoadPathNode|RoadPathNode]], [[Legacy:FlyingPathNode|FlyingPathNode]], [[Legacy:SpecialVehicleObjective|SpecialVehicleObjective]] pages added and other misc links changed. ([[Legacy:NavigationPoint|NavigationPoint]] subclass list, etc.)<br /> <br /> '''[[User:GreatEmerald|GreatEmerald]]''': Saw some interesting bot behaviour when spectating a VCTF match with 2 bots. I used AssaultPaths. So when a bot with a vehicle got to one, it left the vehicle, took the flag and... Acted randomly. Usually, bots enter the vehicle with which they came, then instantly exit. Some times though, they enter the vehicle, drive in it for a few seconds and leave it. And the other times bots enter the vehicle and drive nicely. When the bots get back on foot, they can use their own vehicles near their base. Strangely, bots with flags enter the vehicle, and again, some times they drive, and some times they just leave the vehicle. Another strange addition is when a bot with a flag tries to return their own flag. One time a bot in a tank killed a bot flag carrier, then drove very near the dropped flag, returned it, then continued on foot, decided to get into the tank again, ran back and stood near the vehicle, but didn't enter. Another bot that was carrying the flag on foot killed another flag carrier (it was on foot too), ran away from its own flag, decided to return it, returned it, ran back to the AssaultPath and again tried to capture the enemy flag. Any explanation on what's happening and what to do?<br /> <br /> [[Category:Legacy Mapping|{{PAGENAME}}]]</div> GreatEmerald https://wiki.beyondunreal.com/Legacy:Pathing_For_Vehicles?diff=32328 Legacy:Pathing For Vehicles 2008-06-22T14:55:10Z <p>GreatEmerald: /* Additional VCTF (VehicleCTF) Level Tips by Toonces T. Cat */</p> <hr /> <div>The common use of vehicles in [[Legacy:UT2004|UT2004]] prompts mappers to take precautions and add special navigation paths for maps that include vehicles. Once properly connected to the network, bots will use the vehicles to travel on the special paths for road and sky navigation. Proper connection to the botpath network includes a complete path connection (one where each path is white, indicating the widest path) from vehicle spawn point to game objective.<br /> <br /> '''Note:''' The main focus on this page began with Vehicle CTF, but these concepts apply to pathing for all vehicle gametypes.<br /> <br /> ===Parking Spots===<br /> <br /> Vehicles are large and difficult to navigate in tight spaces. Vehicles too close to obstacles like map layout elements, decorative objects, or other vehicles will be hard for bots to get into and navigate with. When placing paths nodes that vehicles might use, make sure there is a lot of room to leave each spawn spot and be aware of areas (like PowerNodes) where bots and players will want to exit the vehicle, do something and get back in. Often gridlock can occur if RoadPaths are too close together near such areas. Nodes used to find and enter larger vehicles (like HellBenders or larger) should be away from the center of the vehicle (like towards the driver's side door), otherwise bots will get stuck trying to enter.<br /> <br /> ===RoadPathNodes===<br /> <br /> RoadPathNodes define safe and easy places for ground-based vehicles to navigate. Because vehicles take up much more space than players, RoadPathNodes could always be connected by WHITE path nodes; detnoting the widest path available. It should be noted, however, that driving bots will use normal PathNodes as well, as long as they are wide enough. See also [[Legacy:RoadPathNode|RoadPathNode]]s.<br /> <br /> ===FlyingPathNodes===<br /> <br /> FlyingPathNodes indicate clear paths through the sky for flying vehicles. See also [[Legacy:Pathing 2k4 Flying_Vehicles|Pathing 2k4 Flying_Vehicles]] and [[Legacy:FlyingPathNode|FlyingPathNode]]s.<br /> <br /> ==Vehicle (VCTF) Pathing Info by Toonces T. Cat ==<br /> <br /> The prime directive here is the K.I.S.S. principle...Keep It Simple Stupid! The more complex and meandering you make the [[Legacy:RoadPathNode|RoadPathNode]] routing, the worse the bots will drive and the less likely it is that they will directly attack the other base. <br /> <br /> In normal ''pedestrian'' gametypes, sometimes more is better with PathNodes to ensure that the bots can get everywhere on the level. Not so with vehicles. Just lay down the RoadPathNodes where you need the bots to drive the vehicles and nowhere else. The simpler and the more straight-forward the layout of the nodes, the better.<br /> <br /> One huge problem with this is that the default range setting on a RoadPathNode is 10,000 [[Legacy:UU|UU]] (Unreal Units). If you put them down without adjusting this property, they will connect all over the level and the bots will go nuts and likely never reach the objective. I don't know any shortcuts for doing this other than to place 4 or 5 RPNs and then set their range and build the paths. If you get two-way pathing for all the Nodes, then you are in good shape. If they make connections you did not intend for them to make, then reduce the distance until they drop the connection. If they do not connect as a two-way point, then shorten it up a bit until they do. Sound tedious? Yeah it is, but the end result is well worth the trouble.<br /> <br /> ----<br /> <br /> Here's a screenie of the editor to show you what it should look like:<br /> <br /> [[Image:Legacy_VehiclePathing.jpeg|center|''Road Pathing on VCTF-Strip Mine'']]<br /> <br /> ----<br /> <br /> Here's is Steve Polge's summation of the rest of it: <br /> <br /> {{innerbox|<br /> &quot;The larger vehicles require white (or forced vehicle) paths connected to the objective (flag base) and all assault paths. If the vehicle can't get all the way to the objective, make sure they can get to the assault paths for the objective, and then they'll continue on foot.<br /> <br /> Also, objectives have a VehiclePathName property. If you can't get a vehicle path all the way to the objective, set the VehiclePathName to the name (under the object tab) of the nearest NavigationPoint that vehicles can reach.<br /> <br /> If you need to force paths for vehicles, you'll need to check bVehicleDestination in the destination NavigationPoint properties, and then add a forced path in the normal manner.<br /> <br /> <br /> }}<br /> <br /> The bottom line is that if you do not have an all white path between the objectives, the bots will not play the game properly. As Steve states above, if the bots can't reach the objective in the vehicle, then you'll have to use an assault Path to get them there. His instructions are spot-on. Follow them carefully and it will work for you.<br /> <br /> The other instructive thing I learned from this lengthy exercise is that very few existing CTF levels will make for really good VCTF maps if you plan to use bots. I suppose you can jack an ONS map and convert it, but remember that the main deal in VCTF is they have to do the following:<br /> <br /> # Get in a vehicle and drive as close as possible to the objective.<br /> # Exit the vehicle and grab the objective.<br /> # Make their way back to the vehicle with the objective and get into it.<br /> # Drive back to their own base with the objective.<br /> # Get out of the vehicle and make the capture.<br /> <br /> That is not what happens in ONS and the A.I. in the maps is not set-up to facilitate it happening. If you use a base ONS map, dump the existing A.I. and start building it from scratch. I haven't even begun to mess with the FlyingPathNodes, but as you can't carry the flag in either a Raptor or a Manta, who cares? I put some into a level and they connected and it seemed to work okay as long they covered the map with their connections...Here's another tip, though, wait to do the FlyingPathNodes until you're just about 100% done with the RoadPathNodes. Once they are in place, with View Paths enabled, the map looks like an explosion in an orange spaggetti factory...i.e. - You can't see a thing after that.<br /> <br /> ==Additional VCTF (VehicleCTF) Level Tips by Toonces T. Cat==<br /> <br /> I have discovered a few additional key points to note in the construction of a VCTF level:<br /> <br /> #Using an [[Legacy:AssaultPath|AssaultPath]] after the last RoadPathNode that vehicles can reach works, and works well, but introduces new and even more complex issues into the equation. Someone else mentioned it in another thread, but what good is it to have your bot grab the flag and then not have a vehicle available when it returns to the RoadPathed area of the map? The best bet is to have the flag in an area where it can make a double (bi-directional) white connection to one or more RoadPathNodes.<br /> #Think vertical and you can have your cake and eat it too. I have created a second elevated level that is pathed just for foot use and it also connects to both flags and, even though the bots use it, it does not preclude them from using the vehicles as well. In fact, combos are very possible as I have seen them use the overhead route to get the flag and then jump into a Tank or a Hell Bender that one of their team-mates is using and hitch a ride home...<br /> #The Teleporter definitely needs to be in the game-type. The bots commonly chase a team-mate's vehicle with it and will jump on-board in mid-toss...It is extremely cool to watch them do this...<br /> #When the flag is in a vehicle accessible area, elevate it above the floor on some type of base that the bots can climb on foot, but not in a vehicle. I am using an octagonal base that is about 256 units in diameter and about 40 units high. It has 4 narrow stairwells cut into it (one on every other side) that the bots can use. It is high enough to stop a vehicle (except for the Leviathan), but not so high that the nearby RoadPathNodes cannot make a good path connection. (''Why do you need this? Because the bots playing defense will pile into a Goliath and camp the flag if they can get on top of it...and I mean literally ON TOP of it. An enemy bot cannot get to it to take the flag if they are there. This is a workaround of sorts, but it is an effective one as even if they are using a Tank, if the attacker engages them, another bot can come up form behind and take the flag...I've watched it a dozen times.'')<br /> #As I said above, the 40 unit high barrier will not stop a Leviathan...Hence, tip #5 is do not path the Leviathans if you have them in your level. If a Masterful bot gets into one of them with a couple of his pals, the other team is in big trouble. It's better to keep them out the Leviathans unless a human is driving it. ('''GreatEmerald''': If you need a Leviathan, though, you can set some RoadPathNodes' properties, under Navigation Point, bNoSuperSize to True to keep Leviathans out of some trouble. This way you can also make a defensive Leviathan by setting bNoSuperSize properties only to those nodes that are close to flags, although bots might not want to go in. You might also path everything normally, add an AssaultPath somewhat away from the flag and make all next PathNodes/RoadPathNodes bNoSuperSize to make bots use Leviathans, but not spam with them.)<br /> #RoadPathNodes can be further cleaned up by changing the MaxRoadDistance value in the properties. The default distance is ten thousand. This can create ALL KINDS of unwanted clutter. In the top orthographic view measure between the nodes that you want to connect using SHIFT+MIDDLEMOUSE to bring up the ruler and adjust the nodes accordingly.<br /> <br /> ==External Links==<br /> * [http://blitz.unrealplayground.com/tutorials/bots.html Blitz's Advanced Bot Pathing Tutorial]<br /> <br /> ==Related Topics==<br /> * [[Legacy:Bot Support|Bot Support]] &amp;ndash; Main topic<br /> ** [[Legacy:Bot Pathing|Bot Pathing]] &amp;ndash; Concepts and elements of a bot path network<br /> *** [[Legacy:Basic Bot Pathing|Basic Bot Pathing]] &amp;ndash; A tutorial on basic bot pathing<br /> * [[Legacy:Pathing 2k4 Flying Vehicles|Pathing 2k4 Flying Vehicles]]<br /> * [[Legacy:Mapping For AS (UT2004)|Mapping for AS (UT2004)]]<br /> * [[Legacy:Mapping For ONS|Mapping for ONS]]<br /> * [[Legacy:Mapping For VCTF|Mapping for VCTF]]<br /> <br /> ==Discussion==<br /> <br /> '''(relaying Toonces' sentiments):''' I hope this is helpful to everyone!<br /> <br /> '''SuperApe:''' Thank you, Toonces! You da Cat!<br /> <br /> '''SuperApe:''' Edit. Additional VCTF Notes added. Somebody should write up a VehicleCTF or VCTF page. EDIT: I will post the important stuff here on the wiki soon (after VCTF contest is over): [http://forums.unrealplayground.com/showthread.php?t=23758 Mapping for VCTF].<br /> <br /> '''King Mango''' Going to look for the proper place to post this, but in the meantime, to enable xloc in a VCTF game check [http://forums.unrealplayground.com/showthread.php?t=24029 this thread] at Unreal Playground. ('''SuperApe:''' I think I got it up there now.)<br /> <br /> '''Tarquin:''' Use the # wiki markup for numbered lists please :)<br /> <br /> '''Erdrik:''' This is very help for pathing vehicles for VCTF, but I was wondering about Onslaught. ''Edit:'' doh, Assultpaths work in Onslaught as well, my bad :p<br /> <br /> '''SuperApe:''' Temporarily copying VCTF information to [[Legacy:Mapping For VCTF|Mapping for VCTF]] before I remove it from here.<br /> <br /> '''Lucy:''' The main problem I'm having with VCTF pathing is that the bots will get in a vehicle and immediately get out. On the rare occasion they stay in the vehicle, they will not drive it anywhere and just stay in place.<br /> <br /> '''SuperApe:''' This is a common pathing problem, akin to bots getting &quot;stuck&quot;. In this case, the bot knows the vehicle is desirable, but the destination isn't clear, so it jumps back out or sits there. In real terms, this means the paths from the vehicle (spawn point) all the way to the enemy flag are not &lt;u&gt;all&lt;/u&gt; white (the widest) paths. Added Blit'z Pathing Tut in External Links, which includes this explanation on the &quot;white road&quot;:<br /> <br /> {{innerbox| ''In other words, think of this as a single, white road that connects to each vehicle and each objective. Bots will only understand how to reach objectives if there is a white route from the vehicle they just hopped into to the objective they're seeking. If this route doesn't exist, then the bot will abandon the vehicle and proceed on foot.''<br /> <br /> }}<br /> <br /> '''LionsPhil:''' Aww. Am I so wrong for feeling sorry for bots who have found a shiny tank to play with, but can't work out where to take it? ;)<br /> <br /> [[Category:Legacy Mapping|{{PAGENAME}}]]</div> GreatEmerald https://wiki.beyondunreal.com/Legacy:Mapping_For_VCTF?diff=32327 Legacy:Mapping For VCTF 2008-06-22T14:53:54Z <p>GreatEmerald: /* Vehicle Pathing for VCTF ( by Toonces T. Cat ) */</p> <hr /> <div>'''Vehicle Capture the Flag (VCTF):''' Two teams both have a movable flag that's planted on an immobile flag base. A team scores a point by getting both flags to their home flag base. This is an extention of the Capture the Flag gametype for [[Legacy:UT2004|UT2004]] with the primary difference being vehicle support. Flying Vehicles may not carry the flag and translocator use is prohibited by default. ''It's strongly recommended that mappers review [[Legacy:Mapping For CTF|Mapping for CTF]] as well.''<br /> <br /> ==Design considerations==<br /> <br /> ===Layout===<br /> <br /> An obviousbly linear layout (straight from RedFlagBase to BlueFlagBase) is very easy to make when you have a gametype with only two game objectives and the long range/fast movement of vehicles. Try to spread out (branch out) the routes between flags; spreading the field out and offering more variety in routes to and from the enemy flag. Otherwise, an obvious bottleneck or 'choke spot' will present itself, making flag capture difficult if not impossible; but definately frustrating to play, due to lack of variety.<br /> <br /> That said, vehicles almost demand layouts of considerable size. Pedestrians should feel somewhat &quot;stranded&quot; in remote places in your map without a vehicle. (See ITEM PLACEMENT for pedestrian remedies)<br /> <br /> Vehicles also add firepower and armor to each Team. Therefore, the route to the flag should be appropriately difficult. Defenses of all kinds are encouraged to help make the Capture challenging. (walls, doors, gates, turrets, custom shields, etc.)<br /> <br /> ===Item Placement===<br /> <br /> The flagbases should be inaccessible by larger vehicles, either by structure, barrier or pedestal. Otherwise, players and bots will ride a tank or leviathan on top of their flag to defend and camp on it.<br /> <br /> Neutral vehicles placed in the center can add to gameplay by providing a &quot;soft&quot; gameObjective; a place Teams want to control. Neutral (non-flying) vehicles placed near flagbases allow enemies to make quick getaways.<br /> <br /> With large layouts, pedestrians can feel stranded out in remote locations. Offer them alternative travel to key points with JumpPads, Teleporters, Movers, etc. in those locations.<br /> <br /> ===Vehicles===<br /> <br /> Remember: By default, flying vehicles cannot carry the flag. Also, someone riding on top of any vehicle can pick up the flag without getting off the vehicle (the Manta is excellent for this).<br /> <br /> VehicleFactories will not spawn vehicles in a VCTF map until the gametype is set in LevelInfo to &lt;tt&gt;xGame.XVehicleCTFGame&lt;/tt&gt; and both FlagBases are placed.<br /> <br /> ONSVehicles(Factories) will spawn by automatically setting the TeamNumber to match that of the nearest GameObjective (Flag). Try the custom [[Legacy:TeamVehicleFactory|TeamVehicleFactory]] for greater control over aspects of vehicle spawning.<br /> <br /> ===Botplay===<br /> <br /> Bots will not use vehicles until a proper CTF bot path network is set, with an AssaultPath set to each flag and at least one WHITE (widest) path connects the two flags. The vehicle spawn points must also be accessible to these wide pathways with their own WHITE paths.<br /> <br /> Neutral controllers, controlling bots, turrets, etc., will attack Red and Blue Team members equally. They will ignore other Neutral controllers, as if Neutral was it's own Team. (Team 255)<br /> <br /> ==Creating a VCTF Map ==<br /> <br /> This is a list of critical elements needed to create a simple VCTF map.<br /> * Modify LevelProperties-&gt;LevelInfo-&gt;DefaultGametype to &lt;tt&gt;xGame.xVehicleCTFGame&lt;/tt&gt;.<br /> * A big enough space for vehicles and/or flying vehicles.<br /> * Place two [[Legacy:XRealCTFBase|xRealCTFBase]]s, ones for Red and Blue teams. These must be accessible to a RoadPathNode path network. (see the '''Botplay''' section above)<br /> * Place player starts (set &lt;tt&gt;PlayerStart.TeamNum&lt;/tt&gt;s: 0=red, 1=blue)<br /> * Place an [[Legacy:AssaultPath|AssaultPath]] near each flag (line of sight is good) for the attacking team.<br /> * Place VehicleFactory actors where you want vehicles to spawn. Set the direction you want them to start in. The TeamNumber for the vehicles will be set automatically when using ONSVehicleFactories; whichever gameobjective is closer; the red flag or the blue flag. By using custom actors like the [[Legacy:TeamVehicleFactory|TeamVehicleFactory]], you can set the TeamNumber yourself. (0=red, 1=blue, 255=none or neutral)<br /> * When placing [[Legacy:RoadPathNode|RoadPathNode]]s, keep the paths wide (white) between nodes for large ground vehicles and especially along the paths to the flags. Keep these spaced over 512 or 1024 apart because vehicles are not as agile as players on foot; they need to make wider turns. Try to keep the number of pathnodes even on each team's side of the map. There must be at least one white path connecting the flags to the path network, but more paths are recommended.<br /> * Place [[Legacy:FlyingPathNode|FlyingPathNode]]s (between 1024 and 2048 apart) about 1024 to 2048 above the ground. Don't bother making fine or complicated pathing for flying vehicles, with momentum carrying them, they need to make very wide turns, rises and dives.<br /> <br /> ==Tips==<br /> <br /> ===Vehicle Pathing for VCTF ( by Toonces T. Cat )===<br /> <br /> A few key points to note in the construction of a VCTF level.<br /> <br /> * Using an [[Legacy:AssaultPath|AssaultPath]] after the last [[Legacy:RoadPathNode|RoadPathNode]] that vehicles can reach works, and works well, but introduces new and even more complex issues into the equation. Someone else mentioned it in another thread, but what good is it to have your bot grab the flag and then not have a vehicle available when it returns to the RoadPathed area of the map? The best bet is to have the flag in an area where it can make a double (bi-directional) white connection to one or more RoadPathNodes.<br /> <br /> * Think vertical and you can have your cake and eat it too. I have created a second elevated level that is pathed just for foot use and it also connects to both flags and, even though the bots use it, it does not preclude them from using the vehicles as well. In fact, combos are very possible as I have seen them use the overhead route to get the flag and then jump into a Tank or a Hell Bender that one of their team-mates is using and hitch a ride home...<br /> <br /> * The translocator definitely should be allowed in the game-type. The bots commonly chase a team-mate's vehicle with it and will jump on-board in mid-toss...It is extremely cool to watch them do this... ('''SuperApe''': Toonce's is talking about ignoring the default rules for VCTF that disallow Translocators. This could be done by placing a custom actor (subclass of [[Legacy:XPickUpBase|xPickUpBase]]) and specifying a XWeapon.Transpickup as it's Powerup. See also [http://forums.unrealplayground.com/showthread.php?t=24029 this thread] ('''GreatEmerald''': ''Note: dead link - any replacement?'').)<br /> <br /> * When the flag is in a vehicle accessible area, elevate it above the floor on some type of base that the bots can climb on foot, but not in a vehicle. I am using an octagonal base that is about 256 units in diameter and about 40 units high. It has 4 narrow stairwells cut into it (one on every other side) that the bots can use. It is high enough to stop a vehicle (except for the Leviathan), but not so high that the nearby RoadPathNodes cannot make a good path connection.<br /> <br /> Why do you need this? Because the bots playing defense will pile into a Goliath and camp the flag if they can get on top of it...and I mean literally ON TOP of it. An enemy bot cannot get to it to take the flag if they are there. This is a workaround of sorts, but it is an effective one as even if they are using a Tank, if the attacker engages them, another bot can come up form behind and take the flag...I've watched it a dozen times.<br /> <br /> * As I said above, the 40 unit high barrier will not stop a Leviathan...Hence, tip #5 is do not path the Leviathans if you have them in your level. If a Masterful bot gets into one of them with a couple of his pals, the other team is in big trouble. It's better to keep them out the Leviathans unless a human is driving it. ('''GreatEmerald''': If you need a Leviathan, though, you can set some RoadPathNodes' properties, under Navigation Point, bNoSuperSize to True to keep Leviathans out of some trouble. This way you can also make a defensive Leviathan by setting bNoSuperSize properties only to those nodes that are close to flags, although bots might not want to go in. You might also path everything normally, add an AssaultPath somewhat away from the flag and make all next PathNodes/RoadPathNodes bNoSuperSize to make bots use Leviathans, but not spam with them.)<br /> <br /> * RoadPathNodes can be further cleaned up by changing the MaxRoadDistance value in the properties. The default distance is ten thousand. This can create ALL KINDS of unwanted clutter. In the top orthographic view measure between the nodes that you want to connect using SHIFT+MIDDLEMOUSE to bring up the ruler and adjust the nodes accordingly.<br /> <br /> ==FAQ==<br /> <br /> Frequently asked questions and common problems while mapping for VCTF.<br /> <br /> * ''Where is the VehicleCTF gametype in the UT2004 menu?''<br /> <br /> The VehicleCTF gametype will not show up in the list of available gametypes until at least one VCTF map is placed in the Maps directory. (Filename syntax is : '''VCTF-Foo''')<br /> * ''Vehicles aren't spawning''<br /> <br /> You must modify LevelProperties-&gt;LevelInfo-&gt;DefaultGametype to &lt;tt&gt;xGame.xVehicleCTFGame&lt;/tt&gt; and have both the Red and Blue team FlagBases set in the map. After that, Vehicle Factories will spawn vehicles.<br /> * ''Bots won't use the vehicles''<br /> <br /> There must be at least one fully connected path from one flag to the other and at least one of these paths must be solidly '''white''' all along the route. This will indicate to bots that they can use a vehicle to reach their goal along that path. The VehicleFactories will also have to be connected to at least one of these routes with a white path.<br /> * ''Bots only use the shortest path to the enemy flag and back''<br /> <br /> Use of an AssaultPath close to and within line of sight of the target flag will help bots reach their goal, but to encourage bots to use more of the layout, use other AssaultPaths that meet up to that goal. See [[Legacy:AssaultPath|AssaultPath]] and [[Legacy:Bot Pathing|Bot Pathing]].<br /> <br /> ==External Links==<br /> * [http://forums.unrealplayground.com/showthread.php?t=23758 Unreal Playground Forum: Mapping for VCTF]<br /> * [http://blitz.unrealplayground.com/tutorials/bots.html Blitz's Advanced Bot Pathing Tutorial]<br /> <br /> ==Related Topics==<br /> * [[Legacy:Topics On Mapping|Topics on Mapping]]<br /> * [[Legacy:Mapping For CTF|Mapping for CTF]]<br /> * [[Legacy:Pathing For Vehicles|Pathing For Vehicles]]<br /> * [[Legacy:Pathing 2k4 Flying Vehicles|Pathing 2k4 Flying Vehicles]]<br /> * [[Legacy:Map Flow|Map Flow]]<br /> * [[Legacy:Gametype|Gametype]]<br /> * [[Legacy:Vehicle|Vehicle]] &amp;ndash; Parent class for all vehicles in UT2004<br /> * [[Legacy:Vehicles|Vehicles]] &amp;ndash; Vehicle main topic<br /> <br /> ==Discussion==<br /> <br /> '''SuperApe''': Created. Most borrowed from the external link I wrote a while ago. Toonce's vehicle pathing comments added from [[Legacy:Pathing For Vehicles|Pathing for Vehicles]] and edited slightly. [[Legacy:XVehicleCTFGame|xVehicleCTFGame]], [[Legacy:RoadPathNode|RoadPathNode]], [[Legacy:FlyingPathNode|FlyingPathNode]], [[Legacy:SpecialVehicleObjective|SpecialVehicleObjective]] pages added and other misc links changed. ([[Legacy:NavigationPoint|NavigationPoint]] subclass list, etc.)<br /> <br /> [[Category:Legacy Mapping|{{PAGENAME}}]]</div> GreatEmerald