Getting Started
Background: 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 Game Content
When your mod is loaded, the game looks for Python code inside it to run. You can use this to change gameplay. This is how you add:
- New characters
- New transformations
- New side quests
- New buildings
- Changes to mechanics
Introduction to Python modding