Foundry VTT: Difference between revisions

From Omnia
Jump to navigation Jump to search
Line 352: Line 352:
* https://foundryvtt.com/packages/t-is-for-target/
* https://foundryvtt.com/packages/t-is-for-target/
* https://github.com/basicer/foundryvtt-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 ==
== Dead Modules ==

Revision as of 21:26, 3 March 2024


Subpage Table of Contents


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

ZAHojnV.png

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.

EdMJu4t.png

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"
  }
}

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

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.

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.

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

AMOFH7s.png

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

--

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:

keywords