Mostly Harmless

Legacy:UnrealScript Language Test

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search

UnrealScript Language Test is a collection of classes that contain various forms of UnrealScript constructions.

The purpose of this collection is to provide a reference set for UnrealScript parsers\compilers. Besides valid constructions it also contains a couple of examples of bugs in the stock UnrealScript compiler and "unwanted" but accepted constructions.


CVS Package
CVS Access module: UnrealScript_LanguageTest
or browse the CVS repository online


The collection has been split up in a couple of packages for easy usage.

Package Description
uslt_base Base UnrealScript, should be supported by all versions. UnrealScript compilers and parsers should at least accept these constructions.
uslt_base_bugs Valid UnrealScript but doesn't compile at all or not correct.
uslt_base_errors Invalid or improper UnrealScript, but does compile.
uslt_ue2* UnrealEngine2 only cases.
uslt_ue3* Contains constructions only available in UnrealEngine3.
usltx_* Vendor specific packages, see below

Vendor specific packages[edit]

These packages may not have been fully tested to compile. They mainly have been constructed based on the script source of the games.

Package Description
usltx_unreal2 Constructions only available in Unreal 2 by Legend Entertainment
usltx_irrational UnrealScript additions made by Irrational Games for Tribes: Vengeance and SWAT 4


For the following items a construction has yet to be made:

  • [test] .EnumCount

If you are missing a construction (either valid, bug or error) please describe them so I can test it and add it.

Evolution: Here's a couple I've come across:
1. Attempting to access an iterator expression through a null context results in a pretty nasty crash.
2. pretty sure you can't use consts (and perhaps enums as well) in defaultproperties.

Wormbo: Enums work in default properties.

Wormbo: If a delegate is declared as 'final', any calls to the delegate will be final function calls to the delegate function's default implementation instead of calling whichever function is currently assigned to the delegate property. So basically a "final delegate" is identical to a "final function" – assigning stuff to the delegate property has no effect.

Wormbo: Appearantly porkmanii on BUF found a new bug: 180881

if (Profile != none && !Profile.IsPreset)
    if (ed_ProfileName.GetText() != "")

Seems like that code compiled without error even though it definitely shouldn't.

El Muerte: yep, a minor bug. It should be at followed by either ; or {

Related Topics[edit]