Introducing SH:TD - Stonehearth Tower Defense

Steam: Steam Workshop :: SH:TD - Stonehearth Tower Defense
Github: GitHub - paulthegreat/tower_defense: SH:TD - a tower defense mod for Stonehearth

A total conversion cooperative tower defense mod in the style of the classic Warcraft 3 custom map Burbenog. Play by yourself or with up to 7 (!!! not advised !!!) other players: select a kingdom, which will start out with level 1 towers unlocked for you, wait for all other players to join, select their kingdoms, and get in the game, and then you can build your towers while watching the path previewers zoom around the ground and air paths. Click “Start the Game!” to start the first wave! It’s highly recommended to check out the Reference Window (the “?” menu icon), especially when you first start looking at the tooltips for all the towers. Tower attack priorities can be adjusted by selecting the tower and dragging/checking/unchecking filters.

Very clearly most of the graphical assets are placeholders: models and icons in particular, but also projectiles and effects. If you would like to contribute models, though the format isn’t completely solidified yet (currently it’s just a single model, but ideally the weapon models will be separate from the tower base model, and then the weapon model could turn to face the primary target), or any other assets, please let me know.

DISABLE ALL NON-BASE MODS, INCLUDING ACE! This is a total conversion mod and may not play well with mods designed to work with the normal game.


  • Check out the Reference Window (the “?” menu icon) for information on buffs and other iconography.
  • Mouse-over the weather icons in the upper right to see information on upcoming waves (or click on the “Wave” tracker to open the full list of waves). The most important counters you’ll need to have ready in time are towers that can attack Air and towers that can reveal invisible monsters.
  • Click on the “Enemies” tracker underneath the game state information (in the upper right) during a wave to open the Spawned Monsters view.
  • Donated gold goes to the common pool: any player can use resources from the common pool, and bounty (from killed monsters and wave end bonus) is awarded in equal shares to all players and the common pool. Wood cannot be donated.

Known Issues:

  • Saving and reloading works pretty well, as long as you’re not in the middle of a wave. If you’re in the middle of a wave, existing projectiles, “ground presences”, other attacks in progress, and monster AI will all get canceled, generally resulting in a small loss of effectiveness upon reload.
  • Tower statistics aren’t fully reliable, I have plans to improve those for better use balancing.
  • Speaking of balance, it may not be great.
  • Landmarks around map edges might be a little funky; they’re a very recent addition and will hopefully be improved soon.
  • Buff durations in tooltips are still in game time (“hours” / “minutes”) while everything else uses actual seconds.
  • Monsters each have one of a very few chicken names, regardless of species (besides the beetles, which have Beatles names).
  • Tower tooltips don’t account for dynamic adjustments (e.g., from buffs granted by other towers or by weather).
  • Some planned features, like tower attack accuracy (and monster avoidance) have not yet been implemented. (but only weather currently applies these effects)

Edit: You may have noticed in the screenshots that show UI, not only are the debug tools turned on, but there are several other icons in my “start menu” at the bottom. These are cheats that can be enabled by manually putting the following in your user_settings.json file within the "mods": { } brackets:

"tower_defense" : {
    "cheats_enabled" : true

or by running the following command in the debug tools Lua server console (and then press F5 to refresh the UI):

radiant.util.set_global_config('mods.tower_defense.cheats_enabled', true)

Wow, this is so polished and full-featured! Damage types, upgrades, multi-faction requirements, AOE visualization, custom UI, custom tooltips, weather, MP resource management. Just amazing! Died on Wave 17 on my first try. Gonna play some more. This is bringing back lots of fond memories!

Here’s my fiery kingdom being completely annihilated by a flock of chickens:

Anyone order ghost bacon?

Bizarro Beatles:

Random polish stuff:

  • The error for not having enough resources to upgrade a turret shows the localization string instead of the localized text.
  • Ants and ghost boars have chicken names.

ideally the weapon models will be separate from the tower base model, and then the weapon model could turn to face the primary target

I remember seeing code that achieves this through animation by setting a bone/joint to face a target. I don’t remember if it’s used in the base game turrets though.

P.S. The dream of the HOBA lives on!


Comeee ooooon Paul

Let’s make the HearthlingUnknown’s BATTLEGROUNDS


(a MOBA or RTS works too :smiley: )


holy shitballs paul. I GOTTA TRY THIS.


This is pretty amazing to see such a huge conversion on the game engine, offering a different experience. Tower Defence games are quite fun. Great work here, Paul!

1 Like

OMG. Like. What. :smiley: <3 <3 <3

P.S. The dream of the HOBA lives on!

You are killing me

In the best way


Update changes: buffs to fire grenade and lightning bolt damage, added proper names and descriptions for monsters, added separate armored ground monsters, adjusted waves, improved wave forecast ui and added wave reference window

The main thing is the new wave forecast/reference UI:

Edit: Also added instructions for enabling cheats to top post.



Update changes:

  • allow for specifying a main terrain landmark in world generation, allowed for changing elevation in paths (@BrunoSupremo), improved tower rendering to show path region intersections
  • tweaks to path regions, nerf to poison physical damage increase, improved some descriptions/text, improved displayed wave monster data
  • added region_renderer component and renderer for path rendering, elevated non-terrain-cutting paths in map generation


Is this the TRON patch?


Hah, it’s just a visualization for the path while the UI’s in build (hud) mode. Unfortunately it’s a lot harder (or at least I haven’t come up with a good idea) for how to render the direction of the path, and how to distinguish overlapping paths (and inflating/squishing the region causes the individual cubes to become separated), but at least now you can see the air monster path when building towers.

1 Like

Minor update: implemented avoidance and accuracy (only weather using them currently), buffed wound debuffs, added donate tooltip, added placeholder title screen image, added incompatible mods warning on title screen (based on a mod list in a json that can be mixed into)


Just fixed a critical bug I unwittingly introduced in the last patch. Also played through on normal (to make sure things were functional) with, in my opinion, the toughest kingdom for single-player (Earth), and barely beat it (cheats enabled, but I didn’t use them):

1 life remaining! That large amount of gold is just from the last 2-3 waves.


Minor update: added support for map-based multipliers; improved incompatible mods ui

I improved the incompatible mods UI on the title screen as follows: if there are potentially incompatible mods detected, not only are they listed, but there’s a button you can click to disable all of them and reload. If there are no incompatible mods detected, but you previously disabled some in this way, there will be a button to re-enable all of them and disable SH:TD. Finally, if there are no incompatible mods detected and you didn’t previously disable any with the previous button, there will be a button to simply disable SH:TD so you can go back to your regularly scheduled Stonehearth.

I thought about making a meta Total Conversion Mod Manager mod that could always be enabled and allow for simpler enabling/disabling of total conversion mods and potentially incompatible mods, and actually considered it before starting SH:TD, but since I haven’t heard of any other total conversion mods, it seemed like it wouldn’t be worth it.


Update in preparation for eventual changes to the Air kingdom: ground monsters are immune to vortex, while air monsters are immune to root and immobilize (to allow for, e.g., air tower attacking both air and ground but only immobilizing air), added “towers by buff” to reference window tooltips, changed sunburst tower, shrunk tower weapon tooltips

The big thing for players in this update is the “towers by buff” information in buff tooltips in the reference window. Now you can easily see how to inflict different ranks of magic armor piercing, wound, etc.


Small update: added escaped monster bounty, buffed fire plume tower, changed path rendering

The bounty you get from escaped monsters is 100% for easy, 50% for normal, and 0% for hard. This way, on non-hard difficulties, you don’t have as big of a snowball effect of not killing a few monsters (or a big boss!), and then getting less gold so you can’t build as many towers, getting much further behind.

The path rendering should hopefully be a little more useful now: not as Tron-like (which you may consider a negative), and separate color gradients for ground and air paths that should make direction clearer:

Edit: fixed a bug with the air path that I introduced in the above update. Also toned down the opacity of the paths, and added a pre-game time where you can watch “path previewers” run around the paths!


Update: changed / toned down / improved tower region rendering, including added render filters for all debuff classes that can individually or collectively be toggled on/off, are UI-mode-independent (i.e., don’t have to be in “build” mode to see them) because you can easily enable/disable with a toggle button, and even show little buff icons for the individual buffs applied by each tower (bordered with player color)!

Next big steps: replacing all the buff icons, primarily so that colors make sense; adding a “turbo mode” map designed to be played in ~20 minutes.


Update: added turbo mode map (not balance-tested), a small tower fix, path previewers between waves, removed a portal effect, landmark generation tweaks

Turbo Mode currently has 40 waves (instead of the 60 max of hard difficulty), but I might trim that down to 30. Many of the waves of Turbo Mode are the same as the regular game waves, but a number of them have been adjusted to try to provide a better flow of challenges.


Update: basic balance on turbo mode (including reducing it to 30 waves), added spawned/summoned monsters to wave info, various fixes:

  • fixed beetles (after the first) only spawning 1 ant
  • adjusted tree scale for clipping reasons
  • removed path render regions
  • fixed path previewers not getting destroyed on wave start
1 Like

cool project, have u updated your tower defense since 2019? and what soft u have been used, since i’m trying to look how to make a tower defense game on my own and collecting all stuff for that