Illydth's Spell States Drop-In (issSpellStates)

These are tools and utilities that make it easier to run games. This includes Lib: macro tokens dropped into MapTool to manage the game, a conversion file for CharacterTool to allow use in MapTool, or just about anything else you can think of -- except graphics with macros and anything specific to a particular campaign framework. Those are already covered by the Tilesets subforum and the Links and External Resources forum.

Moderators: dorpond, trevor, Azhrei, giliath, Gamerdude, jay, Mr.Ice

Post Reply
Illydth
Kobold
Posts: 3
Joined: Sat Jun 20, 2020 4:21 pm

Illydth's Spell States Drop-In (issSpellStates)

Post by Illydth »

Illydth's Spell States (issSpellStates) Drop In for D&D 5e & Other Systems

Introduction
This is a "spell states" management system for D&D 5e...and by extension any RPG that has abilities that set effects on PCs or NPCs.

The Problem...

The problem with 5e (though not unique to 5e...it's a problem with Pathfinder, GURPS, or, indeed, most tabletop systems) is that 5th edition has almost 500 spells at the time this was developed, and a significant quantity of them set some kind of state on a character, from Mage Armor and Stoneskin to Hex and Banishment. All of these states are important for the DM and players to keep track of. Unfortunately, even with a 3x3 grid and other tools that MapTool has to manage "states" a sufficiently powerful and prepared spell-caster a couple of rounds into combat will have more "states" on them than MapTool is currently capable of displaying on the character token.

Along with this, while there are hundreds of spell states that a character has access to, any one campaign will only tend to use a small handful of them. For instance, a campaign with a Warlock as a player character will almost definitely use Hex, a campaign without a Warlock might not. A camping with a Ranger in it will likely use Hunter's Mark, without a Ranger? Almost definitely not.

Just implementing the default major conditions and states creates somewhere in the neighborhood of 40+ campaign states and that takes into account almost no spells. That means 40+ macros on the Campaign window to set those states, and 40+ icons that could appear in places on the token identifying things. "There's an icon of a guy with an open mouth, is that feared or silenced?...And that blue dot in the right corner, is that concentration or inspiration? darn..."

How do we manage this much information on a small token? They say a picture is worth a thousand words, but we don't need 9000 words to describe the effects on a token, we simply need 9 words stored in some logical and reasonable format for easy retrieval...

The Answer...

Illydth's Spell States (you knew this was going to be the answer, of course it was). I've gone through every spell in 5th Edition (all officially published materials) and created a table of spells usable both for lookup and (more importantly) for identifying spells that set some kind of condition on a PC or NPC during the game. These spells have been broken down into two types: buffs and debuffs, or spells that set a beneficial effect and spells that set a detrimental effect on a PC or NPC.

I've then created a system whereby the DM can quickly and efficiently add spell states to the system (through a tool I call the "DM States Toolbox") and then use that toolbox to track states on tokens. Using a small set of generic icons (such as Buff, Debuff, Disabled, Immunity, Resistance, etc.) we set a visual state that represents a warning to players and the DM that there's an effect set on the token, and then a way to "get info" on that token so that all of the states can be displayed and investigated (if needed). For small combats or small numbers of buffs, just the general
"buff", "debuff", "disabled", etc. states are useful for generically tracking effects. However the power in the system is that beyond these general states (which ARE campaign states), we can store an unlimited number of other effects on the token that can then be displayed through an interface which can then also be linked back to the original spell.

Finally, everything is driven by an easily modified table in MapTool. Everything is stored in JSON Format which can be easily modified by any DM. Did I miss something? Have a homebrew ability or spell that isn't in the Spells table? Is a spell listed as detrimental when it should be listed as beneficial? Fixing it is as easy as modifying a piece of data in a JSON object (which is MUCH easier than it sounds since JSON is just a fancy text format).

The system is ultimately extendable to any tabletop RPG that sets and removes effects on a token because it has been designed to be generic. Replace the 5e version of the "Spells" table with a Pathfinder 2e version of that table and the system is now tuned for Pathfinder. Not playing D&D or D20? Modify the table for your game's spells and abilities and it should STILL work.

There's many more reasons to use the system, all listed in the user manual. Need more convincing? Go there and check it out!

Features:
System to lookup spells, create a toolbox of spell states, and apply spell states to tokens (PC and NPC both)
issSpellStates_Main.jpg
issSpellStates_Main.jpg (2.01 MiB) Viewed 4915 times

Updated campaign states to identify beneficial/detrimental states by color (all states are now green/red to identify at a glance the nature of the effect).
campaign_states.jpg
campaign_states.jpg (151.3 KiB) Viewed 4915 times

Need to know what's happening with a token? Click it and inspect it through a macro!
get_effects.jpg
get_effects.jpg (44.87 KiB) Viewed 4915 times


Download/Getting the System
The system is maintained at my GitHub specific to issSpellStates: The README.md file at the bottom of the GitHub page should give any information needed to both get this drop in running and get it useful. Along with that, the User Manual (just click the User_Manual.txt file in the code area at the top) should be fully featured documentation with everything you could want to know for installation, use and even extending it to your system. Finally the "Using_issSpellStates_by_Example.txt" file will walk you through using issSpellStates, taking you through all of the functionality step-by-step using the default campaign I have setup with this drop in. If you have ANY questions on how to use the system, take the time to walk through the Using by example document and it will likely answer your questions!


Installation
Installing issSpellStates is not complicated, but it is involved. The User_Manual.txt has a full procedure for installing both into your own campaign file as well as starting with one of my campaign files with other things provided. Almost all testing/files provided are based around either a base campaign or Simple5e, but there's nothing here that shouldn't make it usable within Rod's framework, the Phandalin Framework or any other 5e Framework, or indeed any other system's framework with a modification to the spells table.

That said, here's the short instructions for installing into your own campaign file:

Open your Campaign File

Edit / Modify Your Campaign Properties:

* Edit -> Campaign Properties
* Create a New Token Property Type Called: "issSpellStates"
* Add the following to the issSpellStates Campaign Properties:

Code: Select all

SpellList
libversion
optRefSpellDur
optAddCStateOnApply
optRemCStateOnRemove
* Add the following to the Campaign Properties for Monsters and PC Tokens (Basic Properties).

Code: Select all

____ILLYDTH_TOKEN_SPELLSTATES_PROPERTIES____
issSpellBuffs
issSpellDebuffs
Deal with the Token Files:
* Copy the 3 Tokens to the library map of your campaign.

Code: Select all

Lib_SpellStates.rptok
image_GreenBubbleCheck.rptok
image_RedBubbleX.rptok
[The Image Files are Optional, if you do not add them to your campaign, you will get a "Y" or "N" (text) in place of
the green Check Mark or Red X. This looks uglier, but is fully functional if you don't want the added Image Tokens.]

Open the Selection, GM and Campaign Windows.
* Click on "Lib:issSpellStates" in your Library map.
* Copy the "DM States Toolbox" macro to your GM Window.
* Copy the "Lookup Spell Info" macro to your Campaign Window.
* Copy the "States Management Form" macro to your GM Window (can go to Campaign if players are setting states)
* Copy the "Get Token Effects" macro to your Campaign Window.

Import the Spells Table
* Open the Tables Window.
* In the Archive is a Directory for the Supported Frameworks (as of the initial Release, just D&D 5th Edition)
* Open the directory for a supported RPG platform.
* Import the "issSpellStates.mttable" file from that RPG Directory into your Campaign Tables.
* Make Sure this table is called "issSpellStates" (regardless of which RPG platform, the table neeeds to be called
issSpellStates for things to work).

Import the Campaign Macros/States (Optional)
* To use the Consolidated / Cohesive icons and coloration for 5e campaign states, import the Campaign States to
your campaign.
* Rename any Campaign Groups you have called:
2. Conditions
3. Exhaustion
4. Cover
5. Other States
* Open your Campaign Macros Window
* Right Click and Import Macro Group
* Open the issSpellStates_Campaign_State_Macros Maptool Campaign Macro Set for the RPG Platform of Choice.
* Macro Buttons for campaign states should be imported into the Campaign Macros Section.

Deal With Campaign States (If Needed) - See the "Campaign States" Section of the User_Manual.txt file to set up states for your campaign.

Use

The best method for figuring out how to use this software is to open the "Using_issSpellStates_by_Example.txt" file and walk through it top to bottom.

Reporting Bugs and Receiving Support
GENERALLY SPEAKING i'm paying more attention to my GitHub issues list than responses to this forum post. If you do find a bug or would like to make a suggestion for update/addition please hit me up there and file an issue. I'm also generally pretty active on the MapTool discord, feel free to hit me there is you have questions.

All this said, this drop-in is is mostly being made for my use in my campaign, large scale changes or requests for significant functionality updates (such as "Your spell lookup should allow damage rolls and application of damage to tokens!") are likely to be denied. Don't hesitate to make the request, good ideas are still good ideas, but i'm not looking to massively extend the functionality of this drop-in beyond what it's doing now.

Don't let that discourage you from filing an issue, however, i'm happy to see your good ideas and bug fix requests!

Finally: Contributing to the Project
Like this and want to contribute? There's a couple easy ways to give back to this drop-in for others.
  • Update the Documentation
Extend the Documentation, Fix Spelling/Other Errors and create new docs. If you figured something out with this product that you didn't know
before, it's likely that someone else wants to know it also, don't hesitate to create new docs!
  • Create a table for other systems!
Specifically Patfhinder (1e/2e/3rd. Edition), and 4th Edition which should be a pretty easy translation. Many of the spells already in 5e are
the same spells as are in 4e or 3.5/PF, extending this for one of those systems shouldn't be too onerous. That said, there's nothing stopping
this being used for any other system out there either, everything in the base code should be generic enough to handle any spell or ability built
using the JSON format of the 5e spells.

Thanks and Acknowledgements
Quickly acknowledging some of the hard work that's gone into this from folks other than myself. See the "Acknowledgements" section of the User_Manual for the full Acknowledgements:
  • Melek - For consultation, and the Simple5e framework which got me into macro coding to begin with.
  • rogue_ronan - All of the Icons are Rogue's creation.
  • KellyENDER - The original spell table and the automated creation of such is KellyENDER's original work, major time savings! Also, much of the "Spell Lookup" included is theirs as well.
  • Jason_c_o: Much of the layout on the Spells Lookup section was contributed by Jason.
  • The MapTools Discord: Finally, I would be remiss if I didn't mention all of the users on the MapTool Discord where multiple of them have been involved in answering my often inane and silly questions with regards to the creation of this Drop-In.
A Massive THANK YOU to everyone who helped in any small way with this project.

Post Reply

Return to “Drop-In Macro Resources”