Character Vault
Any Concept / Any System
Your System Come To Life
Roll20 for Android
Streamlined for your Tablet
Roll20 for iPad
Streamlined for your Tablet

Personal tools

API:Script Index

From Roll20 Wiki

Revision as of 23:08, 30 December 2014 by Brian (Talk | contribs)

Jump to: navigation, search


See the Talk page for how you can help!

Scripts By Category

General Purpose Scripts

Combat Scripts

Tokens - Conditions / Status / Health

Tokens - Movement

Lighting and Revealing

  • Light Switch -- Script for turning on and off lights with chat commands.
  • !reveal command -- Automatically moves tokens from the GM layer to objects layer, making them reveal to players.
  • Light is Closing In... -- A light reduction script for token movement.

Characters - Equipment





Game Specific Scripts

Edge of the Empire

DnD 4th Edition

Zombie Dice

Basic Fantasy Role Playing Game

HERO System

AD&D (Dungeons and Dragons 2e)


Star Wars Saga

Fantasy Craft 2nd Printing

API Docs

Roll20 API Getting Started


The Roll20 API provides a powerful way to customize and enhance your game. Write scripts that tell Roll20 what to do during gameplay (for instance, move a piece, add a status marker to a token, or even roll dice). It's simple and straightforward to get started, but the possibilities are endless.

The API is written using JavaScript, so a foundation in the language is extremely useful to becoming a script writer. However, almost any programming background can give you a leg up on learning to write Roll20 API scripts, and anyone can learn the skills necessary.

The links on the left will lead you to the API's documentation: what functions are available to you, and how to handle the objects returned from them. You also have access to the Underscore.js library.

API Cookbook

Main article: API:Cookbook

API Best Practices

Main article: API:Best Practices

Include namespaces for your functions and variables, to avoid potential name collisions with other authors.

Use easy, short, readable function and variable names. Names like x1, fe2, and xbqne are practically meaningless. Names like incrementorForMainLoopWhichSpansFromTenToTwenty are overly verbose.

Keep your code legible, especially if you need to ask for help on the forums. Additionally, please write your code in English.

Comments! At the very least, comments describing your configuration variables are helpful to everyone who installs your script.

Learn to love _. You have access to Underscore.js, a library with many useful utility functions.