UE Explorer

April 06, 2012

UE Explorer is an easy-to-use browser and decompiler for Unreal Engine packages (.upk, .u).

What's a decompiler?

An UnrealScript decompiler is an application that does the opposite of what a compiler does, a decompiler translates the bytecodes(binary) to readable code, making it possible to research and learn from its code, and more(see below).

Why use a decompiler?

UE Explorer may be useful for many things, some of which are:

  • Decompiling code is a great way to learn UnrealScript or programming techniques from games
  • While not free of compiler errors, if you happen to lose your source code you'll be able to recover your source code quickly thanks to a decompiler
  • Decompiling mods to check for malicious intent
  • A useful resource to browse libraries or APIs with no documentation or lack thereof
  • To investigate your own code to determine possible issues such as implicit casts with byte on bitwise operators
  • Rebuild a mod to another engine or game

All of the above is assuming you have permission to do such things!

 

Beware! Use UE Explorer only for learning purposes, UE Explorer is not designed for copying or recompiling other people's work, always ask for permission from its respective owners!

DO NOT PUBLISH DECOMPILED SOURCE CODE WITHOUT PERMISSION FROM ITS RESPECTIVE OWNERS

UnrealScript Features

Classes

UE Explorer decompiles any UnrealScript class up to great accuracy to the original code. Everything from comments, to objects, replication, and defaultproperties are properly output and browsable using a rich syntax highlighting editor.

Comments

Comments are insert into the generated code which are fetched from the MetaData within the package:

Fields

Constants, Enumerations, Structures, Variables, and functions are all decompilable.

DefaultProperties

Unlike other decompiles, UE Explorer does decompile every data type exposed in the defaultproperties block.

  • Bytes, Ints, Floats, Bools
  • Dynamic Arrays, Static Arrays
  • Structs, Subobjects
  • Enums, Delegates
  • Strings

Archetypes

Archetypes are created instances of templated class object with their own set of default values(called DefaultProperties in classes).

Archetypes are a great technique for Level Designers to customize a set of classes such as a Monster whom's default values such as Health, Skin, and Weapons set may have been modified without having to interfere a programmer. All these archetypes are decompilable using UE Explorer's Objects->Content tab, this tab also lists all the sounds, textures and any other kind of content.

Interface Features

The UE Explorer's interface exposes a great amount of information such as the package's content, but also the technical details which can be an useful resource for some developers. These details are things such as the package's version number, licensee version, and the package's settings such as whether if the package is download or server side only.

Tools

UE Explorer provides a bunch of useful tools for people whom are interested in modding Unreal package files and anyone else interested in learning UnrealScript.

  • Export decompiled and/or imported scripts from any package containing code
  • Search in decompiled object or classes
  • View the package or any object individual with an inbuilt hex-viewer providing colorful structures and ease of navigating throughout a package's objects with support for Unreal specific data types
  • A clean interface of classes with all its fields decompilable individually using the tree view
  • Has an inbuilt color code generator, useful for any modder or server administrator willing to color titles of a server of map objective etc!
  • The dependencies treeview shows a deep detailed dependencies tree of packages such as maps or code up to point of why a loaded package is dependent on another specific package. Which is great for optimizing mods or games before releasing
  • Export sounds from UE1 and UE2 games

Tables

Names

The names table lists all the unique names whom are used within the package.

 

Exports

The exports table lists all the objects whom exist in the package.

 

The exports table will provide loads of essential and useful information of each object such as the "Object Offset" which tells the position where said object exists in the package file.

 

This can be useful if you are willing to use a Hex-Editor to modify some bytes from said object.

 

Imports

The imports table is basically the equivalant of the in depth dependencies TreeList, except this one is provided in the raw format which is unorginazed.

 

This collection provides several details for each import. An import describes which object/class this package requires for it to function properly.

Each import will describe its class and in which package that class resists.

 

Generations

The generations table lists all the generations of this package which were built using the ConformCommandlet.

 

Conforming is used to keep updated packages compatible online with older versions of the same package.

 

This table is useful for validating if your package is indeed conformed.

 

Objects

Dependencies

The dependencies treeview exposes what a package is dependent on such as this image which shows that package A is dependent on package Core, and when expanded you can see why package A is dependent on Core.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Supported Games

UELib supports all of the following tested games! May support more than what's listed here!
Not all of those games are fully supported. Some may not even be decompilable.

Name Engine:Branch Package/Licensee Support State
Unreal 100-226 61/000
Star Trek: The Next Generation: Klingon Honor Guard 219 61/000
X-COM: Alliance 200-220 61/000 Bad output at the start of functions (BeginFunctionToken)
Dr. Brain: Action Reaction 224 63-68/000
Nerf Arena Blast 225 63-68/000
The Wheel of Time 225:WoT 63-68/000
Unreal Mission Pack: Return to Na Pali 226b 68/000
Unreal Tournament 338-436 68-69/000
Deus Ex 400-436 68/000
Jazz Jackrabbit 3D 400 68/000
Duke Nukem Forever (2001) 613 68/002 UStruct offsets are off leading to bad output code
Rune 400 69/000
Unrealty 405 69/000
X-COM: Enforcer 420 69/000
Tactical Ops: Assault on Terror 436 69/000
Star Trek: Deep Space Nine: The Fallen 338 73/000
Harry Potter and the Sorcerer's Stone 436 76/000
Harry Potter and the Chamber of Secrets 433 79/000
Disney's Brother Bear 433 80/000 Link
Mobile Forces 436 81-83/000, 69
Clive Barker's Undying 420 72-85/000 Versions 72 to 83 are not auto detected.
Thief: Deadly Shadows 777:Flesh 95/133 Thanks in part to @hanfling; LinkedData not supported
Deus Ex: Invisible War 777:Flesh 95/069 Thanks in part to @hanfling; LinkedData not supported
XIII 829 100/058
Tom Clancy's Splinter Cell 829 100/017
Tom Clancy's Splinter Cell: Chaos Theory 829 100/120:SCX, 175/000:ShadowStrike (PC) demo version, Versus mode not supported
Tom Clancy's Splinter Cell: Double Agent 829 100/167:SCX, 275/000:ShadowStrike (PC) Offline mode version, Online mode not supported
Tom Clancy's Splinter Cell: Blacklist 829 102/116:LEAD In part thanks to @shryder. Third-party decompression is required
Tom Clancy's Rainbow Six 3: Raven Shield 600-927 118/012-014
Postal 2: Paradise Lost 1417 118/002
Unreal Tournament 2003 1077-2225 119/025
Devastation 600-? 118-120/004-008
Unreal II: The Awakening 829-2001 126/2609
Unreal II: eXpanded MultiPlayer 2226 126/000 Custom features are not decompiled
Desert Thunder 2226 126/000
Land of the Dead: Road to Fiddler's Green 2226 126/001
Unreal Tournament 2004 3120-3369 128/029
America's Army 2 3339 128/032:033 2.5, 2.6, 2.8
America's Army (Arcade) 3339 128/032 2.6
Red Orchestra: Ostfront 41-45 3323-3369 128/029
Killing Floor 3369 128/029
Battle Territory: Battery 3369 128/029?
Shadow Ops: Red Mercury 2110 129/010
Vanguard: Saga of Heroes 2226 129/035
Harry Potter and the Prisoner of Azkaban 2226 129/000 Link
Shrek 2 2226 129
Shark Tale 2226 129/003
Lemony Snicket's A Series of Unfortunate Events 2226 129/003
Swat 4 2226:Vengeance 129/027
Stargate SG1: The Alliance 4180 130/004
Tribes: Vengeance 2226:Vengeance 130/027
Bioshock 2226:Vengeance 130-141/056
Men of Valor 926 137/000 PC
Bioshock 2 2226:Vengeance 143/059
Advent Rising 2226 143-146/007
Unreal Championship 2: Liandri Conflict 3323 151/002 Third-party
Star Wars: Republic Commando 2226 134-159/001
The Chronicles of Spellborn 3323 159/029
Duke Nukem Forever (2011) Unknown 156/036 Extraction is required
RoboHordes Unknown 198-200/000
Tom Clancy's Rainbow Six: Vegas Unknown 241/066
Tom Clancy's Rainbow Six: Vegas 2 Unknown 241/071
Tom Clancy's EndWar Unknown 329/000
Roboblitz 2306 369/006
Stranglehold 2605 375/025
Mass Effect (Xbox 360) 2674 391/092 Xenon
Warmonger: Operation Downtown Destruction 2859 419/003
Medal of Honor: Airborne 2859 421/011
Frontlines: Fuel of War 2917 433/052
Army of Two 3004 445/079 Overall quality has not been verified
Mortal Kombat Komplete Edition 2605 472/046
Stargate Worlds 3004 486/007
Gears of War 3329 490/009
Mass Effect (Windows) 3240 491/1008(~112) PC
Huxley 3240 496/016-023 Contributed by @EDITzDev
Robert Ludlum's The Bourne Conspiracy 511/039
Transformers: War for Cybertron 511/144,145 PC, PS3, Xenon
Unreal Tournament 3 3809 512/000
Mirrors Edge 3716 536/043
Alpha Protocol 3857 539/091
APB: All Points Bulletin 3908 547/028-032
X-Men Origins: Wolverine 4206 568/101 Overall quality has not been verified
Gears of War 2 4638 575/000
CrimeCraft 4701 576/005
Batman: Arkham Asylum 4701 576/21 Contributed by @etkramer
Medal of Honor (2010) 100075??? 581/058 Bad byte-codes
Singularity 4869 584/126
MoonBase Alpha 4947 587/000
Saw Unknown 584/003
The Exiled Realm of Arborea or TERA 4206 610/014
Monday Night Combat 5697 638/000
DC Universe Online 5859 638/6405 Contributed by @theFoof
Unreal Development Kit 5860-12791 664-868
Blacklight: Tango Down 6165 673/002
Dungeons & Dragons: Daggerdale 6165 674/000
Dungeon Defenders 6262 678/002
Mass Effect 3 (Windows) 6383 684/194 PC (platform must be set to Console)
Mass Effect: Legendary Edition (Windows) 6383 684/171 PC (platform must be set to Console)
Alice Madness Returns 6760 690/000
The Ball 6699 706/000
Game of Thrones 6829 727/000
Bioshock Infinite 6829 727/075
Bulletstorm 7052 742/029
Red Orchestra 2: Heroes of Stalingrad 7258 765/Unknown
Rising Storm 2: Vietnam 7258 765/771
Aliens: Colonial Marines 4170 787/047
Infinity Blade 1 7595 788/001 Console
Dishonored 9099 801/030
Tribes: Ascend 7748 805/Unknown
Tony Hawk's Pro Skater HD
Rock of Ages 7748 805/000
Batman: Arkham City 7748 805/101
Batman: Arkham Origins 7748 807/138 Not verified
Sanctum 7876 810/000
AntiChamber 7977 812/000
Waves 8171 813/000
Super Monday Night Combat 8364 820/000
Gears of War 3 8653 828/000
Quantum Conundrum 8623 832/32870
Borderlands 4871 Unknown
Borderlands 2 8623/0023 832/056
Borderlands: Game of the Year Enhanced 5001/0001 832/058
Remember Me 8623 832/021
Gears of War: Ultimate Edition 3340 835/056 Actual package version is 490; thanks to @PaoloTK
Gears of War: Reloaded 3340 835/076 Actual package version is 490; thanks to @PaoloTK
The Haunted: Hells Reach 8788 841/000
Asura's Wrath 8788 841/000 -zlib; platform needs to be set to console.
Blacklight Retribution 8788-10499 841-864/002
Infinity Blade 2 9059 842-864/001 Console
Q.U.B.E 8916 845/000
DmC: Devil May Cry 8916 845/004
XCOM: Enemy Unknown 8916 845/059
XCOM 2: War of the Chosen 8916 845/120 Contributed by @robojumper
Gears of War: Judgement 10566 846/000
Transformers: Fall of Cybertron 846(~587)/181
Deadpool 846(~587)/181
InMomentum 8980 848/000
Unmechanical 9249 852/000
Deadlight 9375 854/000
Land of the Dead 9375 854/000
Borderlands Legends 9505 859/000 iOS; platform needs to be set to console
Ravaged 9641 859/000
The Five Cores 9656 859/000
Painkiller HD 9953 860/000
Chivalry: Medieval Warfare 10246 860/000
Hawken 10681 860/004
Rocket League 10897 867/009 (868/032 has not been tested) Decryption required
Styx: Master of Shadows 10499 860/004
Batman: Arkham Knight 863/32995 Not verified
Gigantic: Rampage Edition 19100 867/010 Contributed by @HyenaCoding
Infinity Blade 3 868/000 Console
Guilty Gear Xrd 10246 868/003 Decryption required
Outlast 12046 868/003
Might & Magic Heroes VII 12161 868/004 (Signature and custom features are not supported)
Bombshell 11767 870/000
Orcs Must Die! Unchained 20430 870/000
Gal*Gun: Double Peace 10897 871/000
Battleborn 8623/1055 874/078
A Hat in Time 12097 877-893/005 Contributed by @Un-Drew
Bulletstorm: Full Clip Edition 12212 877/041
Blue Estate The Game 10246 893/000
Shadow Complex Remastered 10897 893/001
Borderlands 2 VR 8637/0029 895/046
Soldier Front 2 6712 904/009
Rise of the Triad 10508 Unknown
Sherlock Holmes: Crimes and Punishments 10897 Unknown
Alien Rage 7255 Unknown

May also work on other games. Opening unsupported packages may lead to unexpected results! Make sure you have saved everything before opening any file!

Modding

Modding games with UE Explorer is possible to some certain extent.

These games are known to be modded by their communities, I suggest you could go learn how to mod games using Hex Editors together with the assistence of UE Explorer.

You can find a lot more on Google.

Credits

  • Antonio Cordero Balcazar for UTPT

Comments