Modding intermediate FAQ

From Wildermyth Wiki
Revision as of 10:11, 10 December 2019 by Davea (talk | contribs)

This page is a growing FAQ for modding. Please see the basic pages first. Most of these are questions which were asked by modders in the discord modding channel, and answered by the dev team. It's more-or-less chronological. When there are enough questions to see groups of related items, probably we/somebody will create a dedicated guide to that topic.

Q: If I add a filter based on a theme piece, will it work? Meaning that I want to make an ability that depends on having diferent themed body parts. So in this case, this ability will only work if I have the themePiece_crow_head, is this correct?

A: Yes. For example:

ModdingIntermediateFilterThemes.PNG

Q: How are hook encounters linked together? Most hook quests have an intro, an "arrive at site", and one or more resolve encounters.

A: Hook quests start out mildly hard-coded by name. By default, it does hook_HookType_nameOfQuest_intro > hook_HookType_nameOfQuest_arrive > hook_HookType_nameOfQuest_resolve. You should be able to override what events happen by using the AssignToPlot Outcome and setting "arriveEventId" and "resolveEventId" to what you want. We don't set the arriveEventId anywhere currently, but you can see how we use resolveEventId in hook_Brash_theBlinkingGame_arrive to set the resolve event differently depending on the choice you make.

Q: I want to have an encounter which requires a female as one role (because the title I want has a gender.) How do I setup the role?

A: Slightly below the bottom of this screenshot, there is a section called "filter". Open the filter section, under aspects, click new, and select the desired aspect.

ModdingIntermediateAspect.PNG

Q: Once I have a few text balloons in a comic frame, moving the balloons and the related pointers becomes very difficult. For example, this screenshot:

ModdingIntermediatePointers.PNG

A: First, if you have more pointers than you want, you can turn off individual ones using the right side panel; click on pointerTarget for the related balloon, and select "null". If you still have too many buttons on the panel, one of the icons for each element is a minus sign. Click the minus sign, and all the related buttons for that element will go away. The minus is then replaced by a plus; click the plus to get all its buttons back. It can be helpful to click all the minuses first, and then one by one, click plus to get the buttons back for an element and position it.

Q: Can I add my own images and backgrounds to the comics?

A: Not today (early December 2019). You can add images for monsters only, at this time. But the dev team considers this high priority.

Q: In the comic editor, when I click reroll, I get characters who don't match my filters. For example, I set a filter to require the hero to be male, and it is female.

A: The randomly generated characters in the editor don't adhere to the aspects you put in. But, in-game it will work.

Q: How do the relationship points awarded in encounters relate to relationship levels?

A: The breakpoints for relationship levels are 20, 60, 120, 200, 300 (which is +40, +60, +80, +100 per level). So an award of 10 relationship points isn't much. It is possible to grant a variable amount like "2d8". It may be possible (not yet tested as of early December 2019) to use a formula here. For example, to guarantee advancing one level, a formula something like "20 * target.SHIP_WITH.volunteer" should award enough points to reach the next level.

Q: If I know one of the characters already has a theme, how do I award them another piece of the theme?

A: You can just use ApplyTheme and set oneRandom to true. (todo: fill in more details of this.)

Q: I have a pre-battle encounter, linked to a post-battle encounter by victoryEventIds. The pre-battle selected two characters from the party, by a selector which is not unique (HAS_LOVER). In the post-battle, how do I guarantee that the exact same characters are selected?

A: For post-battle encounters, because you're using victoryEventIds, all the roles you used in the pre-battle event will actually be injected into the post-battle encounter. You can use the INJECTED_ENTITY target template, and set injectedRole (in the "Domain" section) to the role from the pre-battle event. (You can take a look at theShapeOfThingsToCome for an example of this)

Q: I'm trying to figure out how to let the player choose a custom name in a choice, I currently managed to get it to where it will just grab a random name and go with it.

A: You can use the extraData field in the choice to create a prompt, as shown below. And in the outcome use Special -> specialAction PROMPT_RENAME_COMPANY or PROMPT_RENAME_SITE depending on what you're up to. It looks like "rename site" is hardcoded to find the "site" target and rename it. But, in theory you could put any entity in the "site" role if you wanted to.

ModdingIntermediateRename.PNG