#(P4G) Dungeon Framework and Editor

19 messages · Page 1 of 1 (latest)

dusk chasm
#

Over the past few years, I've been chipping away at dungeon-related data for Persona 4 Golden, and I think I've achieved a critical mass of edits that's worth making an official project page for.

Dungeon Framework

This mod is the beating heart of my efforts here. It hooks into the game's process and replaces as much of the hardcoded dungeon-related code that I can find with variants that use custom data that is loaded in from .json files. The mod also is build for expandability, allowing the addition of new rooms to be used in dungeon generation and potentially allowing for whole new dungeons to be created (in the future).

What it can do now:

  • Allow custom rooms and minimap images to be loaded into the game.
  • Modify dungeon floors, templates, field-template associations
    -- Dungeon templates dictate what tiles are used by an individual dungeon
  • You can rename all dungeon-related fields, from the TV Hub to Hollow Forest
  • Fields are no longer restricted by the ID-based constraints used by the vanilla game

Limitations/To-Dos:

  • Room sizes, at the moment, are internally capped as 3x3 tile grids. This is something that seems to be possible to change and will be looked into at a later date.
  • More QoL than function, but right now it takes a bit for the mod to sink all of the hooks in, unsure if there's a way to speed it up or not.
  • There's probably more, let's be honest there's always more.
#

Dungeon Editor

While the framework enables more complex dungeon mods, making such mods are still far from approachable; data is labelled in the .jsons, but it isn't formatted too differently from the native tables just to keep things consistent, so editing them by hand can be problematic. This tool is my way of resolving that.

What it can do now:

  • Edit the game's list of encounters and the encounter tables used by dungeons to determine what enemies spawn on what floors.
  • Edit the loot tables used by floors to pick what items (and chest types) are available on what floors
  • Edit room-related data in a more user-friendly manner
  • Edit floor and template data in a more convienient fashion

Limitations/To-Dos:

  • Pregenerated floors should have a tab in this tool. Format is known, just not implemented yet.
  • Ideally you'd handle room model information here as well. This included ensuring that the model collision is formatted properly for the game to use, picking locations for enemy/chest spawns, defining areas where different footstep sounds could play, etc.

Miscellaneous

  • Currently have a cobbled-together converter for dungeon collision, it's how the rooms shown in the screenshots aren't crashing my game. Presumably will incorporate into the Editor, but if there's enough demand I could just send the executable standalone.
  • The way that I'm convincing the game to load in my custom dungeon data is by packing into the field's .arc files and loading that as a separate Reloaded-II mod, should probably streamline that process somehow, but not quite sure.
#
GitHub

Reloaded-II mod that takes elements of P4G's dungeon system and makes them more easily accessible for modders. - Some-Body-Else/p4gpc.dungeonframework

GitHub

An editor for Persona 4 Golden (PC) to make editing dungeon-related data easier - Some-Body-Else/P4G-Dungeon-Editor

hot garnet
#

Very cool. I remember seeing bits and pieces of this in the past but I thought it'd been dropped due to complexity or something. Great to see this is still kicking, and happy to see Metis is still around lol

#

I'm actually curious based on one of your images (the 2nd one) - how are those colors defined, is that to do with the mesh? thinking about it for a different project...

dusk chasm
#

And don't worry about this project being dropped, I'm too stubborn for that

odd juniper
#

would you happen to know where the game defines what enemies appears on what floor?

dusk chasm
#

It's a table in ENCOUNT.TBL, although some of the unknowns around it befuddle me (30-entry table, but the table appears to be duplicated and there are several values that appear unused). The Dungeon Editor can take care of it, or if you prefer a 010 template, you can use this:

#

There is a seperate table that dictates what encounter table a floor uses, also in ENCOUNT.TBL

lament vaporBOT
#

gotcha. interesting.

reason I'm asking is because of this - seeing that image kinda made me think maybe it would be possible to more easily mess with that again?

[Reply to:](#1257338565810196571 message) I'll be honest, not quite sure about how that one worked. What I can tell you is that this is the...

(this is what I mean)

Jump

[Go to message!](#1182897587838275614 message)

dusk chasm
#

Just found out that going down stairs crashes the game rn. Looking for a fix atm

dusk chasm
#

And crisis averted.

dusk chasm
#

Also doing some more poking into floor encounters, it seems that my original approximation of what the data was is WAY off, so that's currently undergoing more thorough investigation. Next update for the Builder have the more accurate data and will support adding new enemy encounters, floors, and loot tables.

dusk chasm
odd juniper
dusk chasm
#

Nice mid-sized update here, the Dungeon Editor no longer has a dependency on ENCOUNT.TBL and can freely expand the tables it can edit. Can also shrink them too, if destroying the game is of no concern to you. Framework also got updated to handle all of the data typically found in ENCOUNT.TBL.

My next target is to work on the Editor to implement minimap data editing, but that's probably going to take a bit, I'm not quite sure how I want it to be visually laid out, much less how I intend to have the data be editable. Minimap has the particular issue of having visual elements at the forefront, something I haven't really dealt with yet, so it may be marinating for a bit. If anyone has any feedback on this (actual experience using it, visual critiques, etc.), feel free to let me know.
https://github.com/Some-Body-Else/p4gpc.dungeonframework/releases/tag/v0.2
https://github.com/Some-Body-Else/P4G-Dungeon-Editor/releases/tag/v0.2

GitHub

The framework now supports the data defined in ENCOUNT.TBL. This includes the game's enemy encounter tables, floor encounter tables, chest loot tables, and some extra floor data.

GitHub

Changed the Encounter Table page a lot after realizing my understanding of the table format was woefully inadequate. Also changed around how data is loaded, saved, and stored, which has eliminated ...

dusk chasm
#

Another update on the Editor, this time with support for changing the minimap data. I'm not quite sure what I'm going to do next for the editor, think my next goal is to add an entirely new dungeon instead of piggybacking off of ones that exist in the game. That one's going to be mostly handled by the framework, but it's also a chance for me to take a look at Flowscript, which is something that's caught my eye but I never had a reason to study more thoroughly.
https://github.com/Some-Body-Else/P4G-Dungeon-Editor/releases/tag/v0.3

GitHub

Added support for editing minimap-related data. Also trying a more uniform color palette, but I'm not entirely sold on the colors chosen in this iteration, so it is certainly subject to change.