Skip to main content

Filesystem layout

<root>/
worlds/<world-folder>/
world.json
characters/
locations/
items/
factions/
lore/
prompts/
images/
avatars/
world.json
characters/<avatar>/character.json
images/
sessions/<uuid>/
session.sqlite
settings.json
images/

The roleplay root is portable content. Base plugin configuration and credentials remain in the DSH profile.

World folder names are not identities. world.json.id is the durable world reference stored by sessions. Entity IDs are local to a world and are remapped into session database IDs on import while retained as source IDs.

Every session directory is named by a UUID. Its DSH chat ID is derived as session-<uuid> and is not stored separately. session.sqlite is the authoritative evolving state; settings.json is live configuration.

Reference images have stable names; scene images use timeline node and serial. Metadata and sidecars make the image library readable without the session database.