{"id":13589514,"url":"https://github.com/EliotVU/Unreal-Library","last_synced_at":"2025-04-08T09:33:00.603Z","repository":{"id":12039598,"uuid":"14624989","full_name":"EliotVU/Unreal-Library","owner":"EliotVU","description":"UnrealScript decompiler library for Unreal package files (.upk, .u, .uasset; etc), with support for Unreal Engine 1, 2, and 3","archived":false,"fork":false,"pushed_at":"2024-10-29T21:23:19.000Z","size":1761,"stargazers_count":364,"open_issues_count":10,"forks_count":85,"subscribers_count":20,"default_branch":"master","last_synced_at":"2024-10-29T21:43:33.764Z","etag":null,"topics":["bytecode","decompilation","decompiler","deserializer","exporter","extracter","help-wanted","reverse-engineering","ue-explorer","unreal","unreal-engine","unrealscript","upk"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EliotVU.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":["https://paypal.me/eliotvu"]}},"created_at":"2013-11-22T17:49:28.000Z","updated_at":"2024-10-24T15:29:10.000Z","dependencies_parsed_at":"2024-01-16T22:17:54.068Z","dependency_job_id":"ef4a2f5d-6ff4-4af4-bf3b-b9645b3054f7","html_url":"https://github.com/EliotVU/Unreal-Library","commit_stats":{"total_commits":456,"total_committers":9,"mean_commits":"50.666666666666664","dds":"0.35307017543859653","last_synced_commit":"840ec14bbe4c439b9c334d11f3a2ba1859b30086"},"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EliotVU%2FUnreal-Library","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EliotVU%2FUnreal-Library/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EliotVU%2FUnreal-Library/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EliotVU%2FUnreal-Library/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EliotVU","download_url":"https://codeload.github.com/EliotVU/Unreal-Library/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247814233,"owners_count":21000525,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bytecode","decompilation","decompiler","deserializer","exporter","extracter","help-wanted","reverse-engineering","ue-explorer","unreal","unreal-engine","unrealscript","upk"],"created_at":"2024-08-01T16:00:31.070Z","updated_at":"2025-04-08T09:33:00.596Z","avatar_url":"https://github.com/EliotVU.png","language":"C#","readme":"[![Nuget](https://img.shields.io/nuget/v/Eliot.UELib?style=for-the-badge)](https://www.nuget.org/packages/Eliot.UELib/)\n![Platform](https://img.shields.io/badge/platform-.NET-blue.svg?style=for-the-badge)\n![License](https://img.shields.io/badge/license-MIT-blue.svg?style=for-the-badge)\n\n# UELib\n\nThe Unreal library (UELib) provides you an API to read (parse/deserialize) the contents of Unreal Engine game package files such as .UDK, .UPK.\nIts main purpose is to decompile the UnrealScript byte-code to its original source-code.\n\nIt accomplishes this by reading the necessary Unreal data classes such as:\n\n    UObject, UField, UConst, UEnum, UProperty, UStruct, UFunction, UState, UClass,\n    UTextBuffer, UMetaData, UPackage\n\nClasses such as UStruct, UState, UClass, and UFunction contain the UnrealScript byte-code which we can deserialize in order to re-construct the byte-codes to its original UnrealScript source.\n\nAdditionally UELib is also capable of deserializing of many more data classes such as:\n\n    UFont, USound, UPalette, UTexture,\n    UTexture2D, UTexture2DDynamic, UTexture2DComposite, UTexture3D,\n    UTextureCube, UTextureFlipBook, UTextureMovie\n    UPrimitive, UPolys\n\n## Install\n\n```cmd\n    Install-Package Eliot.UELib\n```\n\n| Module | Version | License | \n|---|---|---|\n| \u003cimg src=\"https://img.shields.io/badge/UELib-brightgreen.svg?style=for-the-badge\" /\u003e | [![Nuget](https://img.shields.io/nuget/v/Eliot.UELib?label=Version\u0026logo=nuget\u0026style=for-the-badge)](https://www.nuget.org/packages/Eliot.UELib/) | ![GitHub](https://img.shields.io/github/license/EliotVU/Unreal-Library.svg?style=for-the-badge) |\n\n* Usage: See the [documentation](https://github.com/EliotVU/Unreal-Library/wiki/Usage) for more examples.\n\n```csharp\n    using UELib;\n\n    // Instantiates a FileStream and deserializes the package's header, will also auto-detected a suitable build to associate the package with.\n    var package = UnrealLoader.LoadPackage(@\"C:\\Path\\Package.upk\", System.IO.FileAccess.Read);\n    Console.WriteLine($\"Version: {package.Summary.Version}\");\n\n    // Necessary if working with packages that have been cooked for a console platform, and IF the build was not properly auto-detected.\n    // package.CookerPlatform = BuildPlatform.Console;\n\n    // Initializes the registered classes, constructs and deserializes(loads) the package objects.\n    package.InitializePackage();\n\n    // Now we can iterate over all the initialized objects, but beware! This includes fake-import objects.\n    foreach (var obj in package.Objects)\n    {\n        // If positive then we have an export, or import if negative, if null, we are working with a 'None' object, but this shouldn't occur here.\n        if ((int)obj \u003e 0)\n        {\n            Console.WriteLine($\"Export:\");\n        }\n        else if ((int)obj \u003c 0)\n        {\n            Console.WriteLine($\"Import:\");\n        }\n\n        Console.WriteLine($\"ObjectIndex: {(int)obj}\");\n        Console.WriteLine($\"Name: {obj.Name}\");\n        Console.WriteLine($\"Class: {obj.Class?.Name}\");\n        Console.WriteLine($\"Outer: {obj.Outer}\");\n        Console.WriteLine($\"Path: {obj.GetReferencePath()}\");\n    }\n```\n\nIf you're looking to modify the library for the sole purpose of modding [UE Explorer](https://github.com/UE-Explorer/UE-Explorer), I recommend you to clone or fork this repository and install UE Explorer within your ```UELib/src/bin/Debug/``` folder, or change the project's configuration to build inside of the UE Explorer's folder.\n\n## Compatible Games\n\nThis is a table of games that are confirmed to be compatible with the current state of UELib, the table is sorted by Package-Version.\n\n| Name                  | Engine:Branch    | Package/Licensee    | Support State     |\n| --------------------- | ---------------- | ------------------- | ----------------- |\n| Unreal | 100-226 | 61/000 | |\n| [Star Trek: The Next Generation: Klingon Honor Guard](Star%20Trek:%20The%20Next%20Generation:%20Klingon%20Honor%20Guard) | 219 | 61/000 | |\n| X-COM: Alliance | 200-220 | 61/000 | Bad output at the start of functions (BeginFunctionToken) |\n| Dr. Brain: Action Reaction | 224 | 63-68/000 | |\n| Nerf Arena Blast | 225 | 63-68/000 | |\n| The Wheel of Time | 225:WoT | 63-68/000 | |\n| Unreal Mission Pack: Return to Na Pali | 226b | 68/000 | |\n| Unreal Tournament | 338-436 | 68-69/000 | |\n| Deus Ex | 400-436 | 68/000 | |\n| Jazz Jackrabbit 3D | 400 | 68/000 | |\n| Duke Nukem Forever (2001) | 613 | 68/002 | UStruct offsets are off leading to bad output code |\n| Rune | 400 | 69/000 | |\n| Unrealty | 405 | 69/000 | |\n| X-COM: Enforcer | 420 | 69/000 | |\n| Tactical Ops: Assault on Terror | 436 | 69/000 | |\n| Star Trek: Deep Space Nine: The Fallen | 338 | 73/000 | |\n| Harry Potter and the Sorcerer's Stone | 436 | 76/000 | |\n| Harry Potter and the Chamber of Secrets | 433 | 79/000 | |\n| Disney's Brother Bear | 433 | 80/000 | [Link](https://github.com/metallicafan212/HarryPotterUnrealWiki/wiki/Main-Resources#other-kw-games) |\n| Mobile Forces | 436 | 81-83/000, 69 | |\n| Clive Barker's Undying | 420 | 72-85/000 | Versions 72 to 83 are not auto detected. |\n| Thief: Deadly Shadows | 777:Flesh | 95/133 | LinkedData not supported |\n| Deus Ex: Invisible War | 777:Flesh | 95/069 | LinkedData not supported |\n|     |     |     |     |\n|     |     |     |     |\n| XIII | 829 | 100/058 |     |\n| Tom Clancy's Splinter Cell | 829 | 100/017 | |\n| Tom Clancy's Splinter Cell: Chaos Theory | 829 | 100/120:SCX, 175/000:ShadowStrike | (PC) demo version, Versus mode not supported |\n| Tom Clancy's Splinter Cell: Double Agent | 829 | 100/167:SCX, 275/000:ShadowStrike | (PC) Offline mode version, Online mode not supported |\n| Tom Clancy's Rainbow Six 3: Raven Shield | 600-927 | 118/012-014 | |\n| Postal 2: Paradise Lost | 1417 | 118/002 | |\n| Unreal Tournament 2003 | 1077-2225 | 119/025 | |\n| Devastation | 600-? | 118-120/004-008 | |\n| Unreal II: The Awakening | 829-2001 | 126/2609 | |\n| Unreal II: eXpanded MultiPlayer | 2226 | 126/000 | Custom features are not decompiled |\n| Desert Thunder | 2226 | 126/000 | |\n| Land of the Dead: Road to Fiddler's Green | 2226 | 126/001 | |\n| Unreal Tournament 2004 | 3120-3369 | 128/029 | |\n| America's Army 2 | 3339 | 128/032:033 | 2.5, 2.6, 2.8 |\n| America's Army (Arcade) | 3339 | 128/032 | 2.6 |\n| Red Orchestra: Ostfront 41-45 | 3323-3369 | 128/029 | |\n| Killing Floor | 3369 | 128/029 | |\n| Battle Territory: Battery | 3369 | 128/029? | |\n| Shadow Ops: Red Mercury | 2110 | 129/010 | UTexture type is not supported |\n| Vanguard: Saga of Heroes | Unknown | 129/035 | |\n| Harry Potter and the Prisoner of Azkaban | 2226 | 129/000 | [Link](https://github.com/metallicafan212/HarryPotterUnrealWiki/wiki/Main-Resources#hp3) |\n| Shrek 2 | 2226 | 129 | |\n| Shark Tale | 2226 | 129/003 | |\n| Lemony Snicket's A Series of Unfortunate Events | 2226 | 129/003 | |\n| Swat 4 | 2226:Vengeance | 129/027 | |\n| Stargate SG1: The Alliance | 4180 | 130/004 | |\n| Tribes: Vengeance | 2226:Vengeance | 130/027 | |\n| Bioshock | 2226:Vengeance | 130-141/056 | |\n| Men of Valor | 926 | 137/000 | PC |\n| Bioshock 2 | 2226:Vengeance | 143/059 | |\n| Unreal Championship 2: Liandri Conflict | 3323 | 151/002 | [Third-party](https://forums.beyondunreal.com/threads/unreal-championship-2-script-decompiler-release.206036/) |\n| The Chronicles of Spellborn | 3323 | 159/029 | |\n| Duke Nukem Forever (2011) | Unknown | 156/036 | [Extraction is required](https://github.com/DaZombieKiller/MegaPackageExtractor) |\n|     |     |     |     |\n|     |     |     |     |\n| RoboHordes | Unknown | 198-200/000 | |\n| Tom Clancy's Rainbow Six: Vegas | Unknown | 241/066 | |\n| Tom Clancy's Rainbow Six: Vegas 2 | Unknown | 241/071 | |\n| Tom Clancy's EndWar | Unknown | 329/000 | |\n| Roboblitz | 2306 | 369/006 |     |\n| Stranglehold | 2605 | 375/025 | |\n| Mass Effect (Xbox 360) | 2674 | 391/092 | Xenon |\n| Medal of Honor: Airborne | 2859 | 421/011 |     |\n| Frontlines: Fuel of War | 2917 | 433/052 | |\n| Army of Two | 3004 | 445/079 | Overall quality has not been verified |\n| Mortal Kombat Komplete Edition | 2605 | 472/046 |     |\n| Stargate Worlds | 3004 | 486/007 |     |\n| Gears of War | 3329 | 490/009 | |\n| Mass Effect (Windows) | 3240 | 491/1008(~112) | PC |\n| Robert Ludlum's The Bourne Conspiracy | | 511/039 | |\n| Transformers: War for Cybertron | | 511/144,145 | PC, PS3, Xenon |\n| Unreal Tournament 3 | 3809 | 512/000 | |\n| Mirrors Edge | 3716 | 536/043 |     |\n| Alpha Protocol | 3857 | 539/091 |     |\n| APB: All Points Bulletin | 3908 | 547/028-032 |     |\n| X-Men Origins: Wolverine | 4206 | 568/101 | Overall quality has not been verified |\n| Gears of War 2 | 4638 | 575/000 | |\n| CrimeCraft | 4701 | 576/005 | |\n| Batman: Arkham Asylum | 4701 | 576/21 | |\n| Medal of Honor (2010) | 100075??? | 581/058 | Bad byte-codes |\n| Singularity | 4869 | 584/126 | |\n| MoonBase Alpha | 4947 | 587/000 | |\n| Saw | Unknown | 584/003 | |\n| The Exiled Realm of Arborea or TERA | 4206 | 610/014 |     |\n| Monday Night Combat | 5697 | 638/000 |     |\n| DC Universe Online | 5859 | 638/6405 |     |\n| Unreal Development Kit | 5860-12791 | 664-868 | |\n| Blacklight: Tango Down | 6165 | 673/002 | |\n| Dungeons \u0026 Dragons: Daggerdale | 6165 | 674/000 | |\n| Dungeon Defenders | 6262 | 678/002 | |\n| Mass Effect 3 (Windows) | 6383 | 684/194 | PC (platform must be set to `Console`) |\n| Mass Effect: Legendary Edition (Windows) | 6383 | 684/171 | PC (platform must be set to `Console`) |\n| Alice Madness Returns | 6760 | 690/000 |     |\n| The Ball | 6699 | 706/000 | |\n| Game of Thrones | 6829 | 727/000 | |\n| Bioshock Infinite | 6829 | 727/075 |     |\n| Bulletstorm | 7052 | 742/029 | |\n| Red Orchestra 2: Heroes of Stalingrad | 7258 | 765/Unknown | |\n| Rising Storm 2: Vietnam | 7258 | 765/771 | |\n| Aliens: Colonial Marines | 4170 | 787/047 | |\n| Infinity Blade 1 | 7595 | 788/001 | Console |\n| [Dishonored](http://www.dishonored.com/) | 9099 | 801/030 |     |\n| Tribes: Ascend | 7748 | 805/Unknown |     |\n| Tony Hawk's Pro Skater HD | | | |\n| Rock of Ages | 7748 | 805/000 |     |\n| Batman: Arkham City | 7748 | 805/101 | |\n| Batman: Arkham Origins | 7748 | 807/138 | Not verified |\n| Sanctum | 7876 | 810/000 |     |\n| AntiChamber | 7977 | 812/000 |     |\n| Waves | 8171 | 813/000 |     |\n| Super Monday Night Combat | 8364 | 820/000 |     |\n| Gears of War 3 | 8653 | 828/000 | |\n| Quantum Conundrum | 8623 | 832/32870 | |\n| Borderlands | 4871 | Unknown |  |\n| Borderlands 2 | 8623/0023 | 832/056 | |\n| Borderlands: Game of the Year Enhanced | 5001/0001 | 832/058 | |\n| Remember Me | 8623 | 832/021 |     |\n| The Haunted: Hells Reach | 8788 | 841/000 |     |\n| Asura's Wrath | 8788 | 841/000 | -zlib; platform needs to be set to console. |\n| Blacklight Retribution | 8788-10499 | 841-864/002 |     |\n| Infinity Blade 2 | 9059 | 842-864/001 | Console |\n| Q.U.B.E | 8916 | 845/000 |     |\n| DmC: Devil May Cry | 8916 | 845/004 | |\n| XCOM: Enemy Unknown | 8916 | 845/059 | |\n| Gears of War: Judgement | 10566 | 846/000 |     |\n| Transformers: Fall of Cybertron | 846(~587)/181 | |\n| Deadpool | 846(~587)/181 | |\n| InMomentum | 8980 | 848/000 |     |\n| [Unmechanical](http://unmechanical.net/) | 9249 | 852/000 |     |\n| Deadlight | 9375 | 854/000 |     |\n| Land of the Dead | 9375 | 854/000 |     |\n| Borderlands Legends | 9505 | 859/000 | iOS; platform needs to be set to console |\n| Ravaged | 9641 | 859/000 |     |\n| [The Five Cores](http://neeblagames.com/category/games/thefivecores/) | 9656 | 859/000 |     |\n| Painkiller HD | 9953 | 860/000 |     |\n| Chivalry: Medieval Warfare | 10246 | 860/000 | |\n| Hawken | 10681 | 860/004 | |\n| Rocket League | 10897 | 867/009 (868/032 has not been tested) | [Decryption required](https://github.com/AltimorTASDK/RLUPKTool) |\n| Styx: Master of Shadows | 10499 | 860/004 | |\n| Batman: Arkham Knight | | 863/32995 | Not verified  |\n| Gigantic: Rampage Edition | 19100 | 867/010 | |\n| Infinity Blade 3 | | 868/000 | Console |\n| Guilty Gear Xrd | 10246 | 868/003 | [Decryption required](https://github.com/gdkchan/GGXrdRevelatorDec) |\n| Outlast | 12046 | 868/003 | |\n| [Might \u0026 Magic Heroes VII](https://en.wikipedia.org/wiki/Might_%26_Magic_Heroes_VII) | 12161 | 868/004 | (Signature and custom features are not supported) |\n| Bombshell | 11767 | 870/000 | |\n| Orcs Must Die! Unchained | 20430 | 870/000 | |\n| Gal\\*Gun: Double Peace | 10897 | 871/000 | |\n| Battleborn | 8623/1055 | 874/078 | |\n| A Hat in Time | 12097 | 877-893/005 | |\n| Blue Estate The Game | 10246 | 893/000 | |\n| Shadow Complex Remastered | 10897 | 893/001 | |\n| Soldier Front 2 | 6712 | 904/009 |     |\n| Rise of the Triad | 10508 | Unknown |     |\n| Sherlock Holmes: Crimes and Punishments | 10897 | Unknown | |\n| Alien Rage | 7255 | Unknown |     |\n\n**Beware, opening an unsupported package could crash your system! Make sure you have\nsaved everything before opening any file!**\n\n**Note** UE3 production-ready packages are often **compressed** and must first be decompressed, [Unreal Package Decompressor](https://www.gildor.org/downloads) by **Gildor** is a tool that can decompress most packages for you; for some games you need a specialized decompressor, see for example [RLUPKTool](https://github.com/AltimorTASDK/RLUPKTool).\n\nWant to add support for a game? See [adding support for new Unreal classes](https://github.com/EliotVU/Unreal-Library/wiki/Adding-support-for-new-Unreal-classes)\n\nDo you know a game that is compatible but is not listed here? Click on the top right to edit this file!\n\n## How to contribute\n\n* Open an issue\n* Or make a pull-request by creating a [fork](https://help.github.com/articles/fork-a-repo/) of this repository, create a new branch and commit your changes to that particular branch, so that I can easily merge your changes.\n\n## Special thanks to\n\n* Epic Games for [UDN: Packages](http://www.hypercoop.tk/infobase/archive/unrealtech/Packages.htm) (general package format)\n* [Antonio Cordero Balcazar](https://github.com/acorderob) for [UTPT](https://www.acordero.org/projects/unreal-tournament-package-tool) (game support) and documentation (format)\n* [Dmitry Jemerov](https://github.com/yole) for [unhood](https://github.com/yole/unhood) (early UE3 format)\n* [Konstantin Nosov](https://github.com/gildor2) for providing help and [UE Viewer](http://www.gildor.org/en/projects/umodel) (game support)\n* [Contributors](https://github.com/EliotVU/Unreal-Library/graphs/contributors)\n","funding_links":["https://paypal.me/eliotvu"],"categories":["Utilities","⚙️ Engines"],"sub_categories":["Unreal Engine"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEliotVU%2FUnreal-Library","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FEliotVU%2FUnreal-Library","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEliotVU%2FUnreal-Library/lists"}