This post is part of an experiment. I’m thinking of starting a series of posts that would go into detail about something I’m currently interested in, and hopefully show you something you wouldn’t otherwise look into and maybe teach you something new. I’ve decided to call it “Fixations.”
I don’t know if this will go anywhere, and this may be the first and only post in that series, but I’d like to at least give it a try.
This first post is about The Coffin of Andy and Leyley. Specifically, the modding side of things.
The Game
The Coffin of Andy and Leyley (which I’ll abbreviate as TCoAaL) is a short but story-rich indie RPG with a very gripping plot. Due to it being so short, I will refrain from elaborating on the plot, as anything I say could ruin it for any prospective players. As of writing, it is still in development, but it is more than worth a playthrough even at this early stage.
There’s a lot of mystery surrounding the developer, and while I won’t wade into the weeds, I’ll say that:
- The only “official” place to discuss the game is the Steam Community Hub.
- The only official source of information comes in small Steam News updates roughly every one or two months.1
- Communication with the developer and the answering of questions isn’t really something that happens.
The Engine
TCoAaL is made with RPG Maker MV. Perhaps a more well-known example of a game made with the same tool is OMORI. The RPG Maker series of programs allow you to make, well, RPGs. MV was the first edition in the series to make web-based games; the engine code (the core code bundled with each game, separate from the editor program that is actually used to make the games) is written in readable JavaScript, and the desktop apps it exports are technically just NW.js apps (think Electron, but older). The editor program’s job is to generate JSON files and facilitate making the game, while the engine code makes sense of the data and runs the games themselves.
Due to MV being web-based, it is easily hackable. There is a whole officially-supported ecosystem of plugins that allow you to load custom JavaScript to modify the game, and you can also just edit the scripts and such, which are simply stored in a directory. The design of MV greatly encourages this.
The Modding
After taking a great interest with the game sometime mid-November, I decided to poke around its internals. I wrote a tool to extract and deobfuscate the hidden custom code2, as well as decrypt and encrypt game assets, and called it Grimoire. After finishing it, I looked around a little, and stumbled upon a comment on Reddit, where a user mentioned a modding Discord and had an invite.3
When I joined it, around a month after the game had gone into Early Access, the modding scene was very small. At this point, there were a few decryption programs that had been made by various members, as well as an early attempt at a mod loader by unplayable_game, called CALM. A handful of folks had made contributions, and I recognized Rph from OMORI modding fame.
I started developing a mod loader, Tomb, and got help with various details from Rph and Alyxia, along with using code from CALM (which used code from CCLoader) and OneLoader. At one point, it surpassed the functionality that CALM had, and CALM was eventually deprecated in favor of Tomb.4
Along the way, I also began work on a wiki, specifically for modding. Here’s an early design:
And this is how it looks today:
I also jumped into developing a full-on reimplementation of the RPG Maker MV editor:
From what I’ve said so far, it might seem that I was the only one working on things at the time. For the most part, I believe I was. There were some other small projects by some other members, such as a private version archive and a character personality test, but my efforts were rewarded with the only cosmetic role in the Discord: la feuille de basilic
Then some stuff happened and drama ensued (and is still ongoing, unfortunately 😑), but I won’t elaborate any further.
I also joined the staff team alongside OneHalf―a member of the modding community―as a moderator. Kudos to Thefonze7 and unplayable_game, the two administrators, for taking care of the server for everyone and for trusting us to help them.
The Now
So, where are we now?
There haven’t been any major projects developed since. Tomb is stable enough to build mods upon.
Llamaware, a group OneHalf created on a whim shortly around the time I joined, now has an official website at https://llamawa.re crafted by yours truly (domain owned by OneHalf). We’re currently using it for mod storage.
I’ve put together three small mods myself: a mod to load and play audio files over game dialogue, allowing you to make your own fandubs, as well as a multiplatform compatibility mod and a joke mod that syncs some dialogue to music. You can snag them from the Llamaware Mod Depository.
As for mods by others, I know of one: The Coffin of Nina, a retelling of the story in which Nina takes a center role, is currently in the early stages of development. It is being headed by Misana, with writing contributions from Mr.Archive.
I’ve abandoned the initial RPG Maker MV editor remake, and I’ve started again, from scratch. It will reach at least an MVP stage, but it is coming along nicely.
To this day, the modding Discord I’m in has remained the nicest place to discuss TCoAaL, by virtue of being centered around modding and more technical. If you want to join us on Discord, here’s an invitation link: https://discord.gg/7XTVRkdS6Y
Footnotes
-
They used to be written by Nemlei, who is recognized as the (main?) developer of the game, but at some point it was announced that Kit9 Studio―the studio that had been somewhat related to the game in some nebulous way―would take over the public-facing work. However, both Kit9 and Nemlei are still shrouded in mystery. ↩
-
This was the first time I had written a tool that used an AST, and it felt really cool. ↩
-
To speak more broadly, it’s somewhat scary to think about the course your life would have taken if you hadn’t happen to discover something that had great influence on you. ↩
-
Tomb was later forked by unplayable_game after I rejected a big refactoring PR he submitted to Tomb. The forked version, Alife, takes a different approach towards a lot of things, including using a Go-based server for serving assets, and using a service worker for network request interception. ↩