When monster (GM) rolls D30 natural 30 and applies bonus dice (eg +D20), the boosted attackRollFinal was only applied on GM's client. Defender (player) saw stale unboosted values — defense dialog never appeared. Add d30RequiresSocket flag (GM side): always send attackBoosted socket when GM-owned attacker has D30 data, because the D30 choice/dice result is only known on GM's client. Add d30PendingFromGM flag (player side): suppress hook-based defense dialog and comparison message creation when D30 data needs GM-side processing. Socket handler (handleAttackBoosted) shows dialog with correct values. Track d30ChangedAttack for same-client restart logic.
Lethal Fantasy RPG for Foundry Virtual TableTop
The Official game system for playing Lethal Fantasy TTRPG: The Role Playing Game on FoundryVTT. This fully functional system is the foundational framework to build your game.
This product's format, programming code, and presentation is copyrighted by Lethal Fantasy Games LLC.
This system & product are used with permission granted as part of the partnership agreement between Foundry Gaming LLC and Lethal Fantasy Games LLC. It uses the following trademarks and/or copyrights:
© 2025 Lethal Fantasy Games. Content copyright Ted McClintock, Lethal Fantasy Games LLC. All Rights Reserved. Lethal Fantasy® is a Registered Trademark of Lethal Fantasy Games LLC. All Rights Reserved.
Lethal Fantasy Games is ©2025 Lethal Fantasy Games, LLC. All rights reserved. Lethal Fantasy, Lethal Fantasy Games, and their associated logos are trademarks of Lethal Fantasy Games, LLC. https://lethalfantasy.com/
For inquiries on developing content for this ruleset please contact Lethalted@lethalfantasy.com
Community
Please join our Discord server Lethal Fantasy games https://discord.gg/UDvnnyvreV
It's the place to ask questions on how to use the system, make feature request and follow the development of the system.