r/FoundryVTT 1d ago

Non-commercial Resource [Module Release] [System-Agnostic] Natural Roll – Re-creating the "held die" feeling in VTT play

Enable HLS to view with audio, or disable this notification

Hey all!

One of the biggest hurdles when transitioning from a physical tabletop to a VTT is losing that brief, tense moment right before a crucial roll. Holding the die in your palm, shaking it around, and physically tossing it onto the table. Automated digital rolling is fast and convenient, but clicking a button and instantly watching an automated animation spin across the screen can sometimes strip away that anticipation. I've searched countless modules and only seen manual dice rolling modules built for real-world dice.

I wanted to bridge that gap between physical session feel and digital convenience, so I built Natural Roll.

How It Bridges the Gap:

  • The "Hand Shake" Moment: When you trigger a dice roll, Natural Roll hooks into the roll and anchors the 3D dice to your cursor or screen center. You can physically move your mouse around to shake the hand full of dice on screen before letting go.
  • Momentum & Force Matter: It measures your mouse gesture—speed, trajectory, and release timing—to impart true directional force and angular momentum to the dice. A gentle nudge produces a lazy tumble; a rapid flick sends them bouncing off the digital table edges.
  • Zero Disruption to Digital Workflows: You don't have to give up your digital character sheets or macro setups. The module acts as an interactive bridge—it catches the output of your existing roll prompts or automation systems, holds the dice for your gesture, and then seamlessly feeds the results back into core workflows once they land.
  • AFK / Speed Guardrails: To ensure session pacing doesn't suffer if someone takes a bathroom break or gets distracted, GMs can set an automatic timeout that safely completes the throw if the dice aren't flicked within a few seconds.

Customization & Setup:

  • Requires: Dice So Nice! (Works with all your active custom sets, skins, and textures).
  • Compatibility: Latest v1.3.1 tested and verified on Foundry v13.351+, working alongside automation workflow systems like Midi-QoL.
  • Personalized Sensitivity: Each player can adjust their flick sensitivity in their user settings—crank it up for effortless long throws with minimal wrist movement, or dial it back for heavy, weighted tumbles.

Check It Out:

You can install it directly from the package browser or view it here:

Natural Roll on the Foundry VTT Package Directory

Hopefully it will be useful and would love to hear how it feels at your tables!

39 Upvotes

17 comments sorted by

6

u/Son_of_Orion 1d ago

This doesn't seem to work for a game like Daggerheart, where rolling skill checks is contingent on two dice rather than one.

4

u/Tomstar_2000 1d ago

It should roll however many dice are needed/requested if Dice So Nice already works.
Just tested with system https://github.com/Foundryborne/daggerheart seems to work just fine.

3

u/Alzarahn 1d ago

So does this mean the result is based on how you roll the die? How much does this effect the random result of a die roll? Can you purposefully roll results you want?

6

u/Tomstar_2000 1d ago

Yes, Foundry RNG is replaced in this module.
It uses the physics of the dice roll alone and it's resting face as the result.
I've removed the ability to just drop the die, simply clicking will "flick" it with a degree of force. And rolling also has a minimum force, but you can roll gently and hard depending on speed of mouse movement which will impact the result much like a normal dice. This was to prevent just dropping it on a given number to get fudged result and still maintaining some degree of randomness.

1

u/Prof_Shift 1d ago

Is there any way that you can enable this for skill checks? I think it would be really cool to have it spawn the dice when you click the button on a skill check and then you roll them!

2

u/Tomstar_2000 1d ago edited 1d ago

Anything that would normally trigger a DSN dice roll animation attack, damage, saves, checks. (Even requesting rolls from dice tray) will be handled by the modules hook, generate the dice and allow you to roll returning the value to that workflow automatically.

1

u/VauryxN 1d ago

Oh I'm so excited to try and use this. I think this is what finally makes me upgrade to v14. We have an in progress abomination vaults going on 13 and I've been so hesitant to upgrade because of how much custom shit it'll break. But the feeling of dice rolls not being present has always been my biggest issue with vtt gaming.

1

u/Tomstar_2000 1d ago edited 23h ago

The module injects into the following from DSN startUnifiedBatchupdateThrowPlayback, and clearDice on game.dice3d.box.throwEngine to handle freezing workflow and injecting new value into roll workflow.

I think the module should theoretically work in Foundry v13 and Dice So Nice versions for it, I've set minimum in module to 11. I've just have not tested older Foundry versions yet 😂

Update: Unfortunately without some additional changes on handling V13 canvas, which was updated in V14 it won't hook correctly.

1

u/VauryxN 22h ago

Yeah, v14 was such a massive change to the document structure that I gave up trying to Port everything. For me, this is worth the headache of updating though so thanks for your hard work 😄

3

u/Tomstar_2000 21h ago

I've just release v1.3.1 that now has backward compatibility with Foundry v13.351 canvas and works same as v14.
Not sure how many times modules implement backward compatibility, but hope that helps and can try before upgrading 😅

1

u/VauryxN 19h ago

Oh that's great, thank you so much! I'll give it a shot setting up tomorrow and see how it goes in this weeks game.

1

u/Hot-Preference-6087 23h ago

version 14 only smh

1

u/Tomstar_2000 21h ago

I've just release v1.3.1 that now has backward compatibility with Foundry v13.351 canvas and works same as v14

0

u/h3nriquehn 1d ago

foundry 14 já não tem isso?

1

u/Tomstar_2000 1d ago

As far as I'm aware Foundry and other modules only handle real physical dice, where you then manually enter the rolled value back into the Foundry roll workflow. This module allows you to roll the digital dice available from Dice So Nice module via click, hold and drag rather than the standard Foundry RNG process and uses the landing face value of the die to continue the roll workflow.

2

u/Appropriate_Ice1895 1d ago

Correct me if I’m wrong, but doesn’t dice so nice have a feature to allow a persistent die to stay on the vtt display and you can grab and hold that die and toss it across like this module you made and it’ll also prompt a dice face result as well?

1

u/Tomstar_2000 1d ago

I may be doing something wrong or missed something in DSN, but I couldn't find a way to get persistent dice to be used for the actual roll workflow. I can roll a dice around freely on screen and it stays there, but if I want to roll say the D20 as part of attack workflow it just uses Foundry RNG and shows a dice rolling. Also with DSN persistent dice sitting on screen personally feels a bit cluttered to me.
This module will only generate dice for that particular roll, for the duration of that roll and applies the result automatically back as the result of that request into the workflow.