Skip to main content

Pure Python tools for converting RE Engine .user.3 files to and from JSON.

Project description

PyREUser3

English | 简体中文

PyREUser3 is a pure Python package for converting RE Engine .user.3 database files to JSON and packing compatible JSON back to .user.3.

Install it with:

pip install pyreuser3

Import it with the same normalized package name:

from pyreuser3 import REUser3Converter

What Is Included

  • .user.3 -> JSON export.
  • JSON -> .user.3 packing.
  • A reusable Python API through REUser3Converter.
  • CLI commands through pyreuser3.
  • A local .user.3 export Web UI through pyreuser3-web.

This PyPI package intentionally does not include game resources, dumped game data, RE_RSZ templates, il2cpp_dump.json, .msg.23 conversion tools, or repository-specific helper scripts.

Requirements

  • Python 3.9 or newer.
  • A RE_RSZ schema JSON file for the target game/version.
  • An il2cpp_dump.json file when exporting readable enum labels.
  • One or more unpacked .user.3 files.

Command Line

Export .user.3 files to JSON:

pyreuser3 export \
  -i <input-user3-file-or-directory> \
  -s <RE_RSZ-schema.json> \
  -o <json-output-directory> \
  -p <il2cpp_dump.json>

Pack JSON back to .user.3:

pyreuser3 pack \
  -j <input-json-file-or-directory> \
  -s <RE_RSZ-schema.json> \
  -o <user3-output-directory> \
  -p <il2cpp_dump.json>

The -p/--il2cpp-dump-path option is required for export and optional for pack. Passing it during pack is recommended when enum names need to be resolved back to numeric values.

Start the local .user.3 export Web UI:

pyreuser3-web --port 8765

The Web UI only handles .user.3 export. It does not pack files and does not provide .msg.23 conversion.

Python API

from pyreuser3 import REUser3Converter

converter = REUser3Converter(
    schema_path="D:/schema/rsz_game.json",
    il2cpp_dump_path="D:/game/il2cpp_dump.json",
)

converter.export_file(
    "input/OtomonData.user.3",
    "json/OtomonData.user.3.json",
)

converter.pack_file(
    "json/OtomonData.user.3.json",
    "mod/OtomonData.user.3",
)

For stable patch-and-repack workflows, use patch_file() or parse_pack_file():

from pyreuser3 import REUser3Converter

converter = REUser3Converter(
    schema_path="D:/schema/rsz_game.json",
    il2cpp_dump_path="D:/game/il2cpp_dump.json",
)

def patch(data, source_path):
    # Modify the full instance-table JSON in place.
    return None

converter.patch_file(
    "input/example.user.3",
    "output/example.user.3",
    patch,
)

Build From Source

python -m pip install -U build twine
python -m build
python -m twine check dist/*

Upload to TestPyPI first:

python -m twine upload -r testpypi dist/*

Then upload the same checked distribution files to PyPI:

python -m twine upload dist/*

License

MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyreuser3-0.1.0.tar.gz (67.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyreuser3-0.1.0-py3-none-any.whl (83.0 kB view details)

Uploaded Python 3

File details

Details for the file pyreuser3-0.1.0.tar.gz.

File metadata

  • Download URL: pyreuser3-0.1.0.tar.gz
  • Upload date:
  • Size: 67.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyreuser3-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f0f2523d7c96fb78dc6dfbac675d49f8587ec0426821f888ceab038c06ff99d7
MD5 a2a41ef59ee6c2f80f43223cb92c20c4
BLAKE2b-256 ba0086f669ebd59af191d67c51782b3044723857d4ebcbd66d6cd16dcfc7a254

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyreuser3-0.1.0.tar.gz:

Publisher: publish-pypi.yml on dzxrly/PyREUser3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyreuser3-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pyreuser3-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 83.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyreuser3-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 245a47dbaf787ac8c742cb85f0779a498823bb462d8ba1f94a9ecb1ef158a660
MD5 d9c99cf27b44f8667f72574ea272b802
BLAKE2b-256 12f2c3aa58ee421809e6a831e78919304f6a49a86b1bdd3a80fc7af19e2fd980

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyreuser3-0.1.0-py3-none-any.whl:

Publisher: publish-pypi.yml on dzxrly/PyREUser3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page