This patch is completely compatible with the retail version - servers and clients of any flavor can connect with each other. This patch will not overwrite your ut2004.ini and user.ini files, except to update settings as necessary. This patch includes all changes made in Patch 1.
Here is the full change list for Patch 2:
- Added bSmoothKarmaStateUpdates to Actor to control whether Karma interpolates between states
- Added bRepulseWater to KRepulsors and enabled this for Hovercraft
- Added bFlyingKarma to Pawn to indicate PHYS_Karma is active but pawn rotation should still be handled like PHYS_Flying
- SVehicleFactories now store a reference to their marker as MyMarker
- Added bCanHover to Vehicle to indicate a vehicle that can use HoverPathNodes to fly over water.
- Added water damage support to Vehicle so that vehicles will take damage when under water.
- Karma now collides correctly with inverted terrain - courtesy James Golding ;-)
- Increased the extra linear dampening for Karma in water from 0.8 to 2.5 and angular dampening from 0.1 to 0.4
- Moved RepulsorsShouldHit function to ONSVehicle where it should be.
- Added support for PowerCores and PowerNodes triggering events when created and destroyed.
- Cleaned up PowerCore energy beam effect when PowerCores are not present in the map.
- Added bDriverCannotLeaveVehicle flag in ONSVehicle for vehicles you can't get out of but instead will try to flip you upright when you press USE if the
vehicle is flipped.
- Added bNeverActivate to ONSVehicleFactory that can be set by mods that want to use Onslaught maps but not factories.
- Fixed a bug in ONSWeapon that used the primary fire projectile class for alt-fire instead of the alt-fire version.
- Moved daredevil code server-side to avoid horrible cheating and the ability to mod/mutate features based on daredevil tricks.
- Reversable vehicle factories will work correctly when sides are swapped.
- Fixed midgame menu popping up when watching an Onslaught demo if the viewed player dies
- Fixed camera rotation being changed when switching between first and third person view in a manta
- Fixed target/ion painter ammo issues
- Fixed bug in stunt mutator where vehicles would be accelerated in their local downward Z when holding the jump warmup while in air.
- Onslaught turrets cannot damage PowerCores or PowerNodes
- Onslaught vehicles take a very small amount of damage over time when on fire and there is no driver
- Fixed players always spawning at own PowerCore after sides are swapped.
- Fixed problem where bots weren't spawning at the nodes they are defending.
General Game play:
- More script warning fixes
- Fixed armor loop in GameInfo.ReduceDamage() properly handling armor getting destroyed while absorbing damage
- Invasion monsters never use default character mesh
- Fixed CTFSquadAI.FindHidePathFor()
- Make sure always add armor using Pawn.AddShieldStrength()
- Fixed ShieldAbsorb() armor damage absorption to produce consistent results in all situations
- Fixed spawning of physicsvolume entry and exit actors, as well as splash sounds, and made them client side.
- Added WaterSplash, used for projectiles and pawns
- Added SplashEffect property and CheckForSplash() function to WeaponAttachment, so instant hit weapons can cause splashes
- Added BulletSplash, used for trace weapons
- Landing sounds no longer stomp on splash sounds
- Added WaterRing - spawned while pawn is walking in water, or center of pawn enters water (new PawnEntryActor property in PhysicsVolume)
- Fixed pawn visible rotation lagging too far behind actual rotation (because of head/torso twist support)
- Fixed bots going after nearby dropped inventory that they couldn't pick up
- Fixed some dynamic uploads (which could cause occasional hitching during gameplay)
- Fixed getting proper ammo count when picking up dropped weapon and already have ammo but no weapon of that type
- Fixed SquadLeader getting set to none if everyone in squad is in a turret
- HUD weapon bar bShowMissingWeaponInfo now config, so is properly saved
- Fixed CTFSquadAI finding flagholder when holder is in vehicle
- Fixed "Use Map Defaults" for bots can result in uneven teams in some maps
- [USE] will only bring up the mid-game menu in ONS games
- Fix for custom models crashing the single player game.
- Fixed TracerProjectile location setting after near miss sound effect
- Fixed BR bomb trail position in multiplayer
- Added Instagib CTF as standalone gametype
- Allow chatting when the game is paused.
- No longer catch own weapon when thrown while running forward
- Fixed weapons checking if they were out of ammo when they weren't the active weapon (which was causing undesired switching to best weapon)
- Server browser filters have been reworked to be easier to use.
- Localized "New News" message
- Added localized IRC channels for French and German.
- Added a flashing messages when there is new community news.
- Movie Panel.
- Various Web Admin style fixes
- Don't load non-default voicepacks on dedicated server
- Fixed server enforcement of maxresponsetime, and make sure clients don't trip it accidentally
- Fixed speedhack detection false positives
- Increased NetPriority of controlled ONSWeaponPawns
- Fixed client-side game time getting screwed up
- Improved jumping/dodging/etc. not getting lost when there's significant packet loss
- Fixed Cheat protect to view most voicepacks as ok
- Fixed *hopefully* the ServerBrowser locking packages and tripping cheat protection.
- Don't spawn votinghandler and votingreplicationinfos for servers which don't have voting enabled (slight performance improvement for those servers)
- TeamInfo and SquadAI have lower netupdatefrequency (for server performance). Set NetUpdateTime whenever a replicated property is updated to get it
- Make sure that mutators are properly reported to master server
- Made ServerShortTimeout() replicated function reliable
- MasterServerUplink now caches calls to GetServerInfo and GetServerDetails.
- Onslaught server performance improvements:
- vehicle packed state struct updates don't set bNetDirty
- don't update vehicle SoundPitch on dedicated servers
- improved WebProjectile net performance
- added bIsAwake and bHasBeenAwake flags to ONSVehicle, used for packed state replication
- Fixed replication conditions for a bunch of vehicle/projectile properties, changed from bNetDirty to bNetInitial
- Fixed NetworkStatusMessages once and for all
- Reenabled temp. MD5 database generation for loaded packages on a server
- Fixed "flying player" exploit.
- Fixed keeping high translocator trajectory persistent across online level changes.
Mod Author Related:
- Fix for the UCL not exporting bug.
- Fix for .INT files in mod hierarchy, Removed Temp MD5 Warning Message.
- Call PostRender2D() on own pawn as well (mod authors can decide not to render custom beacon)
- Added LevelInfo native function GetPhysicsVolume() - returns the physics volume at a specified location
- Added actor property bTraceWater. If true, trace() by this actor returns collisions with water volumes
- Added support for strafing while on ladders, if the LadderVolume property bAllowLadderStrafing is set true (still false by default)
- Fix for log files and -MOD= switch
- Fix for cache manager exporting ucl files when it shouldn't
- Fixed LoadDecoText
- Use CrouchedPct instead of WalkingPct for crouched pawns
- Vehicle function NumPassengers() now simulated so it can be called on clients
- Made Destroy() function call in ONSVehicle state code indirect (for debugger)
- Fixed localization for mod support
- Now support multiple music directories
- Save Games fixed, with the following limitations:
- ragdolls aren't serialized
- animations aren't serialized (but uses simanim to save channel 0)
- must run UT2004 with -makenames option, or set bSupportSaveGames true in LevelInfo
- added Actor events PreSaveGame() and PostLoadSavedGame()
- Render hud overlays on DM_Low clients also
3D Buzz Editor Enhancements (Thanks to our friends at www.3dbuzz.com ! Check out their UT2004 mod author video tutorials at
- Maximize Viewports fixed
- Static Mesh Create From Selected added
- Splitter bar between Viewport and props in SM viewer fixed.
- Button to snap view to frame the current mesh added
- Option to auto-snap view on mesh change
- Added realtime preview to the SM browser.
- New Array tool for quickly adding actors.
- Fogging is based on camera position rather than pawn head position (important for third person camera while pawn is submerged)
- Removed D3D9Drv.dll and default.ini from patch
- Fixed bug reporting address for Italian, Spanish, and French localized versions.
- Fixed "Intersect Function" crash from first patch.
- Fixed mousewheel input on Win64.
- Removed some pre-release debugging that was still enabled
Here is the full change list for Patch 1:
- Teams will now swap sides after each Onslaught round by default. This is configurable in the game settings menu.
- Fixed flying Leviathan exploit where Leviathan can be based on another vehicle.
- Fixed Leviathan pushing exploits by limiting the Leviathans max speed.
- Fixed Tank pushing exploits by limiting max speed unless falling.
- Node location names show up correctly in network games.
- Fixed terrains with a negative scale not showing PowerNodes.
- RadarMap can no longer be moved off-screen using the HUD configuration menu.
- Fixed possibility of ion cannon volume in ONS-Severance killing someone entering it without giving them warnings first
- Fixed bots getting stuck next to a vehicle because they didn't think they were close enough to enter
- fixed players getting out of vehicles into water
- Fixed Invasion ammo not replenishing at end of wave
- Fixed Invasion's ScoreKill() not notifying GameRules when monster kills a player
General Game play:
- fixed which anim is played during sniper zoom (removes log warnings)
- fixed redeemer reticle being affected by HUD opacity setting
- fixed skaarj playing taunt anims
- make sure no wrap around on multikill numbers
- call takefallingdamage() on wall dodge to prevent it being used as an exploit for avoiding damage on long falls (can still use wall dodging anywhere you could before, you just take damage if you are falling too fast).
- fixed miscellaneous game code log spam.
- UTClassic Rocket fix for delay before can fire again after loading up 6 rockets
- fixed zoom instagib beam positioning
- improved hidden lightning gun beam positioning
- fixed bioammo positioning
- force correct default character, even if PRI hasn't been replicated yet
- force same character as player is using - players using bForceDefaultCharacter must use a valid forced character as their own model
- improved team balancing in network games
- added profile fix to unlock chars (where due) for "old" profiles
Map and Kick Voting:
- Fixed incorrect map voting gameconfig at startup
- Reenabled map, kick voting.
- Removed Voting filter combos on server filters page.
- Added "None" selection in the map voting web admin config.
- Edit only 1 line at a time in map voting web admin config.
- Cleaned up/ fixed map voting menus
- DefaultMapListLoader loads prefixes from GameConfig settings by default.
- Added UseMapList property to PlayInfo
- Disabled the MapListLoaderType PlayInfo property
(disables MapListConfigPage - makes it simpler to configure)
- Fixed wrong map types showing for default selected game type in voting
menu. Only happens if GameConfg.GameClass is not set with the same case.
- Implemented exec ShowVoteMenu
- Map voting defaults to ONLY server startup gametype and maps if not
configured. (Auto-detect configuration)
- Added extra check for invalid gametype/maps votes.
- Sort maps in MC ListBox on map voting page by name by default
- Changed to descending sort order in vote count MC ListBox
- Fixed weapon custom crosshair menu problems, whiched caused you to sometimes
lose crosshairs entirely.
- Fixed correctly displaying VOIP key bindings in control config menu.
- allow mouse sensitivity settings as low as 0.25 in menus
- made blue player text brighter in server browser player list box
- fixed menu range for idle kick timer
- Add bFixedMouseSize to lock the size of the cursor
- Fixed GUIPage closing issue (Thank Wormbo)
- Fixed Sorting issue with Map Lists
- Fixed issues with the OwnageMap page and older clients.
- Demo->AVI menu uses proper resolution settings
- Fixed auto demo recording
- fixed DIVx demo movies being recorded at too high a frame rate
- Fixed bug in UT2K4NetworkStatusMsg causing incorrect status message to be
- Don't display join/leave messages for standard voice channels
- Listen servers pinged last?
- Security updates
- Server browser news page now supports clickable hyperlinks.
- If master server doesn't respond, still pings official servers
- Fixed projectiles don't have dynamic light on clients connected to dedicated
- give client correct kick message when kicked for idling
- improved and enabled speedhack detection
- send message to client warning about speed hack detection
- servers won't send more than 8 packets out to client before getting a
response (DOS attack blunting)
- fixed netmode conditions for preloading player skins
- improved character skin precaching speed (less unnecessary skin precaching)
Server Admin Related
- Optimized webadmin initialization, noticable improvement in the time between
map changes (if webadmin enabled)
- Fixed interface-related bug in gametype drop down
- In the Defaults - Map page, fixed bug with adding/removing multiple maps at
the same time
- Webadmin no longer overwrites custom URL parmeters that have been manually
added to maplist entries
- Fixed webadmin bots page layout & accessed nones
- Fixed bugs in SortedStringArray sorting (affects bots / admins / groups pages in webadmin)
- New map & mutator packages no longer require server restart to appear in webadmin mutator/map lists.
- fixed webadmin and menu idle kick time range
- added MaxTimeMargin, MinTimeMargin, TimeMarginSlack configurable properties
for tweaking speedhack detection to [Engin.LevelInfo] section of UT2004.ini
- admins don't get kicked for idling
- To prevent DDOS attacks by UT2004 servers against subnets, added
LimitConnPerIPRangePerMinute property to [IpDrv.TcpNetDriver].
- pkg_official packages can be downloaded, and guid must be matched for them
- Added bKickLiveIdlers to [Engine.LevelInfo]. If set true, players with pawns
can also be kicked for idling.
Mod Author Related
- Impersonator support integrated (see http://www.oc3ent.com/home.htm for details). Provides support lip synching to spoken phrases, with UnrealEd integration. Tools and examples to come soon!
- Reorganized placement of webadmin functions to be more linear, easier to follow
- Added more comments to webadmin code
- Fixed crash in BatchExport commandlet when attempting to export .uc for packages which contain purely native classes
- Properties marked as 'noexport' will no longer be ignored when batchexporting .uc's
- Added Vehicle.Bulldog to CacheManager default packages (cacheexempt), and marked Bulldog cache exempt so that it isn't exported to .ucl file
- Fixed bug in classname matching which caused two classes that began with the same name (such as ClassBase & ClassBaseDerived) to be interpreted as the same class
- Automatically export to .ucl file when package is compiled.
- Automatically export to .ucl file when map is saved.
- Custom webadmin skins no longer required to provide every .inc file that webadmin uses
- Webadmin now searches main /ServerAdmin directory for .inc & .htm files that cannot be found in skin path
- GUIController now correctly cleans up custom styles that use the same keyname as default styles
- if .upl files exist in mod directory, ignores the .upl files in the system directory.
- INT files no longer have to be in UT2004System.
- UCC no longer gives an error when using -mod= switch with 'dumpint' and 'exportcache'.
- Can specify a Paths= for music (.ogg) and karma data (.ka) files, so they can be included in the mod's directory structure.
- Config variables properly save to UT2004ModNameSystemWhatever.ini instead of UT2004SystemWhatever.ini.
- No longer get "ERROR: Could not open whatever.u for reading!" in UT2004.log for mod packages.
- Gracefully handle lack of tooltips in mod menus.
- fixed USoundExporterWAV to not try to export procedural sounds and sound groups
- Added AddToPackageMap() native function to Actor. This function adds PackageName to the packagemap (as if it was in GameEngine's ServerPackages
list), or, if omitted, adds the package of the actor it was called on. This function is only valid during initialization (between GameInfo::InitGame() and
GameInfo::SetInitialState()) If called outside of that window, or anytime on a client, the function returns without doing anything.
- Fixed bAddToServerPackages mutator flag
- Mutator config menus:
- Fixed handling of arrays
- Support for advanced and multiplayer only options
- Fixed config class properties not being saved to .ini properly
- fixed BroadcastHandler AcceptBroadcastText() parameter
- Added IconFlashMaterial to Ammunition, to allow mod ammunition classes to work right on HUD.
- AdrenalinePickup amount no longer hard coded
- Added support for a mod based KarmaData directory
- Fixed bug with disappearing actors after lighting rebuild
- Sped up ALAudio initialization in editor by not precaching sounds
- fixed memory leak in caching system
- fixed crash in GUIToolTip::Draw()
- fixed bug in cache loading for crosshairs (custom crosshairs now appear correctly in menus)
- removed temporary sanity checks in projector code and pathfinding code (small performance improvement)
- gracefully handle negative delta time
- properly set GCurrentTime in UTV
- fixed resource induced memory leak in PixoResource
- more debugging to track down infrequent FALVoiceModule::Decode crash
- bForceSkelUpdate no longer true by default for pawns (still true by default for vehicles). Performance improvement (especially for servers), but mod authors relying on this feature may need to change the value for their pawns.
- fixed memory leak in swiming physics code
- many spelling/grammar error fixes
- friendly error messages for file loading problems caused by overheating or corrupt installs
- don't crash if non-Emitter has DT_Particle
- removed some VOIP log spam
- fixed installing korean version on Windows 98
- CD/DVD not required to play
- fixed CacheRecords.ucl handling on Linux
- Various client and server crash fixes
- fixed Mac clients reporting incorrect MD5s for packages and tripping security checks.
- Make MacOS version prevent user from ejecting the game DVD while game is running.
More articles about Unreal Tournament 2004