Skip to content

Instantly share code, notes, and snippets.

@Bastlifa
Bastlifa / TurnClock
Created June 3, 2017 16:08
Turnclock for roll20, with help (rewrite really) from Aaron
on("ready", function() {
"use strict";
on("chat:message", function (msg) {
var args;
if (msg.type === "api"){
args = msg.content.split(/\s+/);
if (args[0].match(/^!Clock/i)){
let time = parseInt(args[1],10)||0;
if(time){
let due = _.now()+time*1000,
@Bastlifa
Bastlifa / gist:291d456123179b335b408827a7fe24d4
Last active March 3, 2022 21:47
Threat and Momentum Report and Adjustment for Star Trek Adventures on Roll20. Simplified by Aaron.
/************************************************************************************************************
You will need to create a character named TMChar. Leave him empty, but in the attributes and abilities tab,
add two attributes: PoolThreat, and PoolMomentum. Set appropriate caps. Momentum caps at 6, I believe.
I chose 20 for a threat cap, but I'm not sure there is one. You can edit to remove the cap on threat,
or just set it very high on the sheet.
You will then need to make 5 macros, with the following bodies:
!TMReport
!TMThreatInc
!TMThreatDec
!TMMomentumInc
@Bastlifa
Bastlifa / DruidShift
Last active August 19, 2020 04:08
Druid Shift Script for Roll20 D&D 5E OGL Sheet
/**************************************** Druid Shift ****************************************
This is for the 5E OGL sheet in Roll20. It will probably not work with any others without
some modification. Also, I didn't do much in the way of error checking.
The GM must make character named Druid X, where X is the creature being shifted into.
It is suggested that the GM duplicate existing creatures, rename them, and assign to the druid
player. The images for the characters must be uploaded and assigned to the avatar of the druid
form characters. The easiest way I've found it to open the character sheet, edit, right click
the picture in the avatar, copy, paste into your image program, save, upload and put it back in.
Maybe you could just upload it back into the avatar directly. Anyways, this won't work if you
@Bastlifa
Bastlifa / gist:8a8ae5eae5696b4452e0af36a171bce3
Last active August 18, 2017 17:39
Roll20 API Script for Stress Levels
/****Stress Level Script for Matt C.****
Select a token. Click stress macro. The
macro will automatically roll some dice
and add the result to bar 3, up to 200.
If the threshold 100 is reached, a sound
will play. It will also post to chat for
any stress increase. Finally, there's a
stress reset.
You'll need to mod it to play sound.
@Bastlifa
Bastlifa / FireTrapScript
Last active November 7, 2017 01:43
Fire Trap Script for Roll20. Time update help from Aaron
//A little trap
on("ready", function() {
"use strict";
var i = 0;
const millisecondsPerSecond = 1000; // handy conversion
let timeForFullSpin = 15 * millisecondsPerSecond; // rotate fully in 15 seconds
@Bastlifa
Bastlifa / DLMoonTrack
Created August 29, 2017 16:11
Roll20 Script for Moon Tracking. Needs GM work to function.
/****************Dragonlance Moon Tracker*****************
A script to track the moon phases in a Dragonlance Game.
You'll need the accompanying images for the moon phases.
Put them in a table as specified. Create a character
named "MoonTracker", optionally, change the GM whisper
for Nuitari to whisper your black robed mages. Only they
can see Nuitari.
*********************************************************/
@Bastlifa
Bastlifa / TokenControl
Created September 14, 2017 02:47
Token control script for roll20
/* Token control script
make a macro called TokenControl,
the body should read:
!TokenControl @{target|token_id} @{selected|token_id}
To use this, select a token that you want to alter the control of
then click the macro from your bar
then target a token of a player. I think the same token could work.
This will, hopefully, alter who controlls the selected token.
If the targeted token's player had control, it will remove it
if it did not, it will add it. */
@Bastlifa
Bastlifa / rooftops.js
Last active October 8, 2017 17:47
rooftop removal and restore script for roll20. WIP, probably awful in lots of ways. Didn't test much.
// a script to remove rooftops if a player enters a building
on("ready", function() {
"use strict";
var allPlayerTokens = [];
var allRoofTokens = [];
function getPlayerTokens()
{
@Bastlifa
Bastlifa / rooftops.js
Last active July 23, 2023 08:22
Rooftops plus dynamic lighting
// a script to remove rooftops if a player enters a building
// move the player flag to the page you want to use this on
// draw your dynamic lighting lines on your building
// use a roof token, best if it's rotation is an integer multiple of 90 degrees (0, 90, 180, 270)
// name the roof token "roof", without the quotes. Preferable put it on map layer
// drag in player tokens. That is, tokens either assigned to players, or representing characters assigned to player
// type !RoofReady into chat, or better yet, use it from a macro. Alternatively, dragging the player flag to the page does this.
// should be good to go. Let me know if there are errors please :)
// other feature: !RoofDLOff and !RoofDLOn will now turn off or on the dynamic lighting interaction of the script. Default is 'on'.
// if you want default to be off, change the declaration on line 21 to read: var dlInteraction = false;
@Bastlifa
Bastlifa / SpeedReport
Created October 26, 2017 08:06
Roll20 Bar1_Value Change Report to token owners and GM. Reports bar1 as "speed" at user request
//Requested speed updating script. Should be pretty simple.
on("change:graphic:bar1_value", function(obj, prev) {
if (obj.get("controlledby") != "" || obj.get("represents"))
{
if (obj.get("represents"))
{
if(getObj('character', obj.get('represents')).get("controlledby"))
{
SpeedUpdateReport(obj, false);