General Information

Official Unreal Web Sites

Unreal Version 227 Release Notes

Known Issues

There are known driver problems with nVidia driver 169.21 - if you experience trouble with OpenGL or D3D8, try version 162.18 instead, or maybe one of the beta drivers.
UED2 crashes at exit. A quick fix for the editor crash upon closing is: Instead of clicking exit from the windowed button, use the exit command (Just type "exit" in Unreal Log Window and hit enter).
Server is compatible to 224,225 and 226b(Unreal Gold) clients. 226f (normal Unreal 226) clients need to update to access a 227 server. This decision was made because of popular request for UGold support. The problem itself was caused by UGold, which was an incompatible version to 226, and is client related, can't be fixed serversided.

Fixes and Improvements

Fixes Improvements

Support for hint messages added

In singleplay (not online) you can activate some hints ingame when pressing F3.

A completely new and effective anticheat, antibot and protection system

Designed to catch cheaters in online play it should be able to catch all currently existing hacks and bots. Fully operational only with 227 clients, but server admins can decide themselves if they allow older clients (224,225,226b)

A native Linux port is now availible, which runs with OpenGL and FMOD

Built in SuSE, works on LFS as well, but needs glibc2.3. Testing in other Linux distributions is required.

New log paramter

added a new parameter for commandline: -timestamplog which will force Unreal to put a Timestamp after the logfile name:
If you would simply startup unreal with -timestamplog, the logfile will be: UnrealYear_Month_Day_Hour_Minute_Second.log
If you start it up with -log=server.log -timestamplog, the logfile will be: ServerYear_Month_Day_Hour_Minute_Second.log

But keep in mind if you restart your server automatically when crashed and it would crash continuously, it will produce endless amount of logfiles.

New Setup Wizard allows to chose renderer before startup

New renderers have been added:

OpenGL, D3D8 and D3D9 are completely reworked and heavily improved with the files from UTGLR:
These renderers increase performance, quality, support S3TC Textures and make Unreal compatible with most recent grafix cards.


UseTrilinear - [True/False]
Controls the use of trilinear texture filtering.

AlwaysMipmap - [True/False]
Can make the renderer always generates mipmaps for textures that are not supplied with them. But, it's always set to 0 by the initialization code (has been this was for a long time), so changing the value of this setting should make no difference.

AutoGenerateMipmaps - [True/False]
Enables the use of the GL_SGIS_generate_mipmap extension for automatic mipmap generation. It is recommended that this setting be disabled as there are far too many video drivers that have unstable, slow, and/or broken support for this extension.

NoFiltering - [True/False]
Can disable filtering on all textures. Useful as a debug option.

MaxAnisotropy - [Integer]
Controls the use and level of anisotropic texture filtering. Disabled if set to 0. Should make no difference if set to 1 (isotropic texture filtering). If set to greater than 1, specifies the maximum degree of anisotropy to use for texture filtering.

UseS3TC - [True/False]
Enables the use of high resolution S3TC compressed textures if they are installed.

NoMaskedS3TC - [True/False]
This is a debug option designed to emulate the behavior of older renderers. If set to True, it will prevent masking from working on masked S3TC textures.

Use16BitTextures - [True/False]
Selects lower quality and more compact formats for a number of textures, which will often speed things up. In many cases, there is only minor quality loss. In other cases, like with various skyboxes and coronas, there is often major quality loss.

UseBGRATextures - [True/False]
Allows textures to be uploaded in BGRA format rather than RGBA format if the GL_EXT_bgra extension is supported. This can improve texture upload performance. This option should always be enabled unless it causes problems.

LODBias - [Floating point]
Allows mipmap selection bias to be adjusted. Use negative values to pseudo sharpen textures. Use positive values to blur textures and potentially improve performance at the expense of blurry textures.

UseTNT - [True/False]
A workaround for buggy TNT/TNT2 drivers. Alters texture scaling and mipmap generation behavior. If you really want to know all the details, check the source code.

TexDXT1ToDXT3 - [True/False]
A workaround for poor image quality on NVIDIA GeForce1 - GeForce4 series hardware when using DXT1 format S3TC compressed textures. If enabled, converts all DXT1 textures to DXT3 textures on upload. This improves image quality on the previously mentioned NVIDIA hardware at the expense of twice as much texture memory usage for these textures. The NVIDIA DXT1 image quality problems or most noticeable on certain skybox textures. Keep this in mind when deciding whether or not to trade image quality for speed here. This option should not be enabled on any hardware that draws DXT1 textures with the same quality as DXT3 textures of course.

UseMultiTexture - [True/False]
Controls the use of multitexturing. Should always be enabled as the renderer has a few glitches when it is not. I might try to track these down some day. Due to the way some parts of the renderer are still written, it is likely to fail on any system without support for the GL_ARB_multitexture extension anyway.

UsePrecache - [True/False]
Controls texture precaching. Texture precaching may improve performance by initializing internal data structures for a number of world textures and most likely getting them loaded into video memory at level load time. It will also slow level loading down some.

MaxTMUnits - [Integer]
Used to limit the number of texture units used by the renderer. Useful as a debug option. Disabled if set to 0.

UsePalette - [True/False]
Controls the use of paletted textures. If there is hardware support for paletted textures, using them can significantly improve performance.

UseAlphaPalette - [True/False]
A workaround for very old buggy GeForce drivers. If set to False, will not upload masked textures as paletted. If there is hardware support for paletted textures, this option should be set to True unless it causes any problems.

MaskedTextureHack - [True/False]
Enabling this option can prevent rendering problems with masked textures when the same texture is applied to different polygons that do not have the masked attribute set consistently across all of them. Likely examples of masked texture problems are rendering errors with solid colored boxes around railings and trees that can often times be fixed with the flush command. There is some risk to using this option, which is why it's called a hack option. It's likely to be very safe, but not completely safe. Implementing it the completely safe way is a lot of extra work, so it uses the simple solution. If it does happen to fail, there will be some completely incorrect textures on some objects.

GammaOffset - [Floating point]
Offset for gamma correction. Can be used to adjust gamma correction even more if you hit the end of the Brightness slider in Video options. The default value of 0.0 causes no change. Use negative values for darker or positive values for brighter. If adjusting this setting for the first time, I'd recommend starting with small values such as -0.3 or 0.3.

GammaCorrectScreenshots - [True/False]
If enabled, will apply gamma correction to screen shots.

GammaOffsetRed - [Floating point]
GammaOffsetGreen - [Floating point]
GammaOffsetBlue - [Floating point]
Fine tuning parameters for gamma correction. These allow different offsets to be specified for each color channel. These offsets are never applied when gamma correcting screen shots, even if GammaCorrectScreenshots is enabled.

OneXBlending - [True/False]
If enabled, matches what the D3D renderer does for blending in multitexture mode when applying lightmaps to world geometry. I can't say for sure which way is correct. In single texture mode, the D3D renderer does appear to do blending like the OpenGL renderer in single texture mode or multitexture mode without OneXBlending enabled.

RequestHighResolutionZ - [True/False]
Allows a high resolution Z buffer to be requested when running in a 16-bit color mode. It's a good idea to enable this option if running in 16-bit color because rendering problems can occur if a 16-bit Z buffer is used. Note that not all video cards support Z and color buffers of dissimilar bit depths.

RefreshRate - [Integer]

Can be used to request a specific refresh rate when running full screen. If set to 0, a default refresh rate is used. If this value is set to an invalid or unsupported refresh rate based on video card or monitor capabilities, the renderer will fail to initialize.

SwapInterval - [Integer]
Controls V Sync. If set to the default value of -1, the default buffer swapping method is used. Set to 0 to disable V Sync. Set to 1 to enable V Sync. Set to higher values for one frame every N screen refreshes. Not all video drivers support values higher than 1.

FrameRateLimit - [Integer]
CPU controlled frame rate limiter in frames per second. Set to 0 to disable.

UseAA - [True/False]
Enables multisample antialiasing. Requires the GL_ARB_multisample extension.

NumAASamples - [Integer]
Specifies the number of samples to use per fragment for antialiasing. 2 and 4 are common values that should work on many video cards.

AAFilterHint - [Integer]
Can be used to enable Quincunx AA on NVIDIA video cards that support it. Set to 2 to enable this mode.

UseZTrick - [True/False]
Can avoid some z-buffer clears at the expense of cutting z-buffer precision in half. This may improve performance on some video cards. On video cards with z-buffer optimization hardware, enabling this setting may significantly reduce performance as it interferes with some hardware z-buffer optimization implementations.

ZRangeHack - [True/False]
An experimental option that can make the z-buffer work better for far away objects. Might cause unexpected problems, but doesn't seem to break anything major so far. Will fix problems with decals flickering in the distance with 24-bit z-buffers, which is the most you can get on many video cards. Will also fix the issue with the Redeemer covering up part of the HUD. Partially breaks weapon rendering on the first person view one if using wireframe debug mode (will clip near parts of it). Doesn't help enough to make 16-bit z-buffers work correctly.

MaxLogUOverV - [Integer]
Set to 8.

MaxLogVOverU - [Integer]
Set to 8.

MinLogTextureSize - [Integer]
Set to 0.

MaxLogTextureSize - [Integer]
Set to 8, or 0.

UseCVA - [True/False]
Enables the use of the compiled vertex array (CVA) extension. It may be useful on video cards without HW T&L. It is likely to slow things down a little bit on video cards with HW T&L.

UseMultidrawArrays - [True/False]
Enables the use of the GL_EXT_multi_draw_arrays extension.

BufferClippedActorTris - [True/False]
Alters how certain actor polygons are handled, some of which happen to be clipped by higher level code. It's a tradeoff and it is unlikely to make much of a difference either way.

BufferTileQuads - [True/False]
Enables buffering in the DrawTile path. May improve text rendering performance.

UseSSE - [True/False]
Controls the use of SSE instructions. Set to True to auto detect CPU and OS support for SSE instructions and use them if supported. Set to False to disable the use of SSE instructions.

UseVertexProgram - [True/False]
Enables vertex program mode. Consider this an experimental option. It can improve performance in some cases. It can also slow things down a lot if certain other settings are not configured correctly. It is likely to slow things down a lot if detail textures are enabled, but single pass detail texture mode is not enabled. It may not work correctly or may cause crashes with some video drivers.

UseTexIdPool - [True/False]
Should be set to True.

UseTexPool - [True/False]
Should be set to True.

DynamicTexIdRecycleLevel - [Integer]
Should be set to the default value of 100.

DetailTextures - [True/False]
Enables detail textures.

UseDetailAlpha - [True/False]
Must be enabled for proper detail texture support.

DetailClipping - [True/False]
Enables the use of a somewhat experimental detail texture mode. It costs more CPU time, but may improve performance in fill rate limited situations.

DetailMax - [Integer]
Set to 2 to enable a second detail texture layer. Set to 0 or 1 for standard one layer detail texturing if detail textures are enabled. The second detail texture layer will not show up unless SinglePassDetail is disabled.

SinglePassDetail - [True/False]
Enables single pass detail texture mode. This should generally be the highest performance detail texture mode. It requires 4 texture units. It also requires the UseDetailAlpha option to be enabled.

SinglePassFog - [True/False]
Enables single pass fog mode. This should generally be the highest performance fog mode. It requires 3 texture units. It also requires support for either the GL_ATI_texture_env_combine3 extension or the GL_NV_texture_env_combine4 extension.

ColorizeDetailTextures - [True/False]
Debug option for detail textures. If enabled, adds a green tint to detail textures.

New Sounddevices OpenAL and FMOD:

OpenAL OpenAL is far from beeing that popular like OpenGL is, the idea is the same, but instead of Video its for Audio. Currently developed and maintained by
OpenAL main target is to support fully 5.1 (Surround)Soundsystems. Best support is on CreativeLabs Cards and probably other High-End Soundsystems. Low-End and Onboard-Audio should do as well. Should do better even on 2 speaker setup than the original Galaxy-Sounddriver.

Set in Advanced Options / Drivers / AudioDevice / ALAudio.ALAudioSubsystem

The advantages of it are:
True Surround Sound (means you now can really hear where your opponents are, 100% precise)

Hardware Sound (how many channels usable depends on the used Soundcard)

Support for Reverb (unfortunately not the original implemented modell, not possible with hardware sound, and maybe never will).
EAX2.0 for different ambients: Zones within Unreal now have a special „ambient“ for every type like Water, Lava, Slime, Nitrogen and Tarzone.

Music Output based on FMOD:

Here are the details for the settings:
DopplerFactor – [1.0/...]
Factor for doppler effect. If you don't know whats doppler is, leave as is.

UseOriginalUnreal – [True/False]
True : use use linear rolloff sound model, like unreal did
False : use inverse distance rolloff model like current game do, (maybe not the best in this case)

UseReverb – [True/False]
True: enable Reverb and EAX effects, including Ambients

AmbientFactor - [0.7/...]
Loudness of unreal ambient sounds, like background sounds (frogs and such), EAX Ambients are not affected by this.

A list of all available Sounddevices in the System. Use DirectSound for Software Rendering, DirectSound3D or specific Creative-Labs Cards (like SB-Live, Audigy) for Hardware

Channels – [64/...]
How many channels used. Depends on Soundcard when used DirectSound3D (Hardware Accelerated) and more or less on CPU-Power and Memory when using DirectSound (Software)
32 Should do it, but sometimes seems to cause crackling. If you experience such problems try to use DirectSound instead with a higher setting. Only most recent soundcards like Creative's Audigy support 64 Hardwarechannels. 64 is recommended.

OutputRate – [8000,11025,16000,22050,32000,44100,48000]
Frequency of the output. Best to leave it at 44100Hz

UseDigitalMusic – [True/False]
Enables/Disables Unreal Music

New maps can be enhanced with the following ambients (placed as zoneinfo „EAXZone“ in UED) :


and can be combined (but must'nt be) or used with specific custom settings:

var(EAX) bool bUserDefined; // True to use options below
var(EAX) float EFXflAirAbsorptionGainHF;
var(EAX) float EFXflDecayHFRatio;
var(EAX) float EFXflDecayLFRatio;
var(EAX) float EFXflDecayTime;
var(EAX) float EFXflDensity;
var(EAX) float EFXflDiffusion;
var(EAX) float EFXflEchoDepth;
var(EAX) float EFXflEchoTime;
var(EAX) float EFXflGain;
var(EAX) float EFXflGainHF;
var(EAX) float EFXflGainLF;
var(EAX) float EFXflHFReference;
var(EAX) float EFXflLFReference;
var(EAX) float EFXflLateReverbDelay;
var(EAX) float EFXflLateReverbGain;
var(EAX) float EFXflReflectionsPanX;
var(EAX) float EFXflReflectionsPanY;
var(EAX) float EFXflReflectionsPanZ;
var(EAX) float EFXflRoomRolloffFactor;
var(EAX) bool EFXiDecayHFLimit;

For detailed informations read this document (out of OpenAL SDK): Effects Extension Guide.pdf

Added new commands for OpenAL:
astat audio
astat detail
for stats and details about currently played sounds.

For ban and kickban there are the following commands:

uplayers: shows for all players the name, ID, IP-Address, IdentNr and Identity
ukickid: kicks a player with a given ID
ubanid: kicks and bans a player with a given ID (full ban by IP and Name, even after a restart of the game/server)
uhelp: prints the list below ingame
ubanlist: shows a list with all banned players
uunban: unbans a player with the number X (see in banlist for the ban-number)
utempbanid: kicks and bans a player until server is restarted
utempbanlist: current list of temp-banned players
utempunban: unbans a tempbanned player with the number X (see in tempbanlist for the ban-number)
utempunbanall: unbans all tempbanned players

The bansystem includes now 3 checks:
Player IP
Player IdentNr which collects one unique identify number, based on informations from the client (No information is collected from the client, just a checksum).
Player Identity which collects another one unique identify number, based on informations from the client (No information is collected from the client, just a checksum).
Logs the PlayerName

The first check is pre-login, checks for the IP and disconnects directly

The other checks need the client to be logged in, but if he was banned, he will be kicked and put on tempban with IP so that the next attempt will be caught before login again.

The disconnected client gets either "You have been banned" or "You have been temporarily banned" (227 clients only, older clients will get "Connection Failed))

Banned players will be stored in Unreal.ini and stay there until unbanned. Tempbanned players will be banned until a mapchange or a server restart.

Supports footstepsounds and footprints

but to use these new features, the texture properties need to be changed, there are now 4 slots for different sounds (FootStepSound) the texture produces when walking on, and one variable (Footprint) which defines if, or if not, the texture shows a footprint when walking on.

UI-FX added

Contains a new collection of scripts for ParticleEmitter, Weathereffects, a vegetation Generator and a KeyTrigger.

Supports skeletal meshes like in UT

Overview (original from

The skeletal animation support in Unreal was designed to be almost completely backwards compatible with the vertex animation. This document assumes the artists/programmers are somewhat familiar with the process of creating/managing (vertex-) animation content for Unreal/Unreal Tournament (see "Animation Basics" )The animating vertices are replaced by an invisible hierarchy of animating bones, which move vertices of the mesh either directly or in weighted combinations. Content is created in 3D Studio Max 2.5/3.0/3.1 and exported to a custom (loss-less) binary format, and the animation data is digested (compressed) at package-building time.

During content rebuilds ('ucc make'), .PSA files are digested into UAnimation objects, and .PSK files into USkeletalMesh objects. The animations then work with the exact same commands and sequence-notification pathways as the classic vertex animated models.

Model files have the .PSK extension, animation files have a .PSA extension. A path name needs to be set at all times, since that also determines the destination of the log files.

A .PSK (model) file can be saved at any time when your model is loaded. The .PSA (animation) file can consist of multiple animations which are 'digested', selected animations can then be grouped together, renamed, and saved/loaded.

Animations are 'bundled' into memory as they are digested by the exporter. The actual saving out to a file is done from a separate animation manager window (see its button) which allows saving, loading and parameter tweaking of animations in previous bundled .PSA files. Changing parameters like the animation names, grouping names, and frame rates is done on the selected animation in the first list, which can then be shuffled back and forth to the second list which represents the .PSA file to be written.

The Maya and Max exporters share the same user interfaces, but are activated differently.

Supports HTTP-redirect for downloading maps (like in UT)

The settings to control downloads are in the server's Unreal.ini file. These are the settings for downloads sent directly from the Unreal server:


Setting AllowDownloads to False disables all autodownloads sent directly from the Unreal server. This setting has no effect on redirected downloads. MaxDownloadSize=0 means allow autodownload of any sized file directly from the Unreal server. Otherwise the value is in BYTES. We recommend that rather than disabling all downloads, you set the MaxDownload size to an appropriate value. For example, MaxDownloadSize=100000 will allow mutators and other small packages to be downloaded, but will not allow large files such as maps to be downloaded. Turning off all downloads may make it hard for older clients to get on your server if you are using a lot of custom maps, mutators or other custom packages. This setting also has no effect on redirected downloads.

These are the settings for redirecting downloads to a remote website site:


To enable redirected downloads, you need to set the RedirectToURL variable to point to the website where the files will be autodownloaded from. If a client running 226 or earlier connects to your server, it will ignore the redirection and attempt to download the file directly from the server, so it is important to configure the non-redirected download options even if you intend use redirected downloads. If UseCompression is set to True, the files must be stored on the remote website as compressed .uz files. You can create a compressed .uz file by using the command ucc compress from the DOS prompt in the Unreal\System directory. Typing ucc help compress will give you a list of supported options (currently this is only a list of filenames or wildcards to compress). If UseCompression is set to False, the custom package files should be put on the website as they are. Here are some examples of ucc compress:

C:\Unreal\System> ucc compress ..\maps\dk*.unr
C:\Unreal\System> ucc compress ..\textures\customskins1.utx ..\textures\customskins1.utx ..\maps\DMDeck16.unr

Widescreen adjustment added

Widescreen users can now adjust the FOV to adjust Unreal better for their screens.
(Maybe some mods will override this setting)

Added a new setting in NetDrv:

AllowOlderClients True/False

If set to True, 224,225 and UGold Clients can join the server, if False, they will get the Upgrade Message. But either way, there is a problem. Since the upgrade URL is defined in UpgradeMenu.uc, old clients will be redirected to the old dead upgrade page, and there is nothing I can do about that.

Added Coop options for easy configuration of Weapon, Items, Flares and Seeds spawn time

bInstantWeaponRespawn : If enabled, weapons respawn in 0.1 seconds with no respawn sound.
bInstantItemRespawn : If enabled, weapons respawn in 0.1 seconds with a respawn sound.
bHighFlareAndSeedRespawn : If enabled, respawn for flare and seeds is equal to the value of FlareAndSeedRespawnTime
FlareAndSeedRespawnTime : If bHighFlareAndSeedRespawn is enabled, respawn for flare and seeds is set to this value, default is 10.0. Helpful for people who may abuse infinite flares/seeds.
Note: May not work in subclassed coop games (mods), as the subclass games usually don't call super.shouldrespawn()

A new and fully working quadshot has been added

replaces the old unusable quadshot

Decals have been added to all Unreal weapons (including the monster weapons)

Decals can be added to custom mods as well, but can be turned off if wanted.
All weapon decals{or subclasses of Scorch} will have a configurable variable called "DecalLifeSpan".
This variable effects ONLY clients. Servers need not apply.
Default is -1.
-1 = default behavior, the effects will disappear upon not being rendered for some amount of time.
0 = infinite. Decals will NEVER disappear. use at your own risk.
>0 = time in seconds, 1.1 is 1.1 seconds. 30 is 30 seconds.

Is located under "Decal" then "Lifespan" in preferences

New Blood.

Please note : blood will NOT work completely unless the server you're in is 227c! If you're a 227c client in a non-227c server, you will ONLY see splatter from gibs. the current method is impossible to work otherwise. I'm sorry to tell you that.

Added 2 new engine consolecommands

-GameInfo.ConsoleCommand "GetPreLoginAddress", can be used during Event Prelogin call for retreiving the connectioning client's IP. As example:

event PreLogin( string Options, out string Error )
if( ConsoleCommand("GetPreLoginAddress")=="" )
Log("Lan server administrator logged in");
else Super.PreLogin(Options,Error);

-PlayerPawn.ConsoleCommand "UGetIP", smilar to GetPing but returns instead the Client IP. Useage example:

event PostLogin( playerpawn NewPlayer )
MyNewPRI(NewPlayer.PlayerReplicationInfo).ClientIP = NewPlayer.ConsoleCommand("UGetIP");

Zoneinfo : Zonedamagestring is now used.

If someone dies from the zone info {no instigator, or self instigator, non suicide}, from damage such as lava damage, if a zoneinfo has a supplied zonedamagestring, the gameinfo will use that string as a death message as long as they DIE from the zoneinfos exact same damage. now you could be even more creative with your maps.

If you set a lavazones zonedamagestring to "was too dumb to look down and fell into lava!" with no space at the front, there will be a death message of "Player was too dumb to look down and fell into lava!". This should work on older clients as the server will broadcast this message itself, and no new code is called by the client or assumed.

Updated UBrowser Server browser:

-Bigger default vertical size of that window to show full info of all servers (servername, players, ping, IP, port etc...), without having to resize it.
-Added server version number to appear on server list like in UT.
-Added a "Join with password" button option when you right click at a server from the list.
-"Join with password" window has an ability to save the password so next time you normally connect to that server (through UBrowser) it automatly uses that password.
-When connecting to an "unknown" server (one where you havent desired any password for) it will join with a randomly generated password to protect you from password stealing.

Added a "U227GameRules" class

Can enhance serverside mutator;s, such as modifing player spawn point, modifing damage, preventing deaths, blocking/modifing chat messages etc...
But note that some of these functions may *not* work with some custom game types that modifies the game.
Also using this class will force your mod to be for 227 use only, so try to keep it in use only on server (a non-downloadable package) so older clients can still join the server aswell.

Added a new JumpPad class, UJumpPad:

Actor > NavigationPoint > LiftExit > UJumpPadEnd > UJumpPad
Actor > NavigationPoint > LiftCenter > UJumpDest
Benefits over old JumpPadDM from 227b:
-Easier to adjust jump velocity
-Supports AI pathing

Place UJumpPad as starting point somewhere in the map.
Place UJumpDest as jump destination (jump velocity is automatly adjusted to so you land perfectly on this actor).
Place UJumpPadEnd as the AI path ending point (wherever bots or monsters will land on).
After that set them all have same LiftTag and "Define Paths" in the map (it is Important, or the jump pad wont work).