UE Explorer
April 06, 2012UE 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.
- Dishonored : Dishonored Ultimate Difficulty Mod - There's a guide on page 2.
- XCOM: Enemy Unknown : Modding Forum - Lots of guides and topics on modding XCOM.
- Aliens Colonial Marines : Editting Game Variables - A guide on modding variables.
You can find a lot more on Google.
Credits
- Antonio Cordero Balcazar for UTPT