Advanced Search

Polymorphism Extension (.ext file) [Fantasy Grounds Unity 5E ruleset]

Polymorphism Extension (.ext file) [Fantasy Grounds Unity 5E ruleset]

ZIP File

Polymorphism Extension (.ext file) [Fantasy Grounds Unity (5E ruleset)] - (recommend you read whole thing and watch video before you buy) Managing Polymorph effects are one of the most painful aspects of D&D 5E. This extension solves that problem by making the transformation in combat tracker from one thing to another, simple. A combat tracker entry will have a linked sheet - PC or NPC - that it will bring up for the host or player. If any of the spells/powers this extension supports are present in the sheet then a polymorphism subwindow will appear at the top of the actions tab (PC) or main tab (NPC). A list of spell/powers showing what this sheet supports will be available for selection. Another list will be available to select NPCs that the DM has populated by dragging NPC's successfully onto the token next to this list. For PC's that list of NPC's is stored in charsheet so is remembered as long as character is around - in or out of combat tracker. For an NPC that list is only remembered for the life of the combat tracker entry. But bringing up an NPC sheet outside of combat tracker will allow DM to load up the list there and then use that custom NPC to populate the CT entry with an initial list. Selecting an NPC for the spell/power to use will display its token next to it. Double-clicking on the token gives access to that token's sheet for reference only. An active button will appear when everything is selected. When the active button is selected, the relevant self or targeted combat tracker entry for that spell/power will transform. If its a concentration spell all other active concentration effects will be removed then the ones related to that spell/power applied. A stop concentration button will then appear on the caster and hitting it will revert all the creatures in that spell back to their original forms. The actual polymorph combat tracker entries will have a polymorphism subwindow across the top of each sheet's tabbed windows (default ones anyway) showing what spell/power did this to them and what they were before. The sheet will be completely updated per RAW 5E rules for that particular spell/power. Double-clicking on the icon will take you to the sheet representing what you really were. When the concentration ends or the DM removes that particular concentration effect the combat tracker will revert to its original form.

In addition as a bonus, having the host drop an NPC link on the players icon in the upper left which displays that NPC to the player and allows them to attack/damage with it - now with this extension will allow targeting and end turn for it also.



V1.1 - Found race condition with Death Indicators extension (which I use) so had to make a minor fix to make sure it no longer happened to me. 

V1.2 - Underlying sub_polymorphism window shared between charsheet and npc windows was slightly to large and was eating button clicks in NPC scroll bar - expanded min size of NPC window and fixed.


V 1.3 - In order to support extensions that change tab order and some class windows names in 5E PC and NPC sheets this will always go by the sub window name in the tab instead of the index as it previously did. It will also verify that a sub window exists before trying to add polymorphism into it. If you do not have main and actions tab sub windows exact naming for a PC or main_creature for an NPC - then this will not work. Period. If you are using standard FGU and 5E or any extensions that do not modify the tabs - then this will not effect you.  

V 1.4 - Several nil type declarations were incorrect, may have been effecting the combo box window logic in rare cases. 

V 1.5 - Added new option to allow for FULL control of combat tracker NPC by player. By default this is on, and when it is the player the host drops a combat tracker NPC link onto will be given ownership of that CT entry and will be able to do anything with it - including changing it. As I want this option for my players and others may not want them to be able to edit things - I've made this optional. If not set the normal polymorphism behavior of allowing shared NPC's to still use end turn and targeting is still in effect. When this option is on you pretty much have a player completely owning this combat tracker entry until you remove it from combat tracker which allows the use of polymorphism buttons and comboboxes also.

V1.6 - Bug fixes for Wild Shape when using circle forms druid level checks and also for elemental wild shape feature allowing fire,air,earth, or water elemental as special non beast wild shape option.

FG Forums:

Extensions = RISK: This note is added to all the extensions I maintain. I want users to understand that extensions are code that is added to or overrides portions of code in the Fantasy Grounds Unity (FGU) application. When the underlying code in FGU changes it can break an extension. When you run with other extensions they can conflict by trying to overwrite the same parts of the FGU code. I will keep my extensions working with FGU changes, and the extensions I use (listed in my FGU signature) as I have direct control over those things. I cannot make the same promise with other extensions. If I am notified of an incompatibility I will attempt to resolve it - but if I cannot I will list what the known extension incompatibilities are. Understand before you get any extensions that it comes with RISK. Not just my extensions - any extension. 

Yeah, most extensions won't say that up front - but your paying money so you should know the risks. I'll stay on top of bugs or breakages as best I can, but know what your getting into when its BETA code subject to change at anytime. This was 350+ hours of work and rewrites to figure out how to do what I wanted and still there are some caveats I list at the bottom - so read through them. 

Anyway, on with the explanation.

That was a lot of words in my initial explanation. Let's simplify it.

For polymorph spell/power that applies to self:

Select spell/power and NPC it should use.
Click active button. Poof! You're now that NPC with a preformed sheet respecting the RAW 5E rules for that spell/power.
Click active button again, Poof! You're back to what you were with any changes in HP etc. based on RAW 5E rules for that spell/power.

For polymorph spell/power that applies to target(s):

Select spell/power and NPC it should use.
Have targets selected.
Click active button. Poof! The target(s) become that NPC. They are now that NPC with a preformed sheet respecting the RAW 5E rules for that spell/power.
If target was the same faction it's considered willing and POOF!. If not the same faction then relevant saving throw is applied - those who fail - POOF!
If you hit stop concentration all concentration effects will be removed (which causes POOF! They revert back.).

You know that is still too wordy.

Hit the active button and transform. Use the sheet that appears. Select active button or double-click stop concentration button and transform back.

There. That's it in its simplest form.

Of course, polymorphism is never really that simple if you want to understand what REALLY happened. And all the work that had to be done to make it "simple" for you.

There is a very long and boring silent video that basically runs through all the testing I did on this extension. Expect to fall asleep if you watch it.

The following is an in-depth description of all this does, which I warn you is long and tedious.

The host:

The host can do anything at anytime with a sheet that supports a polymorphism window. Anything he does on a sheet appears on the owners version (player) and visa versa. Only the host can populate the NPC list which is done by dragging a custom NPC or reference module NPC link and dropping it on the polymorphism token field. If the current filter accepts it, it will be loaded into the list. The list is shared by all the spells/powers which limit based on their RAW 5E rules which NPCs you actually can select from. Switch the spell/power - it forces you to re-choose an NPC because the list of available choices likely changed also. Any NPC added to a sheets list will be shared to the owner of that sheet. When removed the share will also be removed. A host can delete any active effect in the combat tracker(CT) - which if a polymorphism effect will cause the CT entry to revert back to its original form. Only the host can delete all NPCs in a list or individual entries. See player below for things they can both do.

The player:
(As caster of spell/power)
A player can only select spells/powers and select from the resulting list of NPCs. They have no control over what is in the list. Once things are selected the token for that NPC appears and double clicking on it will bring up the NPC reference sheet if it is still shared. I say "still" as I've seen shared NPC sheets revert back to not being shared between sessions for some reason. Error about not having access to the module or share will appear and DM can re-share that NPC if necessary. Sharing was handled as best as I could. Its an imperfect world. The active button will also appear when everything is ready and will "cast" the spell/power when selected IF ITS THE PLAYERS TURN. I'm not going to spam the chat with "not your turn" messages so if nothing happens CHECK IF ITS YOUR TURN. This prevents players from spamming polymorph transformations blinking on and off across the board all the time. Which they can still do during their turn of course.

(as the target)
Once a polymorph effect happens the player receives a new NPC sheet with all the RAW 5E modifications required by the spell/power rules. I'll list exceptions to this later. They will have a polyrmorphism window that is purely informative (unless an exception which I list later). A field telling them which spell/power did this to them is shown along with what they were originally (name and token). Double-clicking on the token will take them back to their original sheet. In the case of the PC this will be the charsheet, in the case of an NPC this will be the custom NPC sheet or the reference module sheet. If this was something you did yourself you will have the active button available and likely the stop concentration button available also. Both of which will tranform you back.

Supported Polymorphism spells/powers:
[For any spell/power to be supported it must appear in the PC (charsheet) or NPC(CT sheet or custom NPC sheet) and the "Spellcasting" trait must be present for an NPC. All concentration spells will automatically stop all other previous concentration spells by the caster when cast]
[The Circle of the Moon feature Primal Strike will be incorporated into any NPC transformation. The Circle of the Moon feature Elemental Wild Shape and Circle Forms will expand some NPC selection options where relevant.]
[All active targets will be transfered between the source node and the polymorph node.]
[There is no perfect solution for transferring effects so I've made up the following rules on it:

Any effect that is originally on the source will be transferred to the polymorph with the "isactive" turned off with the following exceptions:

The following conditions will leave an effect active so it plays out its normal life cycle. If still there at end of polymorph will transfer back.
If the effect has a "duration" > 0.
If the effect had a "(C)" meaning its a concentration effect.
If the effect is "Blinded", "Charmed", "Cursed", "Deafened", "Frightened", "Grappled", "Intoxicated", "Paralyzed", "Petrified", "Poisoned", "Prone" or "Restrained".

No effect that comes with the polymorph node creation will be transferred back to the original.

If the DM decides to activate, deactivate, modify, or remove any effects on a polymorph node it will be up to them to make sure the original has whatever effects it should after the transformation back.

That's the solution I have for effects.]

Polymorph Spell - This will support the full RAW 5E rules for this spell in the newly created sheet after the spell takes effect. Labels in the sheet will inform you that this new sheet is the one you use. If you go over to the original sheet (PC) or reference sheet (NPC) the label will be different and tell you DO NOT USE that sheet. The list of NPCs will be limited where it can be based on the RAW 5E rules. This is a targeted spell. If the target is of the same faction as the caster then it will not require the saving throw to take effect. Otherwise, it will.

True Polymorph Spell - This will support the full RAW 5E rules for this spell in the newly created sheet after the spell takes effect. Labels in the sheet will inform you that this new sheet is the one you use. If you go over to the original sheet (PC) or reference sheet (NPC) the label will be different and tell you DO NOT USE that sheet. The list of NPCs will be limited where it can be based on the RAW 5E rules. This is a targeted spell. If the target is of the same faction as the caster then it will not require the saving throw to take effect. Otherwise, it will. This supports special custom NPC types of "object" or "item". If you make a custom NPC that has a type of one of these it will be treated as an object by this and that other spells in polymorphism (won't be considered a creature). For example, making a chair NPC with whatever structural HP it would have or anything else with a chair token and a type of "object" or "item" would be respected as an object in this spell.

Animal Shapes Spell - This will support the full RAW 5E rules for this spell in the newly created sheet after the spell takes effect. Labels in the sheet will inform you that this new sheet is the one you use. If you go over to the original sheet (PC) or reference sheet (NPC) the label will be different and tell you DO NOT USE that sheet. The list of NPCs will be limited where it can be based on the RAW 5E rules. This is a targeted spell. If the target is self or not of the same faction as the caster that target will be ignored. A special feature that supports the ability to change shapes while a current animal shapes spell concentration is in effect requires that the target list be an exact subset of the current Animal Shapes concentration effects in play. If it is, then only that subset will change without breaking the concentration and losing the others in that active spell. Otherwise, any deviation from the target subset will result in breaking the concentration of the others (reverting them back) and casting this new target list as a new animal shapes spell transformation.

Shapechange Spell - This will support the almost the full RAW 5E rules for this spell in the newly created sheet after the spell takes effect. Because of the nature of this spell and that you can still use your character features and spells at DM's discretion based on shape you took - this new sheet will have everything you need according to RAW 5E rules except those DM discretion things. When you go back to the original sheet it will also have a different label stating this sheet is for LIMTTED use at DM's discretion (unlike other reference sheets which state DO NOT USE). This is a self only spell and the special case allowing you to change shape while active is handled by going back to your source sheet where the NPC selection in this case will allow you to select a new NPC and hit the active button again (even though its highlighted already). If the NPC selection was different than the current one it will delete the Shapechange effect (reverting you back) and then transform you into the new NPC shape.

Shapechanger - this is an NPC type which I've left completely up to the DM on what NPC's it can turn into. There are no changes to the resulting sheet - this is simply going to turn them into the pure NPC. If you want special conditions for this (like a vampire turning into mist) you make your own custom NPC. Or in some cases the shape changed attack/damage features are already on the NPC sheet and you can do nothing at all and don't even trigger polyrmorphism.

Wild Shape - This will support the full RAW 5E rules for this in the newly created sheet after the wild shape takes effect. This is a self only thing so simply supports the active button switching back and forth.


When an NPC is dropped by the host to a player they will now be able to use end turn and target things for it.
[Only a friendly creatures targets will show on player's combat tracker. Only a friendly creature can have the sheet brought back up by double-clicking on the map.]

Now for the caveats:

Combat tracker (CT) entries can only be supported by polymorphism if they have a source that can used to revert back into their original form. This can be a PC charsheet (charsheet.*), custom NPC sheet (npc.*), or reference NPC sheet (reference.*). If you create something directly on CT you will need to copy it over to a custom NPC group, delete the CT entry, and drop it back in CT from that custom NPC entry. That will establish the source for an isolated manual CT created entry.

When a polymorphism effect is deleted there is no way for me to currently get the source_name that generated that effect to update their sheet so sub_polymorphism window can be updated. The result is that stop concentration or active button may be out of synch. Anytime there is an window update issue like this (stuff not looking correct at top of a sheet) just switch back and forth between tabs and the window will get updated correctly. Trick is getting that to happen when things outside of the window happen and it needs to react to them. Rare - but it happens. Switching back and forth in tabs is the all purpose magic workaround.

If you change data without changing it in the originator sheet (charsheet, custom npc sheet, reference npc sheet) other than name/hit point data/init value/effects/targeting then when you transform back to the originator that data will be lost. I'm not going to copy the entire sheets data off someplace just to cover the off chance you changed a letter in a descriptions someplace. If you make changes make sure they are also in charsheet or in a custom NPC sheet that is the originator I'll be recreating for going back.

I'm not doing disguise or dopplegangers because its just dropping a new token over your old one. To simple to bother with an extension for that.

Once using this extension DO NOT use anything else to do the supported spell/power or you will get the usual dumb result with nothing but a die roll and an effect. While the spells must be present to tell this extension your sheet has them - they are not to be used directly if you want to actually do polymorphism extension.

We do some tricks to force updates in polymorphism_selected field by adding ":::" as prefix temporarily to indicate we are forcing things to update which will correct the field before it gets displayed. You may see this left in database but should never see it left on screen. Simply reselecting field will correct it if somehow it does.

If BAD THINGS HAPPEN like network drops or crashes or all the joys of FGU that can happen, this is what might happen with this extension. Essentially, at its core, this extension creates and NPC in combat tracker, and deletes the original combat tracker entry when its done during a polymorph. If BAD THINGS HAPPEN this can result in you having two CT entries - the original and a new one. Simply delete the old one and start again. If you are reverting back to the original and BAD THINGS HAPPEN then you can end up with an orphan NPC and no original PC or NPC. At this point you'd have to remove the polymorph NPC manually from combat tracker and add the original PC or NPC (custom or reference) back into combat tracker. If BAD THINGS HAPPEN when your windows are replacing, coming up, refreshing, they can appear scrambled or gone. Just tab back and forth for the scrambled ones, and bring up the CT link directly then double click on polymorphism token to recover all the sheets involved with that polymorph. If things are locked up because something crashed and caused internal flags to get scrambled, hitting active button or clearing the select list will reset all of them. That's all I have to say on "recovery" when BAD THINGS HAPPEN. And trust me - in FGU? BAD THINGS CAN HAPPEN.

If you report bugs, preferably in the Fantasy Grounds Forums under the thread referencing this extension, I'll get to them as soon as I can. If you say "it broke" and that's it? Don't expect support. I'll need a duplicable set of instructions, or a good description on how some hard to track bug occurs. Note, BAD THINGS HAPPENING are not bugs I can fix. Network drops, crashes (that are not caused by me) are not things I can solve.

I'm sure I've forgotten something else as this took about 350 hours to develop and suffered multiple rewrites. The code is heavily commented but its still big and messy. Point is - it works. Or you'll let me know otherwise I'm sure.

Programming overrides of CoreRPG/5E code (mostly this if for incompatibility determinations):
[ Copy means I had to literally replace the code with mine. Override means I call the original code before or after my new code - meaning if something replaced it lower down than the 100 of my extension it will still be called. ]

Copy from CoreRPGcommonscriptscombobox.lua logic as it did not do what I wanted in terms of subwindow usage. Needed script to expand and contract subwindow as it list was shown or hidden.

Copy from 5Ecommonscriptbuttongroup_tabs.lua logic as it did not do what I wanted in terms of notifying me when tab changed.

Override of CoreRPGdesktopscriptsmanager_characterlist.lua:onShortcutDrop version as it would not let player controlled NPC's target or end turn - use new NPCowner DB entry.

Override of CoreRPGscriptsmanager_combat.lua:getCurrentUserCT version as it would not let PC's target.

Copy of CoreRPGscriptsmanager_combat.lua:handleEndTurn() because it would not allow player controlled NPC's to advance next round.

Copy of CoreRPGscriptsmanager_combat.lua:replaceMapToken for when polymorph needs to take the old CT map icon and turn it into new CT map icon of our polymorph node.

Override of 5Escriptsmanager_action_damage.lua:messageDamage to obtain the damage exceeded data.

Copy of 5Escriptsmanager_action_damage.lua:applyDamage because I had to make sure [INSTANT DEATH] also passed on the exceeded damage, and also do some concentration stuff.

No copy or override but use this same code for something I do in my code with 5Ecampaignscriptsnpc_skill.lua:parseSkillString to do it from a string and return a broken out list of skills and modifiers.

No copy or override but use this same code for something I do in my code for adding a PC back into the CT my way, will not effect anyone else using the original code - CoreRPGscriptsmanager_combat.lua:addPC().

Database Fields created/used by extension:

polymorphism - tag holds active status and list of NPCs (these are ) - active status loosely tied to active button.
polymorphism.[child].class - type of record link to NPC (pretty much always npc)
polymorphism.[child].DisplayText - text to display to represent this NPC in polymorphism_selected combobox.
polymorphism.[child].Record - link to the NPC record (npc.* or reference.* type of link)
polymorphism.[child].token - token from the Record for the NPC
polymorphism_filter - combbo box selected value for spells/powers.
polymorphism_original_filter - field for display of what spell/power caused polymorph.
polymorphism_previous_filter - the original value of polymorphism_filter before polymorph on this node.
polymorphism_selected - combbo box selected value from list of NPCs.
polymorphism_original_name - filed for the display of what original NPC/PC name was
polymorphism_previous_selected - the original value of polymorphism_selected before polymorph on this node.
polymorphism_originator - link to the PC/NPC this polymorph was originally (used to revert back to it)
polymorphism_linked_token - token field showing current polymorphism_selected NPC token.
polymorphism_original_token - the original token matching polymorphism_original_name for the polymorph.
polymorphism.dmgexceeded - when polymorph was killed how much damage exceeded HP.
polymorphism_hptotal - original HP total before node was polymorphed.
polymorphism_wounds - original wounds before node was polymorphed.
polymorphism_hptemp - original temporary HP before node was polymorphed.
polymorphism_isactive - original effects isactive flag and also indicates this is somethign to deactivate in polymorph but copy back over when done.

NPCowner - user that owns this NPC - used for end turn and targeting of a player owned NPC. Also set and used by NPCs with polymorphism.

 More from this Title's Contributors
 Customers Who Bought this Title also Purchased
Reviews (2)
Discussions (4)
Customer avatar
Nick W September 04, 2020 1:25 pm UTC
i have an issue with players using the direction marker on their tokens. when they move their token markers it comes up with an error. repeatedly. maybe its a conflict with the 5e enhancer extension? i have the broken down version that splits it into different ext files. to work with critically awesome essentials.
Customer avatar
Bill P September 04, 2020 2:03 pm UTC
I'm not sure why your telling me this unless you have turned off all extensions but polymorphism and see this behavior, or turned off my extension with the other ones and suddenly not seen this behavior. Have you? Are you telling me you can turn off my extension and all this works - then turn it back on and none of it does? Go to the Fantasy grounds thread for polymorphism and describe it in detail IF you have proven the above sequence is true.

That includes the console errors you are getting also - IF you have seen it working with ONLY my stuff and then not working then working when you turn off and on my stuff with other stuff. For sure I have no issues with what you are describing in the extensions I actively support. And while I'm willing to look at things outside of that if given enough details - there will always be risks running with other extensions if they do things...See more
Customer avatar
Maarten K September 03, 2020 7:23 pm UTC
Excuse me but do you know if this extension conflicts with the: Critically Awesome Essential extension by diablobob?
Customer avatar
Maarten K September 03, 2020 8:08 pm UTC
I wish I could just test it.. I use a lot of extensions that also change the Character sheet, so I am a bit afraid that there will be a conflict.
Customer avatar
Bill P September 03, 2020 8:21 pm UTC
Basically, you will never hear me claim it works with something I don't personally use. Having said that, the comment right below yours claims he did not see it have any conflicts with a number of things and the forum post I use for this basically had someone else just try it out and claim it worked for a variety of things also. But again, I understand the risk in not wanting to pay it without knowing if it works. Problem with extensions, and FGU as a BETA product, means its a risky business to get any extensions so I understand if you want to pass. For sure I've told others that its the price of a mediocre meal with no real tip if your eating out for 1/2 hour someplace, and sometimes when I do that I get a bad meal. So risk - understood. You'll have to make your own call on that but I for sure understand if you don't want to risk it.
Customer avatar
Maarten K September 03, 2020 9:00 pm UTC
Hi Bill, I gave it a shot and it works but it shows up in the inventory, when used with I know it's a lot to ask, but his extension add a new tab, namely journal, I think that's what's causing it to end up in the wrong place? Would you maybe in the future have a look? You might also be interested in using Madnomad's extension, it give you the ability to add notes, story entries to your party sheets, it will also tell your PCs when its time to level up.
Customer avatar
Maarten K September 03, 2020 9:15 pm UTC
Could you post a list of all extensions you use?
Customer avatar
Maarten K September 03, 2020 9:23 pm UTC
There is also a conflict between the disguise of one-click druid and yours, unfortunately, but no other conflicts! I know it's a to simple thing to add, due to it being just a token swap as you said.. well will just have to swap the token of my druid then.. it doesn't interfere if your PCs doesn't have wildshape.
Customer avatar
Maarten K September 03, 2020 9:45 pm UTC
Hi, I asked Madnomad on advice how this could be fixed. He said that if you would be able to: name bind your tab, to the action tab by/name id, it would be able to fix the issue. I don't know how difficult this would be to implement, but hopefully, it might be something you would look into?
Customer avatar
Bill P September 03, 2020 9:47 pm UTC
Get with me in and PM SilentRuin. For sure the other two had no conflicts with what your mentioning and you stating it shows up in "inventory" made no sense to me. For sure it will ONLY show in Actions tab when polymorphism is not in effect. And when it is in effect you will be the NPC sheet you turned into - though if you "look" at your PC sheet you will see it in every single tab with a title telling you that is NOT the sheet you should be using. Gist being - not sure what your stating so get with me in FGU forums and PM me - then we can figure it out.
Customer avatar
Maarten K September 03, 2020 9:50 pm UTC
Ok will do, you actually helped me before ;), I'm vaughn, its pretty later here where I live so will PM you the details tomorrow.
Customer avatar
Bill P September 03, 2020 10:01 pm UTC
Per text description one of things I had to overwrite for my stuff was the low level tab coding. If someone has hijacked the 5E tab number sequence, which that lower level of the code is only dealing with index numbers, then I can see it putting the actions tab (7) wherever index 7 currently is defined. For sure I wrote it so that if anyone added new tabs I would not mess with them - but per the low level code - that was assuming they did not mess with the current index sequence identifiers. IF they did, then yeah - my stuff and the underlying low level code would be messed up with no real way to identify what changed as everything was predicated at that low level of the code and its use of indexing as the ID. So binding would not be good enough. You'd have to actually have some sort of map that translated the ID to name and visa versa. Will talk to you tomorrow in PM then - will drop you a note as talking in here is just too - space consuming. Not really the venue. If they are different than this there will...See more
Customer avatar
Maarten K September 03, 2020 10:33 pm UTC
Ok, thank you so much, I also posted on your thread on FGs!
Customer avatar
Erik T August 30, 2020 3:12 pm UTC
As far as my testing goes, this extension is worth every cent. I like how the different polymorphs stuff have been implemented, allowing maximal flexibility to the player and the DM. I'm still testing/having fun with it, just to understand this extension limits (if any).
At present, I'm not able to compare it with other shapeshifting extensions (i.e. One-Click Druid) since I have still to play a druid as a player. However, Polymorph extension is solid and, at present, I didn't see any conflict with other extensions (Rob Twohy, DiabloBob, Kent Mccullough extensions and many others).
Customer avatar
Neil T August 18, 2020 11:37 am UTC
Looks great, might have given it a go for $5, but $13?!
Customer avatar
Bill P August 18, 2020 2:37 pm UTC
Completely reasonable take on the price. Personally, it was 350+ hours work and over 4000 lines of code for a very niche part of D&D 5E. So getting 5$ a copy is what I'm willing to support it for. But you are correct, doubling that and adding taxes makes it more expensive to the end user. The price is the average cost of eating out once, so that's fine by me. Still, I ABSOLUTELY understand about shelling out that kind of money on something unknown. Especially, considering the amount of times you will actually directly use it in your campaign. I developed it because I have a druid in mine and he is using the wild shape a lot - which was an annoying pain to support - no longer :)
Customer avatar
| Lou Ciphor | August 19, 2020 3:07 am UTC
30% taxes???
Customer avatar
Bill P August 19, 2020 3:59 am UTC
You do know you won’t make anything doing this sort of thing but have to treat it as part of your overall married family income right? Federal,and state?
Browse Categories
 Follow Your Favorites!
NotificationsSign in to get custom notifications of new products!

Product Information
Community Content
Rules Edition(s)
Original electronic
Scanned image
These products were created by scanning an original printed edition. Most older books are in scanned image format because original digital layout files never existed or were no longer available from the publisher.

For PDF download editions, each page has been run through Optical Character Recognition (OCR) software to attempt to decipher the printed text. The result of this OCR process is placed invisibly behind the picture of each scanned page, to allow for text searching. However, any text in a given book set on a graphical background or in handwritten fonts would most likely not be picked up by the OCR software, and is therefore not searchable. Also, a few larger books may be resampled to fit into the system, and may not have this searchable text background.

For printed books, we have performed high-resolution scans of an original hardcopy of the book. We essentially digitally re-master the book. Unfortunately, the resulting quality of these books is not as high. It's the problem of making a copy of a copy. The text is fine for reading, but illustration work starts to run dark, pixellating and/or losing shades of grey. Moiré patterns may develop in photos. We mark clearly which print titles come from scanned image books so that you can make an informed purchase decision about the quality of what you will receive.
Original electronic format
These ebooks were created from the original electronic layout files, and therefore are fully text searchable. Also, their file size tends to be smaller than scanned image books. Most newer books are in the original electronic format. Both download and print editions of such books should be high quality.
File Last Updated:
September 28, 2020
This title was added to our catalog on August 17, 2020.