Skip to content

Latest commit

 

History

History
366 lines (229 loc) · 14.6 KB

FAQ.md

File metadata and controls

366 lines (229 loc) · 14.6 KB

FAQ

The import buttons are greyed out!

They require the cobalt token setting to be set.

How do I get the Cobalt key manually?

Open up a page of DnDbeyond and be sure you're logged in. Hit F12 or CTRL + Shift + I > Application > Cookies > dndbeyond.com > Search for Cobalt > Copy the key from the Value Field

My Core settings screen won't open

Open the Browser Developer Console (F12) and run the following:

game.modules.get("ddb-importer").api.resetSecrets();

My Muncher window never appears

I just get a UI message Checking your DDB details - this might take a few seconds!.

Open the Browser Developer Console (F12) and run the following:

game.modules.get("ddb-importer").api.resetSecrets();

Whenever I use the "Fetch My Campaigns" button it hangs and nothing happens

If you know what the campaign ID (it's a number, you can find it in the URL of your campaign on DDB) you can manually set it by opening the Browser Developer Console (F12) and run the following:

game.settings.set("ddb-importer", "campaign-id", "ID_HERE")

I purchased content on DDB and it's not available!

Sometimes you just need to wait a little bit. Sometimes you need to Sync your entitlements.

For characters/spells/items check that you can create a character on DDB with those features. For adventures, make sure you can download the adventure in the DDB mobile app. For monsters make sure you can access the monster's stats in the DDB Encounter Builders.

I tried the custom proxy and want to reset to use yours

Open the Browser Developer Console (F12) and run the following:

game.modules.get("ddb-importer").api.resetProxy();

I want to use your macros/effects/etc but don't use DDB

You can apply the effects to existing actors/items using the following commands. This works best on spells, but some effect generation require spell descriptions, and for certain data (like damage) to already be on the spell:

Actor:

actor = game.actors.getName("Zinroe");
await game.modules.get("ddb-importer")?.api.effects.addDDBIEffectsToActorDocuments(actor);

Item:

item = game.items.getName("Cloak of Displacement");
await game.modules.get("ddb-importer")?.api.effects.addDDBIEffectToDocument(item);

Integration into the GUI will be forthcoming.

Can I apply Chris's Premade effects to an imported actor?

Yes! Run the following macro of via the developer console (F12):

actor = game.actors.getName("Zinroe");
await game.modules.get("ddb-importer")?.api.chris.adjustActor(actor);

If you want to apply to all characters in your world:

for (const [key, actor] of game.actors.entries()) {
  console.log('Updating: ' + actor.name);
  await game.modules.get("ddb-importer").api.chris.adjustActor(actor);
}

My Characters Hit Points aren't right

Sometimes DDB can get confused, especially if the character is created using the random or guided mode. Try adding and removing a level on DDB and then reimporting.

The Importer is overwriting custom or modified items/actions

There are two options available:

  1. Click on the item, then the DDB icon on the title bar and check the ignore this item option.
  2. On the import screen check the "Ignore items on character sheet that have not been imported from DDB"

I want to prevent DDB Importer overwriting a thing on my character sheet!

There are two main options available:

  1. Click on the feature/item/spell/etc and click the DDB Icon in the title bar, select the "Ignore this item when importing the character".
  2. Add a copy of the feature/item/spell/etc to the DDB Overrides compendium, and on the Advanced tab of the character importer screen select "Replace Items using those in your Override compendium".

I see the message "Unable to open the Compendium"

Open "Configure Settings" -> "Module Settings" -> "D&D Beyond Importer" -> "Compendiums".

Ensure the Compendiums listed exist and are all different.

Default compendiums are called things like "DDB Spells".

If they are all the same, or are the first compendium in the list, chances are that Foundry has been unable to create default or select the chosen compendium.

Create compendiums if required, select them in the drop downs then click "Save".

My monsters have a vision of can't see anything/can see everything!

The monster muncher uses the Token Defaults to apply to your tokens. it will set the sight radius to the appropriate darkvision range, but the "Has Vision" option will grant the token a vision attribute or not. (i.e. can it see normally or full access).

I get a key does not exist error!

I get an error along the lines of:

The key xxxx does not exist in the EmbeddedCollection Collection

This is a core Foundry bug in v8 and is fixed in version 9 of the software.

Clerics and Druids don't get their un-prepared spells

You need to have the cobalt token set to get these spells.

Magic Items don't have spells attached

When you use the Magic Items module and Munch Items the spells are not attached to the Item. This is a tricky issue and parsing these things out of the item text takes time as they are not exposed as an attached object to the item.

Can I import books/adventures?

Yes! But you should see the DDB Adventure Muncher.

My Characters AC is wrong

This is almost certainly because you have the "Dynamic Active Effects" module installed. In the DAE module settings make sure you untick the set base AC and autocalculate ac options or DAE will try to do that for you.

It might also be because your AC settings in the "Active Effects" tab is incorrect.

My characters hit points are wrong

First try adding a level and removing it, sometimes the underlying JSON can get stuck on another level.

Why do not all monsters have descriptions

It uses the data that comes off the Encounter Builder as it's provide it's in JSON/structured way which makes parsing quick and "easy". However, not all the monsters there have the description that is on the full monster page.

TLDR: only the description available via the encounter builder on DDB gets pulled in for monsters.

Explain Active Effects

There are some good primer docs here and here

The DAE Readme is useful.

History:

  • The parser was born before before the special traits and DAE/active effects existed.
  • The parser does not require DAE to work .
  • It translates a character on DDB to a sheet in foundry.
  • Some of the more exotic effects got added as 5e special traits.
  • Active Effects came along.

Currently

  • the parser will try and use special traits if they are available. other wise it tries to best apply the effects your character has.
  • it offers you the option to swap out matching features for those in DAE. it does not clean these up for you/resulting mismatches/extra effects

Dream

  • the importer will offer you "regular" or "effects" driven approach

How can I share content between my worlds in Foundry?

Setup a shared compendium module. Read or watch how.

I've upgraded to a new major Foundry version how do I migrate my shared compendium content to the new model?

Open the Browser Developer Console (F12) and run the following:

game.modules.get("ddb-importer").api.compendiums.migrateCompendiums();

Okay so I have migrated to D&D 5e sytem version 1.4.0/1 and now none of my shared compendium monster AC's are right!

Answer: run the above migration command.

Do I need Compendium Content or the Character builder content?

  • For integrating characters/spells/items you need to the character builder content.

  • For adventure muncher you need the compendium content.

Can I import all my characters without opening each one?

Yes, use the following macro:

globalThis.DDBImporter.updateAllPCs.foundry();

My Pact Spells are not marked as prepared

Pact spells can be marked as prepared during import by opening the browser console(F12) and enter game.settings.set("ddb-importer", "pact-spells-prepared", true).

My Homebrew doesn't import!

You need to try and match the style and html formatting of official monsters.

A short primer:

  • each action MUST be in a <p> tag.
  • action title MUST be in a <strong> tag. It MUST end with a full stop/period ..

Wording Examples:

You can use the regex links to check your syntax

utils.js is where most of the guts of this is parsed.

Can I use the Icon Mapping API?

Yes!

let item = game.items.find(i => i.name === "Shield")

await game.modules.get("ddb-importer").api.getIconPath(item);
'systems/dnd5e/icons/skills/weapon_18.jpg'

await game.modules.get("ddb-importer").api.getIconPath({ name: "Claws", type: "weapon" }, true, "Wolf");
'icons/commodities/claws/talon-red.webp'

I want to use the SRD Monster Art

Use the following workflow:

  • Ensure that on the Settings tab "[Caution] Use SRD compendium things" is ticked.
  • On the Monsters tab ensure "Update Monster images on existing items?" is not checked.
  • Import your monsters, this will copy the SRD monsters across instead of using the DDB ones.
  • If you want to use the DDB generated data but the SRD images, untick the "[Caution] Use SRD compendium things" and reimport you monsters. The image will not be updated, but the features/attacks etc will.

If you like the SRD art them the "Forgotten Adventures" tokens and also the Token Variant Art module which allows you to easily apply the art from such packs to tokens.

I want to use tokens like Forgotten Adventures etc

If you want other art like "Forgotten Adventures" the Token Variant Art module which allows you to easily apply the art from such packs to monster compendiums.

How can I purge a compendium of all content munched by DDBI?

See the macro below, WARNING: All data removed by this can't be recovered unless you have a backup.

Replace world.testcomp with whatever id you named your compendium and run this in the browser console.

let pack = game.packs.get("world.testcomp");
let docs = await pack.getDocuments();
let count = 0, total = docs.length;
for (let i = 0; i < total; i++) {
    if (docs[i].data.flags.ddbimporter != null) {
        await docs[i].delete();
    }
    count++;
    console.log(`[${Math.floor(count / total * 100)}%] done (${count} of ${total} entries)`);
}
console.log("Finished!");

How do I purge all the content in journals?

Warning, Using the code below will delete the data beyond recovery unless a backup is used:

JournalEntry.deleteDocuments([],{ deleteAll: true });
Folder.deleteDocuments(game.folders.filter(f => f.type == "JournalEntry").map(f => f.id));

Are some, but not all, map files are missing after import?

This might also appear as an error such as Scene [xxxxxxx] validation errors: background: src: does not have a valid file extension.

If you are running FoundryVTT behind an Ingress(e.g. Kubernetes) or a web proxy, it may have an individual file size limit on uploads. If this limit is smaller than some of the high-res maps images it may cause them to fail to be imported.

Here are some links to common resolutions to this issue:

Can I set the doors to make a sound on opening?

The following macro will update a scene:

/// Update All Door Sounds on scene
/// All Door Sounds from CONFIG.Wall.doorSounds
/// "futuristicFast", "futuristicHydraulic","futuristicForcefield"
/// "industrial","industrialCreaky"
/// "jail","metal"
/// "slidingMetal","slidingModern","slidingWood"
/// "stoneBasic","stoneRocky","stoneSandy"
/// "woodBasic","woodCreaky","woodHeavy"

const updates = canvas.walls.doors.map(d => ({_id: d.id, doorSound: "stoneSandy"}));
await canvas.scene.updateEmbeddedDocuments("Wall", updates);

I want to send you a useful log info

Open the browser dev console (F12) and type:

await game.modules.get("ddb-importer").api.debug.start();

Perform the action which errors. (e.g. importing a character, trying to update a character)

In the browser dev console (F12) enter:

await game.modules.get("ddb-importer").api.debug.stop();

This will download a file to send to me.