Skip to content

Instantly share code, notes, and snippets.

@alkemann
Last active January 9, 2022 22:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save alkemann/a1fed91cad90839205db07a936288be1 to your computer and use it in GitHub Desktop.
Save alkemann/a1fed91cad90839205db07a936288be1 to your computer and use it in GitHub Desktop.
D100 Dungeon macros for Roll20.net

D100 macros

This strategy assumes that you have created (at least) two character sheets. You should make sure to make a "custom" character sheet for this game. You can use HTML and CSS to style it if you prefer, but it is not needed since we have the character sheet in the Google sheet ( https://docs.google.com/spreadsheets/d/1ty892ds1VMRs2l5GwFIiWR1_Ov8S5YeYdzm-bYu_e24/edit?usp=sharing ).

After having made two sheets, name one Player and the other Monster. In the sheet under the Attributes and abilities tab you can click the Add button to add any number of custom attributes. You must add all the ones that are mentioned in macros you will use, but it is perfectly ok for them to have no values (will be functionally the same as 0).

The macros look up values from both Player and Monster using a syntax like this @{ then character name then | followed by the attribute to look up and ends with }. So to look up the strength score (str) on the player, it will use @{Player|str}.

For each of the macros, go to the macro tab, click add, name the macro something short and descriptive, paste in the macro text. Save and check the "In bar" for it. Then the macro is available as a button at bottom of screen.

In addition to the macros, 1 "Roll tables" are used. You could even add all the tables here, but for my purpose I just added 2 versions of the Hit location die. One to display effect to the player (so they can manually apply damage, reduced by armor or know to make a belt check) and another with just the hit location damage for the monster (since only the hit location damage adjustment is needed). You can find the tables at the end. If you have the import option (may be pro account required) json versions is also added at the end.

rolls a single D10, useful often, like Belt checks

1d10 : [[1d10]]

rolls a single D100, useful often. like next Map

1d100 : [[1d100]]

Can the player stop the monster from escaping?

  • Monster|mob -- Display name, the character sheet has to be called Monster
  • Player|str -- strength score of player
  • Player|escape -- escape skill adjustment of player
&{template:default} {{name=@{Monster|mob} tries to escape!}}{{Blocked if= [[1d100]] <= [[@{Player|str}-10+@{Player|escape}]] }}

Roll an encounter for this Dungeon, adjusted by Encounter levels

  • Player|enc_mod -- Encounter modifier for the quest
&{template:default} {{name=Something attacks!}}{{Encounter roll=[[1d100+@{Player|enc_mod}]] }}

Fear check

  • Player|int -- Player intelligence
  • Player|bravery -- Player bravery skill
&{template:default} {{name=Afraid?}} {{Brave if=[[1d100]] <= [[@{Player|int}-10+@{Player|bravery}]] }} {{Failure=Forfeit next attack action}}

Look for treasure

This will pop up a dialog window that asks you for the color of the room. This is used to modify the 1d100.

Finding treasure in ?{Room type|
   Yellow, yellow? [[1d100]]|
   Red, red? [[1d100+10]]|
   Green, green? [[1d100+5]]|
   Blue, blue? [[1d100+20]]}

Monster reaction (combat)

Monster|mob -- name

&{template:default} {{name=@{Monster|mob} reacts!}} {{Action= [[1t[Monster-Reactions] ]] }}

Monster attack and damage rolls

Monster|mob -- name Monster|av -- attack value Monster|pack_size -- pack size (put in total - 1), this can be nice to bind to one of the numbers on the token Monster|dmg -- damage adjustment of mob

&{template:default} {{name=@{Monster|mob} attacks!}} {{attack DC= [[@{Monster|av} + 5 * @{Monster|pack_size}]]}} {{attack roll=[[1d100]] }} {{damage=[[1d6 + @{Monster|dmg}]] on [[ 1t[Hit-Location] ]]}}

Player attack

Player|str - strength Player|damage -- player damage adjustment Monster|str_debuff -- monster strength debuff Monster|def -- monster defence value, reduces damage

&{template:default} {{name=Player attacks!}} {{attack DC= [[@{Player|str} - @{Monster|str_debuff}]]}}{{attack roll =[[1d100]]}} {{damage=[[1d6! + @{Player|damage} + 1t[HitLocDmg] - @{Monster|def} ]]}}

Is Player feared?

Player|int Player|aware -- Aware skill adjustment

&{template:default} {{name=Surprise?}} {{Alert if=[[1d100]] <= [[@{Player|int}-10+@{Player|aware}]] }} {{Failure=Monsters gets a free attack before combat}}

Manually create roll tables

If you can import roll tables, see next section. Otherwise create them manually by clicking add, name them EXACTLY as listed and add the values individually. The tables must be named exactly correct.

HitLocDmg

Name: HitLocDmg

Add all of these values, 3,2,1,0,-1. Leave the weight value at 1 for the first three and set it as 5 for the 0 value (because there are 5 possible ways it can land a zero value) and 2 for the -1 value.

Then repeat this for the second version.

Hit-Location

Name: Hit-Location

Add each of the hit locations: Head (+3),Back (+2),Torso (+1),Arms,Hands,Main Hand,Off Hand,Waist (BC),Legs (-1),Feet (-1)

Monster-Reactions

Name: Monster-Reactions

Add each of these values :Monster will Escape,Monster damaged last Round it will Escape,Monster has less than half HP it will escape,Monster will Attack as normal",Monster has less than 1/2 its HP gains AV+5,Monster has less than 1/2 its HP gains AV+10

Importable roll tables

Ignore this section and create them manually if you dont have the import.

HitLocDmg

{
    "name": "HitLocDmg",
    "showplayers": true,
    "id": "-M78mFkhKNyWfao_Z8ro",
    "items": {
        "-M78mILjLo_kZTl-J5_2": {
            "id": "-M78mILjLo_kZTl-J5_2",
            "name": "3"
        },
        "-M78mN51i9oQjr02ItsU": {
            "id": "-M78mN51i9oQjr02ItsU",
            "name": "2"
        },
        "-M78mO8PIKkzZhSH_aUV": {
            "id": "-M78mO8PIKkzZhSH_aUV",
            "name": "1"
        },
        "-M78mPkB7-e4sUu4n2QQ": {
            "id": "-M78mPkB7-e4sUu4n2QQ",
            "name": "0",
            "weight": 5
        },
        "-M78m_B_hrx3rSsBJVDH": {
            "id": "-M78m_B_hrx3rSsBJVDH",
            "name": "-1",
            "weight": 2
        }
    }
}

Hit-Location

{
    "name": "Hit-Location",
    "showplayers": true,
    "id": "-M78Uot7aDGq3BIL-lM1",
    "items": {
        "-M78UrgdzWDQPYtBiO3u": {
            "id": "-M78UrgdzWDQPYtBiO3u",
            "name": "Head (+3)"
        },
        "-M78UvOtRFgHO1E5j9Mx": {
            "id": "-M78UvOtRFgHO1E5j9Mx",
            "name": "Back (+2)"
        },
        "-M78UwuVMykkSoadUGYn": {
            "id": "-M78UwuVMykkSoadUGYn",
            "name": "Torso (+1)"
        },
        "-M78UxyxWi0RdNP1jR6a": {
            "id": "-M78UxyxWi0RdNP1jR6a",
            "name": "Arms"
        },
        "-M78V4SgHfs6BAITSNMO": {
            "id": "-M78V4SgHfs6BAITSNMO",
            "name": "Hands"
        },
        "-M78V5sUDufTyxHolZoF": {
            "id": "-M78V5sUDufTyxHolZoF",
            "name": "Main Hand"
        },
        "-M78V7l4KdMXepJqHM_1": {
            "id": "-M78V7l4KdMXepJqHM_1",
            "name": "Off Hand"
        },
        "-M78V9S9nKTsIJ6OrMjl": {
            "id": "-M78V9S9nKTsIJ6OrMjl",
            "name": "Waist (BC)"
        },
        "-M78VCE2iLOC-fs6ErgI": {
            "id": "-M78VCE2iLOC-fs6ErgI",
            "name": "Legs (-1)"
        },
        "-M78VEZcFkbOCpgyW6gd": {
            "id": "-M78VEZcFkbOCpgyW6gd",
            "name": "Feet (-1)"
        }
    }
}

Monster-Reactions

{
    "name": "Monster-Reactions",
    "showplayers": true,
    "id": "-M74V4R504mNLNkjzCnR",
    "items": {
        "-M78KLogjXAZl_QPMQKj": {
            "id": "-M78KLogjXAZl_QPMQKj",
            "name": "Monster will Escape"
        },
        "-M78KP6StSfbyrc7aQ7Q": {
            "id": "-M78KP6StSfbyrc7aQ7Q",
            "name": "Monster damaged last Round it will Escape"
        },
        "-M78KV3PYKMrqasqyGVH": {
            "id": "-M78KV3PYKMrqasqyGVH",
            "name": "Monster has less than half HP it will escape"
        },
        "-M78K_8ja-dXGxeSdEqV": {
            "id": "-M78K_8ja-dXGxeSdEqV",
            "name": "Monster will Attack as normal",
            "weight": 5
        },
        "-M78KeFphoTrhFZlTctE": {
            "id": "-M78KeFphoTrhFZlTctE",
            "name": "Monster has less than 1/2 its HP gains AV+5"
        },
        "-M78Kj0etLsxpUw-k2T6": {
            "id": "-M78Kj0etLsxpUw-k2T6",
            "name": "Monster has less than 1/2 its HP gains AV+10"
        }
    }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment