PDA

View Full Version : Tarot Reading



jkeller
April 13th, 2026, 21:59
https://forge.fantasygrounds.com/shop/items/2937/view

To enable, select the Feature: Tarot Reading when loading your campaign.

The DM can select the "deck":
- Cards (classic Tarot, Tarokka / Ravenloft, Tarokka / Strahd, and Dragon Cards - a D&D themed set)
- Futhark Runes (wood and stone)
- Droyne coyns (old and new)
- any deck defined in the DeckedOut (https://forge.fantasygrounds.com/shop/items/910/view)extension

Then select a layout: 2, 3, 5, etc - including the Solar Cross and Celtic Cross. Some "DM only" layouts (inspired by Johnn Four's 5-room Dungeons, and the Deck of Many Things are provided to help during prep.

The players can shuffle and then draw or choose individual cards/tokens.

Suggested interpretations are displayed to the DM and written to the console (so the DM could use it as an AI/LLM prompt).

Suggestions are welcome!

https://i.ibb.co/XkF4CVgk/Tarot-Reading.jpg

History:

- Added support for decks from the DeckedOut extension.
0.4 - Added a button to award inspiration (in the form of a Dragon Card) to the active PC
0.3 - Added true inversion (flipping the image - no more down-arrow). Fixed a couple of interpretation bugs.
0.2 - Added some initial support for inverted cards (using a down-arrow indicator). Added tooltips with the card name and meaning (for the DM).

dmbrown
April 13th, 2026, 23:54
This looks cool. Will there be a way to add your own cards?

Tempered7
April 13th, 2026, 23:57
This looks cool. Will there be a way to add your own cards?

If there is and the cards can be laid sideways we can do this:
How To Build An Adventure with The Deck of Many Things (https://www.youtube.com/watch?v=ZQsM9cvWxZk)
ZQsM9cvWxZk

Creating an entire game flow chart with cards.

jkeller
April 14th, 2026, 00:35
From what I've learned so far, rotating requires using widgets, which I still need to learn. Alternatively, you can include pre-rotated images, but that wouldn't be practical in this case (too many). I would like to support it - for inverted cards and sideways ones - though my initial plan was to simply add an "inverted" label.

I *might* be able to support selecting image assets as cards; not sure. If there's a particular set you want (and it's free to use), I could include it. Ideal image size is 300 x 500 pixels.

Tempered7
April 14th, 2026, 02:34
From what I've learned so far, rotating requires using widgets, which I still need to learn. Alternatively, you can include pre-rotated images, but that wouldn't be practical in this case (too many). I would like to support it - for inverted cards and sideways ones - though my initial plan was to simply add an "inverted" label.

I *might* be able to support selecting image assets as cards; not sure. If there's a particular set you want (and it's free to use), I could include it. Ideal image size is 300 x 500 pixels.

Oh, I didn't know it would require widgets.
For the back of the cards, all it requires one image I guess?
What I imagined was usable places instead of added cards themselves, because The Deck of Many Things cards are copyrighted.

In the video [4:58 (https://youtu.be/ZQsM9cvWxZk?si=Yoz1sg81ecf5mkai&t=284)] the cards are placed in a certain manner, some on top of each other. I thought what it would require is some empty spaces for images but Im too primitive on coding stuff.

No pressure, because this is for an alternative playstyle where it is good for GMs when they're writing scenarios, or for soloists when playing.
And thanks for the consideration :)

EDIT: I forgot to add the link to the video bookmark. Image below is taken from Let's Build a Dungeon with the Deck of Many Things (http://www.dndbeyond.com/posts/1650-lets-build-a-dungeon-with-the-deck-of-many-things)
67120

jkeller
April 14th, 2026, 03:52
Yeah, I hadn't seen that video before, but it looks pretty cool!

Each card back is one image (per deck type), yes (well, there's one big one, and 3 small ones - normal, selected, and highlighted).

Using widgets is probably not hard to do, I just need to figure out how :)

Tempered7
April 14th, 2026, 04:16
Thank you, jkeller!
I hope this one gives you joy in coding as well as to give users joy while playing! :)
Oh and I was already thinking about writing an article about this, and now, I'll wait for you to finish the mod and make a guide from it. [both using the first version and deck of many version].

anstett
April 14th, 2026, 15:31
Have you seen this extension:
Decked Out - Play With Cards in Fantasy Grounds (https://www.fantasygrounds.com/forums/showthread.php?75772-Decked-Out-Play-With-Cards-in-Fantasy-Grounds)

Could be some good things to combine.

anstett
April 14th, 2026, 15:33
Also, for a farther along update once rotation is solved.

Change from a rectangular to other shapes.

Traveller for example has Coyns - round fortune telling discs that are pulled from a bag.

jkeller
April 14th, 2026, 20:48
Uploaded a new version that has some support for inverted cards. This version doesn't attempt to flip the image; it just adds a down-arrow icon. The suggested interpretation will note that the card is inverted, and provide that meaning.
67121

jkeller
April 14th, 2026, 20:50
Also, for a farther along update once rotation is solved.

Change from a rectangular to other shapes.

Traveller for example has Coyns - round fortune telling discs that are pulled from a bag.

That should be fine, as long as the image background is transparent.

jkeller
April 15th, 2026, 15:01
@anstett - do you have a link for the "Droyn coyns"? I couldn't find much online. If the images are in the public domain, I could include them with this extension.

anstett
April 15th, 2026, 16:44
Here is the thread on the Mongoose publisher forums where I asked about the art being available:
https://forum.mongoosepublishing.com/threads/images-of-coyns-for-vtt-use.126453/

I also reached out to the creator of that Kickstarter of the physical items to see if they have art they are allowed to share.

Tempered7
April 16th, 2026, 00:37
Heya J,

While you were coding the new part, sadly I found 2 errors while was stress-testing the Tarot ext.

Classic Tarot Interpret button press error: Occurs both after pick 3, and single card interpretation when pressing interpret.

67132

-Rare- Tarokka (Ravenloft) Pick 3 error: Occured only once during the stress-test after picking 3 cards. Single card interpret was fine. Didnt occur after a campaign restart.
67133

jkeller
April 16th, 2026, 01:10
Thanks for testing!

A new version is up; I think I fixed those 2 issues. Also, this version supports inverted cards thanks to a trick from pindercarl and help from Tempered7.

Next up: support for different layouts.

Tempered7
April 16th, 2026, 01:38
Bug squash confirmed.
It dont just invert cards but also interpret the inverted meanings.
Excellent job! Thanks. :)

jkeller
April 16th, 2026, 13:24
Here is the thread on the Mongoose publisher forums where I asked about the art being available:
https://forum.mongoosepublishing.com/threads/images-of-coyns-for-vtt-use.126453/

I also reached out to the creator of that Kickstarter of the physical items to see if they have art they are allowed to share.

Thanks! I also found this: https://www.freelancetraveller.com/features/culture/reference/coyns.html

I think I'll be fine with the images. I'm not sure if coyns have any concept like cards have rank/suit, but it looks like there are some 2D groupings (like "caste" is one group, and the "new" version implies a ranking). That link has the "meanings", but I haven't found anything about how to use them (layouts, etc). Also, I haven't seen anything about the reverse side of the coyns (may not be important).

anstett
April 16th, 2026, 14:35
For how to use here is a clear walk though:
Droyne Coyns for Traveller RPG, and more... by Chiefweasel — Kickstarter (https://www.kickstarter.com/projects/1995433411/droyne-coyns/description)

And another version for the images:
Coyn - Traveller (https://wiki.travellerrpg.com/Coyn)

Tempered7
April 17th, 2026, 04:23
Oh, so there are 2 websites that list them fully.
My brave search yield literally zero results.
Glad that you guys found them!

EDIT:

1 Major Revelation
5 Minor Revelations

Major Revelation:


To read and interpret the Major Revelation, find the card from the deck with the corresponding image. Use the side of the card that says Major Revelation. Use the text of the card to determine the major event that is to occur in the future.

Minor Revelation:


To read and interpret the Minor Revelations, find the cards from the deck with the corresponding image on the back of the Coyn.
Use the side of the card that says Minor Revelation. Use the text on the card to help interpret the events surrounding the Major Revelation. To find the Minor Revelations, flip each Coyn. If it lands with its symbol up, do not touch it, use the information on the Minor Revelation side of the card, if it lands with the Droyne side up, keep flipping until the image side lands.
If the Coyn face is canted more to the left, then the Minor Revelation is weaker in the story.
If it is canted more to the right, then the Minor Revelation is stronger.
If the Coyn face is straight to you, or you can not determine which side it is canted to, then both sides are used equally in fortune telling.

jkeller
April 17th, 2026, 12:52
If the Coyn face is canted more to the left,[/B][/U] then the Minor Revelation is weaker in the story.

I saw that; interesting twist. Might not be directly supportable (if the FG frame rotation only does increments of 90), but we'll see.

I don't have the Droyne kickstarter cards (and probably couldn't use their text even if I did), but I think the meanings we found online should be fine. If a DM happens to have those cards, they could use them to help interpret the layout.

Tempered7
April 17th, 2026, 13:58
I saw that; interesting twist. Might not be directly supportable (if the FG frame rotation only does increments of 90), but we'll see.

I don't have the Droyne kickstarter cards (and probably couldn't use their text even if I did), but I think the meanings we found online should be fine. If a DM happens to have those cards, they could use them to help interpret the layout.

Carl said it accepts arbitrary angles:


It looks like it accepts arbitrary angles. Due to the way we render text, it doesn't look good unless the text is at right angles. For a frame, it should be okay.

In any other interpretive randomized-image app, they never add the text part for copyright reasons. I saw that in many established picture oracles, and I had their links but only one left [after multiple formats] is https://lbrpg.blogspot.com/p/icons-oracles-generator.html?m=1

It is not from any real book or something but every other pic-oracle looks like this in every app. They assume you have the book and know which image means what.

anstett
April 17th, 2026, 16:26
I think it would be ok to include the Images as an alternative set of "cards". It would also give people inspiration for how to create their own different images to add to the extension.
It would be up to the individual Traveller Referee to own the rules for how to use the Coyns. That should respect the Mongoose IP I think.

Tempered7
April 17th, 2026, 17:06
I think it would be ok to include the Images as an alternative set of "cards". It would also give people inspiration for how to create their own different images to add to the extension.
It would be up to the individual Traveller Referee to own the rules for how to use the Coyns. That should respect the Mongoose IP I think.

Yeah. meanwhile I was also researching the copyrights for the two [Deck of many things and Coyns] because I dont think Jkeller can add all the images and the interpretation for these IPs.
But I think there are workarounds, one of which is the best solution we are working on right now: Basically, either adding an option to add your own custiom cards [then learn to interpretation rules], or use the Decked Out card decks in tandem with Tarot Reading.

This way, we both respect the IPs and give users a chance to use their bought modules [such as deck of many things] or books in a fun and personal way.

jkeller
April 17th, 2026, 20:08
I'm making good progress on supporting different spreads/layouts.

Not done yet, but getting close. Here's a teaser showing a partially populated Celtic Cross:

67141

Tempered7
April 17th, 2026, 21:32
I'm making good progress on supporting different spreads/layouts.

Not done yet, but getting close. Here's a teaser showing a partially populated Celtic Cross:

67141

OMG! It's happening! HYYPPEE! :D There's even names of the card placeholders :)

Just here to say I have to wait 30 more minutes for the token reset, than I will complete my findings and share them here.

Tempered7
April 17th, 2026, 22:07
Ok here's what I've got [summary of a summary of the method only]: Integrating deckedout API for custom deck creation / usage.

1. Access the Decked Out Database Since data is stored in a public path, other extensions can query available decks by iterating through deckbox.decks.


Accessing Cards: Use the .cards sub-node of any deck entry to find the list of card records.
Retrieving Images: Use DB.getValue(vCard, "token", "") to retrieve the token prototype string for each card.

2. Programmatic Deck Creation (Corrected API) To automate deck creation while avoiding common database and event-handling errors, use this corrected logic:

THE CODE ITSELF MIGHT BE WRONG


-- 1. Create a UNIQUE deck child node
-- CORRECTION: Use DB.createChild for list containers to avoid overwriting the parent node
local vNewDeck = DB.createChild("deckbox.decks");
DB.setValue(vNewDeck, "name", "string", "Automated Tarot Deck");

-- 2. Add a card with an image (token prototype)
local vCard = DB.createChild(vNewDeck, "cards");
DB.setValue(vCard, "token", "string", "token_prototype_name");

-- 3. Registration
-- NOTE: Requires fixing a bug in manager_deck.lua where 'vDeck' is undefined
CardsManager.addCardToDeck(vCard);

-- 4. Notify the UI with a trace table
-- CORRECTION: Explicitly pass an empty table {} to satisfy the tEventTrace parameter
DeckedOutEvents.raiseOnDeckCreatedEvent(vNewDeck, {});


3. Displaying for Tarot Spreads While Decked Out manages the data, a display extension should handle the visual layout using the Widget API for precise control.


Instantiation: Use addBitmapWidget(asset_name) within a genericcontrol to create the card face.
Rotation: Call widget.setRotation(180) for inverted Tarot cards or setRotation(90) for sideways cards in a spread.
Visibility: Use a dual-widget system (one for front, one for back) and toggle setVisible(boolean) to handle face-down states.

jkeller
April 19th, 2026, 00:40
Initial support for different spreads is complete (more can be added; let me know if there's any you'd like that I missed). The various Deck of Many Things adventure/dungeon layouts are in development.

67153

This version also supports Futhark runes. Next up: Droyn coyns!

67154

anstett
April 19th, 2026, 16:33
Runes and Coyns will be so very useful in a variety of games.

jkeller
April 20th, 2026, 00:29
New version - Droyn coyns are done!

Question for you Traveler DMs - do I need to support coyn rotation? Currently I just do upright or inverted, but I *could* support a more granular rotation. Are there any particular layouts you would use?

Next up: adventure layouts

Note: I have temporarily removed support for sideways/tapped cards (it's too buggy). Instead, those cards will be shown offset down and right (for now).

Tempered7
April 20th, 2026, 03:06
New bugs: No errors, Just scrolling / image rotation problems.


Note: I didnt test share or with Network connection to a pc client.
DRAW is not repeatable.
Probably bigger windowbox needed.

All decks:


"Choose" option for all spreads on all decks show empty screen.
Draw: Always picks the same card(s).

Standard Tarot, Dragon Cards:


1-3 Draw up to Challenge/Advice/Outcome: Fits the windowbox. Mind Body Spirit scrolls too. But Challenge/Advice/Outcome's first card is gets out of out of the windowbox. pic below.
[DRAW] Solar Cross (5), Hermit's Guidance (6), V (7), Celtic Cross (10): See below notes.

2. Challenge/Adv/Outcome
67158
2. Celtic
67163
Tarokka / Ravenloft:


[NOTE: Not always does below:]
[All behavior below is for DRAW]
Single token: Sometimes 1 card gets out of windowbox sometimes it doesnt.
Two tokens: Second [right] cards gets out of windowbox. Sometimes it's the [left] one after a reset.
Past/Present/Future: Again, when I first open the window, the 3rd [right] card gets outof window when scrolled. When I reset, it's the middle.
Situation/Obstacle/Solution: I changed my test and draw 1st > scroll, draw 2nd > scroll, draw 3rd > scroll... Only at 3rd draw/scroll, scrolling gets the 3rd card out of window.
Mind/Body/Spirit: Bottom left card out of window when scrolled.
Challenge advice outcome: See upper pic.
[NOTE] The trigger to change cards that get out of window might be switching to different spreads.

Tarokka / Strahd:


Past/Present: Mid card gets out of window every reset.
Mind/Body: Top card out of window this time.
Challenge/Advice: When the top card is out of window, bottom card is also out of the bottom of the window.
Solar Cross: Mid 3 cards out of window.
Hermit's: Weird spread / far right card is out of window.
V7: See pic below [weird]
Celtic Cross: Farthest 2 cards doesnt fit into the window. I think a bigger window might be needed for higher spreads.

Challenge/Advice
67159
Hermit's
67160
V7 [Weirdest]
67161
Celtic
67162

Droyn Coyns


Single token Coyn out of window.
Draw Single token / 3 tokens: Always picks the same coyns
Celtic: I dont know if the indicators [Left/right tilt] should look like that in the 3rd pic? Also scroll problems just like in other decks.

Single token
67164
Draw always picks the same coyn.
67165
Celtic / Coyn
67166

Tempered7
April 20th, 2026, 03:07
-double post-
delete please.

Tempered7
April 20th, 2026, 03:12
Upstair post cant take more than 5 images so I upload 5 more here to use them in above.
67163
6716467165
67166

jkeller
April 20th, 2026, 13:47
It looks like (based on the pics that show a scrollbar and clipped cards) you were testing with the previous version.

I *think* most of those issues should be resolved in the current version. It's still not ideal; many of the layouts are just too large. I can't scale the cards (without losing rotation), and I think 300 pixels is about the smallest I can go and still keep them looking decent.

Hopefully I can get the inner-window approach working, so it will scroll. I've found no way to get horizontal scrolling working though (unless I convert to a map, which I don't want to do).

I'm pretty sure the clipping issues are happening in the underlying code, so it may not be something I can fix.

The "draw the same card" bug isn't really a bug. It draws from the selected cards (if you've selected some using the Choose button, or from the deck if not). By default, the deck isn't shuffled, so unless you've used Shuffle (or Choose), the order will always be the same. That said, I agree it would be better if I automatically shuffled - that's an easy change.

For now, I think I'll focus on trying to get scrolling to work. Thanks for all the help testing!

jkeller
April 20th, 2026, 15:00
After more consideration, I think I'm going to abandon my hacky approach (using rotatable text widgets). Although it did (mostly) support image rotation, it's just too buggy.

I'm going back to using regular icons. This means the images can't be rotated (I'll go back to using a down-arrow widget to indicate inverted cards), but it's far less buggy, and it does mean I can scale the images, which should mean I can support large spreads better.

jkeller
April 20th, 2026, 21:13
I uploaded a new version. This one scales the icons, which allows for larger spreads (the full-size image is displayed upon mouse-hover).

Cards are not rotated, but a down arrow icon is added for inverted cards. The tooltip also shows "(inverted)", with that corresponding meaning.

I think it works much better, but as always, your feedback is welcome.

I added some "DM only" layouts, inspired by the new "Deck of Many Things" layouts.

I'm not sure yet how to handle the card categories (location, feature, story).

I'm considering adding some DM-only buttons, such as Re-draw or Discard, but I'm not sure which ones will be needed. Any thoughts?

Next up: integration with the Decked Out extension.

Tempered7
April 21st, 2026, 12:41
It looks like (based on the pics that show a scrollbar and clipped cards) you were testing with the previous version.
Probably, because network errors on my end prevent me from updating the Launcher but now it is fully updated.

After more consideration, I think I'm going to abandon my hacky approach (using rotatable text widgets). I'm going back to using regular icons.
Cards also fit better into the window this way. And the zoomed card in the middle enables big enough image.

This one scales the icons, which allows for larger spreads (the full-size image is displayed upon mouse-hover).
Cards are not rotated, but a down arrow icon is added for inverted cards. The tooltip also shows "(inverted)", with that corresponding meaning.
I think it works much better, but as always, your feedback is welcome.
Yes it does! Also makes it simpler for both you and the interpreter. Sometimes I can't think beyond PnP. "^^


I added some "DM only" layouts, inspired by the new "Deck of Many Things" layouts.
I'm not sure yet how to handle the card categories (location, feature, story).
Any thoughts?
Titles for card categories could be written on top, left to right, as oppose to the side/upside-down?
This way they stay in place and can be readable.
EDIT: I think I misunderstood?

I'm considering adding some DM-only buttons, such as Re-draw or Discard, but I'm not sure which ones will be needed.
If there can be a auto-draw function there wont be a need for re-draw. And speaking only for Deck of Many Things, reset is the way; there is no discard AFAIK. At least for RAW.

Btw I found 2 errors:

Classic Tarrot and Tarokka RL throws this when I press interpret in Drawn 2 Tokens:
67169

And I think this is because "15 Treasure Location" box(?) remains there even after I change spreads:
67170
In a newly restarted campaign, above error inst triggered in Tarokka. But the moment I draw/interpret in [DM] Advennture 15 and go back to 2 Tokens, it throws the error in 2 Tokens. Other spreads of other decks are not affected AFAIK.
---
If I dont clear the cards, 15th one even remains there:
67171


Next up: integration with the Decked Out extension.
Can't wait!

jkeller
April 21st, 2026, 13:57
Titles for card categories could be written on top, left to right, as oppose to the side/upside-down?

The DoMT talks about drawing from 3 different sub-decks (Locations, Features, or Story). I need to figure out how to add these tags to cards, and then let the DM draw from the desired sub-deck. I don't think I want to change the UI to have 3 different buttons. Maybe, I could just do it behind the scenes. If the layout-slot is tagged, then when a card is drawn, it will just keep drawing until if finds a card with that tag.


If there can be a auto-draw function there wont be a need for re-draw. And speaking only for Deck of Many Things, reset is the way; there is no discard AFAIK. At least for RAW.

Auto-draw? Not sure what you mean. I was thinking about what happens if the DM decides the drawn card just doesn't work for some reason. Might be nice for them to have a way to replace that card.


Classic Tarrot and Tarokka RL throws this when I press interpret in Drawn 2 Tokens:

Duplicated. Seems to only happen for certain cards; not sure what the bug is yet.


And I think this is because "15 Treasure Location" box(?) remains there even after I change spreads

That one's fixed now, thanks (not uploaded yet).

Tempered7
April 21st, 2026, 14:12
Hmm good points.

1. Loc / Feature / Story: As you said, only adding the tags to the relevant cards and draw from the tags without needing to create new decks/buttons seems good. But how will a GM target these specific decks without buttons? I cant remember on top of my head but If these card types laid in certain spreads in certain positions, then drawing from only on those tags as you said will be the easier way I assume.

2. By auto-draw, I mean, making the Draw button always lit as we can press it as many times as necessary to keep drawing cards. And I think this also would solve the second concern but this time, new problem arises: which card should be redrawn in 2+ spreads?

3.
Duplicated. Seems to only happen for certain cards; not sure what the bug is yet.
If you direct me I c an do more tests to find out more about it? EDIT: I only used the first cards that are drawn.

4. Will check the Fixed bug [15 treasure box] as soon as it is uploaded [no rush though].

Tempered7
April 21st, 2026, 15:44
Oh, how about redraw button is placed in the middle of each card for targeted redraws? Or would it be too convoluted?

jkeller
April 21st, 2026, 18:19
I found and fixed the "suits" bug.

I *think* (since it's really DM only) the easiest way to support tagged cards would be to just change how the Draw button works.
If the next slot to fill has a tag (e.g., "location"), the Draw button would just keep drawing until it found a card with that tag (all behind the scenes). No need for separate decks or separate draw buttons.

Or maybe I could add a right-button popup menu with options for each tag (Draw Location, Draw Feature, etc).

For re-draw - I think adding a draw button each card would be too tricky. I might be able to support drag-and-drop, so you could drag a card from the deck onto whatever slot you wanted (even if that slot already had a card). But I don't currently have a deck on the UI to drag from.

Another option: I could support Shift-click (or Alt, or Ctrl) on the Draw button, to replace the last card drawn perhaps.

Tempered7
April 21st, 2026, 18:56
I found and fixed the "suits" bug.

I *think* (since it's really DM only) the easiest way to support tagged cards would be to just change how the Draw button works.
If the next slot to fill has a tag (e.g., "location"), the Draw button would just keep drawing until it found a card with that tag (all behind the scenes). No need for separate decks or separate draw buttons.

Or maybe I could add a right-button popup menu with options for each tag (Draw Location, Draw Feature, etc).

For re-draw - I think adding a draw button each card would be too tricky. I might be able to support drag-and-drop, so you could drag a card from the deck onto whatever slot you wanted (even if that slot already had a card). But I don't currently have a deck on the UI to drag from.

Another option: I could support Shift-click (or Alt, or Ctrl) on the Draw button, to replace the last card drawn perhaps.

Glad you fixed it!

Tagging slots instead of cards is infinitely better idea than mine. If things occur behind the scenes, Group GMs can have time to quickly react and only focus on interpretations instead of clicking.

Right button pop up menu would be a nice extra for targeted draws after the behind the scenes solution, if you have time for it.

Decked Out [comes with a 52 card standard deck in a module] supports drag/drop;

* of images into decks, [which people who bought Deck of Many Things can create their own DoMT decks]
* of decks from the middle sidebar into top window to set up for play, [Use case = Drawing from the infamous DoMT deck in DMG during gameplay].
* and drawn cards from the bottom window to 1) CHAT [as links to images], 2) GM -> Other players [maybe instead of telling /whispering them, they just share the image with 1 or All Players?].

jkeller
April 21st, 2026, 21:46
Initial integration with the DeckedOut (https://forge.fantasygrounds.com/shop/items/910/view)extension is complete. The Tarot extension will automatically add any decks from DeckedOut to the list of selectable tokens.

I've only tested with the default (standard 52-card deck) so far.

Also, since the DeckedOut cards don't have associated "meanings", interpretation will be limited. We're investigating how we might add meanings.

jkeller
April 21st, 2026, 21:53
This looks cool. Will there be a way to add your own cards?

There is now!

Tempered7
April 22nd, 2026, 00:35
I went to TEST, then switched back to LIVE and now my newly created camnpaign from an unzipped module is not showing in the Launcher.
Im gonna have to continue tomorrow, it's getting late.

In a clean campaign 52 card deck from decked out is there and draws at [15] so far.

//TO-DO: 1- Create a new deck -> Draw. / 2- Meaning text.

jkeller
April 22nd, 2026, 00:41
Just FYI, the Tarot extension only looks at cards in the main deck. So, if some have been discarded (in DeckedOut), they won't appear.

Tempered7
April 22nd, 2026, 03:58
First problem: /EDITED: When I try to create a new deck with webp cards [resized to 180 x 152 this time] decked out doesnt render the images. Im pretty sure these were the old images I used to make my old DoTM decks that are lost some time ago.
At first I thought:
If the card sizes are bigger [852 x 1552 webp] than some decked out parameter, I get empty images in the deck I created.
But Tarot sees the deck's name even though it draws the empty images and placement names gets erased when cards are drawn [reset brings the writings back].

how big can we make the tokens?

As big as you want. You can use ctrl+scroll to scale the tokens up or down. If you're going to make a map that's specifically for cards to be on then I recommend you make the grid size 150 x 210 or 180 x 252. so that it fits the tokens nicely.

!Second problem!: Copying and deleting the copy of 52 card deck from decked out removes the original reference from the Tarot > Deck Drop-down Menu. Probably related to discard rule? And even restarting the campaign don't bring it back. Note that the original deck was in the play window [where you deal cards].

[B]EDIT: New campaign brings it back.

jkeller
April 22nd, 2026, 15:43
Can you check what's in your database (db.xml file) for DeckedOut? You can search for <deckbox> to find its data.

It should store a card like this:



<id-00001>
<public />
<deckid type="string">deckbox.decks.id-00001</deckid>
<deckname type="string">Deck of 52</deckname>
<image type="token">tokens/10_of_clubs.png@Decked Out - Deck of 52</image>
<name type="string">10 of Clubs</name>
</id-00001>


Does it have an image node?

What should the Tarot extension do if the card in DeckOut isn't "valid"? Just ignore it?

Currently, Tarot doesn't copy the cards from DeckedOut, it just uses them as-is. I could add some kind of "import" function - is that what you were thinking?

Tempered7
April 23rd, 2026, 05:16
This is how it looks [and goes on with other images], it does have image section:
(In the problematic campaign, there's no entry for decked out's standard 52 card deck -al least in this section).



<deckbox>
<decks>
<public />
</decks>
<storage>
<public />
</storage>
</deckbox>
<effects>
<public />
</effects>
<gmhand>
<public />
</gmhand>
<image>
<category name="00 New Cards">
<id-00001>
<image type="image">
<allowplayerdrawing>on</allowplayerdrawing>
<color>#FFFFFFFF</color>
<layers>
<layer>
<name>01-fool.webp</name>
<id>0</id>
<parentid>-1</parentid>
<type>image</type>
<bitmap>campaign/images/Cards/01-fool.webp</bitmap>
</layer>
</layers>
</image>
<name type="string">01-fool</name>
</id-00001>
<id-00002>
<image type="image">
<allowplayerdrawing>on</allowplayerdrawing>
<color>#FFFFFFFF</color>
<layers>
<layer>
<name>02-key.webp</name>
<id>0</id>
<parentid>-1</parentid>
<type>image</type>
<bitmap>campaign/images/Cards/02-key.webp</bitmap>
</layer>
</layers>
</image>
<name type="string">02-key</name>
</id-00002>
<id-00003>


Hmm.

What should the Tarot extension do if the card in DeckOut isn't "valid"? Just ignore it?
Since the deleted deck wasnt the original 52 deck, but the copy of it, I think if there is a way to keep the original while using the "discard code(?)" to delete only the copy would be expected behavior IMO. Or some sort of function that only removes the deleted copy of a deck and not the original.

I could add some kind of "import" function - is that what you were thinking?
Using them as is was what I was thinking, I just stress-tested it to see what happens if a deck or a copy of a deck is deleted and it had an unexpected behavior.
So, I have no idea if an import function is needed. I don;t know if the images are faulty, or decked out has a bug.
I will do further tests later today and report back.

jkeller
April 23rd, 2026, 13:42
It looks like the way images are stored for player-created decks is very different from the default 52 deck. I'll need to try to deal with that format. No idea if I can support different layers (but that's probably not used much). Thanks for the research!

jkeller
April 23rd, 2026, 13:55
I created a new deck (using the + button in the Decks window). It didn't store the deck under the <deckbox> node (where the default deck is). Instead, it stored it in a separate <deck> node. That's fine, I can deal with that. But my images were stored very differently from how yours appear. How did you create your "00 New Cards" deck?



<deck>
<id-00001>
<back type="token">tokens/back.png@Decked Out - Deck of 52</back>
<cards>
<id-00001>
<image type="token">tokens/animal_badger_a_01.png@Animal Tokens</image>
<name type="string">animal_badger_a_01</name>
</id-00001>
<id-00002>
<image type="token">tokens/animal_duck_a_01.png@Animal Tokens</image>
<name type="string">animal_bear_a_01</name>
</id-00002>
<id-00003>
<image type="token">tokens/animal_cow_a_01.png@Animal Tokens</image>
<name type="string">animal_cat_a_01</name>
</id-00003>
</cards>
<name type="string">Test</name>
</id-00001>
</deck>

jkeller
April 23rd, 2026, 15:00
<deckbox>
<decks>
<public />
</decks>
<storage>
<public />
</storage>
</deckbox>
<effects>
<public />
</effects>
<gmhand>
<public />
</gmhand>
<image>
<category name="00 New Cards">
<id-00001>
<image type="image">


That data looks corrupted. The red part is not in the <deckbox>.

jkeller
April 23rd, 2026, 15:02
I uploaded a new version that will deal with decks created using DeckedOut's DECKS sidebar button.

Tempered7
April 23rd, 2026, 15:19
<deckbox>
<decks>
<public />
</decks>
<storage>
<public />
</storage>
</deckbox>
<effects>
<public />
</effects>
<gmhand>
<public />
</gmhand>
<image>
<category name="00 New Cards">
<id-00001>
<image type="image">


That data looks corrupted. The red part is not in the <deckbox>.

I think there's a problem with Decked Out's deck creation code.
I updated, created a new campaign: enabled both Tarot and DeckedOut, any image dragged into the deck creation results in an empty image.
Then I created another campaign just with Decked Out and the bug still is there.

EDIT: I posted and linked this in Decked Out thread (https://www.fantasygrounds.com/forums/showthread.php?75772-Decked-Out-Play-With-Cards-in-Fantasy-Grounds&p=762367&viewfull=1#post762367).

Tempered7
April 23rd, 2026, 15:24
Here's 3 campaigns before and after your update J.

jkeller
April 23rd, 2026, 15:50
I had an issue with DeckedOut a while back. I only had the vault file, not the .ext file.
I *think* you should have DeckedOut.ext in your extensions folder.
If you don't, but you do have <FG app data>\vault\8d9044ee-5fec-11ed-8c52-0050562be458.dat, you should be able to delete that file then update to get the latest .ext.

How are you creating the deck? I'm using the + button on the window opened by the DECKS button in the sidebar (under Campaign), then dragging tokens. I did have some issues where it ignored some of my tokens, but I never saw any corrupted data in db.xml.

jkeller
April 23rd, 2026, 15:59
I looked at your campaign data.

The first two (1-Decked Out-Only-Latest and 1TAROT-22-04) are valid structures, but have an empty image for the only card:



<deck>
<id-00001>
<back type="token"/>
<cards>
<id-00002>
<image type="token"/>
</id-00002>
</cards>
<name type="string">DoMT</name>
</id-00001>
</deck>


The 3rd one (Tarot Reading Test1) looks like it has a valid copy of the standard 52-card deck, but the <deckbox> looks corrupted.



<deckbox>
<decks>
<public/>
</decks>
<storage>
<public/>
</storage>
</deckbox>
<effects>
<public/>
</effects>
<gmhand>
<public/>
</gmhand>
<image>
<category name="00 New Cards">
<id-00001>
<image type="image">
<allowplayerdrawing>on</allowplayerdrawing>
<color>#FFFFFFFF</color>
<layers>
<layer>
<name>01-fool.webp</name>
<id>0</id>
<parentid>-1</parentid>
<type>image</type>
<bitmap>campaign/images/Cards/01-fool.webp</bitmap>
</layer>
...

jkeller
April 23rd, 2026, 16:03
And just to be clear, my Tarot extension will try to read those DeckedOut nodes (deckbox and deck), but won't write to them.

My data is in the "tarot_reading" node:



<tarot_reading>
<public/>
<deck_combo type="string">DoTM [from DeckedOut]</deck_combo>
<layout_combo type="string">Single Token (1)</layout_combo>
<state type="string">spread</state>
</tarot_reading>

Tempered7
April 23rd, 2026, 16:03
Hmm. I dont know what to do from here on.
I guess we wait for a fix?

jkeller
April 23rd, 2026, 16:06
Hmm. I dont know what to do from here on.
I guess we wait for a fix?

Did you check to see if you have DeckedOut.ext?

If so, and you can't create a deck, then yeah, we'll have to wait to see what Saagael says.

Tempered7
April 23rd, 2026, 16:06
I had an issue with DeckedOut a while back. I only had the vault file, not the .ext file.
I *think* you should have DeckedOut.ext in your extensions folder.
If you don't, but you do have <FG app data>\vault\8d9044ee-5fec-11ed-8c52-0050562be458.dat, you should be able to delete that file then update to get the latest .ext.

How are you creating the deck? I'm using the + button on the window opened by the DECKS button in the sidebar (under Campaign), then dragging tokens. I did have some issues where it ignored some of my tokens, but I never saw any corrupted data in db.xml.

Just noticed trhis post.

With the + button, yes.
I noticed I had two 8d9.....dat files
I deleted all, including deckedout ext.
Now updating launcher.
Will report back.

Tempered7
April 23rd, 2026, 16:19
Found the problem and the solution:

If I drag the images from SIDEBAR > CAMPAIGN > IMAGES [all created from assets with the button], it corrupts the code.
I added them from ASSETS and now all's good. PHEW.

Back to the Decked Out -> Tarot tests.

jkeller
April 23rd, 2026, 16:30
Great!

Those names always confuse me. "images" are maps. I guess ideally DeckedOut would ignore any non-asset dropped on it (or get the token from it).

Tempered7
April 23rd, 2026, 16:57
Yeah it should.

Cleaned the dats/ext, updated, created fresh campaign in Live. Can create decks now [from assets].

Found three problems with the current version: pics below

1- Double Newly Created Deck: I think my broken deckedout installation mislead you, I apologize for that.
2- My newly created deck's cards arent drawn in either of the doubled decks [52 cards displays normally] so I think I have to export the deck then try. Will edit this.
3- Various middle image display issues: I wrote which placements have cards that have problematic mid-display into chat line [didnt press enter]. I had to hover over the very upper/right edges for them to display. It was im[possible in some cases [DM 15: 15th card -along with 14th- is clipped out and cant hiver 15th card's edge.

- hermit6
- celtic10
- dm6-quest
- dm15-adventure

jkeller
April 23rd, 2026, 19:41
I improved how tooltips are handled, but I have not been able to reproduce the clipping issues yet.

I also see the Page of Pentacles twice in your hermit6 image - that should not be possible.

Did you use the Draw button, or the Choose-then-Draw? Were there enough cards in the deck to fill the spread? I need to add some code to check for that.

Tempered7
April 23rd, 2026, 20:16
Page of pentacles is when I hover over 6th position [trail] and the display shows the pentacles instead of 8 of wands.
In all display issue images, I hover over the first or second placement I wrote in the chat and it displays another card.
Only the placements I wrote in the chat [without pressing enter] are affected.

I used the draw button repeatedly to fill the entire hand.
The deck is tarot so I think there was enough cards?

As to clipping issues, they were like that at the beginning and I enlarged the window so that I can see, but the cards were clipped.
I'll try deleting the taror ext and updating with a new campaign

---
EDIT after deleting the ext / new campaign: Choose-then-draw draws cards normally but Choose bug has returned.

Found an Error: Occured when clicking classic tarot in the drop down menu after I Draw 1 in Single Token in a Deckless window [no deck chosen].
67193

Also, Choose bug returned: When I Choose, no cards are shown. All decks are affected.

If it's not a reproduceable bug, I suspect my SSD might be corrupted after forced win11 update.

NOTE: Also, close [X] button at upper right is hard to click, sometimes its not clickable.

jkeller
April 23rd, 2026, 22:22
I was able to fix some of those issues. I'm still getting some hover issues (wrong card displaying).

I haven't seen the clipping issue (though I doubt it's a problem with your disk; I just haven't figured out how to duplicate it yet.

jkeller
April 24th, 2026, 19:03
I uploaded a new version that should address all known issues. Enjoy!

jkeller
April 27th, 2026, 02:08
Added an "Inspire" feature. It's a bit wonky, but kind of cool.

You have to select "Dragon Cards" as your deck, and "Single Token" as your spread.
Then once a player draws the card, the DM can click "INSPIRE" to award them that card.
A card is created in their inventory (with the image, and a description of the effects).

Each card has two effects. I generally let the players use the first effect as a reaction, OR the second effect as a bonus action (played before a roll). The card should be deleted after use. I suggest only letting characters have 1 (or maybe a couple) cards at most, but the extension doesn't enforce that.

This is a new feature, so feedback is appreciated! I've only tested this feature with 5E (not sure if inventory works the same way with other rulesets).

67216

Oh, I should mention this update has a module with the extension - but it's just tokens, and as far as I could tell, you don't need to activate it or anything, it just works.

Also - it just grabs the first character for the client who clicked Draw. So if the client is controlling more than one character, it may give the card to the wrong one.

LordEntrails
May 2nd, 2026, 17:44
FYI...
Assets only are a link to a graphic file in the FG Data folder. They have no other information attached to them.
Images are records that contain links to one or more graphic files (layers) as well as xml data associated to them for LOS, Lights, FX, etc. I assume they are their own windowclass.

It doesn't surprise me they would behave differently when added to your new windowclass.

Tempered7
May 2nd, 2026, 23:59
Thanks LE for clarifying. I made different decks with Deckedout in the past [and they got lost on format] and kinda forgot that.

I tested both to see if any errors, and the new Inspire feature [I like it!].

Both in LIVE and TEST I got this error after pressing Interpret anywhere:
67262

Also, I dont know if its related but Insipred [given] cards did not delete them from the inventory after usage.
I tried this both in GM-only acc, and PC client connect to myself [GM].
I tried it both Carried and Equipped but when I rerolled Deception/Survival/etc with both ADV +2 and just with +2, the card didnt delete itself.

jkeller
May 3rd, 2026, 00:33
Thanks for the bug report; I'll take a look.


Also, I dont know if its related but Insipred [given] cards did not delete them from the inventory after usage.

As for deleting the card, I have not thought about that yet. I'm not sure how I would know they used it - some card effects are not really backed by game mechanics.

For now, it's easy enough for the player or DM to delete the card I think?

Tempered7
May 3rd, 2026, 01:05
Thanks for the bug report; I'll take a look.

As for deleting the card, I have not thought about that yet. I'm not sure how I would know they used it - some card effects are not really backed by game mechanics.

For now, it's easy enough for the player or DM to delete the card I think?

Np.
Yeah, I also thought about that, especially adding +1d4 to non-combat rolls is not detectable.
Best to leave it to GM or the player.

jkeller
May 3rd, 2026, 19:42
I uploaded a new version:
- most of the DM buttons have been moved into a popup menu
- add DM options to invert the card, discard it, remove it from the deck, and broadcast the meaning
- added some more spreads
- better support for the DM layouts
- added initial support for "tagged" cards. Hold the CTRL key when clicking on Draw to (in some cases) get a card that shares a tag with the slot. For example, if you're using Dragon Cards in the Character Creation layout, using CTRL-Draw on the "Class" slot will draw a card appropriate for that slot.

Gilafron
May 24th, 2026, 15:18
Hi jkeller,

I'm loading the Tarot game and I'm getting the errors below. It occurs when opening or pressing the settings button. Nothing is working on the tarot window.

67590

jkeller
May 24th, 2026, 15:53
Thanks, I'll take a look.

jkeller
May 24th, 2026, 16:11
Hi jkeller,

I'm loading the Tarot game and I'm getting the errors below. It occurs when opening or pressing the settings button. Nothing is working on the tarot window.

67590

I have not been able to duplicate that issue so far. I uploaded a new version just in case mine was different.

What ruleset are you using? Are you running any other extensions that might be interacting with this one?

jkeller
June 4th, 2026, 17:55
I made a minor change to make it easier to award inspiration (in the form of a Dragon Card).

With a single click on the "Inspire {PC}" button, the DM can award a random card to the currently selected PC in the Combat Tracker.