Modding Dialogue

What it's for
While in Developer Mode you can see an option for Dialogue Editor in the main menu. This lets you write text for use in the sex scenes. It saves out to a dialogue.json file.

Future Directions
Right now this tool isn't very useful for modders. Currently the game only loads one dialogue.json instead of gathering together one from each active mod.

Also if you're looking to do a translation, there's still a lot of text in HTML templates and in Python code which would need to be moved into data files, so the dialogue editor only helps for the sex scene content.

How it works
Dialogue is a rules engine. When an event is fired by the game logic in python-land (e.g. on_arouse), it searches through all the rules for that event, figures out which ones having matching criteria, and uses the most specific match as the source of text.

Usage

 * Look for the Select Rule dropdown menu. This lets you pick the rule to view or edit.
 * Below, there's the content of the rule. It's divided into:
 * An ID, which can be set to anything (please don't edit the IDs of the existing rules, in old profiles it'll orphan their usage counts, cooldowns etc.)
 * The WHEN section. What encounter event triggers the rule and whether it's specific to a particular character. (if not, 'generic')
 * The IF section. This is an optional list of criteria. The rule only runs if the situation meets all the criteria.
 * The THEN section. This is a list of messages to show to the player. They can have string substitutions. One is selected each time the rule is triggered either by random shuffle, the order they appear, or by checking a decision variable and finding out which interval it fits into in a scale from low to high.
 * Miscellaneous fields for who's editing it and suchlike.
 * There are lots of rules. If you're having trouble locating one, you can use the filter fields at the very top of the page to limit what appears in the Select Rule dropdown. A rule needs to pass all the filters to be shown. If no rules pass the filters, all of the rules are shown.
 * At the moment, the save button will save the current rule into memory. The only way to write to disk is with the Export JSON button.