API scripts created by the Roll20 community for use in Roll20
Clone or download
Pull request Compare This branch is 433 commits behind Roll20:master.
Permalink
Failed to load latest commit information.
13th Age Official Character Sheet Companion finish renaming Mar 22, 2016
5EBattleMaster Converted from submodule to folder Jul 18, 2017
5eShapedCompanion 10.0.1 release Apr 16, 2017
5th Edition OGL by Roll20 Companion Bugfix Feb 9, 2018
APIHeartBeat Updated 29 scripts: Updated APIHeartBeat to v0.4.2 Updated Ammo to v0… Mar 30, 2017
Aborea Update script.json Jan 24, 2017
AgoneDice API script to roll automatically fumble when an 1 is detected from an… May 5, 2017
Ammo Updated 29 scripts: Updated APIHeartBeat to v0.4.2 Updated Ammo to v0… Mar 30, 2017
AmmunitionTracker renaming package.json Mar 22, 2016
Animation renaming package.json Mar 22, 2016
AnnounceRoll renaming package.json Mar 22, 2016
AreasOfEffect Fixed bug in whispered messages from script. Sep 19, 2017
ArsMagica5eStressDie copying script files to version folder May 15, 2017
AutoFacing renaming package.json Mar 22, 2016
Base64 renaming package.json Mar 22, 2016
BashDice renaming package.json Mar 22, 2016
Bet Updated 29 scripts: Updated APIHeartBeat to v0.4.2 Updated Ammo to v0… Mar 30, 2017
BladesCompanion BladesCompanion 2.1 Jan 17, 2018
Blood-and-Honor renaming package.json Mar 22, 2016
Bloodied and Dead Status Markers Added ability for the bar that is read for status to be changed by th… Feb 11, 2018
BounceTokens Updated TurnMarker1 to v1.3.7 Sep 19, 2016
Bump Updated 1 Script Apr 7, 2017
COFantasy add new cofantasy version Feb 27, 2018
CarryTokens Created CarryTokens script. Aug 31, 2017
CashMaster fix cashmaster.js filename Feb 13, 2018
ChangeTokenImage ChangeTokenImage: Fixed issue with med images. Nov 1, 2017
CharUtils renaming package.json Mar 22, 2016
Charsheet CharacterSheet 1.2.1 Jun 14, 2017
ChatSetAttr ChatSetAttr 1.7.1 Nov 28, 2017
CleanAbilities Updated 29 scripts: Updated APIHeartBeat to v0.4.2 Updated Ammo to v0… Mar 30, 2017
Collision Detection Fix typo on variable name Oct 13, 2016
ColorEmote Updated 1 Script Dec 7, 2017
ColorNote Updated 29 scripts: Updated APIHeartBeat to v0.4.2 Updated Ammo to v0… Mar 30, 2017
ColoredChatDividers script to add colored dividers between chat messages May 28, 2017
CommandShell renaming package.json Mar 22, 2016
Conditions renaming package.json Mar 22, 2016
Critical Added Critical script (The brother script to Fumbler). Dec 17, 2016
CthulhuTechDice Updated 1 Script May 16, 2017
Custom FX Custom FX release Apr 14, 2016
CustomStatusMarkers Call getState in getEffectNamePrompt. Oct 2, 2017
Customizable-Roll-Listener Create script.json Nov 17, 2016
CypherSystemSheet renaming package.json Mar 22, 2016
DLEllipseDrawer Merge pull request #464 from tmatchen/master May 16, 2017
DarknessClosingIn renaming package.json Mar 22, 2016
DiceInTheVineyard renaming package.json Mar 22, 2016
DryErase Updated 29 scripts: Updated APIHeartBeat to v0.4.2 Updated Ammo to v0… Mar 30, 2017
DungeonUtils renaming package.json Mar 22, 2016
Dynamic Lighting Animation Add patreon links Apr 13, 2016
DynamicLightHelper Update script.json Jan 24, 2017
DynamicLightRecorder Updated ChangeTokenImage and DynamicLightRecorder to work together an… Jul 5, 2017
ESRO Add status_<status> support Apr 24, 2016
EX3Dice Update README.md Aug 14, 2017
EasyExperience Update script.json Feb 7, 2018
Elevation Added new Elevation script Mar 15, 2018
Emas Updated 29 scripts: Updated APIHeartBeat to v0.4.2 Updated Ammo to v0… Mar 30, 2017
Escalation renaming package.json Mar 22, 2016
Exalted Successes Add patreon links Apr 13, 2016
ExperienceTracker Update script.json May 5, 2016
ExtendedExpressions renaming package.json Mar 22, 2016
FFG-SWRPG-DestinyTracker Update FFG-SWRPG-DestinyTracker.js Jul 11, 2017
FFG-SWRPG-Dice-Roller moving dice folder and updating script.json Sep 29, 2016
Facing Updated 29 scripts: Updated APIHeartBeat to v0.4.2 Updated Ammo to v0… Mar 30, 2017
FalloutTerminal Implemented useroptions for specifying terminal screen colors. Nov 24, 2016
FateDots renaming package.json Mar 22, 2016
Flight Add instructions for importing & adding commands Aug 15, 2016
Flip Tokens Add patreon links Apr 13, 2016
Fumbler * Allow users to create their own fumble charts as handouts. Jan 11, 2017
GMCode renaming package.json Mar 22, 2016
GUMSHOE renaming package.json Mar 22, 2016
GeigerCounter Bug fixes. Jul 20, 2016
Genesys-RPG-Roller Merge branch 'master' of https://github.com/KnowledgeRhino/roll20-api… Jan 16, 2018
GroupCheck GroupCheck: Add description in script.json Oct 6, 2017
GroupInitiative Updated 3 Scripts Jan 11, 2018
HaloMythicUtilities renaming package.json Mar 22, 2016
HealthColors 1.5.1 update Apr 13, 2017
HiddenRolls renaming package.json Mar 22, 2016
Hourglass Fixing instructions in script.json Aug 16, 2017
HtmlBuilder Refactored 5E-OGL trap theme. Sep 18, 2016
ImperialCalendar Updated 29 scripts: Updated APIHeartBeat to v0.4.2 Updated Ammo to v0… Mar 30, 2017
InitiativeAssistant Updated 29 scripts: Updated APIHeartBeat to v0.4.2 Updated Ammo to v0… Mar 30, 2017
InitiativeTracker renaming package.json Mar 22, 2016
InspirationTracking Fix inpiration tracker script.json Oct 3, 2017
Interpreted sendChat Add patreon links Apr 13, 2016
InventoryManager renaming package.json Mar 22, 2016
IsGM Updated 29 scripts: Updated APIHeartBeat to v0.4.2 Updated Ammo to v0… Mar 30, 2017
IsGreater renaming package.json Mar 22, 2016
IsoMap Multiple changes Feb 7, 2017
Its A Trap Implemented set/add/remove ops for Trigger Paths. Feb 2, 2018
ItsATrap_theme_5E_Community Deprecating old 5E trap themes in favor of 5E Generic trap theme. Mar 15, 2017
ItsATrap_theme_5E_Generic Fixed custom stats for 5E trap theme. Jun 7, 2017
ItsATrap_theme_5E_OGL Deprecated 5E OGL and Shaped trap themes. Please use the generic 5E t… Apr 7, 2017
ItsATrap_theme_5E_Shaped Deprecated 5E OGL and Shaped trap themes. Please use the generic 5E t… Apr 7, 2017
ItsATrap_theme_DnD3.5 D&D 3.5 traps now support touch attacks. Nov 16, 2017
ItsATrap_theme_DnD4 Implemented D&D 4E trap theme. Feb 10, 2017
ItsATrap_theme_GammaWorld7 Updated Gamma World trap theme. Feb 10, 2017
ItsATrap_theme_Pathfinder Added support for the official Pathfinder sheet. Mar 7, 2018
ItsATrap_theme_PathfinderSimple Deprecated PathfinderSimple trap theme. Please use the generic Pathfi… Apr 7, 2017
ItsATrap_theme_RoleplayingIsMagic4 Updated Trap Theme README files. Feb 9, 2017
ItsATrap_theme_Starfinder Fixed bug with traps targeting Starship AC/TL. Dec 12, 2017
ItsATrap_theme_WoDClassic Implemented trap theme for World of Darkness (classic). May 29, 2017
KABOOM Merged v1.3 and v1.2 of KABOOM together Mar 21, 2017
Languages renaming package.json Mar 22, 2016
LightCrumb bugfix Mar 10, 2017
ManualAttribute renaming package.json Mar 22, 2016
MapChange Update MapChange.js Jun 22, 2016
MapLock Updated 29 scripts: Updated APIHeartBeat to v0.4.2 Updated Ammo to v0… Mar 30, 2017
MapSnap Updated 29 scripts: Updated APIHeartBeat to v0.4.2 Updated Ammo to v0… Mar 30, 2017
MarchingOrder Implemented Stop All button and default marching orders. Dec 11, 2017
Mark Updated 3 Scripts Jan 11, 2018
Marking Conditions Add patreon links Apr 13, 2016
Markov Markov - Added multiple list and whisper support Mar 10, 2017
MatrixMath Matrix Math API documentation. May 5, 2016
Measure Updated 29 scripts: Updated APIHeartBeat to v0.4.2 Updated Ammo to v0… Mar 30, 2017
MonsterHitDice Updated MonsterHitDice to v0.3.6 Aug 15, 2016
MotD Updated 1 Script Jul 17, 2017
MovePlayers renaming package.json Mar 22, 2016
MutantYearZero Updated 3 Scripts Apr 3, 2017
MythicGM MythicGM Fix version directory structure. Mar 9, 2017
No Token Rotation Add patreon links Apr 13, 2016
NoteLog Updated NoteLog to v0.1.2 Oct 16, 2016
Numenera_Natha Macro bug Feb 13, 2017
ObjectProperties renaming package.json Mar 22, 2016
Observer Updated 1 Script Jun 26, 2017
OneRollEngine Added optional argument to sort sets by Height. Aug 23, 2017
OneWayDynamicLighting If the path no longer exists for a wall that is still in the script's… May 15, 2017
PCPP Updated 29 scripts: Updated APIHeartBeat to v0.4.2 Updated Ammo to v0… Mar 30, 2017
Page Navigator Update script.json Feb 7, 2018
PageFX Implemented random spawn intervals for PageFX. May 16, 2017
PageSize renaming package.json Mar 22, 2016
PathMath Passive search also reveals trigger paths for traps now. Apr 14, 2017
PathSplitter Yell at the user if they don't have the paths selected for Pathsplitter. Feb 23, 2018
Pathfinder Companion Neceros Update script.json Feb 7, 2018
Pathfinder HeroLab Import finish renaming Mar 22, 2016
Pathfinder PCGen Import Initial commit of Pathfinder PCGen Import May 10, 2016
Pathfinder Skillbook finish renaming Mar 22, 2016
PortesMonstresTresors PMT character creation helper v1.4 Aug 16, 2016
Raise Count v2.6 corrects bugs reported Aug 1, 2016
Random Turnorder Add patreon links Apr 13, 2016
RandomDepth renaming package.json Mar 22, 2016
RandomEncounters RandomEncounters corrected Sep 18, 2016
RandomRotate renaming package.json Mar 22, 2016
RecursiveTable Updated 3 Scripts Jan 11, 2018
RoleplayingIsMagic_4E_Dice Include tooltips in trap skill checks rolls. May 1, 2016
Roll20-Audio-Master Fix to adj undefined Sep 19, 2017
RollStats renaming package.json Mar 22, 2016
RollableTableMacros Update previous versions May 23, 2017
Ryuutama Skill Check Totaler finish renaming Mar 22, 2016
Ryuutama Token Status Markers finish renaming Mar 22, 2016
SR-NextPass Update script.json Sep 12, 2017
SR-RollExtender Update SR-RollExtender.js Mar 28, 2017
Saga Machine Roller Adding companion script for the Against the Dark Yogi and Shadows Ove… Apr 24, 2016
ScaleOnAdd Updated 29 scripts: Updated APIHeartBeat to v0.4.2 Updated Ammo to v0… Mar 30, 2017
Search Updated 1 Script Jul 11, 2017
ShareVision Create ShareVision.js Apr 17, 2017
SizeLock renaming package.json Mar 22, 2016
Slide Tokens Add patreon links Apr 13, 2016
SpeedFactor renaming package.json Mar 22, 2016
SpellLevel5e renaming package.json Mar 22, 2016
SpinTokens renaming package.json Mar 22, 2016
StateBrowser renaming package.json Mar 22, 2016
StatusFX Fixed an undefined access bug concerning CustomStatusMarkers. Mar 15, 2017
Store Commands Add patreon links Apr 13, 2016
TableExport renaming package.json Mar 22, 2016
TableTokenSizer renaming package.json Mar 22, 2016
Tagmar Updated 29 scripts: Updated APIHeartBeat to v0.4.2 Updated Ammo to v0… Mar 30, 2017
TempHPAndStatus renaming package.json Mar 22, 2016
Terrain Generator Bump up version Jan 29, 2017
The Darkness is Closing In finish renaming Mar 22, 2016
Tile renaming package.json Mar 22, 2016
TimeTracker renaming package.json Mar 22, 2016
Token Collisions Updated Token Collisions readme. Jan 19, 2017
TokenLock Updated 29 scripts: Updated APIHeartBeat to v0.4.2 Updated Ammo to v0… Mar 30, 2017
TokenMod Updated 1 Script Dec 7, 2017
TokenNameNumber Updated 2 Scripts Jul 25, 2017
TokenPath renaming package.json Mar 22, 2016
Torch Updated 29 scripts: Updated APIHeartBeat to v0.4.2 Updated Ammo to v0… Mar 30, 2017
TotalMana renaming package.json Mar 22, 2016
TotalRolled for AGE TotalRolled for AGE 2.1 Aug 17, 2017
TotalRolled copying script files to version folder May 15, 2017
Track V20 Attributes Minor fixes Apr 26, 2017
TruePageCopy Update True Page Copy Apr 3, 2017
TurnClock moving script to version folder Jun 6, 2017
TurnLock renaming package.json Mar 22, 2016
TurnMarker1 limit checkForTokenMove to when the token is moved. Sep 27, 2017
Twins renaming package.json Mar 22, 2016
UsePower Updated 29 scripts: Updated APIHeartBeat to v0.4.2 Updated Ammo to v0… Mar 30, 2017
Vector Math Vector Math API documentation. May 5, 2016
WFRPDice renaming package.json Mar 22, 2016
Walls Updated 2 scripts: Nov 1, 2016
WeightedDice renaming package.json Mar 22, 2016
WelcomePackage Delay character creation so other scripts that initialize characters … Oct 1, 2017
WildDice Updated 29 scripts: Updated APIHeartBeat to v0.4.2 Updated Ammo to v0… Mar 30, 2017
WorldMapDiscovery WorldMap Discovery 1.1 Aug 30, 2016
Xeohelios' Fire Emblem Tabletop Companion fix fire emblem script.json Mar 13, 2018
ZombieDice renaming package.json Mar 22, 2016
_Example Script - Check for formatting details finish renaming Mar 22, 2016
cron renaming package.json Mar 22, 2016
earthdawn creating version folder May 23, 2017
exaltScript Added setup instructions to exaltScript Jan 25, 2018
levenshteinDistance Add patreon links Apr 13, 2016
namegen adding namegen to version folder Mar 29, 2017
psIsoFacing Multiple changes Feb 7, 2017
psIsoTileResizer Multiple Updates Feb 4, 2017
psIsoUtils Multiple changes Feb 7, 2017
psIsometricSuite minor changes Feb 14, 2017
splitArgs Add patreon links Apr 13, 2016
textTimer renaming package.json Mar 22, 2016
wfrp2e-api moving file to version folder May 8, 2017
LICENSE Updating date in LICENSE file May 3, 2016
README.md Update README.md Oct 22, 2017
approved.yaml update approved.yaml Mar 13, 2018

README.md

Roll20 API Scripts

This repository is the collection of all the community-contributed API scripts that are available for use on Roll20.

Contributing

If you want to help improve an existing API script, just clone this repository, make your changes, and submit a pull request. If you would like to contribute a new script for the community to use, just clone this repository and create a new folder with the name of the script which matches the name in your script.json file. Optionally you can add a help.txt file with any instructions you want to include as well as any other files you feel will be helpful to the end user. Once everything is in the new folder send a pull request. If you have any questions or aren't familiar with Github or git in general, see Beginner's Guide to GitHub on the wiki. If you still need help, feel free to drop us a line at team@roll20.net or post a question on the forums and we can help you get set up.

Creating a script.json File

When you are ready to submit your script for public use, create a script.json file in your script's folder (see the "_Example Script" folder in the root folder for an example). The file has the following fields:

  • name: The name of the API script as it will appear on Roll20
  • script: The name of the javascript file, which must remain uniform throughout versions
  • version: The current version number of the API script (e.g. 12.3)
  • previousversions: All previous versions of the script in an array format (e.g. ["0.5","0.1"])
  • description: A short explanation of the script and it's use that will appear along side the script on Roll20. It is important for this section to be filled out in detail, as it's the primary way users will get information about the purpose and use of the script. Included in the description section needs to be an example use or purpose, list and explanation of API Commands, and any other information necessary to operating the script.
  • authors: A simple string telling who contributed toward the script (e.g. Riley Dutton,Steve Koontz)
  • roll20userid: A simple string telling the Roll20 User ID's of the authors (e.g. 1 or 45672,145678). Used internally and won't be shown publicly on the site.
  • patreon: Place the URL for a Patreon campaign here, and it will appear under your script's description when selected via one-click. (e.g. "https://www.patreon.com/<name>")
  • tipeee: Place the URL for a Tipeee here, and it will appear under your script's description when selected via one-click. (e.g. "https://www.tipeee.com/<name>")
  • useroptions: An array of hashes that allow script authors to set pre-determined options for users to customize the functionality of the script. For more information check out the _Example folder's script.json for an example or see the Roll20 Wiki for more documentation.
  • dependencies: A list of other API scripts this script requires to function (e.g. My Kitchen)
  • modifies: A list of the common Roll20 objects and properties the script reads and writes to. Custom objects and properties inside a namespace don't need to be included. (e.g. bar1_value: write)
  • conflicts: A list of other API scripts this script is known to conflict with (e.g. Recipes)

PLEASE VERIFY YOUR SCRIPT.JSON IS VALID JSON at http://jsonlint.com before you submit it!

After we have reviewed your script and approve it, we will merge in your changes which will make them available to everyone. If we reject your script, we will comment on your Github commit and let you know what changes need to be made before it can be accepted.

Update the Wiki

After making any changes to a script or adding a new one, it is important to include those changes with the Roll20 wiki at (https://wiki.roll20.net/API:Script_Index).

If you're making updates to an existing script, please find that script from the list and update:

  • Author: Adding yourself as a contributor
  • Version: To reflect your update
  • Last Modified: To today's date
  • Changelog: To reflect the new version and the changes you've made
  • Optionally: Anything else such as the Description, Syntax, Installation and Configuration, or Script Use that may need altering or clarifying due to your changes.

If you're contributing a new script that has been accepted and merged in, please add a new page to the Wiki. The naming convention for scripts is "https://wiki.roll20.net/Script:Script_Name". Please format your listing from the existing style. You can find an example at (https://wiki.roll20.net/Script:Example).

After you've added the page, please go to the API Script Index (https://wiki.roll20.net/API:Script_Index) and add a link to your listing in the appropriate category.

Guidelines

Here are a few guidelines that you should follow when contributing API scripts for the community:

Be Clear and Concise

Community API scripts should be built from the ground up with the intention of sharing with others. The script's name should be a good indicator of what the script does and how it should be used. A script named "MkLtObjMvr-Dst" is likely to confuse, where a script named "Light Switch" is descriptive, clear, and does a good job of hinting at it's intended use.

Try to use short and descriptive function and variable names. Problematic names like "x1", "fe2", and "xbqne" are practically meaningless. Names like "incrementorForMainLoopWhichSpansFromTenToTwenty" are verbose. Aim for variable and function names that are meaningful but simple, such as "card_val" or "limitStr".

Make Your Script Accessible

Please take every effort to format your code in a traditional manner and present the script in a legible state. Leaving comments on the intended use of functions and code blocks can be very useful to future contributors.

Near the top of your script should be a comment providing the script's name, version number, the last time it was updated, and a short breakdown of the scripts intended use. In the breakdown should be included the script's description, syntax, and configuration options. It is important to add configurable elements near the top of the script in an easily demarcated area with comments on how those elements can or should be customized.

Limit Your Script's Footprint

Include namespaces for your functions and variables, to avoid potential conflicts with other authors. Placing your functions and variables inside a unique namespace to your script protects both it, the user, and other community scripts.

Do your best to limit what your script is manipulating at any given moment to achieve it's desired result. Add API "!" triggers to turn on and off your script's functionality. It is a safe practice to have your script disabled by default. Avoid functions that keep aggressive control and manipulation of objects whenever possible.

License

All of the code of the API scripts in this repository is released under the MIT license (see LICENSE file for details). If you contribute a new script or help improve an existing script, you agree that your contribution is released under the MIT License as well.