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 be decompilable, but definitely openable.

Unreal Engine 1

Name Engine
Package/Licensee
Developer
Unreal 100-226 61/000 Epic Games
Star Trek: The Next Generation: Klingon Honor Guard Unknown 61/000 MicroProse
Unreal Mission Pack: Return to Na Pali 226b 68/000 Epic Games
Unreal Tournament 338-436 68/000 Epic Games
Deus Ex Unknown Unknown

Unreal Engine 2

Green colored numbers indicate swhat version since UE Explorer supports said game.

Name Engine
Package/Licensee
Developer
XIII Unknown 100/058  
Unreal Tournament 2003 1077-2225 119/025 Epic Games
Unreal II 829-2001 126/2609 Legend Entertainment
Unreal Tournament 2004 3120-3369 128/029 Epic Games
Red Orchestra: Ostfront 41-45 3323-3369 128/029 Tripwire Interactive
Killing Floor 3369 128/029 Tripwire Interactive 
Battle Territory Battery Unknown Unknown  
Swat 4 Unknown 129/027  

Unreal Engine 3

Name
Engine
Package/Licensee Developer
Roboblitz 2306 369/006  
Medal of Honor: Airborne 2859 421/011  

Mortal Kombat Komplete Edition

2605 472/046
Stargate Worlds 3004 486/007  
Gears of War 3329 490/009 Epic Games
Unreal Tournament 3 3809 512/000 Epic Games
Mirrors Edge 3716 536/043  
Alpha Protocol 3857 539/091
APB: All Points Bulletin 3908 547/032  
Gears of War 2 4638 575/000 Epic Games
CrimeCraft 4701 576/005  
Singularity 4869 584/126  
MoonBase Alpha 4947 587/000 NASA
Saw Unknown 584/003 Zombie Studios
The Exiled Realm of Arborea or TERA 4206 610/014
Monday Night Combat 5697 638/000  
Unreal Development Kit 6094-10246 664-860 Epic Games
Dungeon Defenders 6262 678/002  
Alice Madness Returns 6760 690/000  
The Ball 6699 706/000 Teotl Studios
Bioshock Infinite 6829 727/075
Bulletstorm 7052 742/029 Epic Games
Red Orchestra 2: Heroes of Stalingrad 7258 765/Unknown Tripwire Interactive 
Aliens: Colonial Marines Unknown 787/047 Gearbox Software
Dishonored 9099 801/030  
Tribes: Ascend 7748 805/Unknown  
Rock of Ages 7748 805/000  
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 Epic Games
Quantum Conundrum 8623 832/32870 Airtight Games
Borderlands Unknown Unknown Gearbox Software
Borderlands 2 8623/023 832/056 Gearbox Software
Remember Me 8623 832/021
The Haunted: Hells Reach 8788 841/000  
Blacklight Retribution 8788 841/Unknown  
Infinity Blade 2 9059 842/001  
Q.U.B.E 8916 845/000  
XCOM: Enemy Unknown 8916 845/059 Firaxis Games
Gears of War: Judgement 10566 846/000  
InMomentum 8980 848/000  
Unmechanical 9249 852/000  
Deadlight 9375 854/000  
Ravaged 9641 859/000  
The Five Cores 9656 859/000  
Painkiller HD 9953 860/000  
Hawken 10681 860/004  
Soldier Front 2 6712 904/009

 

Rise of the Triad Unknown Unknown

Outlast Unknown Unknown
Sherlock Holmes: Crimes and Punishments Unknown Unknown Frogwares
Alien Rage Unknown 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