About this project

Soulstruct is a Python library and toolset for inspecting and modifying data files from FromSoftware games, with a primary focus on Dark Souls. It is aimed at modders who want programmatic or GUI-based access to game data rather than raw binary editing. Supported games are referenced by abbreviation: DS1PTDE (Dark Souls: Prepare to Die Edition), DS1R (Dark Souls Remastered), DS2 (Dark Souls II), BB (Bloodborne), DS3 (Dark Souls III), SEK (Sekiro: Shadows Die Twice) and ER (Elden Ring). Support varies by data type, so not every feature applies to every title. Key capabilities described in the README: - A 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, and exported back to game-ready files. It includes map entity tracking, navigation between data types, and syntax highlighting for event and AI scripts. Supported games for this GUI workflow: 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: DS1PTDE, DS1R, DS2 (ESD only), BB, DS3. - Map data (MSB), game parameters (GameParam), lighting parameters (DrawParam) and text data (FMG) can be loaded into Python structures, edited and repacked. Supported: DS1PTDE, DS1R, BB (map, game parameters and text only), DS3 (map and text only). - AI scripts can be decompiled, edited and recompiled. Supported: DS1PTDE (no decompiling), DS1R. - BND archives can be unpacked and repacked, with automatic handling of DCX compression. Supported: all listed games. The project points to related libraries: soulstruct-havok for Havok classes and tools covering map collision, character collision, animation and ragdolls; soulstruct-vanilla for vanilla event scripts and other dumps; soulstruct-gui for a graphical interface covering Maps, Events, Params, Lighting, Text, AI and Talk scripts plus runtime utilities; and Firelink, a C++ modding framework noted as much faster for core classes such as FLVERs and Binders, with memory-hooking implementations and an Elden Ring MSB class. The README also links to a YouTube channel with tutorials and a Patreon page for support. No license, installation instructions or version details are included in the provided text.