Running ACKS on Roll20 VTT with API scripts

Maybe you came here knowing what this is about. But in case you didn't:
Roll20 is a Virtual Tabletop. While it is not perfect, and in fact is fairly imperfect in a lot of ways, it is the best way for me personally, to run and play games on a regular basis. It is free, however subscribing gives certain perks that really make it a better platform over all. I'm not trying to sway you into using Roll20 or subscribing. One of the "pro" tier perks is access to the API. Utilizing those API scripts to run ACKS is what this thread is about. My hope is that I can save some people the same headaches I experienced when I got started. No guarantees though!
 
Before I dive into the API nitty gritty:
1) Avoid the first headache by not using Roll20 voice/video chat. I use Discord for voice when I run/play.
2) Get familiar with macros. Token Macros, the Macro Bar, putting them on character sheets. All the complicated dice rolling, api command strings, everything you might type into the chatbox can be accomplished with one click by setting up a macro. I'm gonna show off a few of my favorites as they apply to the API stuff I use, but I'm not gonna dig too deep into them. I'm happy to offer help in that regard too, but I'm gonna assume you have some familiarity with that stuff before you dig into the API. Follow-up Macro Thread Here.
3) Rt-click and open image in new tab to biggify the pictures with tiny text.
 
To provide a little bit of context, this is what I have in my macro bar for my ACKS game today:
macrobar
 
These are the scripts I use in my ACKS game today:
manage api
 

The scripts with the little globe bullet point are stock scripts directly pulled from the script library. All of these are pretty well documented if you select them, but I'll give a brief summary of what they do and how I use them.

 
splitArgs, HTML Builder, Vector Math, Path Math, and MatrixMath: All these are utility scripts required for some of the other ones. If you choose a Script Library script with a dependency, it will tell you and automatically load those ones too.
 
WelcomePackage: This is a really simple but useful script that will create a character sheet for a player when they join the game and don't already have one assigned to them. This way a new player can join and work on a character on their own time without having to wait for the GM to create and assign them one after the first time they join the game. It also sets up a handy macro that you can share with your players that will allow them to make a new sheet for themselves; useful if something unfortunate were to happen mid session for example.
 
MonsterHitDice: This one can be configured so that a token dropped on the tabletop rolls it's hitdice automatically instead of using static hitpoints. Keep the party guessing. Is this owlbear a runt, or it a paragon of owlbear-ery?
 
TokenLock: Use this to toggle preventing players from moving their tokens. Maybe a little heavy handed, but I don't want folks wandering off when I'm narrating or calling for certain rolls. Don't forget to unlock them like I do though.
 
TokenMod: This is a really powerful script that allows for modifying tokens via macros. For example, I have a macro that configures player tokens, one that configures monster tokens, and one that lets me apply light to a token to represent things like candles, torches, lanterns, etc. All with one or two clicks. And these work for all tokens you have selected for bulk execution.
tokenmod
 
Roll20AudioMaster: Provides chat commands to control the jukebox. I use this one for exactly what is described in this roll20 forum thread.
 
GroupInitiative: This is the big one. Configure it so that it knows what type of die to roll and what character attributes to modify with, and then you can multi select tokens, make the api call, and initiative is rolled for all of them and sorted in the tracker.
group initiative
 
Hexploration: This is a pretty powerful script, but only useful if you are interested in implementing a hexcrawl. Using it you can cover a map with hexes that obscure everything, and they will disapear when a player token moves over them. You can configure the colors, as well as whether to reveal one hex, or hexes within a certain distance when a player moves on them. You can also set points of interest that get announced when they are revealed. I set up a single "party" token that only I can control, and move that around for the players.
hexploration
 

The scripts without the globe bullet point are custom scripts that I added. Most of them are scripts that I found on the roll20 forums. Many of them I have tinkered with to suit my needs.

 
AutoBloodyAndKO: This one comes straight from the Roll20 API Examples Wiki. Reacts when a token drops to half or less hitpoints, or 0 or below. It marks the token with a red dot, and/or a red X, respectively.
 
acksTurns: This is something I cobbled together from the very awesome TurnManager script. I edited it so that it does not automatically cycle back to the top of initiative when the end is reached, instead stopping on a round counter and calling for declarations before initiative is rolled. It also highlights the token that is at the top of the list. I'm not gonna lie, this one is a little finicky, but makes running combats a lot easier for me. I keep a macro to manually update the token highlighting, as it does not always do it when it's supposed to. It also requires that you use GroupInitative. If people manually roll their initiatives, it sorts them after each roll, and often keeps bumping the round count and calling for declarations. Using GroupInitative keeps it behaving nicely. Sometimes when I end combat, a token is left highlighted and I have to manually remove the highlight. It's a small price to pay.
acks turns
 
Calendar: This is a really great calendar script that I think is available from the script library now. I just added support for the Mystara calendar which I am currently using in my game. I also repurposed the "down days" counter simply to count the time since the campaign started, so players know how long they have been adventuring in "in game time".
calendar
 
RecursiveTable / Table Export: I love these scripts. I think the only reason they aren't in the library is because they aren't super user friendly, but they save so much time. so much. I can create rollable tables in excel and then import them into Roll20. I can have rollable tables make calls to other rollable tables. With these I can set up wandering encounter and treasure rolls in Roll20 without using their terrible interface, and use them with the click of a button in game.
rollable tables
 
acksTips: This is a forum script I found and edited for use with ACKS/OSR specifically. On my campaign "splash page" is a text box that will change to display a different player tip every 30 seconds while a player is on the page. Generally just generic OSR advice, or acks rules reminders.
ackstips
 
 
CustomGMSheet: I may drop this one, it's kinda neat but I haven't had the need to use it in practice. Another forum script I customized to match my ACKS sheet, it will display a character summary in the chat for every player token selected. It shows me the character portrait, name, alignment, class, level, armor class, initiative bonus, a summary of their ability scores/mods, and available spell slots (if any).
gmsheet
 
acksMarket: A script I threw together for checking market availability of gear and hirelings. Definitely use macros to make these calls quick.
acks market
 
CustomColorEmote: Yet another modified forum script, this one just does fancy displays if you use the calls for in character speaking and emoting. The custom work wasn't done by me, I found someone elses modified version which did exactly what I wanted.
ribbit
 

Last Thing:

My ACKS sheet, if anyone is interested. (github link)

I've modified or configured some of these scripts to work in unison with this sheet.

Awesome! I might have to reconsider using Roll20. I tried to do what you have done here and found it overwhelming. I'm very impressed. Kudos.

This is amazing! I want to run ACKS using Roll20 with this.

@Davemania Thanks for putting this together.  Really a HUGE boost to get me into running on Roll20. Regarding your acksMarket script, I cannot seem to get it going. It complied okay in API.  What do I need to do in-game?

-G

 

 

[quote="geewaagh"]

@Davemania Thanks for putting this together.  Really a HUGE boost to get me into running on Roll20. Regarding your acksMarket script, I cannot seem to get it going. It complied okay in API.  What do I need to do in-game?

-G [/quote]

There are a couple different ways to make the API call, but I recommend using one of the four macros that I included (without context) in the readme with the script. The four macros are for equipment, henchmen, mercenaries, and specialists. In that order. Hope that helps!

@Davemania, thank you for putting together all these excellent scripts. I'm getting ready to run AX1 for my players on roll20 and having these scripts and macros handy will make life immensely easier for everyone playing. I never could get the MonsterHitDice script to work though, it just wasn't able to pull from the MBhitdice attribute that the hit dice formula was stored in, no matter how I configured the options. Oh well, tokenmod still gets the job done very nicely. 

[quote="CapnHat"]

@Davemania, thank you for putting together all these excellent scripts. I'm getting ready to run AX1 for my players on roll20 and having these scripts and macros handy will make life immensely easier for everyone playing. I never could get the MonsterHitDice script to work though, it just wasn't able to pull from the MBhitdice attribute that the hit dice formula was stored in, no matter how I configured the options. Oh well, tokenmod still gets the job done very nicely. 

[/quote]

Oh, that's on me. Apologies, and I've updated the readme portion of the github for my sheet. The correct attribute name is just "hitdice". The "MBhitdice" attribute is what is parsed from the statblock on the left side of the sheet, but "hitdice" is the editable field at the top right which is what you should point the MonsterHitDice script to.

Hope that makes things easier for you!

I’m currently in the process of making a package for running ACKS on Roll20.

I’ll make sure to post a link with updates.

Question right now, though: is there any set system for item or armor hitpoints? I’m currently making an armor interface and I was making graphics for durability. While there are effects that outright destroy weapons and armor. Are there mechanics for taking hits that damage them gradually?

[quote="Spinam"] Is there any set system for item or armor hitpoints? [/quote] No.

@Davemania/anyone else runnning ACKS in a virtual setting: How do you handle general dungeon exploration?

Specific questions:

  • Do you run all turn-by-turn movement on the dungeon map, or do you only show rooms or layout when players enquire and/or combat is happening?
  • Do players have to do any mapping, or do you let them look at all dungeon areas that they've already explored?

For in-person gaming, I like not needing to draw out every single room, hallway, and corridor; this seems to work out okay because back-and-forth questioning is easier. Video and/or voice chat always adds an element of friction in communication though, so I've found it better to have a consistent visualization representation to refer back to.

[quote="Yukiomo"]

@Davemania/anyone else runnning ACKS in a virtual setting: How do you handle general dungeon exploration?

Specific questions:

  • Do you run all turn-by-turn movement on the dungeon map, or do you only show rooms or layout when players enquire and/or combat is happening?
  • Do players have to do any mapping, or do you let them look at all dungeon areas that they've already explored?

For in-person gaming, I like not needing to draw out every single room, hallway, and corridor; this seems to work out okay because back-and-forth questioning is easier. Video and/or voice chat always adds an element of friction in communication though, so I've found it better to have a consistent visualization representation to refer back to.

[/quote]

 

So I have a suite of tools I use. I have a link to a site that generates dungeon maps for me, another that does house layouts, another that does world maps (linking to another that does detailed city maps). It's really easy to have the content generated so you don't have to waste time making a whole world from scratch. I even have one to generate NPCs with backstories and jobs and personalities and goals (easy to do off the cuff quests). So you can have full immersion without having to do too much homework and prep.  I'll dig through my bookmarks eventually and add them here.

 

For dungeon exploration, I use fog of war and whatever any party member has discovered is visible forever.  They have to physically move, the entire room isn't uncovered unless it passes through line of sight. I make them do this so I can also use traps (tokens). Of course if they're entering a huge, well-light area with clear sightlines the entire area will be visible. But I feel like ACKS has detailed mechanics for how far that would be, no? Good topic though! I'll make/find a script for mapping - creating a handout with updated fog of war - so players can reference areas without you having to change the page

[quote="GMJoe"]

 

Is there any set system for item or armor hitpoints?


-Spinam

No.

 

[/quote]

 

Then I'll just  destroy them based on spell/effects as described. Thanks for saving me the search time!

Did some of you smart html/java people check out FoundryVTT? It's basically a better Roll20/Maptool. 

An ACKS system sheet/module would be sick for that!

Pretty sure FoundryVTT hasn’t been released, yet. I was looking at it and the available demo a few weeks ago, as Roll20 has been a dog with the massive influx of COVID19 in-person refugees. FoundryVTT would presumably have better performance. I’m also particularly interested in the macro capabilities, as Roll20 is pretty limited without coding.