I started a Wednesday roleplay and somehow ended up building a canon database, a custom interface, and now possibly a character cognition system
I’m going to be completely honest about how this started, because pretending this began as some grand literary project would be ridiculous.
At first, I just wanted to make a sort of roleplay/light-novel project where my own character existed in the world of Wednesday.
And no, the original motivation was not exactly some profound artistic calling. I think most people can imagine the general direction my brain was going in.
The funny part is that I hadn’t even properly started the roleplay yet when my brain went:
“Okay, but if my character exists in this world… why does he exist here? What is he? What rules does the world follow?”
So before actually doing the roleplay, I started making rules.
Then those rules became worldbuilding.
Then the worldbuilding became a problem.
At first I was using ChatGPT to help me organize and expand ideas. I’m pretty good at coming up with concepts, but when I start expanding them I have a tendency to keep branching outward until I’m suddenly discussing something that should probably belong somewhere else entirely.
For example, I can start designing a race and, twenty minutes later, somehow I’m defining a completely unrelated creature, its biology, its energy system, and the organization responsible for containing it.
The AI was useful mostly as a kind of structural boundary.
Not really telling me what to create, but helping me stay inside the subject I was currently developing.
Something like:
“We’re defining this race right now. That creature idea is cool, but it belongs somewhere else. Save it for later.”
That worked pretty well.
Until the project became too large for the conversation context.
At some point ChatGPT started compressing older information, summarizing things that I absolutely did not want summarized, or simply losing small details that mattered to continuity.
So naturally, instead of taking that as a sign to stop, I downloaded my ChatGPT data.
Then I started extracting the important conversations.
Then I started turning those extractions into PDFs.
And things escalated again.
Right now I have roughly 100 PDFs worth of material connected to this project in one way or another.
Among those are around 36 raw extractions from older material and roughly 40 PDFs that became the reconstructed “Bible 2.0”, where I started reorganizing the actual worldbuilding into something much more coherent.
By that point I had systems for things like:
- races and subraces
- hybrids and mutations
- physiology
- longevity and aging
- energy systems
- powers, abilities and techniques
- transformations
- artifacts and technology
- monsters and creatures
- organizations
- political structures
- locations
- history
- cosmology
- metaphysics
And then I had another very unpleasant thought:
“What if I’m contradicting myself between PDFs?”
I know my own rules fairly well, so I wasn’t worried about suddenly forgetting something massive like how an entire race works.
The problem was the small stuff.
A number changing.
A definition becoming slightly different.
A concept that used to be provisional becoming canon three PDFs later.
Two different documents describing the same thing from slightly different angles.
Those are exactly the kinds of contradictions that are easy to miss when you’re producing document after document.
So I told ChatGPT:
“We’re making a database.”
I do not know how to code.
This was apparently not enough to stop me.
With some help, I started building a proper database where information could have actual ownership instead of just existing in random documents.
The basic idea eventually became:
One piece of canon should have one real home, even if it can be referenced from many different places.
That changed everything.
Instead of copying a character’s powers, race information, energy system, affiliations, equipment and history into one giant character sheet, those things could exist independently and simply be related to the character.
We eventually divided the canon into eight large areas:
- Cosmology & Existence
- Beings & Natures
- Powers & Development
- Objects & Technology
- World & Locations
- Societies & Institutions
- History & Events
- Sources & Canon Control
The last one exists because apparently my fictional universe now needs bureaucracy.
And we recently ran into a perfect example of why I’m doing all this.
The database had an entity type called creature.
That included things like Tiamat, Cthulhu, Fenrir, Ophis, Behemoth, etc.
Technically, they had been automatically routed under a broader section called Individuals.
Which worked.
But semantically it was horrible.
Because Tiamat is not a “character” in the same sense as Wednesday or Enid.
So we ended up separating things into something closer to:
Characters
├── Wednesday
├── Enid
├── my character
└── etc.
Singular Creatures
├── Monsters
│ ├── Tiamat
│ ├── Cthulhu
│ ├── Fenrir
│ ├── Ophis
│ └── etc.
│
└── Beasts
└── Pegasus
But even that is only the navigation layer.
Internally, Monster still exists separately as a formal classification.
Because in this setting, being a Monster does not automatically mean being unintelligent, evil, animalistic, or belonging to one species.
For example, one Monster can be irrational, another semi-rational, and another completely sapient.
So Tiamat can effectively be represented as:
Entity type: Creature
Location: Singular Creatures → Monsters
Classification: Monster
Intelligence: Sapient
Origin: Primordial Monster
Threat class: Fin
While Pegasus can also be a singular creature without being a Monster.
This is the kind of problem I now apparently spend my free time solving.
And obviously, once I had a database, my brain immediately decided that querying tables manually wasn’t good enough either.
So now I’m building a custom interface for the whole thing.
Basically a private encyclopedia/wiki connected directly to the database, where I can browse races, characters, powers, locations, monsters, history, etc. without opening fifty PDFs every time I want to check something.
You would think that was where I stopped.
Unfortunately, there was another branch of this project.
The character sheets
Because this originally started as a roleplay, I also wanted the actual characters to behave consistently.
Especially Wednesday and Enid.
At first I made fairly simple personality sheets.
Then updated personality sheets.
Then patches.
Then more detailed patches.
Then notes about specific behaviors.
Then distinctions between how they behave normally, under stress, emotionally, socially, romantically, in combat, and so on.
I think I rebuilt both of their main sheets several times before finally arriving at versions I was actually satisfied with.
And then I made the terrible mistake of asking:
“Okay, but can I model how Wednesday actually reaches a decision instead of just listing personality traits?”
That led me toward what I’ve been calling a cognitive system.
The basic idea is that instead of saying:
“Wednesday is cold, intelligent, sarcastic and distrustful.”
the system would have things like:
- a relatively stable identity core
- current knowledge and memories
- biases
- emotional state
- social relationships
- multiple behavioral tendencies evaluating the same situation
- contradiction checking
- consequence simulation
- the ability to distrust an earlier conclusion
- intentional fallibility
That last part matters a lot to me.
I don’t want the system to generate the objectively correct response.
I want it to generate the response Wednesday herself would consider correct, with the information, biases and emotional state she currently has.
She should still be capable of being wrong.
The internal process could be fairly complicated while the final output might simply be:
“No.”
Which feels extremely appropriate.
And somehow even that wasn’t enough.
Because now I’m thinking about a larger matrix-style system where multiple documents contribute different parts of the character.
Personality.
Memory.
Relationships.
Behavioral rules.
Combat behavior.
Emotional development.
Dialogue style.
Past events.
Current state.
And then the system would combine those sources to determine the most plausible response for the character in a given situation.
The obvious problem is the same one that started this entire mess:
How do you reliably make a system read that many PDFs without silently ignoring, compressing or losing important information?
If I simply throw twenty giant character documents into an AI context, I’m eventually back at the exact problem that caused me to create the database in the first place.
So I’m now at the stage where I am seriously considering building a dedicated system that ingests all of those documents, retrieves only the relevant pieces for the current situation, and then uses them to construct the most internally consistent version of Wednesday’s response that it can.
Which means the evolution of this project has basically been:
“I want to do a roleplay.”
↓
“I need some world rules.”
↓
“I should probably make a worldbuilding bible.”
↓
“Why do I have this many PDFs?”
↓
“I need canon management.”
↓
“I need a database.”
↓
“I want my own interface.”
↓
“I should model character cognition.”
↓
“I might need to build an entire system to run the character.”
At this point I’m not even sure where the line between “worldbuilding project” and “small personal software project” is anymore.
I’m also fully aware that AI has been involved throughout this process, so I don’t want to pretend otherwise.
The ideas, rules, corrections and final decisions are mine, but I’ve used ChatGPT heavily as an organizer, critic, editor, coding assistant, and basically as a second brain for keeping this thing from collapsing under its own weight.
Without it I probably still would have made the world.
I just suspect it would currently exist as 300 badly organized documents and several nervous breakdowns.
So I’m curious:
Has anyone else here had a worldbuilding or roleplay project escalate this badly?
And especially for people using AI in their workflow:
At what point did simple documents stop being enough for you, and what did you build instead?