Hey everyone! This post is mostly a thank you-post to all the wonderful people in this community who create and share scripts, character sheets or otherwise help others do the same!
For the last year or so I've been wanting to create a game that stretches the very limits of what Roll20 could achieve, and with the help of the character sheet subforum I was able to create my first Tales of Battle character sheet for a custom ruleset I am currently developing.
It includes a bunch of really neat automation features like automatically tracking whenever someone rolls a natural 19 or 20 and giving out so-called Investment Points, which can be used to level up the stat. And a bunch of other cool stuff by sending commands to the PowerCards API, among several other scripts.
Next up I wanted to run a really technical campaign set in a fantasy WW2-esque setting, with the goal of having each member of the group play essentially their own game but influenced by the decisions and teamwork of the other players. This was definitely a much larger task than creating the character sheet, but again, thanks to the community I was able to have my first combat session last week and it was glorious to see just how much automation I was able to accomplish using all the scripts I had incorporated!
To give you an idea of what I was able to do, I'll go over the roles of the crew and most of the scripts that were used:
The Commander role
has a large area of vision around the tank.
They can use buffs to help another member of the tank focus on a task. This was mostly done by using the ChatSetAttr script and having various macros to modify attributes on the other character's sheets.
They also have access to an overview map which represents the battle map and various areas around it. Using this map the Commander might see that there's an enemy tank destroyer coming up from the east, and they can take a defensive position and lure it out, etc. This was accomplished using the MapChange script. This way the player could simply shift between the battle map and the overview map without me needing to do anything.
Has a limited field of vision and needs to listen to the other roles to get an idea of where to drive.
Movement is handled entirely through macros thanks to a new addition to Aaron's TokenMod ! Basically they just click their token and select one of the many pre-programmed movement paths in order to move. The faster the tank moves, the more penalties the Gunner will get to their shooting.
Has extreme far line of sight, but a limited cone of vision. They have the ability to zoom in and out (thanks again to tokenmod) but need the Radio Operator and the commander to tell them the direction of the threat.
Takes one turn to reload, so can only fire once every two rounds. This is tracked using the OnMyTurn script.
Can only rotate the turret once per turn (the turret follows the tank as a separate token, thanks to the TokenCondition script. Hopefully in the future the turret will be able rotate when the tank rotates as well to further infuriate the players, but also help them rotate faster :P)
The Radio Operator
They have a good amount of range of vision and importantly can see all friendly units on the battle map, so they can technically see enemies that the others cannot.
Gets radiomessages from a rollable table. I'm using a modified version of Real Rollable Tables to get a slight bit of variation in which messages gets sent at what time.
The Radio Officer also has access to the same Overview map as the commander, and each message they get correspond to something happening on the map. For instance "Tank Destroyer spotted at B6!" means the Radio Officer should find a Tank Destroyer marker and put it on B6 on the Overview map. The Commander can then see this and formulate a plan with this new information.
I was considering using the Haunting script to make this be fully automatic, and I may still do something like that, but in tests it seemed a bit too fast and hard to control so for now I am doing it manually. Still a really cool script!
And that's basically how the system works, and the truly amazing part is that this is all 100% controlled by the scripts and the players. Aside from the NPC movements, everything the crew does is controlled by a macro that they can press. Once the players got used to it I basically didn't have to butt in at all, and the players sorta took their turns without having to consult me on anything aside from basic rules questions. It was an incredibly eye-opening experience seeing combat flow without any effort (aside from plenty of in-character discussions about how to proceed, which is exactly what you want to see in such a system!)
In addition, I've been using the scripts for plenty of other things, most notably Powercards which basically powers everything in this entire system, but also scripts like OnMyTurn to reset which Commander buff is active, and reset the various tracked elements that need to be reset each turn. I'm also heavily using CombatMaster to track the turn timer, any conditions, etc.
So yeah, this was basically just a shoutout to all the lovely people who have helped me out in creating this really cool system and maybe as inspiration to future GMs to try and implement more of the awesome API scripts that are out there! It really changes the way you play!
And if anyone have any specific questions about how I achieved something, feel free to ask!