Wildermyth - contact@rockpapershotgun.com (Sin Vega)

There’s not long left before the big 20, but those crafty devs continue to release legions of games anyway, surely coveting the grand prize of a spot in the Unknown Pleasures annual finals. Or possibly they want to have enough money to buy food. Who can say?

Five more games join the ranks of the worthy today, for it is, once more, time for a selection of the finest under-appreciated games on Steam.

Doing that lungey thing sprinters do at the finish line this week: socialist revolution, cultist massacres, and pretty flowers.

(more…)

Wildermyth - Worldwalker Games
0.9+93 Cathryn Del Hunt
  • Mystic Nerf:
    * Interfusion abilities no longer use Potency for accuracy
    * Steal Fire is now turn ending, but increased range
  • Updated Story - Spirit of the Forest
  • Reworked Story - Great One
  • Hovering over enemy portrait now shows their movement range
  • Now possible to edit History text for characters.
  • Defense maps now always put escape zone near hero start zone
  • Fixed crash when crafting offhand items
  • Fixed crash related to mods with no scenarios
  • Corrupted player accounts should no longer crash the game
  • Increase logging around some mysterious crashes :-(
  • Fix various typos / missing tags
  • Ulstryx chapter 2 now provides 2 prebuilt bridges / passes instead of 1
  • Modding: Monster mods are now done via monsterTweaks, tweak data now lives in mods
  • Modding: Can now put a preview.png in the mod folder to be used as workshop preview image
Wildermyth - Worldwalker Games
After each chapter in Wildermyth, the map grows and opens up new lands for your heroes to explore. And after years of development and months of beta, we're finally ready to let the heroes loose on Steam!

Huge thanks to our Discord and all of the beta players who have helped bang this game into shape over the last year. Hearing the crazy stories about the characters you've made and your experiences in the Yondering Lands—it's what this whole endeavor is all about. <3

The "Early Access" part of this release is to let everybody know that we're still actively working on making Wildermyth better. We're adding stories and art, we're balancing combat, we're polishing our interface, and we've got at least three more villains/campaigns planned for the coming months. We're aiming to release updates pretty regularly, and we love getting feedback, so don't be shy—get in touch!
Wildermyth - Worldwalker Games
This is our last regular patch before Early Access launch! This patch focuses on high-difficulty game balance, improving the warrior's utility a bit, and fixing a bunch of bugs.



0.9+88 Cathryn Del Hunt
  • New Story: Avenger - TamTroll's contest reward!
  • New loading screen art!
  • Fixed a bug where certain battles would crash when launched
  • Adjust several town recruit events
  • Recruit and Station jobs show LP cost in tooltip, appear disabled if you can't afford
  • If an event replaces an arm causing a hero to have no weapon, give them a basic weapon.
  • Improved monster descriptions for spawn cards
  • Fixed a bug where spectral lantern and spellshard didn't function properly
  • Spellshard no-longer craftable
  • Updated some dialogs to put Done or Confirm on the right, for consistency
  • New FX for concussed, hobbled, and mindwormed.
  • Renamed Prophet to Shadow Hunter
  • Fixed a bug with calamity and incursion UI on resize
  • Removed incorrect history line for Crag Eagle fail case
  • Job Banners look more clickable now
  • Fixed several free actions that were preventing the turn from ending
  • Control the pace of "2 spectiks", "3 spectiks" calamities so they can't happen too soon
  • Nerf Bard - no longer gives LP per battle. reduces recruit cost by 1 instead.
  • Fixed bug where heroes could show up naked in gear popups in some cases
  • Show +3LP on retirement
  • Increase the cost of wands
  • Decrease warrior XP thresholds
  • Warrior: Engage now has no cooldown, grants +1 armor per engaged foe, added particles
  • Limit free action from water stunt to once per turn
  • Leaving behind gear now grants a crafting resource instead of a legacy point
  • Reduce Weldling armor
  • Added blurbs explaining difficulties
  • Fixed bug where shackle could affect allies
  • Fixed bug with targeting in One False Step
  • Balance monster stats - H.P. Lovecraft monsters don't deal additional damage.
  • Building Stations now cost 1 LP instead of 2
  • Friendship buff no-longer stacks
  • Hurlaxe and Throwing knives now respect cover
  • Can now view current calamities from "Calamities!" popup
  • Fix a bug where Through Shot would grant an extra action via Thornfang
  • 3 New recruit events
  • Tier 3 weapons and Tier 2 armor cost a bit more now
  • Swords now correctly give a small accuracy buff
  • Dueling swords now give +5 stunt chance
  • Added a healing rate indicator to hero portraits, with tooltip explaining factors
  • Secure Site now shows a time estimate when choosing party
  • Fixed a bug where mortal choice sound would keep playing if interrupted to load game
  • Fixed a bug where winning a battle with riposte caused a soft lock
  • Tweaked defense jobs - now give class-oriented speed buffs
  • Fixed a bug where the game would auto-save right before a game over.
  • Game now defaults to windowed mode for new users
Wildermyth - Worldwalker Games
0.8+86 Grifwit Marten



As we get ready for Early Access we're moving to a quicker pace for patches. Here's a Halloween update with a couple new stories and some big combat changes that we've been mulling over for a long time.

  • Updated main menu art
  • New main menu option: Tools
    * Now possible to launch editor from main menu
    * Now possible to launch Battles without being in dev mode
  • Can now adjust text size from interface options (make bigger or smaller)
  • Rename Edgar Allen Poe difficulty to H. P. Lovecraft
  • Reworked Story: To Humble Ends
  • New theme - Oldwane Curse (Skeleton)
  • New Story: Dreams and Bones
  • Swapping weapons now always completely free - Deftness is now obsolete!
  • Warrior Abilities:
    * Centurion becomes Stalwart: +3 armor to self or ally for 2 turns.
    * Zealous Leap no longer combos with Engage
    * Shieldshear now shreds two armor as a free action every other turn
    * Paladin is now a passive that enters guardian whenever you end your turn with a move.
    * Thundering Challenge - free action once per combat to terrify an enemy, forcing them to flee.
    * Broadswipes - melee attacks deal Bonus Damage to all other foes within range.
  • Quickfuse now obsolete, removed from ability deck:
    * Interfuse is now a free action
    * Interfusion range is reduced from 8 to 6
  • Heroism: now grants 1 action point and attacks don't end the turn that turn.
  • Fire Stunt: now sends up to 3 fireballs at nearby enemies
  • Stone Stunt: now shreds 1 armor from all foes within 2 tiles of target
  • Heroic Death (defend) now properly grants +3 armor for 2 turns.
  • Flame Cone damage now based on level instead of potency
  • Added animation to indicate saving the game
  • Shield text shows up at the right time.
  • Auto-build discovered/ruined stations during intervals (but don't get resources from them)
  • Fixed several small bugs with item tooltips and stat blocks
  • Fixed some lingering tooltips
  • Fix some bugs where resizing could cause botched text
  • Fix misc bugs
  • Add some tutorials for idle heroes
  • WIP on Steam Workshop integration
Wildermyth - Worldwalker Games
This is part 3 of a series where I'll teach you how to write and implement your own "main story" for Wildermyth.

Part 1
Part 2

Wildermyth is a mythmaking tactical RPG currently in beta. Our philosophy is to put as much storytelling power into your hands as possible, and part of that is exposing our tools so that you can craft your own stories inside the game.



That's our goal, anyway. The tools I'm going to show you today are under active development, but they work right now and they're only getting better. Some of this stuff is documented on the wiki, and some needs to be. If you decide to give this a shot, find me on Discord. We have a tools-and-modding channel just for this, and I'll be thrilled to answer your questions and help however I can.

How To: Create a Custom Monster in Wildermyth

You'll Need:
* Wildermyth Beta
* Java (64 bit) in order to run the dev tools (for now - we're working on this)
* A picture of a monster?


Step 1: Make a Plan

For this article I want to make a "corrupted forest guardian" to insert into our "Heart of the Forest" fight from part 2. You should be able to make your own unique monster by following the same basic process.

My corrupted guardian will use this art:



The monster image should be a square .png file, usually 512x512, or 1024 x1024 for larger monsters, and should be placed in the mod under /assets/figures/images/



I want the forest guardian to have a free attack based on Wild Grasp, that can pull heroes out of position, and a standard melee attack to follow up with. The gaurdian should have about 16 health, 2-3 armor, take up 2 tiles, and otherwise be a fairly standard mob.

Step 2: Create the monster
Run scratchpad, and go to Combat Lab.

Combat Lab is great for testing out monsters and combat abilities, because you can control both sides of the fight. Press F10 or click Content Editor to open up the editor view.



Make sure that the Heart of the Forest mod is enabled in the Mods control in the upper left.





Go to the Monsters view (Control+7). From here you can see all the monsters that are defined in the game. The best way to make a new monster is to base it on an existing monster. Let's start with the actual Forest Guardian.



On the very top row, to the right there are three buttons, Copy, Duplicate, and Delete. Click Duplicate.



That will bring up the New Monster dialog. Let's call it "hotf_corruptedGuardian." Make sure to save it to your mod, as well.



Go ahead and create it. It will be using the new ID, but otherwise it's a total copy of the old monster. Now we'll change the image to use our "corrupt" version. At the very bottom, expand the skin->0->image-> nodes.



click on the misc/forestGuardian line. That will bring up a big list on the left of all the "figure" images in the game. Use the box at the top left to search for our image by name:



Select it. The picture in the upper left should now show our version:



Step 3: Edit the Stats
You can edit the guardian's stats in the stats section by clicking on the values and entering new values.




press Enter to confirm. I'll edit the stats, set the scale to 1, and also enter a name and blurb:



Save your work! (Control+S)

Step 4: Make a new Ability
Next, I want to add a new ability, "grasping vines," based on the mystic "wild grasp" recipe. In the aspects section, let's add an entry called "monster_GraspingVines".




This aspect doesn't exist yet. That's ok, we're going to create it now. Head over to the Aspects view (Control+3) and find an aspect to duplicate. I'll use "drauven_stormsend", because it's a simple ability. Press the duplicate button



And fill out the New Aspect dialog. We'll use the exact name we entered before, "monster_GraspingVines". Make sure to save the aspect to your mod.



Edit the name and blurb to be more appropriate, and edit the effects->0 node to say "monster_GraspingVinesAbility". This is referring to the ability, which we're about to create.



Save your work! Now go to the Effects view (Control+2) and search for "mysticRecipeWildGrasp". This is the effect we're basing our new attack on. Find the duplicate button on the top line.



Click Duplicate to bring up the misleadingly named "New Event" dialog. Type "Grasping Vines" into the Long Name field, and use "monster_GraspingVinesAbility" for both the id and file.



Then press create. There's a fair number of changes to be made to this ability. Normally you'll iterate on this a fair bit, changing some things, testing them out, and adjusting. For now I'll just run you through all the changes I've decided to make. Some of this stuff might not make sense at first, so I'll list them one by one and explain them as I go. Also, I'm not gonna take a billion screenshots of this, sorry. But let me know if you'd like to see videos of this sort of stuff I guess?

name -> "Grasping Vines" - this is the name that shows on the Ability Button.
blurb -> "Thick vines shoot out to grab and draw in an enemy." - this shows up in the tooltip
info.aiPriority -> 2500 - this tells the AI to prioritize this over a regular attack (which is 2000).
info.tags -> null - this is not an interfusion recipe, just a basic ability
ability.cooldown -> oncePerTurn - we'll be making this a free action, so we need to put a cooldown on it or else the AI will just spam it.
targets[0].cost -> null - make it a free action
delete targets[1] (source) - in Wild Grasp, this would be the interfused plant, we don't need it. When we delete this, a lot of errors pop up. Cool! We'll need to fix all those...
targets[1](target).relativeTo -> self - find an enemy that's within range of self (not the scenery that we're not using)
targets[1](target).minRange -> 2.1 - don't pull an enemy who's already adjacent.
targets[2](sourceTile).relativeTo -> self - find targets nearby self.
outcomes[0] (AttackRoll).intermediateRole -> null - there's no intermediate role anymore, just a simple attack.
outcomes[0] (AttackRoll).particles[0].setPosition -> self - vine particles should originate at self.
outcomes[0] (AttackRoll).particles[1].setPosition2 -> self - vine particles should travel back to self.
outcomes[0] (AttackRoll).flankMarkOrigin -> self - controls where the flanking mark originates
outcomes[0] (AttackRoll).always -> null - we don't need to damage scenery
outcomes[0] (AttackRoll).onHit[0] (Damage) -> delete - we don't want to damage the foe, just pull them close.
targets[0].missionFeedback.orientTo -> target - self should orient towards the target of the attack when hovering, animating.


So now it should look something like this.



Let's save our work.

Step 5: Test it out!
Let's test it out. (Due to a bug, you may need to close Scratchpad and re-open it in order to refresh the data.) Head over to Combat Lab (press Esc to close the Editor.) Where it says "Farmer" in a dropdown in the upper left, pick our new monster:



Press F2 or click the button just below to spawn the monster on side B (the heroes are side A). The unit should show up. Click on it to select it. (in combat lab, use SHIFT+CLICK to select a unit on the other team from the one you have currently selected.)

You should be able to select Grasping Vines, and target as hero, and pull them over!


Sweeeeeeet!

Step 6: Set up difficulty levels
Let's open up Content Editor again (F10) and go back to the monsters tab (Control+7) and find our guy.

Monsters can have different stats and abilities depending on the difficulty level the player selects. The base stats we set before are for "George R. R. Martin" or "Hard" difficulty, and are the default vaules for other difficulties. To make our monster easier for "C.S. Lewis" players, let take a look at the "mods" section of the monster definition. If you expand those three mod nodes, you'll see one for C. S. Lewis (easy), One for J. K. Rowling (Medium), and one for Edgar Allen Poe (very hard). You can override stats for any of these, and you can see there are already entries that override the main attack of the guardian.

I'll set these up like so:



Step 7: Add the monster to a fight
Let's put our new monster into our fight so we can see how it feels. From Combat Lab, We'll hit the "back" button (lower left) to get back to the Lab Selector screen, and head over to "Site Lab"



We'll use the selector on the top right to find our fight.



And then down at the bottom where we spawn the Thrixl ambush, we'll add our monster by specifying the mosnter id.



And let's set "combatantCards" to false while we're here, so that we won't also spawn some random Thrixl.



Step 8: Playtest
Load up the game and choose the scenario from the New Battle menu (you have to be in dev mode to see this)




Start the scenario and play through. Our monster should spawn, and use its devastating wild grasp on us!



So, this is how we make new content for Wildermyth. Hopefully we've got your imagination started. The tools are still getting better, so let me know what you'd like to see improved. Our dream is for it to be a really powerful and flexible content creation tool. Thanks for reading!



Wildermyth - Worldwalker Games
We've been in development for something like 5 years, depending on how you count, and we are downright thrilled to be able to finally announce a release date for Steam Early Access.

-- November 13 2019 --

Early Access means certain things are not totally finished, and we're still actively working on adding content, but overall the game is in a great state, and we're proud of our work.

We've built a new trailer as well, since the old was starting to show its age.


Once Early Access begins, you can expect regular updates including features, bugfixes, and content. We have a lot more ideas for this game, and we're very excited to be working on it for quite a while to come.

Wildermyth aspires to be a lot. We call it a myth-making tactical RPG, and it has strong roots in both D&D and XCOM. Over the course of several campaigns, you'll build up your own unique cast of iconic legends. We want you to really care about your party, even though they're randomly generated, and we've done a ton of work on writer-driven procedural narrative to make this all work the way you want it to.

And we're not done yet. There's a lot more content to add, and we want to improve and polish the content we've got. Come join us!
Wildermyth - Worldwalker Games
Hi guys! We've just released a huge update to our beta, which includes our first Villain, Ulstryx, as well as a whole weapons rework and a ton of other stuff. If you're into betas, check it out here.

How to: Write your own Villain for Wildermyth - Part 2

This is part 2 of a series where I'll teach you how to write and implement your own "main story" for Wildermyth.

See Part 1 here
(Note - if you completed Part 1 in an earlier patch, you might need to run through those steps again, since the tool chain has improved and the data structure has changed a bit. This stuff will stabilize over time! Contact me if you need help.)

Wildermyth is a mythmaking tactical RPG currently in beta. Our philosophy is to put as much storytelling power into your hands as possible, and part of that is exposing our tools so that you can craft your own stories inside the game.



That's our goal, anyway. The tools I'm going to show you today are under active development, but they work right now and they're only getting better. Some of this stuff is documented on the wiki, and some needs to be. If you decide to give this a shot, find me on Discord. We have a tools-and-modding channel just for this, and I'll be thrilled to answer your questions and help however I can.

How To: Create a Custom Fight in Wildermyth

You'll Need:
* Wildermyth Beta - get it here.
* Java (64 bit) in order to run the dev tools

Step 1: make a plan

For this article I'll be continuing to work on the Heart of the Forest campaign I sketched out in Part 1. Here's the outline again:

Introduction
  • Intro Event: a rumor reaches town of strange beasts in the woods. Three friends decide to investigate.
  • Fight: You find a shrine, and you're attacked by Thrixl. You learn they've been disrupting shrines.
Chapter 1
  • Goal: Clear all hostile sites to unlock chapter one boss
  • Fight: A forest guardian is slain, but you kill the thrixl responsible.
  • Interval ~10 years pass
Chapter 2
  • Omen: the woods are growing wilder and more angry, and the thrixl have returned in greater force. The heartseed has been stolen from the fallen guardian.
  • Goal: Track the thrixl to a poisoned stream.
  • Fight: The seed has been corrupted and planted at the source of the stream, poisoning the water. Kill thrixl and corrupted guardians.
  • Victory: Over time the forest heals, yay!

We'll be working on the first fight, where the heroes are scouting in the woods and find a shrine desecrated by some weird creatures. Here's a little sketch of how I think I want the map to look:



For this fight, I want the heroes to approach the shrine in the center, and then get ambushed by Thrixl from the two sides. We'll create three comics, an arriveAtSite to set the scene, a midMission event to announce the ambush, and a victory to wrap it up.

Step 2: Create a New (Basic) Fight

Run scratchpad, go to Site Lab.



This is where we'll be spending most of our time. Site Lab is all about previewing and editing combat maps. Find the New Fight button in the upper-right hand corner.



And press it! Fill it in something like this. Keep all the checkboxes checked! They'll save us some legwork.



Go for it.

So, that created a whole bunch of stuff, here's the breakdown:

Mission Map: This is the map itself, it's always created, and it defines the terrain, visuals, and where to sprinkle random scenery, as well as defining spawn points and stuff for the plot to use. You can view the map in SiteLab.
Scenario: This is how we will test drive the fight from the main menu, without having to embed it into a campaign. You can take a look in the Scenarios Editor (Content Editor, Control+4)
Plot: The plot controls how the fight is run, when things spawn, what the objectives are, and little things like defeat and victory. You can view it in the PlotView but normally we'll work on it in SiteLab where it's displayed right below the Mission Plan.
Arrive Event: This is a comic event that can be called from the campaign, that will kick off this fight. You can view it in the Comics tab or Effects tab.
Mid-Mission Event: If we want something to happen in the middle of the mission, like an ambush, a discovery, whatever, it's fun to have the heroes talk about it with a mid mission event. It's optional but we'll be using it here.
Victory Event: The comic that will be played on victory. We generally don't bother making defeat comics to be honest, but you can, if you want mission defeat to be a viable story path. Usually it makes more sense to end the game if the player wipes on a plot mission.

Step 3: Test it

This fight should actually work, just as it is, so let's take a look! To convince the game to show you the dev tools, you'll need to add a file called devMode.txt to your install folder, like this:



There doesn't have to be anything in the file, the name is all that matters. Now when you launch the game you should see an option called "New Battle." This is how we're gonna test our fight.



Find it in the list...



You should see the mid mission event play, and then the fight will start. The default roster is just one farmer, who probably definitely won't win this fight, so... When you're done let's head back to scratchpad and make some changes!

(Note - the Arrive event is not played when using the Battle menu, but it will be useful when we integrate our fight into the campaign later.)

Step 4: Edit the Map

Head back over to Site Lab, and use the Scenario dropdown in the upper right of the screen to find our map, like so:



Ok now this is the fun part! But Also I'm gonna be honest with you: this tool is maybe not what you were expecting.



So yeah. The way it works is, there's a grid of text that controls the individual tiles. Here's the (default) meanings of the characters:



Characters _not_ on this list can be used for spawn points or other purposes, as we'll see in a bit. Based on my sketch from earlier, I'm going to enter some data. I want the heroes to spawn at the bottom, so I'll put the '1' there, and I want the monsters to spawn in on the wings, so I'll put a '2' at each wing, like so:



(You can press New Seeds over on the right (Control+R) to see what it looks like and adjust as you go.)

Let's take a moment to fix the other problems with our fight - the monsters are the wrong group, and there's only one farmer on our side. Head over to the Scenarios tab (Control+4) and find our scenario in the second list:



We'll set the foe to Thrixl instead of Gorgons (Inhabitants -> 0 -> threat -> flavor), and we'll set calamities to 0 there as well.



Then expand the scenarioInfo at the top and define a roster for the scenario, like we did in part 1 for the campaign:



Save your changes (Control+S), and then head back to the Map view (Control+8) and refresh the map (New Seeds -> Control+R). If you don't save the scenario, the map view might not pick up your changes. Now you should see a warrior, hunter, and mystic, and thrixl spawning in the corners. Great!

Let's also set the biome to the forest, by setting the environment, like so:



Now, I want a focal point in the middle that they have to approach, and I also want to clear away some of the excess furniture, so I'll put some more marks on the map, like so:



The lowercase 'o' character just means "don't put scenery here," and you can find it in the legend to make sure. The 'ssss' is where we want the shrine to be, and the '3' is where we want the heroes to approach to investigate. You don't have to use 's' or '3', just check the legend, and use the same character in the next step, where we tell the map what to do with those locations.

First let's define the focal point. We'll create a piece of scenery where the ssss is, by adding a Map Detail. Click the New Detail button and choose MapDetail_SingleExactScenery.



for the location select New... TilesFromMap and set the mapInputCharacters to "s" (because we put some ssss on the map where we want the shrine to appear.) For the sceneryId, enter "shrineTreeTeal". (You can browse the sceneries in SceneryLab to learn what your other options are.) That should get your shrine spawning:



Hot! For my maps, I like to go a bit further, messing around with floor layers to create the impression of a path on the forest floor. You can see how this is done if you load some of the Ulstryx maps and poke around, there's a variety of different techniques available for map crafting. But for now let's get back to making it functional.

Step 5: Create an ambush

We want the mission to start out without any monsters, to give the player a chance to look around and get spooked out a bit. Then, once the player approaches the shrine, we want to play the midMission comic and spawn the monsters! To do that, we're going to add an objective to step in a certain region, and tell the plot to wait until that objective is complete, before playing the comic, etc..

Scroll down to the "Plot" section, and we'll add new Objective called Objective_EndTurnInRegion



Set the "region" to TilesFromMap and set the mapInputCharacters to "3" because we put some 3333 on the map for where we want the player to approach to investigate.

Now we need to add the objective, and we want to wait for it to complete before firing the event and spawning the monsters. We can do all of this by adding a new step, Step_WaitForObjectives. Add the "endTurnInRegion" objective to the list to wait for, and move the step upward so that it's just after Spawn Heroes. Make the mid mission event next, and the monster spawn after that, and leave the AddObjectives step last. Your plot should look like this:



Because steps operate in-order, the mission should go like this: set up, spawn the heroes, then wait for the heroes to approach the shrine. When they do, show a comic. Then spawn the monsters, and lastly, add an objective to kill them all. If the heroes succeed, play the victory event. Feel free to give it a spin in-game!

Step 6: write the comics

Let's hop over to to comics view and embellish our stories a bit. I'm going to move fast here because making comics isn't the point of this article, but you can read more about it here on the wiki.

I'll do a quick little arrive:



And a scene at the shrine:



And a victory scene:



One thing about the victory is, because any of the heroes might die in the fight, you might want to make most of the roles optional, or write a separate fallback event with fewer required roles, if you prefer. It shouldn't break the game if you don't, but it's nice to have stories that react to the actual in-game situation.

Step 7: hook it up

Now let's integrate our fight into the larger "Heart of the Forest" campaign we started in Part 1. In the Plots view (Control+0), find C_heartOfTheForest, and add a new Objective, Objective_AssaultJob.

Set the site to "otherSite", and set the arriveEvent to the arrive event we generated, something like "plot_hotf_1_1_shrine_arrive".

[24_assaultJob]

(If you're wondering where otherSite came from, check the MapConfig for chapter 0 to see how it's specified. You can specify whatever sites you want that way, and give them whatever roles you like.)

Then, create a Step_WaitForObjectives to wait for the Assault. Put it right before the start of chapter 1, like so:



Step 8: play your story!

Scout the tile, and assault it. You should see your Arrive event:



It worked!

So, now we've got a custom fight in our campaign, and honestly, stringing together custom fights is most of the work that goes into a villain (aside from writing comics, of course!) These are the core tools we use to build game content. Maybe next time we'll talk about building your own monster, or we can go into more depth on another topic if I get feedback in that direction. Thanks, and happy writing!
Wildermyth - Worldwalker Games


We call Wildermyth a "mythmaking RPG" because or philosophy is to put as much storytelling power into your hands as possible. Part of that is exposing our tools so that players can craft their own stories inside the game. Right now, we're in the middle of adding a rather large feature to the game, that we call "Villains." It's still a work in progress, but when it's complete, each time you start a new story, you'll select a "villain," which really just means a "main story" for that playthrough.

This means that on top of the regular procedural content, there will be a single story that connects the whole campaign together, that gives it meaning, that ties all the action together and punctuates it with stories and designed fights. (See this previous article for background on the what and why of Villains.)

Sound fun? I'm gonna teach you how to create your own "main story" for Wildermyth. If you can DM a game of Dungeons and Dragons, you can write your own Villain for Wildermyth.

That's our goal. The tools I'm going to show you today are under active development, but they work right now and they're only getting better. Some of this stuff is documented on the wiki, and some needs to be. If you decide to give this a shot, find me on Discord - I'll be thrilled to answer your questions and help however I can.

Ok let's get to it!



How To: Write a Villain in Wildermyth

You'll Need:
  • Wildermyth Beta - get it here
  • Java (64 bit) in order to run the dev tools
  • An idea for the story you want to tell!

Step 1: outline a story

Make a quick outline of what you want to happen in your story. We've learned that it's much easier if you have some idea of this upfront!

Wildermyth campaigns take place in a chapter structure, with intervals (years of peace) in between. Start by breaking your story down into a series of chapters, where each chapter has one (or two) big goal for the heroes. Then break it down further, event by event. Try to map out how many events you'll need to write.

For this series, I'll use a very simple 2-chapter story I'm calling "Heart of the Forest". Here's the outline:

Introduction
Intro Event: a rumor reaches town of strange beasts in the woods. Three friends decide to investigate.
Fight: You find a shrine, and you're attacked by Thrixl. You learn they've been disrupting shrines.
Chapter 1
Goal: Clear all hostile sites to unlock chapter one boss
Fight: A forest guardian is slain, but you kill the thrixl responsible.
Interval ~10 years pass
Omen: the woods are growing wilder and more angry, and the thrixl have returned in greater force. The heartseed has been stolen from the fallen guardian.
Chapter 2
Goal: Track the thrixl to a poisoned stream.
Fight: The seed has been corrupted and planted at the source of the stream, poisoning the water. Kill thrixl and corrupted guardians.
Victory: Over time the forest heals, yay!

This is a real simple story, but even so for this article we're not going to get into most of it. If you don't have a story in mind, just play along with this one! Once you've made a few comics you'll have a better understanding of what you can do with the medium.

Step 2: create a mod for your work to live in

Villains are intended to work as mods, so let's make a mod to put our files in. Then we can easily share it! Run scratchpad, go to the content Editor,



and click on the mods button in the upper-left corner.



The Mod Config dialog shows you which mods the Editor is loading.



In order to see your content, you need to create a mod and make sure it's selected. So, click New Mod and fill it in with your details.



That will create a folder inside your install directory, like this:



Everything for your villain should live inside here, so that you can give this folder to someone else and they can play. Make sure your mod is selected in the Mod Config dialog, and we should be ready to start!

Step 3: create the campaign

Head over to the Scenarios view by using the editor dropdown or pressing Control+4.



Press the New Campaign Button in the upper left corner.



And fill in the details.



This creates the campaign scenario. The scenario will be accessible from the main menu under New Story. Take a look at the Map Config -- this object defines how the world map is generated. You can mess around with it a bit. We also checked the box to create a villain plot, so one was made for us. We'll take a look at that later.

Step 4: write an event

The introduction to Heart of the Forest needs 3 events. The intro event sets the stage. Then the party scouts a tile and assaults it. The arrive event needs to establish the situation, and the victory event will wrap up the introduction. Writing events isn't the main focus of this post so I'm going to move a bit fast here, and just focus on the very first event.

From the Effects View (Control+2), press the New... button.

This opens up the new event dialog. We want a generic plot event, and go ahead and name it.

Alright. Press "Create" and take a look at what it made. This can be confusing, because there's a lot going on here. You might want to read up about creating comics on the wiki, but basically "targets" are individual entities that must be found in order of the event to work, and "outcomes" are what to do when the event happens.

I want the first intro event to have no choices, and just be the three friends deciding to go for a walk in the woods. So I'll delete the choiceTarget and create a new Description outcome, so it looks like this:



Then we can go over to Comics View (Control+1) to write the story.

I'll press New Story Role button to create a leader,



And then make 2 more story roles for greedy and bookish. Then I'll make a quick little intro story like this:



Ok... the comic tool is pretty sophisticated but I'm not going to get into it right now. You can check out the documentation and ask questions on discord. Please write a better story than this one ;-)

But first let's finish up here so we can make it show up in-game! Save all your work! (Control+S)

Step 5: define the plot

Over in Plots View (Control+0), you should be able to find your campaign plot. It will be called C_heartOfTheForest or something and should be listed under your mod. Click on it. There's nothing here yet, so let's add a New Step.



Pick StepC_BeginChapter. Set the chapter to Introduction.

Make one more step, this time a StepC_Event. Add our new plot event to the eventId list. (It's a list in case you need to define several fallback events.) You can search using the suggestions box, and when you have it, it should look like this:



Whoa, some error messages! That's super cool!

The error messages tell us that we need to inject roles in order for the event to work, so let's set that up. In the injectRoles list, click New Entry a couple times. We'll map from town to site, and from party to party. That should look like this:



What's going on here is that Plots keep track of a number of different roles, which can be defined or used in the steps and objectives. You can use those roles to fire events (here is some reference on how events use roles). There is validation to help with this, but the tooling and documentation is still a bit thin here, so for now let me just explain these particular roles.

The town roles is defined by the BeginChapter step, because there's a town added to the map in the introduction. Our event calls for a "site," so we map "town" to "site" and that's fine. The party role is from the roster that you'll roll when you start a new story....

Hmmm.... I forgot to set up the roster. Let's go back over to the scenario view, find our scenario, and expand the ScenarioInfo object. This object controls how the new game dialog shows the scenario. Let's define some roster slots. For simplicity I'll start with a greenhorn warrior, greenhorn hunter, and greenhorn mystic, like this:



Then I'll head back to Plots View and add StepC_Victory to the end of our plot.



This is a pretty simple plot. All it does is start the chapter, play a story, and then you win. Let's see if it works. Save your work (Control+S)!

Step 6: test it out

Load up the game and hit New Story.



Super cool! If you're worried about the unlocalized text, we'll get to that in a later article. Right now the tooling is a bit awkward for it, but we'll get it fixed up some day. Roll a party and start the game. This is what I see:



And then Victory, and the credits roll. Rad!

Step 7: add some gameplay

We'll go just a bit farther today, so that we have a game and not just a tech demo. Back in the content editor, in the Plots View, let's delete the StepC_Victory and instead start chapter 1. Then we'll add some objectives.



Objectives can show up to the player, and they're also how we update things over time, test victory/defeat conditions, etc.. Choose Objective_ClearAllHostileSites. This objective is completed when the player clears all hostile sites (that aren't locked.) You may also want Objective_CampaignDefeat (which ends the game if all the heroes die or all towns or destroyed.) Finally, Objective_CampaignUpkeep manages things like hook quests, RP, and burying fallen heroes.

Just defining an objective doesn't activate it though, that's done in a Step. Use Step_AddObjectives to activate all three objectives after the start of chapter 1. This will start checking the objectives after chapter one is begun. Then add a Step_WaitForObjectives and specify to wait for Objective_ClearAllHostileSites. This will pause the plot script until all objectives are complete or failed.

Finally, add the StepC_Victory back in. It should look like this:



Step 8: play your story

Save your work and check it out in-game. You should now have a story with an intro, three fights, and one wilderness event, that's backed up by all the regular procedural content. From here, you can add a victory event, embellish the story, or start exploring what else the plots can do!

Next time, we'll add an interval and maybe a custom fight! What would you like to see? Find me on Discord and let me know :-)

Wildermyth - Worldwalker Games
Hi guys, it's Annie, the Wildermyth artist! It's also summer. Which means in Texas (where Nate and I are), the heat is slowly getting heavier...



the kids are around more...



and development hours become scattered and precious.

But we're plugging along with some stuff that we're pretty excited about, and we hope other people will be too! Eventually. When we release it. Which—some of it will be soonish, some of it will be later this summer, and some of it might be a little closer to fall. But in lieu of actually being able to release the content, lemme post a check-in on how things are going!

Soonish
While Nate and I are a little more constrained by our summer hours, others on the team have become whirling game-design dervishes (shout-out to our man Patrick here)! We've got a lot of combat clarity work happening, which means things like:
  • New VFX for interfusion, hopefully making the process a lot more visually clear.
  • A rework to "stunting," which used to be hard to understand and not satisfying. We've got some base changes to it, and more coming later (see below).
  • Increasing visibility of threats & stuff on the overland map, so that you can become more accurately terrified of what your enemies are up to.
  • More VFX/audio for things like flanking and shredding, upping that crunchy satisfaction factor.
  • Remember that stat called "wield" on weapons? And you're like, "What is that anyway?" It's gonna be simpler and make more sense soon.
  • Better balancing when it comes to getting recruits in events.

Later This Summer:
I've been in the Photoshop mines, crafting a bunch of new weapons for y'all. Like, a bunch. Like, I realized after doing all the math that I signed up for over 200 weapons, and what the hell is wrong with me.


This is my life now.

What we want to accomplish with Weapon Rework™ is this:

When you take a weapon up a tier, it feels like the same weapon, but cooler, as opposed to a totally different weapon.

But! And! Also!

We want room for fun weapon variation too, and that's where New And Improved Enchantments™ come in. Instead of giving you buffs against very specific monsters, enchantments are going to give a weapon a different visual "flavor" and a special effect on stunt (not just damage, but exciting other things like splash damage, refunding action points, and temporary HPs). So those all needed tiers too (multiplication is a harsh mistress).

The end result is that you get to feel like your weapon is more a part of your hero, since it can "scale up" with them, and you can customize the look of it more. Hopefully this also means that weapons can follow Legacy heroes a bit more than they currently do.

We're also thinking of a different way that you acquire (dare I say the word... "unlock?") these enchantments as well. Maybe creating some interesting incentives during missions!

I don't want to ruin the element of surprise here though. That wouldn't be in the spirit of the thing.

A Bit Later Than That
I know we've talked about our villains/over-arcing campaign stories before, and we're still chipping away at them. They're by far the biggest feature we've added to the game in the last couple years, so we're trying to take the time to get them right while making the whole system robust enough to be easily edited later (including support for players to eventually craft their own villains and campaign stories!!). We'd like to release two or three campaigns together initially, with more to come for the different monster groups, but we'll see what makes sense as we get closer to fall.

Doug has finished the writing/comics for a gripping tale of Gorgon menace, and is currently working on a mind-bending foray into the world of Thrixl. And I'm working on the script for a Morthagi mystery of muddled morality, though that's going a bit slower from down in the Photoshop mines these days.

Nate's implementing this Gorgon menace, and he's got some sweet map editor tools in a prototype-ish state, which means we can have more individually designed boss battles! (That's something we've really been feeling the lack of lately.) A lot of his programming infrastructure is done now, and it's a matter of just plugging everything in and crafting those custom encounters—including some exciting stuff we've never tried before with the Overland Map that will put additional time pressure on the heroes.

That Seems Like a Lot to Keep in Mind
It kinda is! Our To-Do schedule boards are long. But it all happens one release at a time. We wish there were more hours in the day to do it all!

* * *

For those on Steam: You can get in on the Beta action over on itch.io, or if you prefer to wait for the Steam release later in the year, wishlist us for more updates as they come! We try to make them entertaining.
...