API scripts created by the Roll20 community for use in Roll20
JavaScript FreeMarker
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 44 commits ahead, 925 commits behind symposion:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
13th Age Official Character Sheet Companion finish renaming Mar 22, 2016
5eShapedScript 13.6.0 release Aug 13, 2018
5th Edition OGL by Roll20 Companion Update 5th Edition OGL by Roll20 Companion.js Sep 13, 2016
APIHeartBeat renaming package.json Mar 22, 2016
Ammo Updated Ammo to v0.3.3 Apr 16, 2016
AmmunitionTracker renaming package.json Mar 22, 2016
Animation renaming package.json Mar 22, 2016
AnnounceRoll renaming package.json Mar 22, 2016
AreasOfEffect More effect graphics. Oct 1, 2016
ArsMagica5eStressDie Added a special die roller for Ars Magica 5e, which uses a multiplica… May 27, 2016
AutoFacing renaming package.json Mar 22, 2016
Base64 renaming package.json Mar 22, 2016
BashDice renaming package.json Mar 22, 2016
Bet renaming package.json Mar 22, 2016
Blood-and-Honor renaming package.json Mar 22, 2016
Bloodied and Dead Status Markers finish renaming Mar 22, 2016
BounceTokens Updated TurnMarker1 to v1.3.7 Sep 19, 2016
Bump renaming package.json Mar 22, 2016
ChangeTokenImage renaming package.json Mar 22, 2016
CharUtils renaming package.json Mar 22, 2016
Charsheet Adding forgotten comma Apr 20, 2016
ChatSetAttr Resolve edge case in multiline handling Oct 4, 2016
CleanAbilities renaming package.json Mar 22, 2016
Collision Detection Merge remote-tracking branch 'refs/remotes/Roll20/master' Apr 26, 2016
ColorEmote renaming package.json Mar 22, 2016
ColorNote renaming package.json Mar 22, 2016
CommandShell renaming package.json Mar 22, 2016
Conditions renaming package.json Mar 22, 2016
CthulhuTechDice renaming package.json Mar 22, 2016
Custom FX Custom FX release Apr 14, 2016
CustomStatusMarkers Fixed a bug for whispering command menus to players with spaces or (G… Sep 14, 2016
CypherSystemSheet renaming package.json Mar 22, 2016
DarknessClosingIn renaming package.json Mar 22, 2016
DiceInTheVineyard renaming package.json Mar 22, 2016
DryErase renaming package.json Mar 22, 2016
DungeonUtils renaming package.json Mar 22, 2016
Dynamic Lighting Animation Add patreon links Apr 13, 2016
DynamicLightRecorder renaming package.json Mar 22, 2016
ESRO Add status_<status> support Apr 24, 2016
EasyExperience Merge pull request #355 from Kurohyou/patch-1 Oct 4, 2016
Emas renaming package.json Mar 22, 2016
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-Dice-Roller moving dice folder and updating script.json Sep 29, 2016
Facing renaming package.json Mar 22, 2016
FalloutTerminal Added section for activating terminals to the README. Aug 21, 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 Fumbler Sep 21, 2016
GMCode renaming package.json Mar 22, 2016
GUMSHOE renaming package.json Mar 22, 2016
GeigerCounter Bug fixes. Jul 20, 2016
GroupInitiative Updated GroupInitiative to v0.9.20 Sep 15, 2016
HaloMythicUtilities renaming package.json Mar 22, 2016
HiddenRolls renaming package.json Mar 22, 2016
HtmlBuilder Refactored 5E-OGL trap theme. Sep 18, 2016
InitiativeAssistant renaming package.json Mar 22, 2016
InitiativeTracker renaming package.json Mar 22, 2016
Interpreted sendChat Add patreon links Apr 13, 2016
InventoryManager renaming package.json Mar 22, 2016
IsGM renaming package.json Mar 22, 2016
IsGreater renaming package.json Mar 22, 2016
Its A Trap Updated readme. Oct 7, 2016
ItsATrap_theme_5E_OGL Refactored 5E-OGL trap theme. Sep 18, 2016
ItsATrap_theme_5E_Shaped Refactored 5E-Shaped trap theme. Sep 18, 2016
ItsATrap_theme_DnD3.5 Refactored DnD 3.5 trap theme. Sep 18, 2016
ItsATrap_theme_GammaWorld7 Fixed flavor text format for Gamma World trap theme. Added announcer … Sep 18, 2016
ItsATrap_theme_Pathfinder Refactored 5E-OGL trap theme. Sep 18, 2016
ItsATrap_theme_PathfinderSimple Created Pathfinder Simple Trap Theme. Sep 30, 2016
ItsATrap_theme_RoleplayingIsMagic4 RiM4 trap theme now uses HtmlBuilder. Sep 17, 2016
Languages renaming package.json Mar 22, 2016
ManualAttribute renaming package.json Mar 22, 2016
MapChange Update MapChange.js Jun 22, 2016
MapLock renaming package.json Mar 22, 2016
MapSnap renaming package.json Mar 22, 2016
MarchingOrder Removed old whisper name from help. Sep 14, 2016
Mark Updated 5 scripts. Jun 1, 2016
Marking Conditions Add patreon links Apr 13, 2016
Markov Simple name generator that uses markov chains. Sep 18, 2016
MatrixMath Matrix Math API documentation. May 5, 2016
Measure renaming package.json Mar 22, 2016
MonsterHitDice Updated MonsterHitDice to v0.3.6 Aug 15, 2016
MotD renaming package.json Mar 22, 2016
MovePlayers renaming package.json Mar 22, 2016
MutantYearZero renaming package.json Mar 22, 2016
No Token Rotation Add patreon links Apr 13, 2016
NoteLog renaming package.json Mar 22, 2016
Numenera_Natha renaming package.json Mar 22, 2016
ObjectProperties renaming package.json Mar 22, 2016
PCPP renaming package.json Mar 22, 2016
Page Navigator PageNavigator v1.43 Sep 20, 2016
PageFX Updated PageFX instructions. Sep 18, 2016
PageSize renaming package.json Mar 22, 2016
PathMath Path Math API documentation. May 5, 2016
PathSplitter PathSplitter now supports freehand paths. Apr 13, 2016
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 renaming package.json Mar 22, 2016
RoleplayingIsMagic_4E_Dice Include tooltips in trap skill checks rolls. May 1, 2016
RollStats renaming package.json Mar 22, 2016
Ryuutama Skill Check Totaler finish renaming Mar 22, 2016
Ryuutama Token Status Markers finish renaming Mar 22, 2016
Saga Machine Roller Adding companion script for the Against the Dark Yogi and Shadows Ove… Apr 24, 2016
ScaleOnAdd renaming package.json Mar 22, 2016
ShareVision Update script.json Jun 3, 2016
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 Added new version folder. Aug 19, 2016
Store Commands Add patreon links Apr 13, 2016
TableExport renaming package.json Mar 22, 2016
TableTokenSizer renaming package.json Mar 22, 2016
TempHPAndStatus renaming package.json Mar 22, 2016
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 Fixed a circle-circle collision math bug. Jul 19, 2016
TokenLock Updated TurnMarker1 to v1.3.7 Sep 19, 2016
TokenMod Fixed bug preventing globalconfig from working. Apr 8, 2016
TokenNameNumber renaming package.json Mar 22, 2016
TokenPath renaming package.json Mar 22, 2016
Torch Updated Torch to v0.8.8 Oct 10, 2016
TotalMana renaming package.json Mar 22, 2016
Track V20 Attributes finish renaming Mar 22, 2016
TurnLock renaming package.json Mar 22, 2016
TurnMarker1 Updated TurnMarker1 to v1.3.7 Sep 19, 2016
Twins renaming package.json Mar 22, 2016
UsePower renaming package.json Mar 22, 2016
Vector Math Vector Math API documentation. May 5, 2016
WFRPDice renaming package.json Mar 22, 2016
Walls renaming package.json Mar 22, 2016
WeightedDice renaming package.json Mar 22, 2016
WildDice renaming package.json Mar 22, 2016
WorldMapDiscovery WorldMap Discovery 1.1 Aug 30, 2016
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
levenshteinDistance Add patreon links Apr 13, 2016
splitArgs Add patreon links Apr 13, 2016
textTimer renaming package.json Mar 22, 2016
LICENSE Updating date in LICENSE file May 3, 2016
README.md Update README.md Mar 22, 2016
approved.yaml Update approved.yaml Oct 5, 2016

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.
  • 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.