Skip to main content

soulstruct

Python tools for inspecting and modding FromSoftware games.

YouTube channel with some tutorials: https://youtube.com/grimrukh

Like my stuff? Consider supporting me on Patreon <3 https://patreon.com/Grimrukh

Game abbreviations used below and in package:

  • DS1PTDE: Dark Souls: Prepare to Die Edition
  • DS1R: Dark Souls Remastered
  • DS2: Dark Souls II (either version)
  • BB: Bloodborne
  • DS3: Dark Souls III
  • SEK: Sekiro: Shadows Die Twice
  • ER: Elden Ring

Related libraries:

  • soulstruct-havok: Havok classes and tools for Soulstruct, supporting map collision, character collision, animation, ragdolls, and more.
  • soulstruct-vanilla: Vanilla event scripts (.evs.py) and other vanilla dumps from Soulstruct.
  • soulstruct-gui: Graphical interface for Soulstruct-based modding projects, including tabs for Maps, Events, Params, Lighting, Text, AI, and Talk scripts (plus some Runtime utilities for supported games).
  • Firelink: My FromSoftware modding framework written in C++, which is MUCH faster than Soulstruct for core classes such as FLVERs and Binders. Also includes memory-hooking implementations for supported games and an Elden Ring MSB class (Python is generally too slow for these).

Features

  • Unified graphical application for modifying maps, events, parameters, text, AI, and talk scripts in Dark Souls (both versions) and Bloodborne. Game data is imported as a project, edited in the window (or in Python if you prefer), and exported back to game-ready files whenever you want. Keep track of map entities, quickly navigate between data types, and view custom syntax highlighting for event scripts and AI scripts.

    • Supported games: DS1PTDE, DS1R, BB
  • Event scripts (EMEVD) and EzState state machines (ESD) can be translated to and from valid Python-based languages with high-level programming features.

    • Supported games: DS1PTDE, DS1R, DS2 (ESD only), BB, DS3
  • Map data (MSB), game parameters (GameParam), lighting parameters (DrawParam), text data (FMG) can be loaded into Python structures, edited, and repacked.

    • Supported games: DS1PTDE, DS1R, BB (map, game parameters, and text only), DS3 (map and text only)
  • AI scripts in can be decompiled, edited, and recompiled.

    • Supported games: DS1PTDE (no decompiling), DS1R
  • Unpack/repack BND archives and automatically manage DCX compression.

    • Supported games: all

Metadata

Release files for soulstruct 2.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for soulstruct 2.5.0
File Size Uploaded Provenance Actions
soulstruct-2.5.0.tar.gz 8.2 MB With provenance Details for soulstruct-2.5.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for soulstruct 2.5.0
File Interpreter ABI Platform Actions
soulstruct-2.5.0-py3-none-any.whl Python 3 none any Details for soulstruct-2.5.0-py3-none-any.whl

Total release size: 16.9 MB

Release files / soulstruct-2.5.0.tar.gz

Download URL soulstruct-2.5.0.tar.gz
Size 8.2 MB
Tags Source
SHA-256 checksum
How to use checksums
85e5515ecc2890b2c22b1f5db2aa146e2a029f3cc0fc0ee11bfc8d685ed66807
BLAKE2b-256 checksum
How to use checksums
64a9a4b898b5a333e2f2d78d886543d675c52247f1aa5a054e2b8ceb4f8f5c10
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / soulstruct-2.5.0-py3-none-any.whl

Download URL soulstruct-2.5.0-py3-none-any.whl
Size 8.7 MB
Tags Python 3
SHA-256 checksum
How to use checksums
f78e4f19114935d62f3644f664d7327be87e7b53c1c61dab050b63a46cfae992
BLAKE2b-256 checksum
How to use checksums
57321240450b344b5bbb12a1d249cc6e42395bc81e73a8d3fce7aec796d3c43b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Security for soulstruct 2.5.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for soulstruct-2.5.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page