| Home Page | Recent Changes | Preferences

New UnrealScript In UT2003

See also:

More control over actors' representation in UnrealEd.
  • Syntax extension to class declarations to hide (inherited) editable property categories from the property sheet in UnrealEd: hidecategories(category names)
  • The previously existing nousercreate class attribute seems to have been renamed to notplaceable, and there's a new (redundant?) placeable class attribute. Placeable classes are marked with an asterisk in the new actor browser.
  • Classes and objects can be marked as editinline, which allows their use and creation directly in another object's property sheet.
Artificial Intelligence
  • The class-level distinction between bots and players has shifted: You'll have models with plug-in "controllers" which can either be players (local or remote) or bot brains – that's going to make modding bot behavior very much easier. Not forgetting the ability to write a custom playerpawn and have it support all (including custom) models. You can also plug in controllers at will, allowing you to possess bots for example during a game.
  • Bot AI is at higher levels split in team AI and squad AI. Each team is built of one or more squads which contain one or more bots.

DJPaul: Allowing some possesion-type mods, I forsee when the 1337 scripting kids find out about this.

See Also: Controller Overview

Dynamic Array Support
Are accessed like regular arrays, but provide a Length property (read/write) to set their size dynamically and various methods to add, insert and remove items.
Weapon Split
Weapons have been split into various actors for handling firing, pickup view, muzzleflash?, etc.
does servery, adminy things, such as handle bans, kicks, cheats, etc.
controls whether the player can say anything, recives any sort of ingame message, etc.
New Iterators
  • DynamicActors, loops over all actors that have been dynamically added since the game started (as opposed to "were statically present in the loaded map"). According to Mongo, all bStatic actors are "sorted" placed at the beginning of the actor list; all non-bStatic ones are placed after. The interator starts at the non-bStatic ones.
  • AllObjects. The Garbage Collection array has been opened up to UnrealScript.
More new native functions (besides Iterators)
  • Hud drawing is simplified in the HUDBase? class, with the DrawSpriteWidget and DrawNumericWidget functions.
All Objects now receive notification when they are created (similar to Actor.(Pre/Post)BeginPlay())
Trig functions
Asin(), Acos(), and Atan2() (the more exact atan) are open to unrealscript.
Can now scale by height, length, and width, as opposed to raw drawscale and fatness.
Delegated Functions
Basically method pointers, to be used in OnEvent-style events.
See also: udntech logo UnrealScriptDelegates
Animation Control
Coders will have a lot of control over animations, apparently. For instance, you can instruct an animation to only play for a certain bone (and its sub-bones), and a different animation on other bones. In other words, you can combine a running animation (for the legs) with a shooting animation (for the torso) and a talking or head turning animation (for the head). Source: [Nights Edge]
Exec Directive
new stuff in Exec Directive
Class definition
New modifier keywords and you can't use expands anymore. Always use extends now. (see Class Syntax)
Actor names
You'll find that actors you spawn will not have sequentially numbered names by default, instead they'll just have the name of their class which can make debugging tricky. Run UT2K3 with the "-makenames" switch and they'll be numbered just like in UT.

Mychaeel: I noticed an interesting new UnrealScript keyword in class ConstantColor? (might be elsewhere too): cpptext { ... }. Any ideas on that one?

EntropicLqd: Case-sensitive function delcarations that hook directly to C++ equivalents by the looks of it. Used in a fair number of places as well. Only used in native functions and only used to declare functions.

Mychaeel: I figured that much out myself. What I'm interested in is: What purpose does it serve? Does it directly output arbitrary C++ code into the C++ headers generated from the UnrealScript sources?

Trystan: I'm assuming you're working with the Epic sources and not the UnrealEd extracted sources. In the UnrealEd extracted sources each line of a cpptext indicator is simply // (cpptext), so apparently UnrealEd doesn't know what to do with it. A Google cached page showing it is at - perhaps that will shed some light for your more experienced guys. (Er, the content isn't available straight from the Epic site since it's for licensees only, so I guess Mychaeel may want to delete this..) Looks like it's always used for virtual functions.. dunno, I'm sure you guys know all this. :)

Wormbo: I think I heared it in #unrealscript that the compiler comments out those lines to ensure the sources can be exported properly. Something with line numbers getting messed up.


DJPaul: Need explanation/example of delegated functions quick sharp.

Wormbo: They are explained on the UDN: udntech logo UnrealScriptDelegates

The Unreal Engine Documentation Site

Wiki Community

Topic Categories

Image Uploads

Random Page

Recent Changes

Offline Wiki

Unreal Engine

Console Commands


Mapping Topics

Mapping Lessons

UnrealEd Interface


Scripting Topics

Scripting Lessons

Making Mods

Class Tree


Modeling Topics


Log In