Foundry VTT
Foundry VTT
Installation
https://foundryvtt.com/article/installation/
Download:
https://foundryvtt.s3.amazonaws.com/releases/10.291/FoundryVTT-10.291.zip?AWSAccessKeyId=xxx&Signature=xxx&Expires=xxx
Extract:
unzip foundryvtt.zip -d $HOME/foundryvtt
Dependencies:
sudo apt install -y libssl-dev gcc g++ make curl -sL https://deb.nodesource.com/setup_20.x | sudo bash - sudo apt install -y nodejs
Start:
node resources/app/main.js --dataPath=$HOME/foundrydata
-
Update node js: https://deb.nodesource.com/
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - &&\ sudo apt-get install -y nodejs
old:
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -
Organization
existing:
/modules /tiles /worlds
Recommended:
/artwork for art included in journals, items, or handouts /audio for sound files /tiles for tile images used in scenes /tokens for actor tokens /maps for map backgrounds used in scenes
cd ~/foundrydata/Data mkdir artwork audio tiles tokens maps
https://foundryvtt.com/article/media/
Settings
Deselect
To auto deselect by clicking, settings:
- Left-Click to Release Objects - a left click on empty canvas space will release any currently controlled objects.
Combat - Skip Defeated
Combat -> Settings -> Skip Defeated?
Rolls
With comment:
/r 2d10+5 #This is my attack
Condensed HTML:
/r 2d10+5 #<h2> This is my attack roll </h2>
Ref: [1]
Chat Injection
[[/r 1d20 # this is flavor]]
[[/r 10d10[poison] # You got stung, kid]]{Poison Damage} [[/r 10d10[psychic] # Your brain shudders]]{Psychic Damage}
Hiding Mouse Cursor
https://imgur.com/ZAHojnV
ref [2]
Scripting
Rolling
Inline Roll now:
[[3d6]]
Inline Roll later:
[[/r 3d6]]
Math
/r floor(1d12/3) /r ceil(1d12/3) /r round(1d12/3) /r abs(5d6 - 20)
Inline Properties
A quick use, select a token, and do a "/r @abilities.str.mod" or any of the below...
@abilities. .str, .con, .dex, .hon, .int, .san, .str, .wis .mod # 0 .value # 10
@attributes.ac. .armor # 10 .bonus # 0 .calc # "flat" .flat # 13 .formula # "" .shield # 0 .value # 13
@attributes.hp. .value # 12 .max # 15 .temp # 0 .tempmax # 0 .formula "2d8 +6"
@attributes.init. .mod # 1 .total # 1 .value # 0 .bonus # 0
@attributes.movement. .walk # 30 .burrow # 0 .climb # 0 .fly # 0 .hover # false .swim # 0 .units # "ft"
@attributes.prof # 2 - proficiency bonus
@attributes.senses. .darkvision # 60 .blindsight # 0 .tremorsense # 0 .truesight # 0
@attributes.spellLevel # 0
@attributes.spelldc # 10
@bonuses.spell.dc # ?
@details.cr # 0.5 - Challenge Raiting
@details.level # overall level
@details.spelllevel # 0 - Spell level
@details.xp # 100 - xp value @details.cr # 6 - cr value
@traits.size # med - Size
ref: [3]
Seeing a list of attributes
_token.actor.data.data
If you wish to see the list of @attributes you can utilize, open console (F12) and type _token.actor.data.data (token should be selected). You will see a list of options you can reference in a dot notation. For example, if you wish to reference the stealth modifier, it would be: @skills.ste.mod.
The top level attributes you can access with the @ symbol are: @abilities, @attributes, @bonuses, @currency, @details, @resources, @skills, @spells, @traits.
ref: [4]
Journal Formatting
Rolling
Inline Roll now:
[[3d6]]
Inline Roll later:
[[/r 3d6]]
Inline Roll later:
[[/r 3d6 # for luck]]
Attributes
@dex -- dex @int -- dex @prof -- proficency bonus
References
UUID Jouranl references:
# Actor @UUID[Actor.XXXX]{TITLE}
# Actor's Item or Spell @UUID[Actor.XXXX.Item.XXXX]{ITEM_TITLE}
# Item or Spell @UUID[Item.XXXX]{ITEM_TITLE}
# Folder: @UUID[Folder.XXXXXX]{FOLDER_TITLE}
# Jouranl: @UUID[JournalEntry.XXXXXX]{JOURNAL_TITLE}
# Roll Table: @UUID[RollTable.XXXXXX]{ROLLTABLE_TITLE}
# Cards: @UUID[Cards.XXXXXX]{ROLLTABLE_TITLE}
# World Compendium: @UUID[Compendium.world.ddb-dnd-ddb-monsters.Actor.mCRS9jp5e7l3Pxc6]{Aarakocra} @UUID[Compendium.world.ddb-dnd-ddb-items.Item.4vG1FodYQ3o0uaC3]{Acid (vial)}
# Shared Compendiums: @UUID[Compendium.dnd5e.items.Item.Sx5E6utixHdAbGNb]{Acid (vial)}
Entity Code --------------- ------------------------------------------ Character/Actor @Actor[Character Name] (Note there must be an actor that exists with that name. Not just a Compendium entry.) Scene @Scene[Scene Name] Item @Item[Item Name] (As with actor references, this refers to an item (see item sidebar). A Compendium entry isn’t enough.) Journal Entry @JournalEntry[Journal Entry Name] Compendium @Compendium[Entry Name] Roll Table @RollTable[Roll Table Name] Macro @Macro[Macro Name]
Spell in compendium:
@Compendium[dnd5e.spells.a3XtAO5n2GrqiAh5]{Create or Destroy Water}
Ref: [5]
Tweaks
Critical Fail Deck
Critical Hit and Fail Animation and Sounds
Module Creator
Foundry VTT Module Generator - Scene Packer https://sneat.github.io/scene-packer-module-generator/standalone-module
Module Manifest
https://foundryvtt.com/article/module-development/
{ "id": "dice-tray", "title": "Dice Tray - An Example FVTT Module", "description": "A simple module created as a demo for working in the Foundry Virtual Tabletop framework.", "authors": [ { "name": "Atropos" } ], "version": "1.0.0", "compatibility": { "minimum": "9", "verified": "10" } }
Dependencies
Let Me Roll That For You - DEPENDENCY
DEPENDENCY FOR MIDI-QOL
lib - Color Settings - DEPENDENCY
Library: Scene Packer - DEPENDENCY
A library to help content creators package up Scenes and Adventures to solve several frustrations when importing Scenes from a module compendium. With Scene Packer the following works:
Scene Journal Pins link to the correct Journal.
- This is the feature that started this module. I was frustrated that I could put a Scene into a compendium with journal pins and then when I imported from a compendium, the journal pin was there, but didn't load anything. This module gives you portable compendium journal pins that link to the original journal entry. The journal links will persist when importing from compendiums.
- Actor tokens on a Scene link to the correct Actor.
- The second frustration that prompted this module. Normally you would import a Scene with Actor tokens on it and they look correct, but don't open anything. So you would have to go through and link them all up again manually. This module gives you portable compendium actor tokens on a scene that link to the original actor data automatically.
- Journals configured for the Scene link correctly.
- No longer will the Journal dropdown on the Scene configuration screen be empty when importing from a compendium.
- Playlists configured for the Scene link correctly.
- No longer will the Playlist dropdown on the Scene configuration screen be empty when importing from a compendium.
- Imported Journals link correctly to other Journal entries.
- By using the automatic link fixer, you won't have broken links due to Journals referencing World entities, rather than compendium entities.
- Quick Encounters work, creating working journal pins that you can double-click on and actors that are linked correctly.
- You can provide a list of Journals and/or Macros that you want to ensure are imported to the world.
libWrapper - DEPENDENCY
Lock View - DEPENDENCY
For Beneos Battlemap
socketlib - DEPENDENCY
Broken V10 Modules
Drag Upload
Broken in FoundryVTT v10 - https://github.com/cswendrowski/FoundryVTT-Drag-Upload/issues/56
Drag Upload (get over here!) drag files into foundry to create tokens, tiles, journals, etc
Adds the ability to drag files onto the Foundry canvas to automatically create Tokens, Tiles, Journal Pins, and Ambient Audio
Dungeon Draw
Broken in V10 - https://github.com/mcglincy/dungeondraw-foundry-vtt/issues/103
A dungeon-drawing module for Foundry VTT. Now you can draw your dungeon on the fly, without ever leaving Foundry. Or, designate a player as the mapper and let them make the map from your TotM descriptions.
Token Magic FX
Broken in V10 - https://github.com/Feu-Secret/Tokenmagic/issues/203
Other Modules
Notes
Here are ones that are a bit more complicated but worth a look:
- Let me Roll that for you! - prompt players to roll checks
- Multilevel tokens - teleport tokens to other scenes or parts of the map (like for stairs) automatically.
- Token Stamp 2 - basically lets you make tokens using the website https://rolladvantage.com/tokenstamp/ inside the app
Advanced Macros (advanced-macros) Initiative Double Click (initaitve-double-click) DFreds Droppables (dfreds-droppables) Split Journal (split-journal)
---
Testing... Module to popup combat tracker...
https://foundryvtt.com/article/combat/
https://foundryvtt.com/packages/quick-combat
https://foundryvtt.com/packages/monks-little-details
https://foundryvtt.com/packages/Next-Up
Advantage Reminder for dnd5e
Want to use active effects to give your barbarian advantage on strength ability checks and saving throws when Raging? Don't want to install Midi QOL to do it? Then this module might be for you.
GM Screen - DISABLED
Creates a tabbed modular grid that GMs can populate with journal entries, rollable tables, actors, and items. Customize your "GM Screen" by dragging and dropping items into cells and have its information available at any time from a button on the bottom right of the UI, near the sidebar. Roll rollable tables, open linked entities, and even place actor sheets into these cells. Obviously the space constraints mean some sheets will work better than others.
Additionally, any screen you create as GM can be set to be shared with players, so you can provide them with a cheat sheet that is always readily available to them. Be sure you set the permissions correctly on the entities themselves before trying to share them with players on a screen!
Reward Experience - OBSOLETE
OBSOLETE WITH COMBAT UTILITY BELT OPTION!
Reward Experience is a simple, no configuration, lightweigth module to automatically reward players with experience point at the end of combats.
Experience points are distributed equally to all partipating players like DnD5e rules suggests. While not tested, it should also work with any system as long as distribution method is good enough for you.
Show Art
This module adds a button to the token or tile HUD that opens the target actor's artwork, or their token artwork on right-click. Hold the shift key to automatically show to everyone.
Target Recall - OBSOLETE
OBSOLETED BY MONK'S LITTLE DETAILS
A small module that captures a token's targets at turn end and recalls them on the token's next turn. Particularly useful for GMs running combats with multiple NPCs. The controller can also scroll through the token's combat target history using keys.
Smart Target - OBSOLETE
DEPRECATED BY MONKS LITTLE DETAILS
Tidy UI - Game Settings
OBSOLETED BY V10 CONFIG?
Tired of scrolling through endless Modules or Module Settings to find the one checkbox to change?
Confused by the Layout of checkboxes, buttons and input fields and element spacings?
Now you can experience a cleaner, more readable layout of the module manager and settings tabs.
D&D Beyond Gamelog
Display your D&D Beyond rolls in Foundry VTT with ease!
Less Fog
- Less Fog - an easier Fog of War tool
- https://github.com/trdischat/lessfog
- dependency: colorsettings, libWrapper
Minimize Button
A small module that adds a minimize button to the top of windows, instead of having to use the hidden double-click title to minimize feature.
- https://foundryvtt.com/packages/minimize-button
- https://github.com/bluesatin/foundry-vtt-minimize-button/
Deprecated Modules
Modules deprecated by other modules (not integrated)
Better Rolls for 5e
DEPRECATED BY MIDI-QOL
Better Rolls for 5e - module that replaces the built in rolling system for DnD5e.
Obsolete Modules
Some good modules that are now obsolete (integrated) - which is good!
Actually Private Rolls
OBSOLETED BY V10? - note: the private rolls are now hidden, but not chat messages
Actually Private Rolls - Hides GM Rolls
- https://foundryvtt.com/packages/actually-private-rolls
- https://github.com/syl3r86/Actually-Private-Rolls
Award XP
OBSOLETED BY Monk's Token Bar
Easily award experience points to your players. This module allows you to give out experience points to the group. The XP will divided equally between the players and automatically added to the character sheets. A chat message will inform the players how much experience they received. Additionally, if a character gained enough experience to reach the next level this will be anounced in the chat.
The button to award experience to the players can be found at the bottom of the actors panel.
Beyond20 companion module - OBSOLETE
DOES NOT APPEAR TO BE NEEDED, WHY INSTALL IT??
Beyond20 companion module - helps with beyond20 rolls
Beyond20 is a browser extension that seamlessly integrates D&D Beyond with Foundry VTT.
This module allows the Beyond20 rolls to display properly in the main FVTT window and for other players who do not have the Beyond20 browser extension installed.
Perfect Vision - OBSOLETE
OBSOLETE WITH V10
Darkvision rules for Dungeons & Dragons 3.5e/5e, Pathfinder 1e/2e, and other systems, as well as other lighting/vision features and improvements.
Pings
BUILT INTO V10
Pings - allows pinging on the map
Adds the ability to ping on the map to highlight points of interest. Default is Left Click to ping, Shift + Left Click to move everyone's screen to your ping.
- https://foundryvtt.com/packages/pings/
- https://gitlab.com/foundry-azzurite/pings/
- Dependency: settings-extender
T is for Target
BUILT INTO V9? CERTAINLY V10
A simple module that allows players to target tokens without left clicking. This can speed things up a lot, especially for DMs utilizing combat automation. Hover over a token and press T to target it.
- https://foundryvtt.com/packages/t-is-for-target/
- https://github.com/basicer/foundryvtt-t-is-for-target
Broken Modules
These are modules that should work, but were broken in V10
Dead Modules
These are modules that are broken, and no longer maintained by the Author
Follow Me
Follow Me is a module for Foundry VTT that allows tokens to follow or be followed by other tokens.
Build Your Own Module
Content Packaging Guide | Foundry Virtual Tabletop
https://foundryvtt.com/article/packaging-guide/
Special Content Available
AtroposToday at 1:28 PM
Special Content Available - Michael Ghelfi Audio Pack-
Hello @everyone, I am thrilled to share that the first "Special Content Pack" for Foundry Virtual Tabletop is available with a wonderful module of environmental ambience and music provided by Michael Ghelfi https://www.youtube.com/user/MichaelGhelfi.
All Foundry Virtual Tabletop license owners may install this module (available in the Module browser) which provides 13 wonderful seamless looping environmental ambiences ranging from Desert to Medieval City and more, as well as 4 beautiful musical scores which can provide background music for your Scenes. By installing and activating the module you will have access to two compendium packs of audio content which you can import into your Worlds to use. I definitely encourage everyone to check out this module and use these wonderful audio assets in your Foundry games.
You can find this content pack and others (not yet, but soon) on the Foundry VTT website under the "Exclusive Content" section of the Systems and Modules menu: https://foundryvtt.com/packages/exclusive. Thank you to Michael for making these wonderful audio assets available to Foundry Virtual Tabletop users!
If you like Michael's work, I encourage you to further support him by visiting his Bandcamp page, https://michaelghelfi.bandcamp.com/, where you can purchase hundreds of additional songs and ambiences using a special promotion code which is available inside the Foundry VTT application once you install the Module.
Running under Linux
Install NodeJS [6]
#curl -sL https://deb.nodesource.com/setup_14.x | sudo bash - #apt install nodejs
curl -fsSL https://deb.nodesource.com/setup_17.x | sudo -E bash - sudo apt-get install -y nodejs
sudo apt-get install gcc g++ make curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install -y nodejs
Macros
Show Journal
game.journal.getName("Name of Journal Entry").sheet.render(true)
ref: [7]
Doesn't work?:
JournalEntry.collection.getName("your_journal_entrys_name").show()
ref [8]
-
My version:
a = game.journal.getName("Room1"); a.update({permission:{default:2}}); a.show();
There is a delay issue where it doesn't work on the first hit though? Maybe needs a callback first?
Show Actor Sheet
game.actors.getName(character.name).sheet.render(true);
game.actors.getName('Celestyca').sheet.render(true);
Opens Character sheet for current token or controlled actor:
game.toggleCharacterSheet()
ref: [9]
Roll20Converter
Exported Certain Roll20 Campaigns Causes Javascript Error - Uncaught (in promise) TypeError: string.toLocaleLowerCase is not a function · Issue #84 · kakaroto/R20Converter https://github.com/kakaroto/R20Converter/issues/84
Migrate Module Packs
const moduleId = "curse-of-strahd"; const packs = game.packs.contents.filter(c => c.collection.startsWith(`${moduleId}.`)); for (const pack of packs) { await pack.configure({locked: false}); await pack.migrate(); await pack.configure({locked: true}); }
Migrate all modules packs?
const packs = game.packs.contents.filter(c => c.collection.startsWith(``)); for (const pack of packs) { await pack.configure({locked: false}); await pack.migrate(); await pack.configure({locked: true}); }
Active Effects
To get the icon to appear on your Avatar select "Force display on token: true"
To have effect occur when equipped, select "Transfer to actor on item equip"
Rage
duration: 60 seconds system.traits.dr.value - Custom - Bludgeoning # system Traits Damage Resistance (*) system.traits.dr.value - Custom - Piercing # system Traits Damage Resistance (*) system.traits.dr.value - Custom - Slashing # system Traits Damage Resistance (*) system.bonuses.mwak.damage - Add - 2 # system Bonuses Melee Weapon Damage
Advantage on Initiative
Used for Feral Instinct
flags.dnd5e.initiativeAdv - Custom - true # Flags Advantage on Initaitve
Armor Boost
Used by Infused Effects (on shield and armor)
system.attributes.ac.value - add - +1 # system Attributes Armor class (Deprecated)
Mage Armor
Duration: 28800 seconds (8 hours) system.attributes.ac.calc - Override - Mage Armor # system Attributes Armor Class calc
Poisoned
Just name the effect "Poisoned" and it will do the needful
(Disadvantage)
Dodging
ref: [10]
Description:
- When you take the Dodge action, you focus entirely on avoiding attacks. Until the start of your next turn, any attack roll made against you has disadvantage if you can see the attacker, and you make Dexterity saving throws with advantage. You lose this benefit if you are incapacitated or if your speed drops to 0.
Details:
Target: Self Range: Self Duration: 1 Round
Effects:
flags.midi-qol.grants.disadvantage.attack.all - custom - 1 flags.midi-qol.advantage.ability.save.dex - custom 1 macro.tokenMagic - custom - Evade Stance
Simple World-Building World
Attributes
@health.value # or min and max @power.value # or min and max
If you have a attribute key group:
@group.key
For testing in JavaScript Console:
_token.actor.system.health
Secrets
GM Notes is about the only good option.
GM Notes - https://github.com/bithir/gm-notes
Inline secrets looked like a good option, but it is too easy for players to reveal
Inline Secrets - https://github.com/jsavko/inline-secrets
- has issues, too easy for players to reveal!
Show Secrets - https://github.com/kaelad02/show-secrets
- GM can show built in "secret blocks" to players in chat, when needed - useful
Discussion - https://www.reddit.com/r/FoundryVTT/comments/vgrkim/gm_secret_block/?rdt=65447
GM Secret Block - https://github.com/schultzcole/FVTT-GM-Secret-Block/issues?q=is%3Aopen+is%3Aissue
- https://foundryvtt.com/packages/gm-secrets
- DEAD PROJECT!
--
Edit details and at the bottom add this:
<pre style="display:none">. pre formatted secret .</pre>
It will add a &tlcode> inside the pre, but that doesn't break anything.
Notes About Players
Options:
- GM Notes on player character sheets
- Extenral notes (such as google drive)
- Easy Notes - https://github.com/djeval/easy-notes
- Just wish this were per player