Command Reference
ue3-tools [--game-root <DIR>] [-v|--verbose] <COMMAND>
Global flags
| Flag | Effect |
|---|---|
--game-root <DIR> |
Root of the game install. Indexed recursively at startup: .upk / .u / .umap by lowercased file stem, and .tfc separately. Required for schema resolution, TFC texture payloads, schema-resolve, create-font, and creating new properties during pack-mod. |
-v, --verbose |
Streams schema-database misses and redirector follows to stderr; makes pack-mod log every successful object. |
upk-header <PATH>
Prints the parsed package summary. Decompresses in memory as a side effect, so it doubles as a decompression smoke test.
decompress <PATH>
Writes <stem>.decompressed.upk next to the input — every chunk inflated, compression fields
cleared, StoreCompressed flag removed. The result is a valid package that every other command
reads faster. Only LZO-compressed packages can be inflated.
list <PATH>
Prints #<i> <Class> <Package.Group.Object> for every export.
names <PATH> [OUTPUT_PATH]
Prints the name table and writes one name per line to OUTPUT_PATH (default names_table.txt).
extract <UPK_PATH> [PATH] [OUTPUT_DIR] [--raw]
| Argument | Meaning |
|---|---|
PATH |
Substring filter against the UE full name or the derived filesystem path. Omit to extract everything. |
OUTPUT_DIR |
Default output. A subdirectory named after the package stem is created inside it. |
--raw |
Write untouched serialized export bytes. No .uo, no sidecars, no property decoding; the schema database isn't built even with --game-root. |
Sidecar files written next to each .uo depend on the class — see
Asset Payloads.
schema-dump <UPK_PATH> [--class-filter <SUBSTR>]
Runs the metatype deserializers over every export and prints a one-line summary each:
# 312 Class Engine.Actor → Class super=-47 children=0x1a4 class_flags=0x00080000 CDO=#313 ifaces=2
Ends with parsed / skipped (non-meta) / failed counts. Doesn't need --game-root.
schema-resolve <STARTING_PKG> <FULL_PATH>
Requires --game-root — exits with an error without it. Resolves a fully-qualified path through the
schema database and prints the resolved reference, its entry summary, its full superclass chain, and
its direct children.
ue3-tools --game-root /path/to/game schema-resolve engine "Class Engine.Actor"
On failure it prints every recorded miss instead — the fastest way to find out which package your
--game-root is missing.
pack-mod <EXTRACTED_DIR> [--out|-o <DIR>]
Finds every .uo under EXTRACTED_DIR, groups by the pkg= header token, and writes override
blobs per package: one .bin per object, a .newnames file listing appended names, and a
.newexports manifest when new export slots were needed. Declaration-only files are skipped
automatically.
Default output is <EXTRACTED_DIR>/overrides (or an existing overrides / Overrides
subdirectory). See Building Mods.
create-font <FONT_FILE> <FONT_NAME> [OUTPUT_DIR] [options]
Requires --game-root. Rasterizes a TrueType font into UE3 font pages and writes the .uo + .dds
pair for a Font (or MultiFont) export and its backing Texture2D exports. FONT_NAME is the
dotted path of the target export, e.g. MyPkg.MyFont. OUTPUT_DIR defaults to output.
| Option | Default | Meaning |
|---|---|---|
--type <1-2> |
1 |
1 generates a Font; 2 generates a MultiFont |
--resolutions <F32,...> |
none (480,720,1080 for --type 2) |
Comma-separated target resolutions; only used by --type 2 |
--size <F32> |
16.0 |
Point size |
--dpi <U32> |
72 |
Glyphs are rasterized at size × dpi / 72 |
--tex-width <U32> |
512 |
Page width |
--tex-height <U32> |
512 |
Page height |
--x-pad <I32> |
1 |
Horizontal glyph padding |
--y-pad <I32> |
1 |
Vertical glyph padding |
--chars <STRING> |
see below | Characters to include |
--unicode-range <SPEC> |
none | Hex codepoint ranges, comma-separated: XXXX or FROM-TO, e.g. 0020-007E,0400-04FF |
--remapped <BOOL> |
automatic | Force dense packing with a CharRemap table (true) or one slot per codepoint (false) |
Character set. --chars and --unicode-range are merged. If neither yields any characters, a
built-in default is used: printable ASCII, Ukrainian Cyrillic, and —, «, », ©, ™.
Codepoints above U+FFFF are ignored.
Remapping. When --remapped is omitted it turns on automatically if any codepoint is
>= 0x80. A non-remapped font needs one slot per codepoint up to the highest one, so a sparse high
range produces a large, mostly empty array (a warning is printed above 4096 slots); remapped fonts
pack densely instead.
ui
Opens the GUI. Honours --game-root and --verbose. It is an inspector (packages, exports,
imports, names, UO code, hex, schema tree, texture preview) with a mod workspace that can build a
mod from selected objects — see Getting Started.