First things first
How Fleshcult Works
Fleshcult originated as a web-based game, so it used to run on a server. The split between "server" and client still exists, even though they're both on the same machine, communicating via IPC rather than over a network. There is no web server, it's just two programs talking to each other.
What happens when you click on a link:
- Chromium Embedded Framework (aka CEF) is the browser engine I'm using. It receives your click.
- It sends a fake address to the server half. e.g. http://localdynamic/fire_minion
- The game logic is written in Python, and that Python program looks up the function associated with the address and runs it.
- The Python program needs to send back some results, so it picks an HTML template to fill in with variables. These are in a template language called Jinja2.
- CEF receives the new page and shows it to you.
What kind of mods can you make?
Background sets
You can put new backgrounds into the game by putting them in a mod folder and writing a CSS file that points the game to them.
Visual/UI
You can rearrange and format the UI with CSS, but if you want to add brand new parts, you'll need to edit the HTML. Jinja has a some extra funky stuff with curly braces you'll need to learn about so you can substitute game variables into the page, loop over lists, etc.
There's also everything else Chromium supports, like Javascript and even WebGL. The one thing you can't do is load stuff from the real internet, because I hijacked the bit that does that. You wouldn't want to anyway, because this is an old version of Chromium without an auto-updater, so it's not safe to use on the real internet.
New Audio
You can override the sound effects and music by dropping appropriately named sound files into an 'audio' subfolder inside your mod. The grunts and groans for a gender or sex are called a Voice Pack. You can make new ones or replace the old ones.
New Characters/Dialogue
Ideally more of Fleshcult's content would be in data files, but at the time of writing a lot of it is defined in code. Here's what's available so far:
- Dialogue Editor: Edits the sex scene messages and character intros.
Things that don't exist yet:
- Archetype Editor (for characters)
- Equipment Editor (for transformations)
- Tome Editor
- Location Editor
New Game Mechanics
When your mod is loaded, the game looks for Python code inside it to run. As a stopgap you can use this to make new content that doesn't have an editor for it, or to change the game mechanics entirely.
Creating a new mod
Click on Open Mods Folder in the Mods menu. This folder is where you can work on your mod while it's in development or install other mods manually. Steam Workshop operates out of its own folder.
- Copy paste the example mod folder.
- Rename it. The naming convention is 'username_modname', where username is just something to distinguish between different mods with the same name. It's not related to your steam username or anything.
- Rename the .css file to be the same name as your mod folder.
- Find out more about the different files inside the mod folder.
- Once you're ready to show it to the world, you can go into the Mods menu and upload it to Steam Workshop from there.
Making Mods | ||
---|---|---|
How To | ||
Parts of a mod | ||
Tech | ||
Distribution |