Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
×
Create a free account

[Script] RPGMaster APIs for AD&D 2E

Hey Richard, thanks so much for the prompt response,  I have indeed all the aforementioned libraries, and also the macros on my lower screen. 1. I have clicked the Wizard drop down menu and picked the Transmuter for my player. So i see currently Transmu (it cuts out due to limited size of the box). I did try another specialist as a test, the invoker whom I saw on your video you used on tour tutorials, still not working.  2. Allow Any Specialist is chosen with red text on white bg.  ( I changed it to Specified in Rules and I do see the +1 Specialist now! It calculated it just right )  3. Picked from the drop down the transmuter too and  I see Transmuter Level 1 as intended.  4. Correct that was the problem before I changed the config to the other option.   So we successfully managed to solve it with the change in the config for the specialist but what those two do differently?   Huge thanks again first for your time to make this amazing api and second for the help here. 
1715875078

Edited 1715875226
(Just realised you are dealing with something else, so don't worry... this can wait...) Hi Richard, experiencing a few issues with magic items.  Every item that "does something" is hitting a  "Gathering Data" phase and nothing happens. It then shows a "Return to Menu" button and pressing that goes back to the characters inventory with the item greyed out and unusable, but not reduced in number. Tried with Potions, scrolls, and wands and all are hitting the same issue. The items aren't being removed from the inventory, but not sure if it is my connection or something else. We've not been playing for a few weeks, and 4 out of the past 5 sessions have involved no combat, so we haven't really been using items. So I don't know if I missed an update and have something set up wrong? Spells and powers seem fine. Sorry to be a pain...  Just wondered if there have been any changes to item databses that wouldn't have updated on the Players' character sheets?
1715877683

Edited 1715877840
Richard @ Damery
Pro
API Scripter
Tommy said: (Just realised you are dealing with something else, so don't worry... this can wait...) Hi Richard, experiencing a few issues with magic items.  Every item that "does something" is hitting a  "Gathering Data" phase and nothing happens. It then shows a "Return to Menu" button and pressing that goes back to the characters inventory with the item greyed out and unusable, but not reduced in number. Tried with Potions, scrolls, and wands and all are hitting the same issue. The items aren't being removed from the inventory, but not sure if it is my connection or something else. We've not been playing for a few weeks, and 4 out of the past 5 sessions have involved no combat, so we haven't really been using items. So I don't know if I missed an update and have something set up wrong? Spells and powers seem fine. Sorry to be a pain...  Just wondered if there have been any changes to item databses that wouldn't have updated on the Players' character sheets? Tommy, Sorry to hear you're having issues. I'm out tonight, so the earliest I can look at this is tomorrow (Friday) afternoon. The current version has been used by our group for a few weeks, but perhaps we didn't hit the specific issue you mention for some reason.  I'll give it a thorough review and get back to you asap.
Nick M. said: Hey Richard, thanks so much for the prompt response,  I have indeed all the aforementioned libraries, and also the macros on my lower screen. 1. I have clicked the Wizard drop down menu and picked the Transmuter for my player. So i see currently Transmu (it cuts out due to limited size of the box). I did try another specialist as a test, the invoker whom I saw on your video you used on tour tutorials, still not working.  2. Allow Any Specialist is chosen with red text on white bg.  ( I changed it to Specified in Rules and I do see the +1 Specialist now! It calculated it just right )  3. Picked from the drop down the transmuter too and  I see Transmuter Level 1 as intended.  4. Correct that was the problem before I changed the config to the other option.   So we successfully managed to solve it with the change in the config for the specialist but what those two do differently?   Huge thanks again first for your time to make this amazing api and second for the help here.  Nick, Glad that the problem has been solved by selecting a different configuration. However  the point still exists that "Allow Any Specialist" was not granting a +1 spell to those wizards that were not Wizard, Magic User, or  Mage.  I'll check that out.
1715936202

Edited 1715943174
Richard @ Damery
Pro
API Scripter
Richard @ Damery said: Nick M. said: Hey Richard, thanks so much for the prompt response,  I have indeed all the aforementioned libraries, and also the macros on my lower screen. 1. I have clicked the Wizard drop down menu and picked the Transmuter for my player. So i see currently Transmu (it cuts out due to limited size of the box). I did try another specialist as a test, the invoker whom I saw on your video you used on tour tutorials, still not working.  2. Allow Any Specialist is chosen with red text on white bg.  ( I changed it to Specified in Rules and I do see the +1 Specialist now! It calculated it just right )  3. Picked from the drop down the transmuter too and  I see Transmuter Level 1 as intended.  4. Correct that was the problem before I changed the config to the other option.   So we successfully managed to solve it with the change in the config for the specialist but what those two do differently?   Huge thanks again first for your time to make this amazing api and second for the help here.  Nick, Glad that the problem has been solved by selecting a different configuration. However  the point still exists that "Allow Any Specialist" was not granting a +1 spell to those wizards that were not Wizard, Magic User, or  Mage.  I'll check that out. Nick, I've found the issue with specialist mages when the configuration option "Allow Any Specialist" is selected - a database error in the Class-DB database did not set the specmu:   data attribute to 1 for the standard specialist mages, so the system did not recognise them as specialist when that config option is selected. I'll correct this in the next release, but you can use the work-around for now.  If you have the "Allow Any Specialist" config option selected and for the wizard class choose "Other" then type in any non-standard specialist class name (e.g. Transmutist - i.e. different from Transmuter) then it would see it as a specialist (though I found a little bug here when testing - this currently throws an error). Of course, it would not know which spell schools would be illegal for "Transmutists", whereas with the "Specified in Rules" option will deny illegal spell schools to standard specialists (unless the config option for Spell Schools is set to "All can use Any"). If you want to define your own wizard specialist classes, take a look at the Class & Race Database Help  handout regarding defining your own classes.
Bug found: Config "Allow Any Specialist" not working correctly Description of bug:  If the RPGM configuration option "Allow Any Specialist" is selected for "Specialist Wizards" then the extra +1 spell per level will not automatically be added for specialists. Further, on the "Review & Set Race & Classes" dialog (otherwise known as the Drag & Drop dialog ) selecting "Other" for the Wizard class and typing in a custom wizard class currently throws a non-fatal error when it should use default Wizard specifications but mark the wizard as a specialist. Temporary fix:  If using only the standard specialist wizards as defined in the AD&D Player's Handbook, select the RPGM configuration option "Specified in Rules" for "Specialist Wizards". Alternatively, in the Spells-Menu > Memorise MU Spells  dialog, click on the number of spells (the white number on a red background in the sentence (" wizard name  can memorise [#] spells at level n") then click on the [# misc] button in the dialog that appears and enter 1, which will add 1 extra spell slot at that spell level.   If wanting to use a custom specialist, extract the Class-DB database, cut and paste the database macro for "Wizard" into a new ability macro, and give it the new custom specialist name - this will allow the "Other" option to find it in the databases. (Find more info on creating a specialist wizard database entry in the Class & Race Database Help  handout). Permanent fix ETA:  Fixes to both issues have been coded, and just need a little testing to make sure they work under all circumstances. Likely release (assuming no problems) will be week of 27 May.
1718724342

Edited 1718724396
Richard @ Damery
Pro
API Scripter
RPGM Release Notes v3.500 RPGMaster Release Notes for version 3.5.0 Going live this week, 19/06/2024 v3.5 Release Notes Saving Throw Mods Table Many spells and powers as well as magic items have an effect on saving throws and attribute checks. To date, all such effects have been lumped into a single "effect of magic" number with no further explanation when reviewing how saves and checks are calculated. Now, a (hidden) table is held on each character sheet which holds saving throw and attribute check modifiers currently in force, with a name and a source, and optional durations in number of saves to which the mod applies and/or the number of rounds duration of the mod. The mods can apply to one type of save/check, more than one, or all. The mods are specific to the character represented by the sheet. Commands exist (documented in the  AttackMaster Help Handout ) to add, modify, and delete the mods. This new system can also be used to create totally new, bespoke saving throws based on any existing saving throw, which can be modified. For instance, the spell  Bless  only affects saves against  Fear  effects. Using the new mod commands a new "save vs. Fear" button can be added to the Saving Throw table for the duration of the  Bless  only for those characters who are blessed, which is based on a save vs. spell but with a +1 bonus. At any time, the player can review the way their character's saving throws and ability checks are calculated by selecting the [Auto-check Saving Throws] button on the Saving Throw dialog, or equivalent button on the Attribute Check dialog. Status Targeting with Saving Throws The RoundMaster --target command (and associated other token status management commands) can now take a saving throw specification as the last argument, defining the type of save required and any bonus or penalty to the save. This only works if RoundMaster is being used with AttackMaster. The effect of adding this optional parameter is that the player issuing the command will be prompted to ask the player controlling the target token to make the appropriate saving throw and, if that saving throw is made using the AttackMaster saving throw dialog (which will apply the bonus or penalty as specified in the new parameter), a failure will automatically apply the status and any associated effects to the token. If the save is made the status is not applied. Multi Mode for Status Targeting Multi  has been added as a command mode for the RoundMaster --target command, alongside the existing  caster, single,  and  area  modes. Multi mode is similar to area, but allows the player to shift-select multiple tokens at the same time, and then click one button to apply the status to all those tokens. If the new saving throw parameter (see above) is included, the player will be prompted to ask for saving throws to be made for all the selected tokens - which can all happen simultaneously with the outcomes described above. For the multi command, RPGM maths for the duration, direction and/or saving throw mods can include the symbol '#' which will be replaced with the number of tokens selected and allow these numbers to vary by the number of tokens targeted. This is useful where saving throw bonuses or penalties vary by numbers of targets, or the duration is divided across the targets, for instance. Important Note:  When this new multi mode is used for a --target command, at the point the command is entered  all tokens  on the same Roll20 page as the caster token temporarily become controllable (and thus selectable) by the player controlling the caster token. Also,  all tokens without controllers (or otherwise controlled by the GM)  that have sight under Dynamic Lighting will be temporarily "blinded" - this is so that the player controlling the casting token is not suddenly able to see the whole map, and the dynamic lighting Explorer Mode is not compromised. The temporary blinding and control are automatically removed as soon as the casting player clicks the button to apply the statuses  or issues any other API command (RPGM or otherwise) . Simplified Status Targeting Confirmation Options have been provided for better control over the requirement for the GM to confirm all targeted token status changes made by a player using RoundMaster --target command. Two new qualifying command modifiers now exist: --target-nosave and --target-save. The first will not prompt the GM for a confirmation when applying a status to a token (though this behaviour can be altered using the --nosave command), whereas the second will  always  prompt for confirmation even if the command is issued by the GM. --target-nosave is useful when casting a spell or an item power that has no saving throw e.g. where applied to the caster themselves. --target-save can be useful to remind the GM to prompt for or make saving throws. The --nosave command will turn off or on the --target-nosave behaviour. Action Buttons Disabled on View When spell and item descriptions are viewed (rather than cast or used) all action buttons in the spell or item macro are now "greyed out" and not selectable, so that effects are not inadvertently applied and charges aren't accidentally used due to the player selecting an action button. The one exception is for any action buttons that start with "View" in the button text - this allows, for instance, players to still view the spells contained in a spell-storing magic item. Renaming of Non-Stackable Loot Some items are not stackable in containers or character's backpacks, such as wands with charges or spell-storing items. However, it is also the case that items in containers should have unique names to identify them, so if two of the same non-stackable items are found, one of them needs to be renamed. This is now automatically detected and the player prompted to enter a new name for the second (or subsequent) items picked up. The renamed item retains all its properties, powers, stored-spells, etc. Configurable Automatic Hits & Misses To date, automatic hits on a natural 20, or automatic miss on a natural 1, have had to be applied manually on targeted attacks. By default, automatic hits and misses will now be applied for targeted attacks but with an RPGM Configuration option to turn this off. Similarly, Critical Hits and Misses (which need not be equivalent to natural rolls of 20 & 1) now also automatically hit or miss on targeted attacks and also have a separate RPGM configuration option to turn this off. Updated Database Items to Latest Features Now all magic items defined in the AD&D2e Dungeon Master's Guide have been defined in the RPGM databases, the on-going task of updating and refining them has started. Potions, scrolls, and rings have been reviewed and updated - though the impact will seem very limited to those using them. All spells, both Clerical and Wizard, and all Powers, have also been updated. Spell Databases Split by Level In order to make spell databases more manageable, they have been split by level, with Wizard spell databases now being MU-Spells-DB-L# and Clerical spell databases being PR-Spells-DB-L#. This will not affect any currently extracted spell databases or DM's custom spell databases, which will continue to function as before. The only visible impact is on extracting databases where a choice of databases will now be offered when extracting spell databases. Added Ceiling & Floor to RPGM Maths The RPGM alternative to Roll20 maths for numeric values now includes ceiling and floor operators.  c(...)  will return the value in the brackets rounded up and  f(...)  will return it rounded down. Fixes While I am sure everything worked when first coded, subsequent changes have had unexpected consequences and players have also done things I didn't expect (is that not the story for all GMs?). Hence fix lists continue... Fixed magic item rev: (reveal hidden item trigger) database attribute Fixed --display-attribute to properly support %{...|...} and database item variables Fixed ^^duration^^ tag in effect macros to insert the current remaining duration of the status Fixed use of '=#' when setting override initiative modifiers and for --mi-charges Fixed default ToHit dice specification in getToHitRoll() if ToHit dice are not specified in the Attack macro Replaced MIrowref lookup when making magic attacks as might not be pointing to correct magic item Fixed errors in renaming magic items when new name includes all or part of the old name Fixed spell-storing items with the -ADD command qualifier to correctly allow the character/player to add new spells
1718973640

Edited 1718973660
Richard @ Damery
Pro
API Scripter
Moving Token States to a Copied Campaign To support the JumpGate  release to all Roll20 users, I am finalising a small extension to RoundMaster   to support exporting Token Statuses  from a campaign to a copy of that campaign created using the Roll20 campaign copying function. The Need:  In order to migrate an existing game from the current Roll20 platform to the new JumpGate  version, the GM must use the Roll20 Campaign Copying function, selecting the new JumpGate Beta Platform  during the process of making the copy. However,  this function does not copy the APIs or the all-important Roll20 state variable that holds the RPGM configuration and RoundMaster token status and effect tables. The RPGM APIs can easily be loaded from the Roll20 One-Click library. However, doing this creates a new, blank, state variable. The Solution:  I will release as soon as possible a version of RoundMaster  that has two new commands: --state-extract and --state-load API-name . Running the !rounds --state-extract command will create a "StateMule" character sheet that contains a JSON stringified version of the complete state object of the campaign in which the command is run.  This character sheet can then be "Transmogrified" (standard Roll20 function) to the copy campaign (for instance, one running on  JumpGate ) and then the !rounds --state-load RPGM command run in the copy campaign, which will restore the Roll20 state variable to the same state as the original campaign.  Note:  the RPGM  is actually unnecessary, as the load will default to loading all RPGM API states and nothing else. !rounds --state-load all will load the complete extracted state variable, including for non-RPGM APIs.  I cannot guarantee this will not cause issues. !rounds --state-load API-name  (e.g. API-name could be RoundMaster) would load the state for just the named API. Other than for RPGM APIs, case is significant to the individual API: it is suggested the case of the JSON text in the "state" ability on the StatusMule character sheet is examined for the correct case. !rounds --state-load API-name1 | API-name2 | API-name3 | ...  will load the states of each of the named APIs. The same case rles as above apply for non-RPGM APIs. As this is a RoundMaster command, only the RoundMaster API need be loaded and in use.  The rest of the RPGMaster suite is optional. Hopefully this capability will be in the next merge, to allow you all to enjoy  RPGMaster with JumpGate.  I'll post here when it goes live. If there are any other features you'd like for this, let me know.
1723151013

Edited 1723790491
Richard @ Damery
Pro
API Scripter
A Few Fixes These fixes went live on Wednesday, 14th August 2024 In the MOD merge the following fixes were released: Containers dropped to a map will correctly scale with the map settings - i.e. if the scale is 35 pixels is 5ft (instead of the standard 70), the container will scale appropriately. Characters / Creatures of type "Forced Sentient" (see GM Add Items) can now have items stored to them by characters (previously this was blocked in error) If the configuration flag for skills checks is set to "GM Rolls", the result of thieves rolling to detecting noise will only be revealed to the GM so that the player does not know if there is no noise to be heard or if they have failed to detect any noise, and/or the GM can take into account other factors in their response to the player's action.
Hullo,   I followed the steps to add the APIs;  I seem to get an infinite loop error in the mod screen.  I cannot seem to locate any of the RPG master macros;  however the chat window does suggest they loaded. Any suggestions?  The !cmd --initialise doesn't seem to prompt any response in the chat window. Thank you, harticus
Erik H. said: Hullo,   I followed the steps to add the APIs;  I seem to get an infinite loop error in the mod screen.  I cannot seem to locate any of the RPG master macros;  however the chat window does suggest they loaded. Any suggestions?  The !cmd --initialise doesn't seem to prompt any response in the chat window. Thank you, harticus Erik, thanks for the message and sorry you are experiencing a problem. I have tried to reproduce the issue in a new campaign/game by loading the "RPGMaster Suite" Mod / API from the Roll20 One-Click Mod Library, and I don't get any errors, and I've also used the APIs in an existing campaign without errors.  Can I ask you to check a few things to see what is happening? If following the instructions in the videos, you may have loaded "CommandMaster" from the Roll20 Mod Library. This is fine and works the same as loading "RPGMaster Suite" Are you adding the RPGMaster Suite to an existing campaign, or to a brand new one just created? If loading to an existing campaign, what other Mods / APIs are already loded before you add the RPGMaster Suite? When creating the campaign, or adding the mods to an existing campaign, have you selected the "Advanced 2nd Edition" character sheet? When loading the RPGMaster API suite, are you selecting "RPGMaster Suite" Mod from the Roll20 One-Click Mod Library drop-down (or "CommandMaster" which works the same), and then selecting [ OK ] button on the pop-up that appears to load the other scripts linked to the suite? On the "Mods for [your campaign name] " tab do all the following scripts then get loaded: RoundMaster, RPGMaster Library AD+D2e, InitMaster, AttackMaster, MagicMaster, CommandMaster, LibTokenMarkers, ChatSetAttr, TokenMod, as well as the original RPGMaster Suite (RPGMaster Suite will not appear if you used "CommandMaster" to load the APIs)? The RPGMaster Suite does not use macros, and no character sheet "mules" are created to hold macros.  All processing is done in JavaScript code which extends the Roll20 core functionality. However, the RPGMaster Suite does create 17 Help Handouts which you should see in the "Journals" tab of your campaign once you open it: if these are not there the RPGMaster Suite has not loaded correctly. Are they there? The !cmd --initialise  command is actually no longer necessary, as when correctly loaded the suite will now detect a new install and initialise automatically. Go to the "Collections" tab of your campaign and as GM you should see a number of Macros in there - tick all the "In Bar" tick boxes and the "Show Macro quick bar" tick box. Open the "Mod Output Console" on the "Mods for [your campaign name] " tab (same page where you loaded the Roll20 Mod library) and do a print screen of it just after starting the campaign in another tab and send it to me (you can PM me if that is easier). That way I can see any error messages. I hope this might provide a few pointers to what is happening. Do get back in touch with me, either here or via a PM.
1726402986

Edited 1727368148
Richard @ Damery
Pro
API Scripter
Bugs Fixed: L8 Wizard Spells & RPGMaster Maths Description of Bug 1:   Level 8 Wizard spell definitions have been overwritten by Level 7 spells in the distributed databases, and will cause an error if a player or GM tries to view their descriptions, memorise or cast them. Temporary fix:  While it would be possible for a GM to write a complete new MU-Spells-DB-L8 database, using the information provided in the Spells Database Help  handout, this would be tedious. Alternatively, the fix is applied and has been released for next week's merge, and in the mean time use the Player's Handbook and apply 8th level Wizard spell effects manually. Unfortunately, there is no other temporary workaround that I can think of. Description of Bug 2:  The RPGMaster Maths processor, used for calculating certain value ranges e.g. for Drag & Drop  character attributes, does not support in-line attribute descriptions properly: an example is ac = 1d6+1 [AC varies from 2 to 7 by individual]   which should result in returning a value between 2 and 7 (i.e. 1d6+1)  with the descriptor given between the square brackets displayed under certain circumstances.  This was not happening and instead an error was being returned by the maths processor on encountering any attribute definition with a square bracket descriptor. Temporary Fix:  In many cases, the error being reported does not cause an immediate issue - the system carries on processing, though the value being evaluated by the RPGMaster Maths system may not be set correctly and can be manually corrected. However, if the error is causing an issue, find the relevant attribute definition in an extracted database, and remove the square brackets and all text in between from the attribute definition in any database entry (see the relevant database help handouts for information on how to do this). Permanent Fix ETA:  The fix has been done for both bugs and has been released for automatic One-Click Mod update, which should go live next week (18/09/2024 onwards). [Edit update 21/09/2024]: Didn't go live last week as a merge was not completed. Hopefully the fixes will release this week (25/09/2024 onwards) [Edit update 26/09/2024]: Gone live and all seems to be working fine now.
1726914052

Edited 1727368375
Richard @ Damery
Pro
API Scripter
Bug Fixed: Slow & other Area Effect spells with saving throws Bug Description:  When a player character casts a spell that has an area of effect that can effect multiple tokens who can then have a saving throw, an error may be reported and the spell effects may not be applied. An example of this is the Slow  spell. This bug only affects spell casting of a very specific type, where it generates a Player (not a GM) call to the RoundMaster !rounds --addStatus command with a saving throw extension in the 6th parameter. Temporary Fix: If the Player gets an error when trying to apply the effects of a spell (e.g. pressing the [Slow Them] button in the Slow  spell description) the GM can cast the spell for the Player, by selecting the Player Character's token and using the [Cast Spell] action button in the same way the player would (the GM may need to re-memorise the spell for the Player Character first as it might already have been marked as already cast). The GM is not affected by this bug, and so the spell will work for them.  Once the permanent fix is released, the Player will again be able to cast the spell as normal. Permanent Fix ETA:  The fix has been done and has been released for automatic One-Click Mod update, which should go live next week (25/09/2024 onwards). The RoundMaster v5.057 code is available on GitHub if you can't wait. [Edit 26/09/2024]: Permanent fix released and all seems to be working fine now.
The three bugs detailed above (posts here and here ) have now been fixed, the fix released, and the release tested (at least, tested that these bugs are fixed!).  Do let me know if you find any other issues. Richard
1732350146

Edited 1732350201
Richard @ Damery
Pro
API Scripter
Just keeping the chat alive.  A new version will be out soon (hopefully) with major updates to Thac0, ToHit, Damage & HP temporary effects tables (to explain any bonuses or penalties currently in effect on any character or NPC in a similar way to Initiative and Save mods), and the ability to Drag & Drop  NPCs for standard races of all classes.
Keeping up to date on this: there are two bugs stopping me releasing the next major version (RPGMaster v4.0.0) that seem to be in Roll20 code as opposed to my APIs, but perhaps are exacerbated or triggered by stuff my APIs are touching (?). One now has a workaround (thanks to @TheAaron) related to an issue with the Roll20 state variable that saves API status between game sessions which caused the sandbox to crash - this is now seems to work, though let me know if the status of the APIs not being preserved and I'll persue it further. The other has not yet been fixed and is a current known intermittant bug in Roll20, where @{target|token_id} does not return the right token_id for the token clicked. As RPGMaster targeted attacks, spell effects, container searches etc all rely on @{target|token_id} this is a bit of an issue (with the current RPGMaster release, let alone any future updates). See the bug notification below. Until I'm happy with the play testing of the v4 release, and I have notification from the devs that the @{target|token_id} is fixed, I'll not be releasing any updates.  Keep an eye out here for further news.
1734451530

Edited 1734711857
Richard @ Damery
Pro
API Scripter
Bug: Targeted actions may not work Bug Description:  Targeted actions such as targeted attacks, placing of spell effects on tokens, searching containers for traps, opening locks and looting contents, picking pockets etc may return a string of Roll20 errors in the chat window and not work.  This may only be in JumpGate campaigns (I've not seen the issue in, or thoroughly tested non-Jumpgate).  This is due to the Roll20 @{target|token_id} macro / chat command not working and returning a spurious token_id for the token clicked on when prompted.  It is also the case that @{target|name} and other @{target|...} commands do not work.  RPGMaster APIs use @{target|token_id} commands, both in the action macros on character sheets, and with internally created and dispatched chat commands, and thus suffer severely when this command does not work. Temporary Fix:  It seems the @{target|token_id} command does work in some campaigns and not in others. I have a sizable currently live campaign with my local group for whom I'm GM in which @{target|token_id} does not work.  I have created a totally new JumpGate campaign (NOT a copy of an existing one to avoid taking corruption across) and then used Transmogrifier to port in the bits of the the live campaign I needed (the minimum necessary again to avoid corruptions, and to do less work!) and all seems OK... for now - testing live with my group on 20th December... [Update 20/12/2024] No - when playing  with my group  the totally new JumpGate campaign I created, everything worked for about 30 minutes, and then @{target|token_id} stopped working, and all the tokens lost their turn and sizing handles.  So this temporary fix does not work. [Update continued]:  An alternative temporary fix is that copying & pasting a token restores functionality for a (short) period, so you can do this for individual tokens as and when you need to target them, but this is almost impossible for area-effect spells and mass attacks in melee, and slows game play down considerably. Permanent Fix ETA:  I've raised a ticket with the devs, with a fully reliable sequence to definately demonstrate the issue, going from a working state to a non-working situation in 9 easy steps.  I've also raised with TheAaron and it is being worked on.  I'll post updates here.
Bug: Targeted actions may not work As of 20/12/2024, this bug is still happening. The Aaron has let me know this is a known Roll20 issue, and the devs are working to correct it.
Bug: Targeted actions may not work (update) As at 16/01/2025, this bug is still happening in JumpGate games. I have rebuilt one of my campaigns in Classic and that does not seem to have any problem with @{target|token_id} calls. The replies to my bug report to the devs states it is associated with multiple types of charater sheets, not just Peter B.'s Advanced D&D2e. They have fixed it for the D&D 2024 sheet, but are still working on a solution for all others. They expect a release within the next 2 to 3 weeks.
1737058280

Edited 1743886424
Richard @ Damery
Pro
API Scripter
Bug Fixed: Spell Storing Scrolls Fixed in the v4.0.1 release Feb 8 2025 Bug Description:  some scrolls, such as "Blank Scroll", "Parchment", "Paper" etc can have spells stored on them (to create bespoke scrolls). However, when used the scrolls so produced behaved incorrectly - disappearing with unused spells still on them and in other inorrect ways. Temporary workaround: give the scroll the same quantity as the number of spells stored on them - this needs to be done manually by seleting the token representing the character or container holding the scroll, and using the GM's [Add Items] macro bar button, or the !magic --gm-edit-mi  command, select the scroll, and use the [Change Displayed Charges] and [Change Actual Charges] to set both to the number of spells on the scroll. The quantity so set will then derease by one with each use of the scroll to cast one of the spells stored on it. Permanent Fix:  The RPGMaster v4 release has the fix so that the spell storing scrolls will not be consumed (disappear) until all the spells on them have been used. Permanent Fix ETA:   Fixed in the v4.0.1 release Feb 8 2025
1737058997

Edited 1743886407
Richard @ Damery
Pro
API Scripter
Bug Fixed: Ranged Weaponised Spells Fixed in the v4.0.1 release Feb 8 2025 Bug Description:  spells can be weaponised so that they have to be "taken in-hand" and an attack made to cast them - an example is Ice Knife.  Those that are the equivalent of ranged weapons (such as Ice Knife) cause errors including fatal database crashes in the Mod Console. I believe something has changed recently in the way the Firebase database system works in Roll20 to ensure better data integrity, with a consequence for poor coding on my part! Temporary Workaround:  I have not thought of one that is fully functional, but a similar ranged weapon could be used (e.g. a dagger instead of an Ice Knife) in order to do the attack, and then the consequences of the outcome of the attack managed manually. Permanent Fix:  The RPGMaster v4 release has the fix for ranged weaponised spells, so that no crashes are caused and damage and spell effects work properly. Permanent Fix ETA:   Fixed in the v4.0.1 release Feb 8 2025
RPGMaster Release Notes for version 4.0.0 v4.0.0 Release Notes This is a major release, with considerable changes in the background to make the RPGMaster suite of APIs smaller and faster, while increasing utility and helpfulness. Drag & Drop  fully populated NPCs In 2023, RPGMaster introduced  Drag & Drop  creatures. This functionality has now been extended to add NPCs, with fully populated character sheets, rolled attributes, populated skills such as rogue skills, populated spell books and powers, all driven by user-definable NPC definitions. A new [NPC] button exists on the  Drag & Drop  Class & Race dialog, which presents a drop-down Roll Query listing the currently defined NPCs to select from. Other queries will request more detail, such as the level of the NPC. Creating and playing a  Drag & Drop  NPC is identical in process to a  Drag & Drop  creature. Help is provided in the  CommandMaster Help  handout, and the  Class & Race Database Help  handout. Enhanced Mods Table The previous release added a means of storing and displaying all saving throw & attribute check modifiers currently in effect for each character / creature / NPC, to show in detail how the current saving throw and attribute check targets were calculated. This release has extended that capability to do the same for all modifiers to AC, Thac0 (to-hit), Damage, & HP, and to manage the application and durations of these modifiers. Generally, the modifiers are applied due to magic items in the possession of the character / creature / NPC, or from spells cast on them that are currently in effect - in the majority of cases, if using the RPGMaster item and spell capabilities of the MagicMaster API and effect management of the RoundMaster API, all these mods will be applied and expired automatically. However, API commands exist for GMs and players to apply mods manually if so desired. See the  AttackMaster Help  handout for more information. Rogue Skill Table Management The Rogue Skill table can be accessed through  Other Actions > Rogue Skill Check . This dialog has now been extended to work in a similar fashion to the Saving Throw dialog, with a button to [Auto-check Skill Scores] and another to [Manually check Skill Scores] - the choice will be preserved between uses and game sessions. Auto-checking will automatically review the class, race, dexterity, armour, and magic items possessed, and use the data in the definitions for each to set the values on the Rogue Skills table, leaving the user to allocate the points granted for the level and class of rogue. The auto-check will be performed continuously by the APIs so that as conditions change, such as items possessed and armour worn, the values immediately change accordingly. The manual option, on the other hand, leaves the player to enter all the values in the table, for instance for a non-standard character. Weapon Proficiencies for NPCs / Creatures Creature innate attacks and attacks with weapons have always been considered to be "proficient". However, there is now a way to set weapon use for  Drag & Drop  creatures and NPCs to be "specialist" or even have "mastery". Each weapon definition in a creature / NPC definition can be annotated with the proficiency level (if none is stated, "proficient" is assumed). See the  Class & Race Database Help  handout for how to specify proficiency levels. Random Items for NPCs / Creatures Drag & Drop  creatures and NPCs have always been able to have named items allocated to them to carry, such as named weapons, armour or ammunition. They can now also have random items added to their character sheets as being "in their possession" (even if they can't use them), as if they had picked them up or won them in battle at some point in the past. The number of random items can be specified (or even be a random quantity, such as a dice roll or number range), and reviewed by the GM using the GM's [Add Items] macro bar button or the  !magic --gm-edit-mi  command (to ensure game balance...). Thus, PCs can loot these as treasure after a successful battle, or a rogue can pick-pocket them, etc. Details can be found in the  Class & Race Database Help  handout as to how to specify random items for  Drag & Drop  creatures & NPCs. Query Results for NPCs / Creature Weapon / Armour / Item Definitions Drag & Drop  creature and NPC database definitions can use the  query:  data tag to specify a query to the player that returns a selected list of parameters to feed into and alter the definition's results. The parameters for these queries can now be used in weapon, armour and item definition sections of NPC and creature database entries. See the  Class & Race Database Help  handout section on  Complex Creatures with Multiple Forms  for an explanation of creature and NPC query definitions. Fixes While I am sure everything worked when first coded, subsequent changes have had unexpected consequences and players have also done things I didn't expect (is that not the story for all GMs?). Hence fix lists continue... Roll20 state variable bug fixed by dev team Improved error trapping and notification throughout Fixed spelling of thievish armor (armour) to be same as character sheet is expecting Hopefully improved spurious "Gathering Data" messages - though some still are annoyingly appearing wrongly... Fixed determination of initiative speed for some magic items that were ignoring inheritance Attempted fix for listing/viewing/using items listed on character sheet that are not in any database Fixed bug in container scaling when openned or closed using  Search for Items & Treasure Corrected allocation of Spell Menu action button for  Drag & Drop  creatures so all who have spells also have means to access them! Fixed spell-storing scrolls to not be deleted until all spells on the scroll have been used Fixed ranged weaponised spells to not cause Firebase errors
A "keep alive" post. I'm currently working on utilising the "Advanced D&D2e" sheet a little more fully, splitting the items you carry between the relevant tables on the equipment tab, and (optionally - configurable) showing the sorted lists in the "View Items" and "Use Items" dialogs. The hardest bit of this conversion is dealing with spell storing items and items that can hold other items, as the stored spells and items have to follow the move between tables during the conversion, and items that have variable components need to correctly find the attributes holding the variables that apply to them! Its much more tricky than it sounds, and doesn't provide much additional functionality - just looks better - but I just feel it makes use of items easier. As items (spell storing, item storing, and/or variable using, or none of these) are accessed and updated in many parts of the APIs, this is going to take some time to test.  I'll keep posting - but in the mean time let me know of any issues you come across.
Out of interest Richard, what is the Jumpgate situation looking like? Are we likely to encounter any potential problems? I'm going to be rebuilding my campaign to clear out a load of map/NPChandouts and many other resources as the players move into a whole new chapter, and that feels like the right time to Jump over. Have you looked at all at the new facility where Roll20 can copy APIs to new games? Will that work with something as complex as RPGM? Do you need some playtesting with it to try and find any problems or should it be a simple carry-over?
1743427216

Edited 1743521671
Richard @ Damery
Pro
API Scripter
Tommy said: Out of interest Richard, what is the Jumpgate situation looking like? Are we likely to encounter any potential problems? I'm going to be rebuilding my campaign to clear out a load of map/NPChandouts and many other resources as the players move into a whole new chapter, and that feels like the right time to Jump over. Have you looked at all at the new facility where Roll20 can copy APIs to new games? Will that work with something as complex as RPGM? Do you need some playtesting with it to try and find any problems or should it be a simple carry-over? I have tested the APIs extensively in Jumpgate.  However, in Jumpage @{target|token_id} not consistently returning the correct token_id.  All of the below are with Peter B.'s Advanced D&D 2e sheet: In an existing complex campaign, with lots of existing maps, tokens and character sheets, that has existed from before Jumpgate and was converted to it, @{target|token_id} does not seem to work - it returns exactly the same value whatever token you select. If you copy the same campaign above to a new instance in Jumpgate, the same problem occurs - @{target|token_id} does not work properly. In a brand new, blank campaign created in Jumpgate (very simple, only 1 token with no character sheet attached), @{target|token_id} returns the correct token_id: it is the same value as @{selected|token_id} executed on the same token. In a brand new campaign with a Transmogrified complex map page with lots of tokens on it, but no character sheets or APIs, @{target|token_id} certainly seems to work properly at least initially. Not tested recently:  I have recreated the complex campaign described in the first bullet point by lots of hard work loading brand new maps, tokens and transmogrified character sheets into a blank Jumpgate campaign and played that.  Initialy @{target|token_id} worked, but after 30 minutes of game play it stopped working correctly. I have stopped using Jumpgate as the RPGMaster APIs rely heavily on @{target|token_id} working correctly to select targets for spells, looting, targeted attacks, etc.  I have repeatedly raised this issue with the helpdesk and The Aaron and, while they found the issue they thought it only affected games with the new D&Dv5 (Beacon) character sheet and solved it for that sheet - they have not solved it for Peter B.'s sheet. It seems it may be character sheet specific, and some interation between the sheet and Jumpgate, but I'm not a sheet author (just APIs) so I can't say for certain. My advice is to stick with Classic for now, especially if using RPGMaster.  Do try stuff out for yourselves and feed back anything you find.  
I think I've encountered a bug. When I want to memorize spells and select choose spell, the spell slots vanish. The workaround I found: When I manually fill the slots inside the charactersheet, then it's useable again.
1743865810

Edited 1743887071
Richard @ Damery
Pro
API Scripter
Isa said: I think I've encountered a bug. When I want to memorize spells and select choose spell, the spell slots vanish. The workaround I found: When I manually fill the slots inside the charactersheet, then it's useable again. Thanks for reporting this. You have indeed found a bug! You are correct that typing in the spell name will fix it as a work-around: the bug occurs if the spell table entry exists on the character sheet, but the spell name is an empty string (rather than "undefined" which is what the spell name is if you just use the character sheet [Add] button). So an empty string is inserted between the square brackets of the Roll Query API button syntax, which it seems the Roll20 API button parser can't deal with! Strange I've never noticed this before. So I've made a change to the dialog code so that if it sees an empty pair of square backets, it inserts a hyphen (which makes it work correctly). I've made the fix, and I'll look to release it next week.  Until then, your work around should work. FYI: RPGMaster fills empty slots (spell, item, equipment etc) with a dash / hyphen. This ensures they appear and can be selected in chat window dialogs so that new items can be entered into them. RPGMaster treats any field that holds just a dash / hyphen as empty.  If you want to manually alter character sheet entries, use a dash or hyphen to represent a blank entry.
1744006165

Edited 1744363509
Richard @ Damery
Pro
API Scripter
Bug Fixed: No Ammo for Shortbow Fixed in AttackMaster v4.0.3 released 9th April 2025 Bug Desription:  If taking a Shortbow in hand using the Attk Menu > Change Weapon  dialog, attacking with the Shortbow will not work even if there are arrows in the character's equipment. This is because there are no arrow types that have "shortbow" defined as the type of ranged weapon they are for. This happened when a recent fix was made to make Sheaf Arrows only usable with Longbows and Longbow derivatives (such as Composite Longbows and Warbows). Temporary Workaround:  After taking the Shortbow in hand, manually enter the type of arrow into the ammo section of the weapons tab on the character sheet.  Ensure that the character has a quantity of that arrow in their equipment with the same spelling.  This work around will not always work - it depends on some data not accessible through the character sheet fields. Permanent Fix: The fix went live on Wednesday 9th April 2025.
1744009517

Edited 1744363670
Richard @ Damery
Pro
API Scripter
Bug Fixed: Empty Strings in API Buttons Fixed in MagicMaster v4.0.3 released 9th April 2025 Bug Description:  If name fields in Character Sheet tables (such as the spell tables, potion tables, weapon tables etc) are empty strings - i.e. blank - insead of seeing empty slot buttons in RPGMaster dialogs that display those tables (such as the Spells Menu > Memorize Spells  dialog discussed in an earlier post) raw code appears in the button's place.  Blank fields can occur if the character sheet has perhaps been imported via Transmogrifier  or the Character Vault, or the player has altered the character sheet manually rather than using RPGMaster functions. Proper Use under RPGMaster:  All character sheet table entries can and should be managed through RPGMaster functions if using the RPGMaster APIs.  This ensures that all RPGMaster functions work to the fullest extent.  There are many more fields stored for table entries on the character sheet than are visible and alterable by the player. If these other hidden table fields are not filled in by RPGMaster functions then RPGMaster funtions may not work as you are expecting. Temporary Workaround:  Enter a dash or hyphen (i.e. '-') in any empty name field manually as a one-off fix. This will then allow the RPGMaster APIs to see these table entries as empty and display the API Buttons correctly.  RPGMaster does and has always treated just a dash/hyphen in a name field as an empty slot, so that Roll20 API buttons work correctly. Permanent Fix:  The fix went live on Wednesday, 9th April 2025.  The fix traps any empty string in an API button call and replace it with a dash/hyphen without changing the character sheet field.
1744364858

Edited 1744964890
Richard @ Damery
Pro
API Scripter
Bug Fixed: Different Ammos with Same Name Might Cause Infinate Loop Error Fixed in RPGMLibrary v4.0.4 released 16th April 2025 Bug Description:  This is a rare bug, that you may only see if you rename or hide ammo types for ranged weapons using the GM's [Add Items] dialog (or use the !magic --gm-edit-mi command). If two different ammo types for the same ranged weapon are given the same display name (e.g. through renaming or hiding the ammo) in a character's equipment, then when the ranged weapon that uses that ammo type is taken in-hand by that character, an infinate loop error can occur that causes a fatal crash of the APIs. For example, if a character has a shortbow, some ordinary Flight Arrows, and then picks up some Flight Arrows+1 that the GM has hidden as ordinary Flight Arrows (for instance, in a chest the character has discovered), the character's equipment will show two lots of Flight Arrows but underlying this the two items are different items.  If the player takes the shortbow in-hand, the AttackMaster API might under certain circumstances enter an infinate loop, causing Roll20 to detect the loop and stop the API sandbox. Permanent Fix ETA:  the fix was released in the merge on Wednesday, 16th April 2025.
1744964752

Edited 1744966008
Richard @ Damery
Pro
API Scripter
Bug Found: Magical Flight Arrows Not Available for Shortbows Bug Description:  If a character / NPC is equipped with a shortbow and flight arrows, and some or all of those flight arrows are magical (+1 or better), only the non-magical flight arrows will be available for use with the bow. Essentially, while I fixed the bug above No Ammo For Shortbow , the fix only works for non-magical Flight Arrows and (any type of) Glass Arrows. Oops! Sorry. Temporary Workaround:  Use non-magical Flight Arrows and apply the magical benefits manually, or if only using magical flight arrows improve your character's Thac0 on their Token Circle by the magical benefit temporarily (remembering to change it back again when you change weapon!). If you are confident with adding your own RPGMaster database entries, you could extract the MI-DB-Ammo database and amend the Flight-Arrow+1, +2, +3 & +4 entries by adding a third [Flight-Arrow,Ammo,1H,Arrow,Flight-Arrow] to the Specs=... data section so it looks like e.g. for Flight-Arrow+1: &{template:RPGMammo}{{name=+1}}Specs=[Flight-Arrow,Ammo,1H,Arrow,Flight-Arrow],[Flight-Arrow,Ammo,1H,Arrow,Flight-Arrow],[Flight-Arrow,Ammo,1H,Arrow,Flight-Arrow]{{}}AmmoData=[w:Flight Arrow+1,+:1],[w:Warbow Flight Arrow+1,+:1],[w:Shortbow Flight Arrow+1,+:1]{{}}RangeData=[t:longbow,+:1],[t:shortbow,+:1],[t:warbow,+:1],[t:compositelongbow,+:1],[t:compositeshortbow,+:1]{{}}%{MI-DB|Flight-Arrow}{{subtitle=Magic Weapon}}{{Ammo=+1, **Warbow** vs. SM:1d8, L:1d8, **Other Bows** vs. SM:1d6, L:1d6, Piercing}}{{desc=A magical Flight Arrow of fine quality}} Once you have amended the entries, any character using a shortbow with magical flight arrows must use Attk Menu > Change Weapon  to take the shortbow in-hand again, so that the arrows are recognised. This extracted and manually amended version of the database will automatically be deleted when the fix is released (unless you add your own suffix to the name) and the fixed standard released Ammo database in the library will then be used. Permanent Fix ETA:  The fix is already coded for the RPGMaster Library MI-DB-Ammo database, and hopefully will go into the Roll20 merge on 23rd April (though Easter might alter dates...)
1744967393

Edited 1744968756
Richard @ Damery
Pro
API Scripter
New Drag & Drop  Creatures Released The latest release (v4.0.4, 16th April 2025) includes additional Drag & Drop  creatures, which will fully populate with equipment, attacks, spells & powers as defined in the AD&D 2e Monsterous Manual: Flesh Golums, Grey Ooze, Dopplegangers, all types of centipede, all types of pudding, all types of Grell, Gelatinous Cube, Mimics, Manticore, Revenants, Shadows, Shriekers, Wererats, and a 3e / 5e creature called a Grick adapted for 2e. The complete list is now as below. Note: for alphabetic sorting and ease of finding, there are a lot of duplicates... e.g. a "Bear Polar" and a "Polar Bear" share the same creature definition.  Where level or age are relevant and not predefined, the system will ask for the value when such a creature is selected, and apply the relevant mods to the definition as the Drag & Drop  creature sheet is populated: Adder, Advanced Bullywug, Advanced Bullywug Shaman, African Elephant, Air Elemental, Amphisbaena, Animal Skeleton, Aquatic Ogre Chief, Aquatic Ogre Female, Aquatic Ogre Merrow, Aquatic Ogre Patrol Leader, Aquatic Ogre Shaman, Aquatic Ogre Young, Baboon, Badger, Basilisk Dracolisk, Basilisk Greater, Basilisk Lesser, Bear Black, Bear Brown, Bear Cave, Bear Polar, Bear Polar Huge, Beholder 45 49HP, Beholder 50 59HP, Beholder 60 69HP, Beholder 70 75HP, Birdcharmer, Black Bear, Black Dragon, Black Pudding, Black Rat, Blink Dog, Blue Dragon, Boalisk, Boar, Brass Dragon, Bronze Dragon, Broom of Animated Attack, Brown Bear, Brown Pudding, Brown Rat, Brownie, Buffalo, Bugbear, Bugbear Chieftain, Bugbear Leader, Bugbear ac5, Bull, Bullywug, Bullywug Advanced, Bullywug Advanced Shaman, Bullywug Chieftain, Bullywug Leader, Bullywug Sub Chief,  Carrion Crawler, Cave Bear, Centaur, Centaur Druid, Centaur Leader, Centipede Giant, Centipede Huge, Centipede Megalo, Cloud Castle Giant, Cloud Giant, Cloud Giant Juvenile 1, Cloud Giant Juvenile 2, Cloud Giant Juvenile 3, Cloud Giant Priest, Cloud Giant Wizard, Common Mimic, Constrictor Snake, Copper Dragon, Courser Stone Horse,  Death Dog, Destrier Stone Horse, Djinni, Dog Blink, Dog Death, Dog Onyx, Dog War, Dog Wild, Doppleganger, Dracolisk, Draft Horse, Dragon Black, Dragon Blue, Dragon Brass, Dragon Bronze, Dragon Copper, Dragon Gold, Dragon Green, Dragon Red, Dragon Silver, Dragon White, Dryad, Dun Pudding,  Eagle Wild, Earth Elemental, Ebony Fly, Efreeti, Elemental Air, Elemental Earth, Elemental Fire, Elemental Water, Elephant, Elephant African, Empyrean Priest, Empyrean Wizard, Ettin Fire Elemental, Fire Giant AC 1, Fire Giant AC5, Fire Giant Juvenile 1, Fire Giant Juvenile 2, Fire Giant Juvenile 3, Fire Giant Shaman L7, Fire Giant Witch Doctor, Fire Mephit, Flesh Golem, Flind, Flind Leader, Flind ac5, Fremlin, Freshwater Troll, Freshwater Troll Shaman, Frost Giant AC0, Frost Giant AC5, Frost Giant Jarl, Frost Giant Juvenile 1, Frost Giant Juvenile 2, Frost Giant Juvenile 3, Frost Giant Shaman L3, Frost Giant Shaman L5, Frost Giant Shaman L7, Frost Giant Witch Doctor L3 7,  Galtrit, Gelatinous Cube, Genie Djinni, Genie Efreeti, Ghast, Ghost ethereal plane, Ghost material plane, Ghoul, Giant Centipede, Giant Cloud, Giant Cloud Castle, Giant Cloud Juvenile 1, Giant Cloud Juvenile 2, Giant Cloud Juvenile 3, Giant Cloud Priest, Giant Cloud Wizard, Giant Cobra, Giant Constrictor Snake, Giant Fire AC 1, Giant Fire AC5, Giant Fire Juvenile 1, Giant Fire Juvenile 2, Giant Fire Juvenile 3, Giant Fire Shaman L7, Giant Fire Witch Doctor, Giant Frost AC0, Giant Frost AC5, Giant Frost Jarl, Giant Frost Juvenile 1, Giant Frost Juvenile 2, Giant Frost Juvenile 3, Giant Frost Shaman L3, Giant Frost Shaman L5, Giant Frost Shaman L7, Giant Frost Witch Doctor L3 7, Giant Hill AC0, Giant Hill AC3, Giant Hill AC5, Giant Hill Juvenile, Giant Leech 1HD, Giant Leech 2HD, Giant Leech 3HD, Giant Leech 4HD, Giant Lynx, Giant Owl, Giant Poisonous Snake, Giant Rat, Giant Scorpion, Giant Sea Horse, Giant Sea Snake, Giant Skeleton, Giant Stag, Giant Stone, Giant Stone Elder, Giant Stone Juvenile 1, Giant Stone Juvenile 2, Giant Stone Juvenile 3, Giant Stone Mage, Giant Two Headed, Giant Two Headed Troll, Gnoll, Gnoll Chieftain, Gnoll Leader, Gnoll Warrior Guard, Gnoll ac5, Goat, Goat of Terror, Goat of Travail, Goat of Travelling, Goblin, Goblin Assistant, Goblin Bodyguard, Goblin Chief, Goblin Leader, Goblin Shaman L5, Goblin Sub Chief, Goblin ac6, Gold Dragon, Gorgon, Gray Ooze, Greater Basilisk, Green Dragon, Grell Patriarch, Grell Philosopher, Grell Philosopher Wizard, Grell Soldier, Grell Worker, Gremlin, Gremlin Fremlin, Gremlin Galtrit, Gremlin Mite, Gremlin Mite Female, Gremlin Mite King, Gremlin Snyad, Grick, Grick Alpha,  Half Ogre, Half Ogre Kader, Half Ogre Shaman, Half Ogre Veteran, Half Ogre no armour, Heavy War Horse, Hell Hound 4HD, Hell Hound 5HD, Hell Hound 6HD, Hell Hound 7HD, Heway Snake, Hill Giant AC0, Hill Giant AC3, Hill Giant AC5, Hill Giant Juvenile, Hippocampus, Hippogriff, Hippogriff Baby Foal, Hippogriff Young Foal, Hobgoblin, Hobgoblin Assistant, Hobgoblin Chief, Hobgoblin Sergeant, Hobgoblin Sub Chief, Homonculus, Horned Owl, Horse, Horse Draft, Horse Heavy War, Horse Light War, Horse Medium War, Horse Mule, Horse Pony, Horse Riding, Horse Steppe Pony, Horse Wild, Huge Centipede, Huge Polar Bear, Huge Scorpion,  Ice Mephit, Imp, Imp Mephit Fire, Imp Mephit Ice, Imp Mephit Lava, Imp Mephit Mist, Imp Mephit Smoke, Imp Mephit Steam, Invisible Stalker,  Jackal, Jaguar, Jermlaine, Jermlaine Elder, Ju Ju Zombie, Killer Mimic, Killmoulis, Kobold, Kobold+ac7, Kobold Chieftain, Kobold Guard, Kobold bodyguard, Kobold leader,  Lacedon, Large Scorpion, Lava Mephit, Leech Giant 1HD, Leech Giant 2HD, Leech Giant 3HD, Leech Giant 4HD, Leech Throat, Leopard, Leprechaun, Lesser Basilisk, Lich, Light War Horse, Lion, Lizardman, Lizardman King, Lizardman Patrol Leader, Lizardman Shaman 3HD, Lizardman Shaman 4HD, Lizardman Shaman 5HD, Lizardman Shaman 7HD, Lizardman Sub Leader, Lizardman War Leader, Locathah, Lynx Giant,  Manticore, Marine Scrag, Marine Scrag Shaman, Mastodon, Medium War Horse, Megalo Centipede, Mephit Fire, Mephit Ice, Mephit Lava, Mephit Mist, Mephit Smoke, Mephit Steam, Merman, Merman Chieftain, Merman Guard, Merman Leader, Merman Patrol Lead 2HD, Merman Patrol Lead 3HD, Merman Shaman, Merrow, Merrow Chief, Merrow Female, Merrow Patrol Leader, Merrow Shaman, Merrow Young, Mimic Common, Mimic Killer, Mist Mephit, Mite, Mite Female, Mite King, Monster Skeleton, Monster Zombie, Mouse, Mule, Mummy,  Obsidian Steed, Ogre, Ogre Chieftain, Ogre Half Ogre, Ogre Half Ogre Kader, Ogre Half Ogre Shaman, Ogre Half Ogre Veteran, Ogre Half Ogre no armour, Ogre Leader, Ogre Mage, Ogre Mage Priest, Ogrillon, Onyx Dog, Orc, Orc Assistant, Orc Bodyguard, Orc Chieftain, Orc Guard, Orc Leader, Orc Shaman L5, Orc Sub Chief, Orc ac6, Osquip, Ostrich, Owl, Owl Giant, Owl Horned, Owl Talking Piercer 1HD, Piercer 2HD, Piercer 3HD, Piercer 4HD, Piranha Swarm, Poison Snake 1 4, Poison Snake 12 14, Poison Snake 15 17, Poison Snake 18 19, Poison Snake 20, Poison Snake 5 6, Poison Snake 7 11, Polar Bear, Polar Bear Huge, Poltergeist, Pony, Pudding Black, Pudding Brown, Pudding Dun, Pudding White,  Quasit,  Rakshasa, Rakshasa Maharajah, Rakshasa Rajah, Rakshasa Ruhks, Ram, Rat Black, Rat Brown, Rat Giant, Rat Swarm of, Red Dragon, Revenant, Rhinoceros, Riding Horse, Roper 10HD, Roper 11HD, Roper 12HD,  Sahuagin, Sahuagin Baron, Sahuagin Chieftain, Sahuagin Deep Diver, Sahuagin Female, Sahuagin Guard, Sahuagin Hatchling, Sahuagin High Priestess, Sahuagin King, Sahuagin Lair Priestess L2, Sahuagin Lair Priestess L3, Sahuagin Lair Priestess L4, Sahuagin Lair Priestess L5, Sahuagin Lieutenant, Sahuagin Noble Guard, Sahuagin Prince, Sahuagin Underpriestess, Sahuagin Wave Shaper, Salamander, Saltwater Troll, Saltwater Troll Shaman, Scorpion Giant, Scorpion Huge, Scorpion Large,  Sea Horse Giant, Shadow, Shark, Shell Shark, Shrieker, Silver Dragon, Skeletal Juggernaut, Skeletal Swarm, Skeleton, Skeleton Animal, Skeleton Giant, Skeleton Monster, Skunk, Smoke Mephit, Snake Amphisbaena, Snake Birdcharmer, Snake Boalisk, Snake Constrictor, Snake Constrictor Giant, Snake Giant Cobra, Snake Giant Sea, Snake Heway, Snake Poisonous 1 4, Snake Poisonous 12 14, Snake Poisonous 15 17, Snake Poisonous 18 19, Snake Poisonous 20, Snake Poisonous 5 6, Snake Poisonous 7 11, Snake Poisonous Giant, Snake Spitting, Snow Leopard, Snyad, Spectre, Spitting Snake, Stag Giant, Steam Mephit, Steppe Pony, Stirge, Stone Giant, Stone Giant Elder, Stone Giant Juvenile 1, Stone Giant Juvenile 2, Stone Giant Juvenile 3, Stone Giant Mage, Swarm of Rats, Symbol of Hopelessness, Symbol of Pain, Symbol of Pursuasion,  Talking Owl, Throat Leech, Tiger, Titan Priest, Titan Wizard, Triton, Troll, Troll Freshwater Scrag, Troll Freshwater Shaman, Troll Giant Two Headed, Troll Saltwater Marine Scrag, Troll Saltwater Scrag Shaman, Troll Shaman Chieftain, Two Headed Giant Vampire,  War Dog, Water Elemental, Weasel, Wererat, White Dragon, White Pudding, Wight, Wild Dog, Wild Eagle, Wild Horse, Wind Walker, Winter Wolf, Wolf, Wolverine, Wraith,  Xorn,  Zombie, Zombie Ju Ju, Zombie Monster
Hi, I currently have an issue with ThAC0. For some reason the Script calcuates the base ThAC0 of every class as improving +1 per level. I already tried setting up a completely new character, elf mage level 6, no other entries besides class and race.
1745266130

Edited 1745270193
Richard @ Damery
Pro
API Scripter
Isa said: Hi, I currently have an issue with ThAC0. For some reason the Script calcuates the base ThAC0 of every class as improving +1 per level. I already tried setting up a completely new character, elf mage level 6, no other entries besides class and race. Isa, thanks for sending this through.  Yes a stupid error on my part using cut & paste too much! You can override the calculated Thac0 by just setting the Thac0 in the Blue Circle (assuming you are using the default RPGM token bar/circle assignments and have not hanged them in the Token Setup > Manage Token Bars  dialog - if you have changed them, just set the Thac0 in the appropriate token circle). The APIs should then apply a "Magic hit adjust" value of the difference between the circle Thac0 and the incorrect calculated thac0 to make the attack calculation right - you can confirm this by hovering over the AC Hit value on the Attack dialog to view the calculation and look for the "Magic hit adjust" value. I've found the bug, and posted it for a merge - hopefully this week, but Easter may delay things (I hope not). Caused in the last release by my change to cater for adding a "Creature" character class to force an override to force use of creature thac0 while still retaining class-specific level related saving throws, spell slots etc. to support some of the latest Drag & Drop  creatures.
1745781111

Edited 1746027485
Richard @ Damery
Pro
API Scripter
Bug Found: Exchanging or removing a spell-storing item Bug Desription: If a charater has a spell-storing item, such as a Ring of Spell Storing  or a Blank Scroll , with spells or powers stored on it and that item is exhanged with another character using Items Menu > Store Item , or removed using the Items Menu > Change Your Items > Remove Item  or the GM's Add Items  dialog, the Character sheet might have some Attribute objects left attached to it named "Untitled" which are impossible to delete.  However, these attributes are ignored by both Roll20 and RPGMaster APIs, and do not seem to affect game play in any way.  This issue has been there for some time, so may exist on many of your character sheets. Temporary Fix:  As the problem does not seem to effect game play with RPGMaster APIs in any way, no temporary fix is required. If it is affecting any other APIs you have loaded, let me know and I'll see what I an do. Permanent Fix ETA:  I have now found the cause, and coded a fix for all instances of the issue.  It should go into the next merge, on or around Wednesday 7th May. I have now found a way to "clean" the character sheets of the corrupted attributes, and in the next release I've added an (undocumented) command  !magic --clean [token_id]  (i.e. the token_id is optional, and if not provided the selected token representing a character sheet will be used). As this command completely recreates the character sheet, only one token/sheet can be cleaned at a time - check the clean is working for you and nothing goes wrong with each sheet as a result, e.g. if you have other APIs running. You don't have to use this:  RPGMaster & Roll20 ignore the corrupted attributes. However, if you are seeing a slow down because of large numbers of objects, or other APIs you have loaded are affected, then you can use this command to clean the sheet(s) as desired. If, after some time in use, the !magic --clean  command seems to be working without any adverse impacts, I'll work it into the character sheet tidying process that happens every time you drag a character onto the map to drop a token.
Isa said: Hi, I currently have an issue with ThAC0. For some reason the Script calcuates the base ThAC0 of every class as improving +1 per level. I already tried setting up a completely new character, elf mage level 6, no other entries besides class and race. This bug has been fixed in the latest merge, 30th April 2025. Selecting Attk Menu > Check Thac0 & HP Mods  should now display the correct Current and/or Calculated Thac0 for any selected PC or NPC or Creature.  Please do let me know if any problems remain - I want to get rid of as many bugs as possible (while not creating new ones...).
1749403164

Edited 1749403214
Richard @ Damery
Pro
API Scripter
Testing the next major release I'm in the process of testing the next major release.  This will include splitting the single magic items and equipment table into multiple tables on the character sheet (see the Equipment  tab) to make it easier to find that item on your character that you want to use.  All the current functions will still work as they do now, as I have extended the RPGMaster table management system to be able to search, update, extend and otherwise manage a multi-table repository.  The change just makes the dialogs easier to navigate and find items to use. Treasure will also now be held on the Currency  tab with values totalled appropriately and coinage shown.  Coins will be able to be tracked and given to buy items from other characters or NPCs (e.g. a shop keeper), or found as treasure, looted from chests or dead bodies, or pick-pocketed by thieves. It will take a couple of months until this release goes out - I want to test it with my local group of players first to get the obvious bugs out of it (they are a very patient lot...) I'll keep this thread updated with progress (which will also keep the thread alive).
1751127865

Edited 1751129400
Richard @ Damery
Pro
API Scripter
What's Coming in v4.1: Commerce! What are your characters going to do with all those spare magic items and equipment they are carrying around? Turn them into hard cash and buy better stuff! I've nearly completed adding money and trading to RPGMaster v4.1 ready for play testing with my group in a few weeks time.  I thought I'd share a taster of whats in it so you can influence the development: Item lists for characters, NPCs and creatures can now be sorted by item type to make it easier to see what items each possess. This requires a quick ccharacter sheet table conversion  which automatically occurs when a character of a previous version does a "Long Rest". Characters, NPCs and Creatures created in v4.1 or later will already work to this standard. The sections can be shown or hidden using the hyperlink button at the top. The catagories are roughly those used in the DMG, and correspond to the "item class" (field 2 of the item Specs definition in the databases). When asked to select a slot to store an item in (e.g. the GM using the GM's Add Items  dialog or the !magic --gm-edit-mi command) it does not matter what section the selected slot is in, the system will ensure the item ends up in the correct place. If you look at the Equipment tab of the character sheet after the conversion is done, you will see that the items have been put in the correct tables on the sheet. The Item Menu (or MI Menu for older characters) has been updated to be more usable, and to add in the "Buying" and "Selling" capability buttons.  Picking pockets has always been possible (by trying to search an NPC or creature that is sentient & still alive!), but is now more explicit with its own button.  Searching a sentient being will still trigger picking a pocket though... Buying & Selling:  Traders can be set up in the campaign - there a several new "Drag & Drop"  NPC types that are predefined as traders: Bar Keeper, General Store Keeper, Blacksmith, Magic Shop Keeper... there may be others added.  Each trader has included in their ClassData some new tags: sell:  the formula for mark-up applied to items the trader sells buy:  the formula for mark-down applied to items the trader offers to buy tobuy / tosell (optional):  the types / item classes that the trader is willing to buy and / or sell, thus restricting trade to be relevent to who they are.  If not specified, will buy or sell anything nobuy / nosell (optional):  the types / item classes that the trader will not buy or sell. It is possible to have a class of item specified as e.g. tobuy, but a specific type of that class of item in the nobuy list. The Class definitions for "Drag & Drop"  NPCs can have these tags, but they can also be entered in the Notes field of the Attributes tab of the character sheet: thus individual traders (including Player Characters) can have differing characteristics.  Any PC/NPC of any Class can have these tags added in a NPCdata=[...] string in the Attributes > Notes  field of the sheet and be able to trade. Item classes & types are part of the item database specification for each item: see the Magic Item Database handout for further information. When making a trade, the player controlling the trader (often the GM) will be prompted with the cost with the mark-up / mark-down applied and 3 options: make the offer, haggle, or refuse the trade.  Haggling just pops up a Roll Query entry for the negotiated price - the players playing the PC and the Trader haggle off-line and once the price is agreed it is entered. The player of the PC or other party in the trade will receive the transaction offer, and can choose to accept or reject it. If the trade is accepted, the necessary coins will be deducted from the buyer and added to the seller.  If the buyer does not have enough of a particular value of coin (e.g. in this case has no GP but does have some PP or enough EP/SP/CP) the appropriate adjustments made and change given, again automatically.  If the buyer does not have enough money in total, they will go negative - the system does not stop this and the player and GM must manage this manually (I might add a warning...). If the Trader does not accept certain goods for trade, these will be greyed out in the choice list for the other party in the trade.  If the seller has items of zero value, these will not be shown at all. The base value of goods is set in each item definition in the Magic Item databases (which also hold just ordinary non-magical items) using the values in the PHB, DMG, and Table 23 of "Dungeon Master Option: High Level Campaigns". When in a character's / NPC's / Creature's items, the GM can use the Add Items  dialog or the !magic --gm-edit-mi command to change the value of any item possessed, up, down or to zero, by selecting the item and using the [Change cost]  button.   Note:  the value of an item is then marked up or down by the Trader using the formula specific to that trader (they have to make a profit somehow! They've got families to feed... and beer to be bought...).
1752834946

Edited 1752834982
Isa
Pro
Hi, just wanted to ask if it would be possible to add the Ravenloft saving throws to the script? I'm running a Ravenloft campaign and players sometimes get a bit confused when they still have to open the character sheet for that. Same situation with nonweapon proficencies
1752843856

Edited 1752843944
Richard @ Damery
Pro
API Scripter
Isa said: Hi, just wanted to ask if it would be possible to add the Ravenloft saving throws to the script? I'm running a Ravenloft campaign and players sometimes get a bit confused when they still have to open the character sheet for that. Same situation with nonweapon proficencies Hi Isa, thanks for the contact and the suggestion. I'll take a look - though you might be able to do it yourself by extracting the Class-DB and Race-DB database entries for classes and races and  and amending   saving throw modifiers in line with the help handouts.  If you are not comfortable with amending these database entries, I'll take a look at this after I release v4.1, though that will not be until September. At the moment, the APIs don't deal with Nonweapon Proficiencies. v4.1 will provide better management of Weapon Proficiencies and I might extend that to NWPs.
Hi, I'm currently struggling to add my own classes to the database. I don't have much experience/knowledge with macros and have tried taking an already existing template and editing it. Also already checked out the wiki and compared the specs to it. But there seems to be an error somewhere.  The class won't show up in the dropdown menu. When I manually enter it through other it pulls the entry but it won'T add all valid spells and powers to the spellbook. I would be very thankful if someone more experienced could help me out. &{template:RPGMclass}{{name=Anchorite (lawful good)}}{{subtitle=Priest Class}}{{Min Attributes=Wis:[[12]], Cha:[[15]]}}{{Hit Dice=1d8}}{{Reference=Ravenloft Domains of Dread}}{{=**Alignment**}}{{Deity=lawful neutral}}{{Priests=lawful good}}{{Flock=Any not Evil}}Specs=[Anchorite-(lg),PriestHRClass,0H,Priest]{{Powers=mist walking, shield of Ezra}}{{Major Spheres=All, Charm, Divination, Law, Healing}}{{Minor Spheres=Protection, Wards, Sun, Guardian}}ClassData=[w:Anchorite-(lg), hd:1d8, align:lg|nn|ln, npp:-3, weaps:club|staff|mancatcher|sling, ac:any, sps:all|charm|healing|divination|law, spm:guardian|protection|wards|sun]{{desc=This unusual class of priest exists only on the Demiplane of Dread. His mystical abilities stem from an unknown source, perhaps the dark powers themselves or perhaps something less. Whatever their source, however, these characters lose all magical abilities if they somehow leave Ravenloft. Anchorites serve the church of Ezra. This unusual organization is a multi-denominational church that, like the anchorites, exists only in Ravenloft. While all branches of the church see Ezra in more or less the same way (as a defender, healer, and protector of her followers), specific practices and beliefs differ greatly.}}
1754110271

Edited 1754110399
Richard @ Damery
Pro
API Scripter
Isa said: Hi, I'm currently struggling to add my own classes to the database. I don't have much experience/knowledge with macros and have tried taking an already existing template and editing it. Also already checked out the wiki and compared the specs to it. But there seems to be an error somewhere.  The class won't show up in the dropdown menu. When I manually enter it through other it pulls the entry but it won'T add all valid spells and powers to the spellbook. I would be very thankful if someone more experienced could help me out. Isa, thanks for getting in touch.  It's great that you're looking to make use of the custom class system! I can see the problem - you have parentheses in the class name.  Roll20 assigns special meaning to parentheses: if they appear in names of classes, races, spells, magi items etc, it will cause problems.  The structure of a Roll20 API button (all those red buttons with white text you see all over the place) is [button name](API command to be run) so if the "API command to be run" includes a right parenthesis like [button name](!cmd token_id|Anchorite-(lg)|parameter2|parameter3 ) then the right parenthesis after the lg will terminate the command and parameter2 & parameter3 will not get sent.  I've checked it out by taking out the parentheses in the class name, putting your definition in a custom Class-DB-Isa and setting up a character, and this solves the issue. I'll take a look at scanning for and substituting parentheses at some point, but there are so many situations to be covered that doing so is a big job! So best to just avoid them for now. Regards the spell spheres, I'm assuming you have set up your own custom spells of the spheres "Law" & "Wards". By default, only the spheres listed in the AD&D 2e Player's Handbook are implemented in the APIs, but if you follow the guidelines in the Spells Database Help and use the "sph:" tag to define the new spells as "law" or "wards" I think that should be picked up OK. Try the Anchorite without the parentheses and let me know what happens.
Richard @ Damery said: Isa, thanks for getting in touch.  It's great that you're looking to make use of the custom class system! I can see the problem - you have parentheses in the class name.  Roll20 assigns special meaning to parentheses: if they appear in names of classes, races, spells, magi items etc, it will cause problems.  The structure of a Roll20 API button (all those red buttons with white text you see all over the place) is [button name](API command to be run) so if the "API command to be run" includes a right parenthesis like [button name](!cmd token_id|Anchorite-(lg)|parameter2|parameter3 ) then the right parenthesis after the lg will terminate the command and parameter2 & parameter3 will not get sent.  I've checked it out by taking out the parentheses in the class name, putting your definition in a custom Class-DB-Isa and setting up a character, and this solves the issue. I'll take a look at scanning for and substituting parentheses at some point, but there are so many situations to be covered that doing so is a big job! So best to just avoid them for now. Regards the spell spheres, I'm assuming you have set up your own custom spells of the spheres "Law" & "Wards". By default, only the spheres listed in the AD&D 2e Player's Handbook are implemented in the APIs, but if you follow the guidelines in the Spells Database Help and use the "sph:" tag to define the new spells as "law" or "wards" I think that should be picked up OK. Try the Anchorite without the parentheses and let me know what happens. Its a good idea to avoid any characters other than alpha, numbers, +, -  in macro names - and other names for that matter, like Character Sheet names & Token Names (the APIs check for these whenever they are started and prompt you to change them). Other characters may work (but not parentheses), but I can't guarantee that under all circumstances. Also, remember to run !magic --check-db Database-Name-DB-Extra-bit any time you change macro names in a database to re-build the internal API indexes, otherwise the new name will not be seen until the next time the API sandbox is restarted (e.g. on opening the campaign).
Richard @ Damery said: Try the Anchorite without the parentheses and let me know what happens. Thank you very much for the help, it's working now. 
1754426553

Edited 1754426688
Richard @ Damery
Pro
API Scripter
D&D5e catches up with RPGMaster! As announced previously here , the next release of RPGMaster includes Drag & Drop  Commerce - traders, shops, blacksmiths, inns, training schools, harbour masters and more, with selectable trading margin, content etc. v4.1 is currently in beta test with my group and I expect to release it into the wild in the next 3 weeks or so. It is the case that RPGMaster has been able to buy & sell items for about 3 years, but how to set it up was burried in the help text and not obvious - the Drag & Drop  approach is much easier and more obvious, with random stock generated appropriate for the type of trader selected.. Of course, Drag & Drop  containers have been around for a while: previously, contents were generated randomly and then could be altered by the GM using their tools. v4.1 allows the GM to influence the mix of items randomly generated by selection from a drop-down list of combinations - the GM can then still review and alter the contents using their tools. And as with all aspects of RPGMaster data & databases all of this is alterable and extendable by the GM adding database items of their own. So I have just seen the new D&D5e preview of the new shops & treasure developments for 5e: guess what? They look like they have finally caught up with RPGMaster!  Much more polished presentation: wish the APIs had the ability to create dialogs like these... or can someone tell me how I can?
1754633687

Edited 1754633722
Gauss
Forum Champion
Richard @ Damery said: So I have just seen the new D&D5e preview of the new shops & treasure developments for 5e: guess what? They look like they have finally caught up with RPGMaster!  Much more polished presentation: wish the APIs had the ability to create dialogs like these... or can someone tell me how I can? You may want to look at KeithCurtis' new Director script. It is pushing handouts in ways many never thought possible. There might be something there you can use.
Gauss said: You may want to look at KeithCurtis' new Director script. It is pushing handouts in ways many never thought possible. There might be something there you can use. Thanks Gauss, I'll take a look
1754856082

Edited 1754856356
Richard @ Damery
Pro
API Scripter
Richard @ Damery said: Gauss said: You may want to look at KeithCurtis' new Director script. It is pushing handouts in ways many never thought possible. There might be something there you can use. Thanks Gauss, I'll take a look Very interesting. Had a look at Keith's script and it got me to wondering. RPGMaster has its own template parser and I wondered what would happen if I just redirected its CSS/HTML stream to a handout, and look what came out: My template parser works pretty much out of the box! Any API buttons need parsing and replacing with hyperlinks, but the hyperlinks in the stream already work fine. I can define some template names that specifically use handout redirection for the GM control dialogs, like Drag & Drop  creature, NPC, container and Trader setup, the Maintenace menu, and RPGMaster option selection. This may be a v5 feature, to tidy up the chat window and allow the GM to have the control handout open continuously, and also give players the option of some larger dialogs opening in their own personal handout. For now, I need to get v4.1 out in the next 3 weeks or so. Beta test nearly complete and final fix hopefully done.
1755204899

Edited 1755205168
Richard @ Damery
Pro
API Scripter
Advantage & Disadvantage Many of the campaigns that my AD&D2e group play on Roll20 are old AD&D2e modules from long ago that have been converted to D&D5e for game-play here. I and my fellow DMs then spend time converting them back to AD&D2e again! However, there are some parts of the D&D5e rule set that are quite attrative and I believe add to AD&D2e gameplay. I've previously added Short Rests  to the RPGMaster suite of APIs (some years ago now) as short rests (which in RPGMaster restores 1st level spells for Wizards and Priests) help to extend the time a party might spend in exploration and disovery, rather than retreating to a place of safety for a Long Rest having only played 3 hours of game time. I quite like the D&D5e concepts of Advantage & Disadvantage  as magical or situational benefits or penalties. In order to explore if these consepts are useful in AD&D2e I have added them as possible modifiers that can be applied, managed and removed using the !attk --set-mods  ccommand. From the next release (v4.1), Advantage & Disadvantage can be set separately for Melee Attack rolls, Ranged weapon Attack rolls, Damage rolls, Saving Throws, Attribute Checks, and Rogue Skill Checks. Each of these rolls can be performed either by the API rolling 2 dice and using the right one, or by prompting the player to enter first 1 die roll result and then a seond one   (player selectable in each case)  and the API will ensure the right value is used.  If using a Targeted Attack  the computer will roll lots of dice, especially if both the appropriate attack and damage advantage / disadvantage mods are set. Having these in AD&D2e for instance allows the creation of a condition equivalent to the D&D5e Poisoned  state (which actually was the reason I originally developed this). This should be released before the end of August.
RPGMaster v5.0.0 Release The RPGMaster Suite is due to have a complete major release. v5.0.0 includes the brand new Commerce, Trading & Services system for AD&D2e, described in the post here . It's taken a period of beta testing to iron out a number of bugs - I don't promise for it to be bug free, especially when it hits character sheets I've not tested it with! However, it has worked successfully in several games with my group. After the APIs have automatically upgraded (if you loaded them from the Roll20 Mod Library) or you have updated them manually (you can check the version by looking at the Release Notes handout), you will need to convert data in the character sheets to make best use of Peter B.'s excellent Advanced D&D 2e sheet: the conversion will occur only when characters undertake a Long Rest (so as not to interrupt game play at a critical moment!) so I recommend the GM enables Long Rests using either the [End of Day] macro bar button or the [Maint Menu] macro button, or using the !init --end-of-day or !init --maint commands, and then get all the characters to do a long rest (using either the Spell Menu > Long Rest  action, or the Rest  action, or the !magic --rest  command. There is not really a need to convert Creatures or NPCs - and in fact Characters will work fine without the conversion: the conversion just allows items equipped to be listed sorted by type to make them easier for players to find and use. All Drag & Drop  NPCs & Creatures (including the new Traders, Trainers, Schools & Service Providers) created after v5.0.0 is loaded will, of course, use the new structures on the character sheet from the start, and will not need conversion. I'll put out abother post when everything has been merged into the Roll20 core, and put the full release notes here. In the mean time, I'm happy to take questions about the new release.