Comic Editor Reference
This is a collection of reference material that explains how to use the Comic Editor to tell stories.
(Related links: Check out the Writer's Guide for a more top-level view of crafting stories. If you're wondering about tags, check the Tag Reference. If you want your text to look a certain way, check Text Styles. If you want an overview of the overall structure of data in Wildermyth, look at the Data Format Overview)
Who is this page for?
This page is for you if you want to make an event (comic) that will show up in Wildermyth, but aren't sure where to start. The editor for Wildermyth can do a lot (it's how we make all the events that are in the game!) but that also means it can have a pretty steep learning curve at times. This guide is meant to explain some of the basic structure, so that you can dive into making interesting stories without worrying too much about the more technical side of things.
Making a Mod
You'll want to be sure everything you create is in a separate mod folder, or else there's a chance an update to Wildermyth could wipe your custom events. Also, you'll be able to upload it to the Steam Workshop (or elsewhere) for others to play!
- Open the Editor from the main menu (Tools > Editor), or open up Scratchpad directly
- Go to the Content and Comics Editor. This is where most of the work on comics, events, and campaigns happens.
- Click the "Mods" button at the top-left, then click "Create New Mod". Create your mod, then click "CREATE!" and "Confirm".
Your mod folder should open up in your file explorer when you click "CREATE!" If you're just making a basic story, you shouldn't need to interact with that folder directly, but that's where all the events you create will be stored.
Make a New Event
- Click the New... Button or press Control+N
- Make sure your mod is selected.
- Select the type of event you are creating, for example Arrive at Hostile Site or Mission Victory. For this example, we'll make an Arrive at Hostile Site event with a player choice, since that's what a large percentage of Wildermyth's events are.
- Enter your name, if you want players to be able to see that you wrote this event.
- Enter a name for the event. The tool will create an ID and Filename automatically.
- Edit the id and filename if you want.
- Press Create!
Congrats, you've created an event!
Now that you have an event, it's time to add Targets for the important people, which is generally the heroes. A Target is simply a way to "target" an entity in the game that matches certain parameters. For example, if you wanted an event that had a bookish hero and their lover, you'd need to create a target for each of them, and then the event would only occur if it could find heroes with those characteristics. (You can read Story Inputs and Outputs for more information on some of this.)
Looking on the left side, you'll see some existing targets, like self, company, overlandTile, site, party, and foes. These targets are automatically matched when the event happens, and are there in case you want to reference them or add other restrictions. (For example, you could click on overlandTile and edit it so that the event only happens when the overlandTile is a swamp biome)
For now, skip over those targets, and click on the New Story Role button. You'll see that it creates a new "hero" target:
This new target means that this event will only happen if the party assaulting this site has at least one hero in it. Not very interesting yet, since all assaulting parties will have at least one hero.
You'll notice that "hero" is a dropdown. The word "hero" in this case is a Role. Roles are what we use to identify targets when placing them in comics or referring to them in dialogue. For example, "My name is <hero>" might show "My name is Martol" in-game. You can select from a wide variety of roles like warrior, bookish, leader, lover, target, and volunteer, but again, these are just ways to identify the target; the role itself doesn't impact who gets chosen for the target.
I want the main hero of this comic to be bookish, so I'm going to change their role from "hero" to "bookish". I'll leave the target as "required", but note that you can also have "optional" or "forbidden" targets.
Preferred/Required Personalities and Stats
To define how to choose a hero for this target, press the '+' button on the right side of the target. This will create a dropdown underneath. This dropdown has a number of ways to match potential heroes by class, personality, aspects, or relationships with other heroes. Since I want a bookish hero, I'll select "personality". This causes another dropdown to appear, in which I can select "BOOKISH".
Currently, this target will match the hero with the highest bookish stat, but if no heroes have a high bookish stat, I don't want the event to happen. If I click the checkbox at the start of the line, the game will require a hero with a bookish stat of at least 80.
Notice that the "Score" underneath changes whenever you add another requirement or preference to a target. The dropdowns and checkboxes above are really just editing the scoreFunction and scoreThreshold values of the target, which you can see over on the right side of the comic editor. Many things can be accomplished with the dropdowns, but if you find that there's something they can't do, you can always edit the scoreFunction and scoreThreshold values directly.
Continuing forward, I've created another New Story Role, given it the role "lover", and required that they're a lover with "bookish"
A few other notes:
- If a Required Role is not present, the story won't happen. This is usually what you want. This way you can be sure that if the story is being told at all, the right characters are in place. Sometimes you have a role that's not too important, and you can make it optional.
- When you select a target, all the information about it shows up in the panel on the right side of the screen. That provides some more granular control over who gets matched for which targets.
- Of particular note in that section is a field called Not Already Matched As, which will auto-fill previous roles after your first target. This makes sure that this person isn't the same person you selected for a previous role, because then it might seem like they were arguing with themselves, which is only sometimes what you want.
- Remember, targets are selected in order, and by the time you get to number three or four, it's unlikely that the Romantic is really an iconic romantic, so put your most important/iconic/identifiable roles first.
Create as many roles as you need. Usually that means one per speaking role, and remember there are never more than 5 heroes in a party, but there can be more than that in the company. So, it depends what kind of story you're telling.
Other Targets and NPCs
In addition to Story Roles, you can create other targets.
- The New NPC button will create an NPC that you can modify using the righthand panel.
- The New Target button isn't particularly useful for comics in most cases, but there may be certain times when you want to target a weapon or a threat when this may come in useful.
Some events call for choices. In this case, there's generally a prompt, which is a set of comic panels, and then a choice, which is several panels, some of which might only be present under certain circumstances. To add a choice, click the New Choice button
This lets you pick a tag (which is not too important except that the outcome will use the same tag). Then you can pick who will be speaking, and you can make the choice optional, so that if that character is not present, the choice won't show. Then you can choose if you want to add any branching, like a dice roll with a chance of multiple outcomes. Most commonly you will pick "simple" or "event roll."
You'll usually want to do this at least twice, so the player has two things to choose between.
Putting Targets in the Comic
If you added Choices above, you'll notice that the roles you selected as "Who's on point" have already shown up in the "Choose" panel(s). But the choices don't mean much if there isn't a story preceding them, right?
There are several ways to add targets to a panel. The first is by using the Compose Panel Dialog. You can get to this by clicking the Cmp button for existing panels, and you'll also see it every time you create a new panel using the Add Panel button:
There are some options there to decide which roles you want to show in the panel, who you want to have speaking, whether there's narration, how to arrange the heroes, and more! You can't do anything too complex from here, but it's a good starting place.
The other way to add targets to a panel is by clicking on the comic panel in the middle section (the left section works fine too) to select it, and then looking at actorSlots and textSlots. There are buttons to Add Actor and Add Text Box, which is how you can add the targets you've made to that comic panel. In addition, there are buttons for Add Image, Add Animation, Narration, Dark Box, and Action Text, which are individual objects that don't require any prior targeting.
The little black boxes with '+' and '-' symbols can be used to expand/collapse more information about the actors and text. If you expand a target actor, you'll see that there are options for which role is being displayed, what direction they're facing, whether or not to show their weapons, their position, and more! Most of the time, you'll want to change position, rotation, and scale of actors and textboxes using the icons that appear around the images rather than adjusting the values manually.
Once you have some actors on a panel ("actor" meaning any object on the panel, whether it's a target hero, textbox, or an image), you're going to want to move them around! When you click a panel to select it, little icons will show up by all the actors, allowing you to adjust their position, rotation, and several other things. For heroes specifically, there are controls to
- move the hero
- rotate the hero
- scale the hero
- flip the hero horizontally
- rotate the hero's head
- flip the hero's head horizontally
- change the hero's facial expression
- add a text box for the hero
- change whether the hero is holding their weapons
- move the hero in front of/behind other actors
(The hero rotation icon is missing from the above image, because it's located down by the hero's feet, which is the pivot point for hero rotation)
There are similar controls for images, text boxes, and pointers (the lines leading from heroes to their textboxes). For textboxes and pointers, you may need to click a '+' icon to show the other controls. You can also hold Control (Command on Mac) to hide all of the controls, in case you just want to look at the beautiful piece of art you've created.
There are also a number of things you can do in the right-hand panel. These all have tooltips describing their function, but here are a couple of particular interest:
- panel > animation: can be used to control the order and depth of panels appearing, which is useful if you want a comic to read from right to left (Yeah! Break the rules!)
- actorSlots > focus: determine whether the face, middle, or foot of the hero is the "focus" point. Some heroes are taller than others, so you'll often want to use "face" if you're just showing a hero's head, to ensure the panel still looks good with different heroes, but you'll want to use "foot" if you're showing them standing on something
- actorSlots > color/colorFilter: tint actors different colors! This can be particularly effective when very slightly tinting them the color of the environment or background, to make them feel more "grounded".
- textSlots > allowDrawOverEdges: allows a textbox to go beyond the bounds of a panel, which can be visually interesting when having the text from one panel overlap the previous panel.
Testing your Event in the Editor
Your event is set up and things are looking good. But what if a taller hero goes out of frame? What if the heroes are at a different site? What if one of them has crow wings?
There are a number of ways to test your event from within the comic editor, most of which are on the top of the screen right above the comic.
Many of these are only useful once you've added tags and dynamic text to your event (which we'll go over in the next section), but it feels correct to talk about it here first, so when you do start using tags, you'll know how to test that they're working.
- The comic editor is set to Scroll view by default, but you can change it to Click to see a more accurate representation of what your comic will look like in-game, including panels animating in.
- Reroll will reroll all of the "fake" heroes it's matching with your targets, allowing you to see what it will look like if the player gets your event with a variety of heroes or at different sites. Note that by default, these fake heroes won't actually match the target requirements you've set for them; that will only happen in-game.
- Settings... will bring up some options for testing all of the roles. You can choose whether or not to show optional roles, make roles always show up as a certain class, and give roles specific aspects. (Some of this can also be done with the inspect button, but those won't persist across multiple rerolls)
- Find can be used to search for words in the event. It's not a testing feature, but this was a sensible place for it.
- +RP will grant relationship points between all of the heroes. Useful for testing events that have differences based on relationship tiers.
- :) / <3 / >:( / Fam will make everyone in the event friends/lovers/rivals/some kind of family. Useful for testing events with differences based on relationship or family types.
- Inspect will allow you to directly edit any of the "fake" matches for targets via their character sheets (as long as you have devMode on), which can help you test specific scenarios.
- Auto-Match: When enabled, the game will try to adjust comic hero aspects, personality, relationships, etc based on what splits your cursor is positioned within in the text editor, so the comic is more likely to show the text you're on without needing to manually adjust heroes. (Note that this may not work for every scenario, and sometimes you'll need to use Inspect or Settings... instead.)
At this point, you may want to enable devMode. You can do almost everything in this guide without it, but there are certain cheat-oriented hero things (adjusting character stats, abilities, gear, and relationships through their character sheets) and gameplay things (choosing which events to encounter, skipping objectives) that are very useful for testing, especially when you get to actual in-game testing.
Using Tags to Control Text
See : Tag Reference
As stated above, each event can specify a number of targets, which are often heroes, selected for a particular personality, relationship, etc.. These targets are assigned to roles. Roles are easy-to-remember words like leader, target, hero, hothead, friend, etc..
Once you have a target assigned to the role, you can insert the target into your text using a role tag like this.
<leader> takes a long, appraising look at <hothead>. <leader.mf:He/She> wipes a fleck of bluish ooze off <leader.mf:his/her> nose.
This is a simple example but we can get a lot more sophisticated, and tags can be nested as well. The status bar at the bottom will tell you where the cursor is within a tag or nested tag. It's super handy for complex splits!
One of the key uses of tags is to give heroes different lines depending on their personalities. This works by embedding the stats you care about in the tag.
<leader.goofball/bookish: Surprise everyone! It's fightin' time! /Ahem. Our foes appear to have arrived.>
When you type the opening '<' of a tag, a dropdown will appear showing you possible things you could put in. The most common inputs will be roles, like <bookish> and <lover>, but there are other options too, like <DayOfMonth> to get what day it is, <season> to display the season, and <Company> to display the company name.
If you enter a role alone, it will display the name of the hero matched to that target. However, if you put a period after the role (as demonstrated in some of the examples above), you can get more information about the hero. Those options will also be shown in a dropdown, and each option has a tooltip describing what it does.
If you start using complex nested tags, you'll notice that the text display is colored in a context-sensitive way, so that you can see what blocks of text your cursor is within, and the text it will or may also show. (This text is one of the first lines of Age of Ulstryx. It's quite tame compared to later tag splits.)
The context bar at the bottom of the screen is also useful in complicated situations like this, to show what tags and splits are true at the point where your cursor is:
Tags can do a lot more! For a full list of available tags see : Tag Reference.
See: Text Styles
Text in a comic panel gets a style automatically depending on if the TextBox is set up as narration, speech, thought, etc.. The Style can be modified using square brackets. Generally, text-style markup is similar to html markup, in that you have a starting and ending tag, BUT! our style format doesn't require the end tag to have anything in it.
It looks like this:
[bold]bold text [italic]Bold italic textbold again regular again.
You can set the size, color, and font of the text. See Main article on Text Styles for a full list of available fonts, styles, and colors.
See: Face Tags
[face:sad] [hero.face:dubious] [loner.face:talking]
Sets the facial expression from text, overriding what the tool says. This is useful inside text splits, so you can tweak a panel without having to build a whole panel split.
So we know how to make comics now, but comics aren't very interesting if they don't impact the gameplay. Outcomes are used to make things happen in the game, like granting a weapon, applying a transformation theme, adding resources, or starting a mission.
To add outcomes to your comic, you'll need to switch from the Comics tab (Ctrl+1) to the Effects tab (Ctrl+2). It may look overwhelming at first, but don't worry! Most of this is the stuff you just edited in the comics tab, just in text form. Partway down you can see a list of targets, which are the same targets for heroes that you were working with before.
At the bottom, there's a list of outcomes. If your event has choices, you'll probably see something like "Chose <<one>>" and "Chose <<two>>", along with Description outcomes in both. The Description outcomes are how the choice comics are triggered. (If you switch back to the comics tab, you can see that the header above the choice outcomes says something like "Outcome 1 >> Chose one.1")
If you click the "Add Outcome..." button under one of them, a New Outcome dialog will pop up:
Across the top of the dialog are the most commonly required Outcomes, but you can scroll through all possible Outcomes in the left scroll panel. Each Outcome has its own set of options to get it to do exactly what you want.
If you're creating an Arrive at Hostile Site event, you'll almost always want to add a Mission Outcome so that a battle will occur after the event is over. You can do this by clicking the Mission button, and then clicking Create. (If you made an Arrive at Hostile Site event without a player choice, the Mission Outcome will already be there for you)
Once you've done this, you'll see a Mission outcome after the Description outcome. That will only fire a mission for that choice, so you'll want to add a Mission Outcome to the other choice as well. Having two separate Missions like this is helpful if you want to apply combat modifiers or have different victory events based on the choice that was made.
If you want to have one mission that's the same regardless of the choice, you can hover over the "outcomes: <list>" line and click the New Entry button to create an Outcome after the choices.
You can see a list of the outcomes and descriptions on the Outcomes page, but all of those descriptions are also in-game as tooltips (and more likely to be up-to-date)
Testing your Event In-Game
Great! You've made an event, and now you're ready to see it in action. The first thing you need to do is Enable it, which you can do by pressing the Event Disabled button underneath the targets in the comics panel.
There are a couple other things on the Effects tab you may want to change before testing. If you expand the ability line, cooldown, encounterScore, and encounterWeight may be useful.
- cooldown: How many times can this event happen per game? By default, this is once per game, but you can change it to make an event that happens multiple times per game.
- encounterScore: Events with higher score will always happen instead of events with lower scores, if possible. If you want your event to definitely happen whenever it can, change this to a higher number. (Most default events are set at 10, so setting it to 11 is a pretty safe bet)
- encounterWeight: How likely is this event to be chosen, when compared with other events of the same encounterScore? For example, if you have an event you really want to happen, setting this to 5 would make it 5 times more likely to happen than a normal event.
Now we're really ready to test it in-game.
Return to the menu, and start a new game! (Probably a standard three or five chapter one, rather than a story campaign) In the Campaign Options, click the Pick Mods button, and select your mod. If you've enabled dev mode, you also probably want to Enable Cheats and check Pick Events and Objectives Cheat.
If you have Pick Events turned on, it will ask you which ENCOUNTER_TUTORIAL_KICKOFF to pick. It doesn't matter, we just want to get to your event.
Once you're in the mission, if you have Objectives Cheat turned on, you can click the "Kill all enemies" objective in the top left to automatically complete it. Easy win!
(Comics and certain other things can be skipped by pressing Escape, which is useful when trying to get through events quickly while testing)
Finally, once you're on the overland, scout a tile and assault a hostile site. You should see ENCOUNTER_HEROES_ARRIVE_HOSTILE_SITE and a list of possible events to trigger. If you don't see your event among the top possible choices, it's likely there wasn't a match for one of your event targets. If you scroll down, you should be able to find why your event failed.
In the case of this image, none of my heroes had a BOOKISH personality stat of 80 or more. If I have devMode enabled, I can open the character sheet of one of my heroes, increase their bookish stat above 80, and then assault another site. (Since I know the event I've been working on also requires the bookish hero to have a lover, I'll use cheats to give that hero a lover as well)
If everything is correct, you should be able to choose your event!
Those are the basics of making events for Wildermyth. Once you have an event or several events you'd like to share, you can upload them to the Steam Workshop, or share them elsewhere by uploading your mod folder. Go spin some tales!