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

Tommy said: Hi Richard, Brilliant news. Thanks again for the hard work you put into all this.  It's been so long since I installed all the RPGM stuff, (and, touch wood, it's been running like an Aston Martin...)  can you just post a refresher on how to find/install the Drag and Drop Containers  without me having to reinstall the whole shebang... I always get hyper nervous about losing/buggering things up when doing something like this. cheers Tommy (Edit to add: "Dummies Guide" level if that's OK...) If your APIs are installed via one-click, then the APIs will have automatically updated, and the databases will be loaded. Check for the "Locks and Traps Help" handout which should have been added to your handouts in your journal. To add a Drag & Drop  container: create a blank character sheet in your Journal using the [+Character] Roll20 button. Give it a name (no need for an image :) ), save & close the blank sheet, and then drag it onto the playing surface.  Make sure the dropped token is selected, then go to the chat window (make sure you slide down to the bottom) and there is the Drag & Drop dialog . There is a new button, [Container] . Press that and a drop-down list (Roll Query) opens in the middle of the screen, asking what type of container you want to drop. Select a type of container, and The Locks & Traps dialog opens Select a lock (or none) and trap (or none) for the container, then with the container still selected, use your GM's [Add Items] button to add items to the container for players to find The players / characters can then use "MI Menu / Search for Items & Treasure"  or the new "MI Menu / Find Traps" functions to interact with the container - try it out for yourself. Note:  The "MI Menu / Find Traps" function can be used on any token, even ones not attached to a character sheet! So you can scatter tokens for them to fruitlessly search all over the place!
Brilliant. Yep, found it all. Dead easy, way more intuitive than I feared it might be... going to have a lot of fun with this one. Probably take a me a few goes to get my head round all the new parametres and so on, but my Rogue player is going to love this! Thanks very much Richard
Richard, just a quick one this time. Nick Olivo has just posted on Youtube a new Macro he has devised to add some clever trickery to combine the Mods/APIs EncounterHelper and SpawnDefaultToken with some asociated use of GroupInitiative.    Here I've not been running SpawnDefaultToken for adding new groups of monsters (but have used it for a few other things) and not been using GroupInitiative at all, because I didn't know if it would interfere with the RPGM initiative mechanics. But I'd like to give this new Macro of his a try. Do you know if  GroupInitiative is a safe API/Mod to run alongside RPGM? Cheers. Tommy
Tommy said: Richard, just a quick one this time. Nick Olivo has just posted on Youtube a new Macro he has devised to add some clever trickery to combine the Mods/APIs EncounterHelper and SpawnDefaultToken with some asociated use of GroupInitiative.    Here I've not been running SpawnDefaultToken for adding new groups of monsters (but have used it for a few other things) and not been using GroupInitiative at all, because I didn't know if it would interfere with the RPGM initiative mechanics. But I'd like to give this new Macro of his a try. Do you know if  GroupInitiative is a safe API/Mod to run alongside RPGM? Cheers. Tommy I've not tested GroupInitiative, and I'm unlikely to get a chance for the next week (I'm away for a week on a face-2-face AD&D2e week, playing "Against the Giants"!).  I suggest creating a separate test game, load all the RPGMaster APIs from 1-click (by selecting RPGMaster Suite Mod) and also GroupInitiative, try out the macro and see what happens.  Let me know - any problems and I'll see if I can deal with it.
Oh... The Gs... I am SO jealous... Yes, go... enjoy! I'll run some tests and see if they are even compatible. I kind of doubt GroupInitiative will handle the variable attack options we have anyway. Have fun. 
Tommy said: Oh... The Gs... I am SO jealous... Yes, go... enjoy! I'll run some tests and see if they are even compatible. I kind of doubt GroupInitiative will handle the variable attack options we have anyway. Have fun.  FYI, I've created Drag & Drop  Giants (complete families of Hill, Frost & Fire giants, including fully working Shamans and Witch Doctors) and Dragons (chromatic & metalic at all ages, fully working & populated, with all powers and spell casting - even now added pre-memorised random spells at all levels - which of course GMs can change and hone to what they want) specifically for the GM who is hosting the Face to Face session, as we reccon we won't get through the whole campaign (too much eating, drinking & socialising) and we'll continue it on Roll20 afterwards). I'll release the new Drag & Drop  databases and lots of added goodies in the next few weeks, once they are fully tested.
Special Note about the next release of the RPGMaster Suite The next release of the RPGMaster Suite of APIs/Mods has additions and fixes in a number of the databases, especially for Creatures, Weapons, Classes, Powers, and Effects.  If you have read the help handouts that come with the APIs, you will no doubt be aware that new releases of the supplied databases will overwrite or delete  any extracts of the standard databases that have not been renamed  following the naming convensions in the help handouts.  This is so that the upgrades get consistently applied for standard database items, and the APIs work as smoothly as possible. Any databases of your own that you have given your own names to  (e.g. MI-DB-Richard, or Race-DB-Creatures-Saltmarsh, etc) will not be overwritten or deleted, and will remain fully functional  even if they contain database items with the same name as any standard item.  Your versions of standard database items will remain, and no fixes will be applied to them .  I always try to make everything fully backwards compatable, so all your own items should continue to work as you expect.  However, with in excess of 2,430 standard database items now in existance, I've not been able to test each individually! So please ensure that your custom database items are in separately named character sheet databases following the standard naming convensions given in the help handouts before  the release which will be in a couple of weeks. Also remember that, if you want to improve performance, only hold your custom database items in extracted/renamed database sheets - do not retain complete extracted databases of objects that have not been customised - you will be adding up to 10s of thousands of objects to your Roll20 campaign (each standard database item generates at least 3 and up to 7 separate objects when extracted from the API databases), and while Roll20 and your Web Browser do their best to optimise (e.g. by not loading objects until needed, and doing housekeeping of objects not accessed for a while), not surprisingly Roll20 Mod Servers sometimes struggle managing so many live objects! Hence my creating the RPGMaster database system. Do let me know on this forum if you experience any issues when the release goes out and I'll help where I can.
1697532450

Edited 1697532790
Richard @ Damery
Pro
API Scripter
Release v2.3 now live! Welcome to version 2.3 of the RPGMaster Suite of APIs for Roll20.  Meet all types of Chromatic & Metalic Dragons in the Drag & Drop  stable, and families of Giants too! Lots of goodies, but not many have visible images for me to paint in this release note - you'll just have to play them for yourselves! New creatures, with powers, weapons, classes and effects A number of new  Drag & Drop  creatures have been added, including many Giants, Metalic & Chromatic Dragons, Winter Wolves, Centaurs, Ropers, Hell Hounds and Titans, along with all their powers, weapons and spell-casting abilities. New RaceData attributes Mainly to support  Drag & Drop  dragons, new attributes have been added to RaceData specifications: Age, Magic resistance, and Spell Speed Override (e.g. dragons always cast spells at 1 segment). The Age attribute takes the form  text:# , with the text version of the age being displayed in the  Age  field of the character sheet (this can of course just be the numeric age). The # is used in maths to affect other attributes and use of powers & spells. See the  Class & Race Database Help  handout for details. Drag & Drop  Creature 'Query' Attribute A new drag & drop creature RaceData 'query' attribute has been created that adds an extra level of query to   Drag & Drop   creature selection and returns variables based on the selection. This is used, for instance, when   Dragging & Dropping   a Dragon to ask the GM for its age, which affects many of the attributes & powers of the Dragon. See the   Class & Race Database Help   handout for more information. Maths Evaluator for  Drag & Drop  Creature Attributes A new maths evaluation function has been added to support new race 'query' variables. It is not possible to use the Roll20 chat maths for various reasons when specifying creature attributes that are dependent on the values returned by the new 'query' attribute described above, so a new simple maths evaluator has been added to the APIs to support the likes of Dragon age variation. See the  Class & Race Database Help  handout for more information. Random Spells for Spell-casting  Drag & Drop  creatures It has been possible to specify spellbooks for  Drag & Drop  creatures that can cast spells for some time. However, it is now possible to add random spells (randomly selected and added to the spell book at creation) to the spell book. Just put the word "random" in as a spell name when specifying a spell book in the  Drag & Drop  creature specification e.g.  [cl:MU,lv:2,w:random|random|random]  would add three random spells to the creature's 2nd level spell book. As always, see the  Class & Race Database Help  handout for more information Drag & Drop  Auto-Memorisation of Spells as well as Powers Drag & Drop  creature Powers have always automatically been memorised. It is now the case that any spell-casting  Drag & Drop  creatures will memorise random sets of spells from their spell-books at each level appropriate to their casting capabilities. Priests always have all spells for their allowed spheres available for memorising and random spells will be selected from these as appropriate. But wizard classes may or may not have spell-books specified. If a  Drag & Drop  creature has a wizard casting level but no spells specified for their spell-books (using the  [cl:MU,lv:#,w:...|...|...]  syntax), the APIs will automatically randomly memorise valid spells appropriate to each valid spell casting level from all valid spells, and add these memorised spells to the creature's spell books. Of course, in the case of both Priest and Wizard classes, the GM can adjust the spells in the spell-books using the appropriate button on the GM's [Token Setup] dialog, and memorise different spells from the spell-book using the  Spells Menu > Memorise Spells  dialog. 'specmu' ClassData Attribute The new 'specmu' ClassData attribute flags this class is to be  specmu:1  or not be  specmu:0  a specialist Wizard class. Defaults to 1 for new classes of Wizard, meaning they can memorise an additional spell per spell level in their specialist school. Multiple Effect Instances To date, it has been possible to only simultaneously run multiple copies of the same Effect by adding a  Differentiator  to the called Effect name (see  RoundMaster API Help  handout for details). Invoking any Effect more than once using  !rounds --target  or  !rounds --addstatus  or any related command would overwrite, extend or otherwise change the duration and direction of the Effect, depending on the 'operator' preceding the Effect  duration  (+,-,<,>,=). A new operator is now allowed: '#'. Specifying a duration such as #5 will spawn a new Status of the same name with duration of 5 rounds, apply any Effect-start specification again, invoke Effect-turn multiply each round, and invoke Effect-end as each instance of the Effect ends. An example of this use is the Roper Strand - multiple Roper Strand hits can affect the victim's Strength score at the same time. Item-Specific Spell Lists To date, specific spell book entries for spell-storing magic items were not allocated specifically to the item they were stored in: if two items had the same spell stored, and one of those spells had not yet been cast, either item could cast the remaining available spell which could cause issues and invalid game play. Spells are now tied to the item they are stored on even if the same spell is stored on two or more items. This approach has always been the case for items with powers - spells now use the same storing mechanism. However, backwards compatibility has been retained for use of legacy items and items already "owned" by characters. New !magic --change-attr Maths Operators The MagicMaster API command --change-attr can be used in Effects and the chat window to adjust the value of a character's attribute by a +/- amount. This takes account of strength 18 percentages (which will actually work on any attribute, though this is not strictly valid for 2e). Now, in addition you can use a '*' for multiply and '/' for divide to adjust the attribute by a specified factor. Several examples of this use can be seen in the Effects-DB. Multiple Bug Fixes The following bugs have been fixed Fixed bug that prevented '-turn' effects working under some circumstances Fixed two-weapon attack speeds where one weapon has less than one attack per round. Fixed calculation of non-proficient weapon penalties set for classes & races. Fixed checking valid spells & valid powers which would show invalid spells/powers as valid under some circumstances. Fixed character level of creature that has both HD & caster level. Fixed save mods due to some magic items not being correctly applied. Several small database data fixes. Improved setAttr() error handling.
Complete Drag & Drop  Creature List for v2.3 of RPGMaster This is by no means a complete Monster Manual of creatures, and is heavily influenced by the creatures the DMs in my group have asked me to create. Also, while the list looks long, several creature types are duplicated in this list (so you will see Frost Giant under F, and Giant-Frost under G).  The selection is growing over time, but I doubt I'll ever complete it: but by following the instructions in the Class & Race Database Help  handout, and extracting example definitions from the Creature Database, GMs can create their own Drag & Drop  creatures in their own add-on databases. So here's the list for now: 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, Beholder 45 49HP, Beholder 50 59HP, Beholder 60 69HP, Beholder 70 75HP, Birdcharmer, Black Bear, Black Dragon, Black Rat, Blink Dog, Blue Dragon, Boalisk, Boar, Brass Dragon, Bronze Dragon, Broom of Animated Attack, Brown Bear, 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, Cloud Castle Giant, Cloud Giant, Cloud Giant Juvenile 1, Cloud Giant Juvenile 2, Cloud Giant Juvenile 3, Cloud Giant Priest, Cloud Giant Wizard, Constrictor Snake, Copper Dragon, Death Dog, Djinni, Dog Blink, Dog Death, Dog Onyx, Dog War, Dog Wild, Dracolisk, Draft Horse, Dragon Black, Dragon Blue, Dragon Brass, Dragon Bronze, Dragon Copper, Dragon Gold, Dragon Green, Dragon Red, Dragon Silver, Dragon White, Dryad, 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, 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, Genie Djinni, Genie Efreeti, Ghast, Ghost ethereal plane, Ghost material plane, Ghoul, 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 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, Greater Basilisk, Green Dragon, Gremlin, Gremlin Fremlin, Gremlin Galtrit, Gremlin Mite, Gremlin Mite Female, Gremlin Mite King, Gremlin Snyad, 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, 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 Scorpion, Ice Mephit, 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, 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, Lynx Giant, Marine Scrag, Marine Scrag Shaman, Mastodon, Medium War Horse, 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, 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, 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, Poltergeist, Pony, Rakshasa, Rakshasa Maharajah, Rakshasa Rajah, Rakshasa Ruhks, Ram, Rat Black, Rat Brown, Rat Giant, Rat Swarm of, Red Dragon, Rhinoceros, Riding Horse, Roper 10HD, Roper 11HD, Roper 12HD, Sahuagin, Sahuagin Baron, Sahuagin Chieftain, 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, Salamander, Saltwater Troll, Saltwater Troll Shaman, Scorpion Giant, Scorpion Huge, Scorpion Large, Silver Dragon, 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, Snyad, Spectre, Spitting Snake, Stag Giant, Steam Mephit, Steppe Pony, 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, 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, White Dragon, Wight, Wild Dog, Wild Eagle, Wild Horse, Wind Walker, Winter Wolf, Wolf, Wolverine, Wraith, Xorn, Zombie, Zombie Ju Ju, Zombie Monster
1697576142

Edited 1697613780
Richard @ Damery
Pro
API Scripter
Problem with using TokenMod with Effects & Drag & Drop Containers I've encountered a problem that has appeared when using calls to TokenMod in RoundMaster Effects and in the macros that drive Drag & Drop  containers. TokenMod calls were working fine when I last looked at this area while developing Drag & Drop containers just 6 weeks ago - something has changed but my code in this area has not changed: there is some issue elsewhere, and I am investigating. For both Effect macros and Drag & Drop  container macros, data held in either a database or a character sheet ability is read by my APIs, variable values are replaced on the fly, and then the resulting parsed macro is sent to Roll20 using the standard Roll20 sendChat( ) function. This is still working for every command (including all my RPGMaster API calls and ChatSetAttr calls) except TokenMod. I continue to investigate this issue, and will provide updates. In the mean time, I apologise if this issue is causing problems with game-play. --- Update --- Update --- So, I've found a fix, and it will be applied in the next merge (early next week, hopefully). In future, any use of !token-mod in programming macros for effects or containers must include --api-as ^^pid^^  as one of the parameters to the call. There may be other complexities to this, and while this temporary fix will cover most issues, it will not be right in all circumstances. 
Tommy  said: This is one before I forget. It's not even guaranteed to come up and hasn't done so far since we started playing the campaign over a year ago. But one of the House Rules I run is that if a Wizard is spent and needs a spell in a clutch moment, I allow them to take the spell from their spellbook and use it as a scroll. It works exactly as a normal scroll does, but they lose the spell from their book, and can no longer memorise it unless they can get another copy. I'm pretty tight on the buying of magic in general, so this is definitely a last ditch consideration. Because when they do this... it's gone. This is probably another instance of me not looking in the right spot, but I was thinking about it the other day and couldn't find how to remove spells from a spell book. Adding them is easy enough through the Token Setup > Add To Spellbook. Is there a way to remove a spell from that main spellbook? That sounds like a really good house rule! I might introduce it with the DMs in my group and see what they think. At the moment, the only way to remove a spell from a Wizard's spell book is to go into the Character Sheet, to the spell level page on the sheet, and delete the spell name from the large field labeled "Spell Book" (tool-tip "spellmem#" where # is level), a field which contains all the spells in their book at that level separated by pipes '|'.  However, that only removes it from the spell book, it does not remove it from the spells they get back when they take a rest - thus if currently memorised the spell also needs to be over-written with a new spell to memorise using the character's Spells Menu > Memorise Spells dialog. I should be able to update the Token Setup > Add to Spellbook dialog to turn the names displayed into buttons that can remove the spell, both from the spell book and from memory (if memorised).  I'll take a look.
1698149344

Edited 1698149390
Richard @ Damery
Pro
API Scripter
Version 2.3.1 now live on One-Click The latest point release of the RPGMaster Suite is now live on Roll20 One-Click Mods. Those of you with RPGMaster Suite installed via One-Click will automatically be upgraded.  This point release does not add much in the way of new functionality, but fixes a number of bugs including some introduced in 2.3.0: Added barding as a new armour type (for use by war horses, war dogs, etc).  Split creature database into five alphabetical sections to reduce size of  extracted versions. On --extract-db  if multiple db start with supplied name, ask which to extract. Fixed initiative roll for weapons with pre-initiative flag set when used in a  two-weapon attack. Fixed initiative roll for ranged weapons (critical error introduced in v2.3.0). Use base  range specs for ranged ammo if matching index not found. Fixed spell book hyphenation for GM-created spells. Fixed formatting  issues in RPGM template parsing. Fixed multiple database issues. Fixed issue with TokenMod where it requires --api-as parameter to work. Applied  changes to chat output functions to improve "Please wait..." message management. Updated monster attacks to take account of creature  to-hit and damage bonuses. Added parsing a ^^pid^^ tag for player id in attack macros and cmd: code. Added  support for a creature attack specific to-hit modifier as parameter 5 of the monster  attack spec. Added "Token Image Quick Copy" --copyimg function. Added ^^gmid^^ field  for container macros to support setting the TokenMod --api-as parameter to be the GM's player id. Stop  specification of races not in the database for now, due to processing issues.
1698393740

Edited 1698393865
Richard @ Damery
Pro
API Scripter
Tommy  said: Hi Richard, just spotted a minor issue this evening, when our Rogue is attacking, and using the "Backstab" button, she's not getting the +4 To Hit bonus. Is the backstab modifier dragged from the Rogue's Class, or is there something I need to tick or, add? I have no idea how long this hasn't been working as she is fairly violence-averse (depsite a cracking Armour Class she despises getting hurt and is very much in the "Burglar" than than "Night-Blade" model). When she's attacking and I hover over the "AC Hit" score on the Card it shows the following results. Rolling 4[(17[Thac0])-(((3[Weapon+])+(0[Style+])+(0[Strength+])+(0{Prof Penalty]+0[Specialist]+0[Mastery])+(0[Race mod]+(0[Magic hit adj])+(0[2-weap penalty])))-(10[Dice roll])] = 4 I can't find where the Back Stab +4 To Hit would go in that. The damage is applying the correct 3x multiplier. So the Backstab button is definitely being clicked on the set uyp for the attack roll. When I go to the Chat Window and press "up" it shows: "%{Scarlet Treegold Red|Do-not-use-Attk-MW1}" I'm a triifle concerned that that "Do-not-use" may have the character somehow using a defunct link to an older macro? It is not an urgent issue. Not only do we have a break nexttweek, but its easy enough to manually work out that she would hit 4 AC's better. Ah, that shows how many rogues there are in my goup's characters! Very few... Having said that, one of my favourite PCs is a Grey Elf assassin (long story) but I've only played her face-to-face, not on Roll20. The fix is a quick change to the MW-ToHit and MW-Targeted-Attk definitions in the Attacks-DB, to add in +([[^^backstab^^*4]][Backstab]) to the attack macro definition for the {{AC Hit= ... }} calculation somewhere around the [Style+] value. The damage calculations already take backstab into account correctly, I believe, but do tell me if I'm wrong on that! I'll include the fix into the next release which should be with you next week, but you can apply this yourself as a temporary fix.
Question: What level are 2e Powers cast at? Powers can be granted to a creature or character dependent on their Class, Race, their Creature type, or a magic item held - e.g. "Turn Undead" for a Priest, or "Detect Slope" for a Dwarf, or "Gaseous Form" for a Vampire, or "Cone of Cold" for a Wand of Frost.  Where the outcome of these powers is dependent on an experience level, what level should be used for the power? For single-class characters & simple creatures this is easy: level for characters, HD for creatures, and mostly determined by the magic item for magic item powers. Powers granted as a feature of a Race (e.g. dwarves estimating depth underground or shifting stones) I believe the overall experience level is appropriate and that is what is currently used. Same for simple creatures - total HD + adjustment for HP plusses sets the level for a power. However, for dual-class and multi-class characters, and creatures that also have classes have more options.  Their total experience level as a being / adventurer is the sum of the levels gained in each class, representing the time they have been alive and adventuring, and surely at least some powers grow by total experience level. Should all powers be at this total level of experience? Or does the split of classes apply? Or does it vary by power?  Currently, the RPGMaster suite cast spells as the level of the casting class (Wizard level for Wizard spells, or Priest level for Priest spells), but powers - including spells used as powers - are cast at total experience level.  Is this right? Here are some options and I'd appreciate some feedback: Need to go through all powers and all spells that are also used as powers (an enormous number) and decide for each one whether it is cast at the total experience level or level as any one particular class, adapting each as needed (the actual adapting is simple, but a large number need to be reviewed). Say that all powers that are granted for a creature/character of a particular class are only cast at the creature's/character's level of that class.  However, powers gained as a Race or Creature type continue to be granted at total experience level. This can be quite tricky and will require some programming. Assume powers easily found or often used e.g. Preserve Life are special cases for now, just leave those powers/spells changed to be based on class level only. Only adapt other powers (and spells used as powers) as I / you come across them. Powers really are used at total experience level, as opposed to spells which are always cast at the spell-casting class level, so don't change anything. Thoughts very welcome.
Going to have to think about this a bit. Dont have any split/multi-class characters playing currently. My initial thought is the same as I always used since the 1980's and that the highest level will always count rather than a "Total" of all levels. It's pretty easy to speed through a second class levels if everyone else, for example, is still at level 10... by the time even a rogue hits L11, the same amount of XP could give even a Fighter who shifts to Wizard as a split class an extra SEVEN levels.
Some species powers have nothing to do with a character's experience levels or hit dice. I'm thinking, for instance, of the *dispel magic* ability of the pixie per PHBR10 *The Complete Book of Humanoids*, p. 52, and other powers on the same page. The ability can be used exactly once per day, and its effectiveness is as though cast by an eighth-level wizard. AD&D2 is full of weird-ass exceptions, but as far as species abilities go, I would not add multiclass levels and instead would count hit dice.
SergeantJohn said: Some species powers have nothing to do with a character's experience levels or hit dice. I'm thinking, for instance, of the *dispel magic* ability of the pixie per PHBR10 *The Complete Book of Humanoids*, p. 52, and other powers on the same page. The ability can be used exactly once per day, and its effectiveness is as though cast by an eighth-level wizard. AD&D2 is full of weird-ass exceptions, but as far as species abilities go, I would not add multiclass levels and instead would count hit dice. True, for powers given to creatures Hit Dice (HD) is the current default position in the RPGMaster suite. Of course, if the effect of a power is not dependant in any way on level or HD, then this discussion has no impact as the specification of the power won't change.
1698780825

Edited 1698780860
Peter B.
Pro
Sheet Author
A question about casting level of powers, I would take to the /r/adnd reddit page as it is a pretty good forum. As for my answer I will go heavily with what the Sage has to say on the matter Sage Advice #241 (November 1997) p. 16, Question:7 Can magical effects generated through innate magical abilities, such as a monster's ability to haste itself, be dispelled? If so, should the creature's Hit Dice be used as the ability's casting level?  Such effects can be dispelled, provided the effect has a duration longer than instantaneous. A creature's Hit Dice usually works as a default casting level, but check the creature's description to be sure. A creature's casting level is either its Hit Dice or the minimum level required to cast its most powerful innate ability, whichever is higher. A brownie, for example, functions as a 7th-level caster—it can employ the fourth-level Wizard spells dimension door and confusion , and a Wizard must be at least 7th level to cast these spells. Table 7 in the Spells & Magic optional rule book lists caster levels for many types of monsters. As for multi / dual characters, I would go with the following: If the ability is a racial ability, such as Detect Slope for dwarves, then go with the highest level of either class. Do not "combine" exp to calculate a new level. Dual / multi class characters have enough extra stuff in their toolbox to be fine by missing out a little on a power. If the ability is linked to one class, such as Turn Undead, then go with the level of the priest class. As for Wand of Frost, that is easy. Wands function at 6th level. So even though a Cone of Cold might normally only be available to caster of higher than 6th level, when used via the wand, it functions at 6th level. I have not read the exact description of a Wand of Frost so I do not know if it has some special property that allows it to scale with the character, but if it works like any other generic wand, then it is 6th level :) The same for a Wand of Chain Lightning. Normally chain lightning becomes available at 12th level, but when cast from a wand, it only works at 6th level, dealing reduced damage, and having shorter range etc. Sorry for not quoting the rules exactly on this. If you need more quotes, I will of course provide them. Finally about the HP adjustment for monsters. I believe the text in the MM is that if a monster has +3 or more to its health, it functions at 1 level higher when it comes to THAC0 and saving throws. I do not think casting level is included in the description. Now you can argue that any statistic should be seen as one level higher, which would be fine in my book, but I believe that BTB RAW it is only THAC0 and saving throws that are increased. Finally v2. I am fine with you using my thread. I was about to do a "bump" post to keep it alive and you did that for me, so that is nice :)
Peter B. said: A question about casting level of powers, I would take to the /r/adnd reddit page as it is a pretty good forum. As for my answer I will go heavily with what the Sage has to say on the matter .... Finally v2. I am fine with you using my thread. I was about to do a "bump" post to keep it alive and you did that for me, so that is nice :) Thanks Peter. Yes, most of what you say is how the APIs work already (e.g. Creature casting ability set by maximum of HD and minimum casting level for spells as powers unless the creature description says otherwise), the HD increment by each +3 additional HP, single-class casters casting at their class level of course, and the Magic Item level of casting set by the type of device, etc. With the way my databases work, DMs can also alter whatever they want, of course, to follow house rules as well. Really, the only question was about multi-class & dual-class characters / creatures / NPCs - and even between those two I'm not saying they are both the same, either. Dual-Class are much more restricted than Multi-Class in the way they advance in power and advantages, so one might be more restricted than the other. I will indeed take a look at reddit page - good advice, thanks.
RPGMaster Library version out of step Just to warn users of the RPGMaster suite that an issue on the merge yesterday means that the latest RPGMaster Library version did not get merged, whereas all the other APIs in the suite did get merged.  This means that the v2.3.3 APIs are now using a v2.3.2 library!   I don't think this will cause issues (it is a minor point release) but just in case, please be aware that this might cause a few (hopefully minor) hiccoughs. I've corrected the merge error and asked the dev team to merge the corrected release asap.
Hi Richard. I'm fairly sure this is a "Me" problem, but any help would be appreciated I've got a Ranger in the party who has a bow, which grants him a couple of "Magic Missile" spells per day through the Powers menu. (He hates comparisons to the Ranger from the cartoon series...)  I've added the powers to the character directly to make it easier for both me to add them, and for him to find/use them..... When he tries to use it, it is showing him casting as a 3rd level caster, when his level is 7. The peculiar thing is, that if either of us check it via the View Powers menu, it shows as 7th. And if I test run it through that method it casts the full 4 missiles and says its casting at 7th. Likewise, I have a Priest, who has an item he can use to cast "Produce Flame" as a Power, and it shows him as a level 2 caster when the Power is used, but 7th when used through the View Power menu. Edit to add, I've just checked all the item based powers that I've given the players, (there's not many...) and as far as I can tell all of them are doing the same. Apart from a couple that are class appropriate, (Cleric has an item that grants him some extra Cure Light Wounds, and they work at the right level.) Going to the 3.Powers Menu, View Powers, (Choose Power), opens in the spell card format, and is "castable" at the appropriate level but going to 3.Power Menu, Use Powers, (Choose Power), Casts at much lower levels, either 2nd or 3rd. Any idea why this might be? Because the Cure Light Wounds works fine on the cleric, I guess it's a setting I'm missing applying to the characters who don't have the Class for using the Spell based Power, but can't understand why the "View Power" allows it to work as intended? (I thought it might have locked in the level they were at when they gained the powers, so I've removed and replaced them, and its still doing the same.) Andrew
1699622235

Edited 1699622273
Richard @ Damery
Pro
API Scripter
Hmmm... going to have to have a think about this one.  Can you post the definition of one of the Powers you are talking about (e.g. the Ranger Magic Missiles that are linked to his bow (are they actually defined in the bow definition - they could be, but I'm not sure you have done it that way?). Oh, and has this only started recently (with a release I've just made) or has it always been this way?
1699631181

Edited 1699631704
Richard @ Damery
Pro
API Scripter
I've interpreted what you say to suggest that you just granted a power to the ranger without creating a specific magic item - but I might be wrong. So I created a basic 7th Level Ranger in a blank campaign, and used the [Token-Setup] dialog to grant a Magic-Missile power to the Ranger using the Token Setup > Add to Spellbook  dialog and then memorised the power using Powers Menu > Memorise Powers . Then on both  the Powers Menu > View Powers > Magic Missile  and Powers Menu > Use Power > Magic Missile  the Ranger was granted 4 missiles at 7th level.  That was also the same for the Use Power  action button.  So I was not able to reproduce your issue?  This was with the latest release of APIs installed from the One-Click. If you have granted the power by defining it as part of the powers of the Magic Item, using a repeating Data section like  WeapData=[w:Longbow of MM, ... , ns:1],[cl:PW, w:MU-Magic-Missile,pd:2,sp:1]     And then in the body of the Longbow description added a button something like [Fire MMs](!magic --mi-power @{selected|token_id}|MU-Magic-Missile|Longbow of MM)    ...did you perhaps put a number on the end after the magic item name - as that would specify a level of casting that overrides the level of the character using it?  The rules state that some items cast at a particular level (e.g. Staves operate at 8th level unless otherwise stated in their specs), but the APIs only do this if you specify it in the command button call - so the GM can be flexible. 3. Or did you actually define a completely new bespoke power for this capability? If so, did the definition of the power include an 'lv:#' in the SpellData section?  If so, what is the number after the lv: ? Not sure this should cause the issue though... 4. Another question, did you copy the definition of another power-granting magic weapon to base this one on, that I can then go and look at and see if there is anything there that might have caused this?
OK been playing with it to try and find a cause/effect... There IS a unique weapon macro, but it is unconnected to the Power (it's merely mentioned in the Desc:) The Power is taken from the Memorise Powers tab in the [3.Powers Menu] and just added as "Magic Missile" which I assume draws from the MU-Spells-DB, I've certainly not tinkered with the standard spells in either the standard DB or any that might be left in my bespoke DB. I wouldn't dare... I'd struggle to ever be able to fix them. The reason I did it that way was that I was still learning how to build the macros, and my players will spend ages trying to find the powers through their weapon and armour, so I figured just keep them separate for simplicity's sake... who knew... There are no connections to anything other than a Power that has been Applied to a Character via the Powers Menu It's literally doing it with all the characters. Viewing as their actual level, but casting way below. I Have a L8 Thief who has a token that allows her to use Silence 15' Radius once a  day, it Casts through the Powers tab as " Red casts  Silence 15ft radius  as a level 1 caster Level 2 Priest * Alteration" But when I use it via the View Power I get  Red casts  Silence 15ft radius  as a level 8 caster  Level 2 Priest * Alteration                       The character is 8th Level... Going back to the Ranger, and checking the chat log it runs:  !magic --button VIEW_POWER|-NgYSKvGkDWWWknJJDvS|1|0|68 /w gm %{Jara|Magic-Missile} to View, and, !magic --button USE_POWER|-NgYSKvGkDWWWknJJDvS|1|0|68|false /w gm %{Jara|Magic-Missile } to Cast, ...from the chat window, so I tested the macro. The thing that is now truly baffling me, is that if I go to the Character Sheet; Attributes and Macros, (highlight Jara's token), and test run the "Magic-Missile" macro from the character sheet... it works... Casts at level 7??? Same if I do it from the "Roll Ability Effects" button from the Powers page on the Character sheet... It only happens when we use a Power via the Use Power tab. I can only think that there has been some sort of corruption in the campaign itself and the code linking it to the API. I might try and rebuild the campaign with new character sheets and then add in the various things I've built and see what that does.  
@Tommy, I have found a difference between using the Powers Menu > Use Power  action and alternatively using either Powers Menu > View Powers  or just the Use Power  action button if you have granted that button to the character.  The Powers Menu > Use Power  action passes the level of the character as part of the command, forcing that level to be used, and the other two approaches don't. This actually shouldn't cause this issue, but it might.  To test this, use the Token Setup dialog to add a [Use Power] Ability action button from the list on the dialog, then try using that button to use the power, rather than Powers Menu > Use Power . How did you grant the power to the Ranger in order for them to memorise it?  Did you just type Magic-Missile  into the s pellmem23  field on the sheet?  Just checking, as that should work fine, and pick up the wizard spell definition (unless you have a Powers-DB- alternateName database entry called magic-missile  which would overwrite it and use it as a defined power). Can I ask you to check the value of three attributes of the character sheet before and after using each action to view/use the  magic missile  power:   casting_level,   mu_casting_level  and pr_casting_level.  Just select the token and use @{selected|casting_level} in the chat window, etc. and report back the variaous values. FYI, I have had instances of the character sheet becoming "read only" for some undetermined reason - to overcome that, just copy the sheet (using [Duplicate] under the sheet [Edit] window) and  relink the token to the copy then  rename the original and copy.  See if that achieves anything
I added all of the characters abilities by going into the "3.Powers Menu" button at the Top of the screen when the token was highlighted. (though I believe I added any initial ones on character creation through the Add to Spellbook part of the Token setup for things like rangers-animal-friendship, but it's been a while since I did that and can't be more than 60 or 70% sure... 3.Powers menu > 4.Memorise Powers > Choose (manually enter "Magic Missile" > Click on a spare slot > 3. Then... Memorise The Power. (add number of uses etc) They alll have the "2.Use Power" Tab Going through the process as follows: recording the changes in [casting-level] [mu-casting-level] [pr-casting-level] via the character sheet live as I enter the commands via the "3.Powers Menu" (View and Use/Cast) and then "2.Use Power"  Open "3.Powers Menu" > View Powers (all three casting level abilities set to 7) > Highlight Magic Missile (casting-level 7 / mu-casting-level 0 / pr-casting-level -1) (Spell card shows level 7 casting stats) > Roll "All Missiles" via button - damage works for 4 missiles, casting levels remain 7/0/-1 Open "3.Powers Menu" > Use Power (all three casting level abilities set to 7) > Highlight Magic Missile (casting-level 3 / mu-casting-level 7 / pr-casting-level 7) > Cast Magic Missile (casting levels remain 3/7/7 Spell card shows level 3 casting stats) > Roll "All Missiles" via button - damage works for 2 missiles, casting levels remain 3/7/7 Open "2.Use Power" (casting-level 7 / mu-casting-level 0 / pr-casting-level -1) > Highlight Magic Missile (casting-level 3 / mu-casting-level 0 / pr-casting-level -1) > Cast Magic Missile (casting levels remain 3/0/-1 Spell card shows L3 casting stats) > Roll "All Missiles" via button - damage works for 2 missiles, casting level remains 3/0/-1) I added the Lightning Bolt Spell to the character as a similar Power and duplicated the process. The only difference in outcomes was that instead of Reverting to [caster-level] 3 it dropped to 1, (the other varying between 7 and 0, and 7 and -1 respectively was identical) and the spell when cast from the  3.Powers Menu > Use Power or 2.Use Power menu displayed a Level 1 Lightning Bolt Spell Card and rolled 1d6 damage. But worked as a level 7 bolt from the View Powers part of the Powers Menu I tried the duplicate character sheet thing... no luck I'm afraid.
Found what might be the problem - at least something to try: use this command with the Ranger selected: !setattr --sel --level-total|0 Then try casting again.  It could be that this field has become corrupt: it is a legacy field (just hanging around for backwards compatibility). Or it could be some other API you have loaded wich is using a field of the same name... that would be more problematic. If this works, select every token representing a character sheet, and use exactly the same command to set that field to zero on all character sheets.
1699789782

Edited 1699789883
Richard @ Damery
Pro
API Scripter
Richard @ Damery said: Found what might be the problem - at least something to try: use this command with the Ranger selected: !setattr --sel --level-total|0 If this works, select every token representing a character sheet, and use exactly the same command to set that field to zero on all character sheets. Or actually, in order to set every character sheet in the campaign to ignore this field, and you are happy this has solved the problem and there is not going to be any unintended consequences (I am happy it will not affect the RPGMaster suite), do  !setattr --all --level-total|0
No luck I'm afraid. I tried manually changing the [casting-level] in the CS abilities between the process of Seleting Magic Missile, and pressing the casting button, as selecting it was what changed the [casting-level] to 3. Even when I changed that back to 7, pressing the Cast button still fired it at 3rd Level. I made a new version of the campaign yesterday, transmogriphying everything excluding the character sheets, and copied over all the macros and API dbase "characters", and set up the RPGM Mods/APIs but didn't set up any of the other APIs that are currently also running, I created a brand new 7th level ranger character sheet using Tokensetup, etc added the Magic Missile... and it still happened. So I don't think its an API conflict. So I fear it may be a corruption/conflict somewhere in the Campaign maybe something that I've done in one of the API Dbases, and I think I'll have to either live with it, or completely redesign the campaign from the ground up. I think I've taken up too much of your time, when it is something I can work around by simply having the players use the View Power menu to cast the powers and then either deduct the power manually or quickly skip through the process of casting it just to keep the available number accurate. There's a break point coming in a few months where they will be shifting to a new chapter of the campaign, which will require a massive tidy up of switching out a load of old stuff and bringing in a load of new, so I'll just slowly build a new Game over the next few months, and remember to regularly Test as I go. Thank you for the support and trying to work this out. P.S Just a quick one... out of interest... would any of the 2E Character sheet add-ons (like the various "Complete Guides" be likely to cause any of these sorts of issues? Are there any you would recommend NOT having check marked? Richard @ Damery said: Richard @ Damery said: Found what might be the problem - at least something to try: use this command with the Ranger selected: !setattr --sel --level-total|0 If this works, select every token representing a character sheet, and use exactly the same command to set that field to zero on all character sheets. Or actually, in order to set every character sheet in the campaign to ignore this field, and you are happy this has solved the problem and there is not going to be any unintended consequences (I am happy it will not affect the RPGMaster suite), do  !setattr --all --level-total|0
1699808624

Edited 1699809083
Can I take that back please? I've figured out what is happening, but have no clue as to why, or how to fix it... BUT... it turns out that it casts the Power at exactly the level as the maximum number of daily uses I have alloted. So, because I put 3 Magic Missiles it casts at L3, I just gave him 7 Fireballs and he casts them at L7, gave him 13 Cone of Cold - he casts Cone of Cold as a 13th level spell caster... Removed them all and gave him unlimited versions of all of them... casts them all at 7th level. Hope this helps. Checked all the other characters who are experiencing the same difficuly, and they all match that pattern. (Edit to add, I can't believe it took me this long to see the pattern...)
1699828765

Edited 1699828831
Richard @ Damery
Pro
API Scripter
Tommy said: Can I take that back please? I've figured out what is happening, but have no clue as to why, or how to fix it... BUT... it turns out that it casts the Power at exactly the level as the maximum number of daily uses I have alloted. So, because I put 3 Magic Missiles it casts at L3, I just gave him 7 Fireballs and he casts them at L7, gave him 13 Cone of Cold - he casts Cone of Cold as a 13th level spell caster... Removed them all and gave him unlimited versions of all of them... casts them all at 7th level. Hope this helps. Checked all the other characters who are experiencing the same difficuly, and they all match that pattern. (Edit to add, I can't believe it took me this long to see the pattern...) Tommy, thanks for this - it really did help!  Amazing this has not been found before as it clearly is a bug that has been around for some time.  I've found the offending line of code and corrected it in MagicMaster v2.3.4, which I have posted to be merged next week (a bit close to the deadline, but hopefully it will go) and you sould get it pushed to you on Tuesday or Wednesday. Sorry that this has taken so long to tie down, and thanks for your patience.
Richard @ Damery said: Tommy said: Can I take that back please? I've figured out what is happening, but have no clue as to why, or how to fix it... BUT... it turns out that it casts the Power at exactly the level as the maximum number of daily uses I have alloted. So, because I put 3 Magic Missiles it casts at L3, I just gave him 7 Fireballs and he casts them at L7, gave him 13 Cone of Cold - he casts Cone of Cold as a 13th level spell caster... Removed them all and gave him unlimited versions of all of them... casts them all at 7th level. Hope this helps. Checked all the other characters who are experiencing the same difficuly, and they all match that pattern. (Edit to add, I can't believe it took me this long to see the pattern...) Tommy, thanks for this - it really did help!  Amazing this has not been found before as it clearly is a bug that has been around for some time.  I've found the offending line of code and corrected it in MagicMaster v2.3.4, which I have posted to be merged next week (a bit close to the deadline, but hopefully it will go) and you sould get it pushed to you on Tuesday or Wednesday. Sorry that this has taken so long to tie down, and thanks for your patience. Glad we could get it sorted. Like I say, I can't believe I didn't spot the pattern until I was just tidying them up after all the testing... and I wondered why the Magic Missile cast at L3 and the Lighning Bolt was at L1, and it was a "Hold on a minute..." moment.
Bug Found: Not regaining Magic Item powers overnight Bug description:  When a Long Rest is completed, representing an overnight rest period or other rest of 8 hours or more, characters & NPCs regain their spells & powers. However, I have discovered a bug which seems to stop at least some magic items that have powers do not regain them over a long rest when they should. Temporary fix:  Go into Wizard Spell level 14 tab on the character sheet and set the first "Cast Today" number to be the same as the second "Cast Today" number for each entry in the tables.  Each should end up with a positive number representing the number of that MI power that can be cast that day. Permanent fix ETA:  I have a fix in the next release which will be uploaded for merge and release by One-Click automatic update next Tuesday, 21st November. Once applied, magic item powers will be restored as appropriate over a Long Rest.
1700508772

Edited 1700508892
Richard @ Damery
Pro
API Scripter
Major Version Release - V3.0 Now Live! Ready to support other versions of D&D A number of changes have been made in the APIs and the Library to ready the RPGMaster Suite of APIs to be mapped to new Dungeons & Dragons character sheets, or even to those of other RPGs.  It has always been the intention to structure the suite of APIs so that other role playing game systems could be supported, only needing the appropriate Library to be loaded for the other APIs to work with different character sheet mappings and alternative rule sets. This has now been fulfilled, and the first character sheet mapping will be to the Advanced D&D 1st edition sheet by vínce.  It will take a while to adapt all the databases of spells, equipment and creatures, as well as some game rules, to match AD&D1e, but the first step of the character sheet mapping is complete, and the initial release of the 1e library will be soon. Note:   v3.0.0 does not support AD&D1e out of the box!  The only library currently available is the AD&D2e library.  I'm in discussion with vínce to support his new version of the AD&D1e character sheet with a matching RPGMaster Library, and hopefully we'll have a release soon! Alternate Weapon, Spell & Power tables To support alternative character sheets that have different structures of weapon, spell & power tables, the APIs now update differently structured tables as well as retaining the internal table structures, which are needed to hold the more detailed information needed by the APIs.  These alternate tables are for display only, and the API functions must be used to take weapons in hand, attack with them, and manage and cast spells and powers, rather than using the character sheet functions. New Equipment / Magic Item Configuration Query It is now possible to specify a query for the configuration of an item of equipment or magic item, which asks the GM or Player one or more questions when an item is initially added to a container (or directly to a character) using the GM's Add Item menu, or the Items Menu > Change Your Items  dialog. The query is not re-presented when an item is picked up from a container or exchanged between characters, and instead the options previously selected are conserved. E.g. Armour of Blending  asks which type of armour it is and what magical plus (if any) applies to it as well as the "blending" capability, and this configuration follows the item as it is taken from a container by a character and the armour moves from character to character. Magic Weapon Speeds Configuration To date, weapon speeds used for Group  and Individual  initiative priorities have not  been impacted by the magical plus of the weapon. GMs have been able to redefine weapon speeds in the weapon definition to take account of the magical plus, if so desired.  I have now added a new configuration item (available using the !magic --config  or !attk --config  commands, or the GM's [Config-RPGM] macro button) to turn on the magical plus of a weapon giving a beneficial bonus to the weapon speed of magical weapons. Of course, cursed weapons with negative attack "plusses" also give a penalty to weapon speed if this configuration option is selected. Note: magical ammo does not provide a speed bonus to the weapon firing the ammo, though thrown weapons will gain a magical advantage. DMs who have altered the weapon speeds of magical weapons manually can choose to turn off the automatic adjustment using the Configuration menu, or delete their redefined weapon to revert to the distributed database version of the weapon. New Bug Fixes Corrected how the casting level of wizard & priest spells is calculated, especially when used as powers. Fixed storing items in type 6 or 7 containers. Fixed long rest for magic item powers and spells used as magic item powers Fixed effects of Haste  on Creature attacks, so now correctly double attacks and halve attack speeds. Fixed effects of Haste  on number of off-hand weapon attacks when using two weapons to attack. Fixed effects of Haste  on weapon speeds, especially where a non-hasted weapon gets multiple attacks per round. Fixed level at which spells used as powers are cast at.
1700516373

Edited 1702400925
Richard @ Damery
Pro
API Scripter
Bug found: New install failure for v3.0.0 Fixed: Release 3.0.1 has fixed this issue. Bug description:  When loading the RPGMaster Suite v3.0.0 into a new campaign that has not had RPGMaster installed previously, the Mod console will crash with a fatal error: TypeError: Cannot read properties of undefined (reading 'tokenFields') Existing campaigns with previously loaded versions of the RPGMaster Suite Mods that have been upgraded to v3.0.0 by the One-Click system should all be fine - let me know if this is not the case for you! Permanent Fix ETA: Already fixed in the code, I will ask the devs for an emergency release - latest would be for a release next Monday, 27th November.
Just posting to keep the thread open. The news is that I am working hard with @vínce to get the RPGMaster suite working with the very latest AD&D1e sheet, and certainly the mapping is looking good.  In doing the mapping I have also discovered and fixed some issues that were there in the code but were not triggered by Peter B.'s AD&D2e sheet, as the two sheets work in subtley different ways. I hope vínce and I might have something ready early in the new year. Until then, happy holidays and have a good one!
Number of Character Equipment Slots I've been asked how to overcome restrictions with the number of slots in a character's equipment bag managed by RPGMaster Mods. The default is 18 slots, which can have stacks of identical items in each slot. However, this can be changed, in a couple of ways. 1) the DM can change the number of slots in any character's, NPC's or container's equipment bag by using the DM's [Add Items] button, or the !magic --gm-edit-mi  command. In the dialog that appears, there is a button down the bottom with the text [## Slot]  (where ## is the current number of slots in the selected character / NPC / container's equipment bag). Just press this button, and a Roll Query entry window pops up in the centre of the window asking for the number of slots you want to grant.  Just enter the number and press return, and that will be the new maximum number of slots for the character sheet represented by the selected token(s) only. 2) there is a custom miscellaneous item in the distributed databases called a "6-slot-bag".  The DM can store this like any other item in a container to be found. If any character finds this, picks it up, and then uses it as a magic item (select the [Use MI] action button, then select the "6-slot-bag" from their equipment bag, then press [Use 6-Slot-Bag] button), this will magically / automatically add 6 slots to their equipment bag.  The DM can extract the MI-DB-Custom database and examine the definition of the 6-Slot-Bag to add their own larger (or smaller) extension bags.
1703242055

Edited 1705248262
Richard @ Damery
Pro
API Scripter
Bug found: Containers with No Lock do not work Fixed in RPGMaster Library v3.0.2 released Wednesday 10/01/2024 Bug Description:  If the GM uses the Drag & Drop  process / dialog to create a Drag & Drop  container with no lock, characters / NPCs will not be able to search the container. This was due to an incorrect definition of the "No-Lock" container macro in the Locks-Traps-DB. Temporary Fix:  Use the GM's [Token Setup] button, or the !cmd --abilities  command to put a simple lock of any type other than "No Lock" on every container.  These all work fine. Otherwise, if you really want no lock on the containers, extract the Locks-Traps-DB using the command !magic --extract-db Locks-Traps-DB , open the character sheet "Locks-Traps-DB" and go to the "Attributes & Abilities" tab of the character sheet.  Find the Ability macro called "No-Lock" and open it using the pencil icon that appears on a hover.  Find the text in the macro that is  [cl:AB:Opened-Lock]   and change it to read [cl:AB,w:Opened-Lock] Note: the change is inserting ,w between the AB and the colon. Close the macro editor by clicking on the tick icon which appears on hovering over the name of the macro. Close the character sheet and leave it in your journal. You will need to select any container token of type "No Lock", and use the GM's [Token Setup] button or the !cmd --abilities  command to open the container configuration dialog, and reselect the lock as No Lock.  This is needed even though the container says it is already a No-Lock container, so that the error in the macros of that container are corrected. Permanent Fix Released:  The database with the permanent data correction has already been uploaded to GitHub for merge into the Roll20 One Click database. However, as it is Christmas, I'm not sure when it will go! Once the update is automatically made to your campaign, the "Locks-Traps-DB" character sheet you extracted and changed will automatically be deleted  so if you made any other changes to it that you want to keep, do rename the character sheet to be a personal version of the database using the standard RPGMaster database naming convensions covered in the database help handouts. Merged /   Released 10/01/2024.
1706888172

Edited 1707222290
Richard @ Damery
Pro
API Scripter
New release V3.1 due next week Over the last two months, I've been working on support for AD&D1e. However, I got a bit bored of that and diverged into fixing a few things and my favorite pasttime of defining magic items! I love making the magic items work as well as they can using RPGM features, giving as much of the feel described in the DMG as possible. Do let me know what you think. This release hopefully will drop in One Click  installs next week. Update:  yes they did - but see the error report in the next post... sad face... Warning!  If you have any databases extracted or you have created bespoke databases yourself, make sure they are not named the same as the standard database names: follow the guidance in the Help Handouts  installed in your campaign with the RPGMaster APIs. Any databases named the same but with older version numbers than those released will be deleted automatically so that the new item definitions appear! Note:  the MI-DB-Weapons database has been split into 3: MI-DB-Weapons-StdPlus, MI-DB-Weapons-Special, and MI-DB-Weapons-Custom. If you have MI-DB-Weapons extracted, it will be deleted and if you want to reinstate it you will need to extract one or more of these databases. However:  remember it is best not  to run with extracted databases that hold lots of unaltered items. Large extracted databases use memory & slow down access to database data. If you want to use or alter database items in your own databases, extract the relevant distributed databases from the APIs using the !magic --extract-db command, copy the database items (ability macros) you want to your own database character sheet, then delete the extracted database, running !magic --check-db or restarting the APIs to reindex the internal db indexing table once you have finished editing your custom database (or as often as you like, just remember to do it!) Added multiple DMG magic armour & weapons Continued the definition of magic items specified in the AD&D2e Dungeon Master's Guide, with specific focus on all types of armour and weapons. This includes complete sets of magical variations of standard armour and weapons, as well as definition of the more complex magical variants created to best use the features of the RPGMaster suite of APIs. E.g. the  Javelin of Lightning  will discharge a bolt of lightning on successfully hitting an opponent, and will also denature (becoming a normal javelin) on use, as per the DMG description. A  Dart of Homing  will return to the hand if it hits, or become a normal dart if it misses, etc. Coding all of these weapons has necessitated: All of the changes to the APIs listed below Bug detection & fixing Splitting the MI-DB-Weapons database into three parts - if extracting the new databases using the  !magic --extract-db MI-DB-Weapons  command, the GM will be asked to specify which of the databases to extract ( StdPlus, Special,  or  Custom ) Added additional generalised support for other character sheets In order to support rule sets and character sheets other than those for AD&D2e the APIs have had to have further generalisation and definition of rule sets in data. Library functions to support different ways of specifying and displaying the class & level on the character sheet have been added. Also added are AD&D1e AR Adjust fields in weapon tables and to the attack tables when used with the 1e library. And support for an "item carried" flag and other fields as used on the AD&D1e sheet have been added. Implemented inheritance for magic item database objects Database object "inheritance" has been implemented for Class & Rase database items for some time. This support has now been extended to magic item definitions so that, for instance, a family of magical swords can take common data from a base "parent" object. A "format" db item class has been implemented which does not appear in lists, but can be inherited and used to format outputs. Unlike classes & races however, magic items require a 5th Specs field to define the "parent" item they inherit from, as the 4th Specs field is used as a "SuperType" for tight weapon groups and "related weapon proficiency". Implemented magic item query: and variables Drag & Drop  creatures have supported "queries" for a little while, which add variable options to creature database items which can be selected by the GM on adding the creature. The same concept has now been implemented for magic items. For example, when adding a  Magical-Broadsword  to a character or other container the GM will first be asked for the quantity to add (usually 1) and then is asked for the magical plus (or minus) to give this particular broadsword. This plus will follow the broadsword as it moves between containers, characters, NPCs and creatures. Items that change into others when used Implemented "change-each", "change-last" and "cursed+change-last" magic item classes for items that change to a different item when used or reaching zero charges. The item to change to is specified using the "to:" attribute in the data field. A "change-each" item will change to the specified other item as each charge is used, the quantity of the other item growing 1:1 as the original items are used. A "change-last" item will only change to the specified "to:" item when all charges have been exhausted. Added the !magic --add-mi command This new command adds a named magic item from the databases to the identified character, NPC, creature or other container and, if a weapon, optionally also taking it in-hand ready to attack with it. This command is generally used to support the changing of a complex weapon into another with immediately replaces the initial weapon even while it is being wielded. An example is the  Spear, Cursed Backbiter  which is initially hidden as a  Spear+1-Biting  and only changes at the GM's discretion. See the  MagicMaster Help  handout and definitions of these two items to learn about this command in action. Added "Remove Curse" option to GM-only MI menu The GM can now select a token, open the GM-only MI dialog using their [Add Item] menu, and if the character represented by the token has any cursed items select a relevant item and a [Remove Curse] button will become available alongside the other options. Use evalAttr() when specifying qty for storing an MI The qty specified for storing a magic item, either in the item database data or being entered by the GM when storing the item in the query, will be evaluated using the internal maths evaluator. This allows ranges (x:y e.g. 3:18 will roll 3d6), dice rolls (e.g. 4d8) as well as maths and parentheses (e.g. (3-4)*6) in any level of mixed specification. Configurable forced hit/miss on max/min roll and/or critical roll/fumble On attack rolls, it has been possible to date to get a critical hit yet still not have a successful targeted attack (and visa-versa for critical misses). Related to this, the same was the case of max/min dice rolls. The rules say a d20 roll of 20 always hits, and a d20 roll of 1 always misses. This is now configurable on the Config-RPGM (or !magic --config command) dialog. It is also the case that GMs may rule that Critical Hits always hit, and Critical Misses always miss: as critical hit/miss rolls are definable for weapons (and some have ones different to 20 & 1) this is a different choice and is also separately configurable. Magical Ranged weapons that affect both to-hit & damage To date a ranged (not thrown or "self-ammoed") weapon with a magical plus applied the magical plus only to "to-hit" calculations: any pluses that ammo had were applied to both "to-hit" and "damage". Now, for magical ranged weapons that apply their magical plus to both "to-hit" and "damage" calculations, the magical plus spec can be specified with a double plus e.g. "+:++#" for instance "+:++2" specified in the ToHitData will add a beneficial 2 to both the to-hit and damage calculations, whereas +:+2 or just +:2 would only add a benefit of 2 to to-hit claculations. Dancing weapon improvements Any weapon can now more easily be specified as a  Dancing Weapon  which will behave similarly to a  sword of dancing . This is now simply achieved by including the attribute "d:+/-#/#" in the WeapData specification, e.g. WeapData=[d:+1/4] will make a weapon have a plus of +1/2/3/4 while used in-hand in subsequent rounds, then will automatically  dance  with independent initiative and attacking opportunities allowing the wielder to take a different weapon in hand, or use magic items, spells, etc while the weapon continues to dance, with +1/2/3/4 magical plusses. Specifying e.g. WeapData=[d:+2/3] would go +2/4/6 for 3 rounds and then dance for 3 rounds. Further, any weapon a character possesses can be forced to dance manually by just naming it in a !attk --dance command, e.g. in an API button on a weapon specification. This will just have the weapon dance with no changes in magical pluses until the --dance STOP command is issued. Dancing means the character gains initiative entries for the dancing weapon and can attack with it without taking the weapon in-hand. See the AttackMaster Help handout for more information. General fixes and coding enhancements Moved the configuration menu to the library. Fix Auto-Hide configuration. Fixed multiple bugs with items that are hidden as a different item (do let me know as you find more - they're hidden!) Undid use of delTableRow for filtering weapons for now as did not seem to work well. Generalised how insertAmmo() works for varied rule-sets. Moved reWeapSpecs & reACSpecs to library to support generalisation of resolveData() and allow inheritance for magic item DB objects. Further improvements to scanForArmour() and doCheckAC(). Fix AC calculation display so that AC items all use currently selected damage type. Implemented special message for cursed rings. Improve tableFind() when finding a blank row to store new data in. Generalised the tableFind() method to support arrays of search values and Regular Expressions. Extended initValues() to take an existing values object and add to it. Fixed table management system to work with empty table fields more effectively. Improved error handling by throwing Error() rather than raw objects. Fix database corruption by cloning database object on lookup. Make attribute maths a library function and generally available. Fixed weapon multi-hand parsing issue, clashing with % chance. Fixed support for Drag & Drop creature hp ranges. Extend resolveData() to manage sheet-unique objects, parse table subsets, and variables. Moved weapon & armour parsing tables to library to support item & spell DB inheritance in resolveData().
1707222140

Edited 1707414693
Richard @ Damery
Pro
API Scripter
Fatal bug in latest release! Update: Fixed in emergency release 8th February 2024 - thanks to the Roll20 team for quick service! Bug description: I made a mistake in the script.json file of the RPGMaster library v3.1.3 release, mistakenly calling it v3.1.2 (which does not exist on GitHub as it was an internal development release). This causes the One Click updater to throw a wobbly - not surprisingly - and it means the RPGMaster Library is not there and nothing can run! Temporary work around:&nbsp; Follow this link <a href="https://raw.githubusercontent.com/Roll20/roll20-api-scripts/master/RPGMlibrary%20AD%2BD2e/3.1.3/libRPGMaster2e.js" rel="nofollow">https://raw.githubusercontent.com/Roll20/roll20-api-scripts/master/RPGMlibrary%20AD%2BD2e/3.1.3/libRPGMaster2e.js</a> Copy all the code to the clip board with ctrl-A ctrl-C In the API / MOD console, 1. Go to the RPGMaster Library AD+D2e tab, and down the bottom select the [Disable Script] button. 2. Open the New Script tab, and rename the file (e.g. instead of untitled.js, call it RPGMlib.js - the actual name is unimportant) 3. In the code area paste from the clipboard with ctrl-V 4. Use the [Save Script] button at the bottom Everything should then work. Final fix ETA: Fix released 8th February 2024 &nbsp;by kind support of the Roll20 help team and devs. Any questions, let me know Sorry for the inconvenience
1707223600

Edited 1707223631
Tested and this fix works just fine!
RPGMaster Release Notes v3.200 RPGMaster Release Notes for version 3.2.0 V3.2 Release Notes New additions to the weapons databases I am continuing to add all magic items specified in the AD&amp;D2e Dungeon Master's Guide, with a current focus on all special weapons. If you want to see a complete list of all the weapons now available (it's a very long list!), here's a tip: open the GM's [Add Items] dialog, deselect alphabetic sorting by clicking the [Alpha true] button (if ahown) so that it shows [Alpha false], and then click the [Weapons] button - a Roll Query with a complete list of weapons appears, which you can scroll down to your heart's content! When you consider that several of the listed weapons have multiple versions using the new&nbsp; query: &nbsp;function to allow the GM to specify variations to the weapon, this list is even larger! Restarting Status Effects It is now possible to trigger a "restart" of a status effect by executing a&nbsp; !rounds --target &nbsp;command with the existing status name and a duration of&nbsp; '$#' &nbsp;(a dollar sign followed by the duration number in rounds). This will trigger another call (the first one having been when the status was first defined) to the effect defined with the name&nbsp; status-name -start. Added&nbsp; swordType &nbsp;Pre-Defined Query Tag In the last release, three pre-defined tags were added for the new&nbsp; query: &nbsp;item definition attribute, which were&nbsp; weaponPlus, weaponMagic, &nbsp;and&nbsp; weaponCurse &nbsp;supporting the definition of the bonus or cursed penalty of a weapon or other item. A new, fourth pre-defined tag has been provided,&nbsp; swordType , which allows any definition of a normal or special sword to have a variable sword type. The tag provides variables for the name, speed, damage type, size, and damage when used 1-handed and 2-handed vs. Small/Medium or Large &amp; Larger opponents. Weapon Type and SuperType overrides To date, the weapon type (used for matching character weapon proficiencies) and super-type (used for matching related-weapon proficiencies) have been specified as the 1st and 4th fields of the item definition&nbsp; Specs=[...] &nbsp;section. However, if the weapon type or super-type can be altered as part of using a&nbsp; query: &nbsp;attribute to select the type of weapon (e.g. if using the pre-defined&nbsp; query:swordType &nbsp;query to choose a sword type), it is not allowed or possible to replace&nbsp; Specs &nbsp;fields with query field tags, making proficiency calculations unreliable. To overcome this issue, it is now possible to include the attributes&nbsp; t: &nbsp;and&nbsp; st: &nbsp;in each&nbsp; ToHitData=[...] &nbsp;to override the&nbsp; Specs &nbsp;1st field (the item type) and 4th field (the item super-type) respectively. This even allows different ToHitData attack lines to have different types of proficiency... Enable and Disable Weapon Attack Types New recharge types 'enable' and 'disable' are equivalent to uncharged (that is the item does not loose or gain charges on use or resting), but allow the&nbsp; c: &nbsp;attribute (which defines the number of charges required to use a weapon attack type or an item power) to be compared to the item quantity / charge in the character's equipment. If the&nbsp; c: &nbsp;value is higher than the item quantity, the respective weapon attack or item power will not be available. The&nbsp; c: &nbsp;value can be changed programatically using the&nbsp; !attk --mod-weapon &nbsp;or&nbsp; !attk --quiet-modweap &nbsp;commands, and thus the enabled and disabled attack types / item powers available to the character can be changed on the fly in response to user input. An example of this is the&nbsp; Sword+5 Holy Avenger . Message Function Extra API Command Call The&nbsp; !magic --message &nbsp;function can now take an extra parameter as an argument: a chained API call can be passed which will execute once the message is displayed. The API command text can use the standard and extended escape characters which will be resolved prior to submitting the command to the Roll20 chat handler. See the&nbsp; attackMaster Help &nbsp;handout section 2.1 regarding attack messages for an explanation of extended escape characters. Fixes to Hidden Item Handling Testing of the new functionality associated with the&nbsp; query: &nbsp;attribute and other improvements revealed a number of issues when used with hidden items. This is especially a problem if the GM has&nbsp; "Auto-hide Items" &nbsp;set as an RPGMaster configuration option (see the&nbsp; !magic --config &nbsp;command). A number of fixes have been applied, for example when looting a hidden item that has&nbsp; query: &nbsp;variables defined from a chest or dead body this now moves the correct variable values for the hidden item (rather than trying to use non-existent variable values of the hiding item).
1708379545

Edited 1709197437
Richard @ Damery
Pro
API Scripter
Potentially Fatal Bug in Latest Release Fixed: 28th Feb 2024 Bug description: &nbsp;Sorry to have to raise yet another fatal bug so soon after the last one... In this case, if AttackMaster (as part of the RPGMaster suite) is used in a campaign with a large number of character sheets (Characters, NPCs, Creatures, Containers, and extracted/user-defined databases) Roll20 might detect what it thinks is an infinate loop in the Mod code, and might shut down the Mods/APIs. This is not actually an infinate loop, but instead is a piece of code that is checking each character sheet for certain information. In a campaign with a small number of character sheets this check happens fast, but the more sheets the longer it takes. Temporary fix: &nbsp;The offending code has been altered to run more asynchronously.&nbsp; Follow this link <a href="https://raw.githubusercontent.com/DameryDad/roll20-api-scripts/AttackMaster/AttackMaster/3.2.1/attackMaster.js" rel="nofollow">https://raw.githubusercontent.com/DameryDad/roll20-api-scripts/AttackMaster/AttackMaster/3.2.1/attackMaster.js</a> Copy all the code to the clip board with ctrl-A ctrl-C In the API / MOD console, 1. Go to the AttackMaster tab, and down the bottom select the [Disable Script] button. 2. Open the New Script tab, and rename the file (e.g. instead of untitled.js, call it attkFix.js - the actual name is unimportant) 3. In the code area paste from the clipboard with ctrl-V 4. Use the [Save Script] button at the bottom Everything should then work. Permanent Fix ETA: &nbsp;The fix has now been released and is live.
Just a keep-alive post, but watch out next week for the release of v3.3.0...
RPGM Release Notes v3.300 RPGMaster Release Notes - Live 9th April 2024 for version 3.3.0 v3.3 Release Notes Faster Initiatives with Pre-selected Attacks There is now an option to do Attack initiatives by weapon, rather than by weapon action. E.g. if a&nbsp; Longsword+1,+3 vs Undead &nbsp;has two attack lines (a +1 attack, and another for +3 vs Undead), the&nbsp; initiative by weapon &nbsp;option will just show 1 option of "Longsword+1,+3 vs Undead" whereas the&nbsp; initiative by action &nbsp;option will offer two initiative options of "Longsword+1" and "Longsword+3 vs Undead". Which option is presented is controlled by the GM's&nbsp; Initiative Configuration Menu &nbsp;accessed from the GM's macro bar or via the&nbsp; !init --init &nbsp;command. Alternatively the InitMaster command --init-level can be used to change the selected option. If undertaking a "group" or "individual" initiative, and selecting to do an attack, the most likely weapons (or weapon actions) to be used will be pre-selected. These can be altered if desired before the initiative selection is submitted. A weapon held in both hands will take preference, followed by a weapon held in the character's prime hand. If selecting an attack with two weapons, the weapon in the prime hand will be pre-selected as the prime weapon, and that in the off-hand will be the secondary weapon. Specify a Fixed Initiative Roll It is possible to set a fixed roll for the next initiative roll for a character by setting the character sheet attribute "init_chosen|max" to a value. Clearing the value to be blank will allow a standard random roll to take effect. This supports items such as a&nbsp; Robe of Vermin . Rogue Skill Checks The AD&amp;D2e Character Sheet already has support for checking Rogue skills like picking pockets and hiding in shadows. However, in order to maintain options for the GM &amp; players RPGMaster now provides a dialog to make Rogue skill checks in a similar way to saving throws and attribute checks. Either use the&nbsp; Other Actions &gt; Rogue Skill Check &nbsp;action, or the command&nbsp; !attk --thieve &nbsp;which will display the dialog for the selected token. The GM can configure RPGM rogue checks so that the results of&nbsp; find traps, move silently, hide in shadows &nbsp;and other checks that should not be undertaken by the player are only displayed to the GM, or to the player as well. The GM can also configure "critical success" levels for rogue skill check natural rolls to be 5% (01 to 05), 1% (only 01), or no critical success. Both of these are configured using the GM's [Configure RPGM] macro or using the !attk --config command. It is also possible to maintain the Character Sheet&nbsp; Rogue &nbsp;skills table by using the button on the Rogue Skill Check dialog, or the command&nbsp; !attk --set-thieving .&nbsp; Note: &nbsp;this is a very wide dialog! I suggest you drag your chat window wider temprarily while using it, then collapse it when finished. PC Rolls or You Roll for Saves &amp; Checks For a long time the weapon attack system has offered the player the chance to either get the system to roll to-hit and damage dice, or roll physical dice themselves and enter the result. This has now been extended to saving throws, attribute checks, and also the new rogue skill checks. The two buttons [PC Rolls] and [You Roll] at the bottom of each dialog selects the appropriate dice behaviour. The choice is specific to each player and is preserved between sessions within a campaign. New Equipment Database Ordinary equipment can be defined in the&nbsp; MI-DB-Equipment &nbsp;database, stored in containers and looted, and used by characters. This supports the creation of items such as a&nbsp; Robe of Useful Items , as well as creating more complete equipment lists on character sheets. However, only a short list of items (those required for the robe) have so far been defined. The Equipment database follows the same design principles as any other database of magic items and the GM should refer to the&nbsp; Magic Database Help &nbsp;handout for information. Remove Status from All Tokens A new RoundMaster command --removeglobalstatus will remove a named status from all tokens / characters in a campaign, triggering any status-end events appropriately for each token. A corresponding command, --deleteglobalstatus, will remove the status&nbsp; without &nbsp;triggering status-end events. All standard status formats are supported, allowing statuses with a common name to be tied to specific applications. RoundMaster Status Message Icon Titles Many status messages created by RoundMaster identify which tokens they refer to by showing a small icon of the token image. When dealing with mobs, all the images are the same so it is difficult to identify precisely which tokens the messages refer to. Image titles have now been added to the icons and hovering a mouse pointer over them will show the token name. RoundMaster Auto-Confirmed Status Targeting The RoundMaster --target command when used by a player or a player's character requires the GM to confirm its application. A new command --gm-target by-passes the confirmation from the GM and automatically applies the status (i.e. giving the player GM privileges for the command). Build a Custom Save It is now possible to build a custom save macro using the AttackMaster --build-save command. This allows a save for a character to be created that overrides a character's normal saves. Improved Management of Hidden and Cursed Items There have been multiple improvements to hidden and cursed items, including extending curses to items that change nature (change-each or change-last). Cursed ammo types can also now be recovered with the GM's agreement (if the curse does not already make them self-returning...). Define "No-store" Containers MagicMaster provides the commands for characters to store items in containers and loot or retrieve them later. A container can now be defined with a data attribute&nbsp; store:nostore &nbsp;which will mean that characters cannot store new items into the container, but only retrieve items the GM has stored in it. This supports containers like a&nbsp; Robe of Useful Items . New Magic Items A number of new magic items have been added from the lists in the Dungeon Masters Guide:&nbsp; Robe of Shooting Stars, Robe of Useful Items, Robe of Vermin, Rope of Climbing, Rope of Constriction, Rope of Entanglement, Rug of Smothering, Rug of Welcome, Saw of Mighty Cutting, Scarab of Cursed Protection, Scarab of Death, Scarab of Enraging Enemies, Scarab of Insanity, Scarab of Protection, Scarab vs Golems (configurable type), Sheet of Smallness, Slippers of Spider Climb, Smoke Powder, Smoke Powder Components, Sovereign Glue, Spade of Colossal Excavation . Each has notes on their use in Roll20 with the RPGMaster suite in their description (as do many other magic items). Lots of Additional Fixes Fixed bug with attacking with 2 weapons where one or both are ranged. Fixed error with assessing allowed armour types when the armour is "hidden" - e.g. thieves were incorrectly not allowed elven chain mail if it was a "hidden item" shown only as generic "mail". Fixed weaponQuery to interrogate hidden items correctly to assess if they should be in the list. Fix the "Death" button on the Other-Actions menu so that it, adds the Dead marker, marks the body as lootable, and reverses any effects on it (allowing re-use of the character sheet on other tokens). Fixed spells &amp; powers stored on items with a casting level to set the MU- and PR- casting levels to the stored level as well as the overall casting level. Fixed "ghost spells" sometimes appearing on spell-storing items which can't be used, replaced or removed. Fixed the [Remove spell] button on the&nbsp; Spell Menu &gt; Memorise Spells &nbsp;dialog which caused a non-fatal error. Fixed charged powers for hidden in-hand magic items on attack menu. Fixed item &amp; spell speed calculations that include multiply '*', divide '/' and parentheses '(' &amp; ')'.
RoundMaster error when changing player page Bug description:&nbsp; This is a bug that has been found and reported by others and is solved in RoundMaster v5.054, which will be released via the One Click auto-update Wednesday next week. Temp fix:&nbsp; However, if you can't wait and are confident enough to install API code in the Mod Console you can get the code here: <a href="https://raw.githubusercontent.com/DameryDad/roll20-api-scripts/RoundMasterAPI/RoundMaster/5.054/RoundMaster.js" rel="nofollow">https://raw.githubusercontent.com/DameryDad/roll20-api-scripts/RoundMasterAPI/RoundMaster/5.054/RoundMaster.js</a> Copy the code (Ctrl-A, Ctrl-C), go to the Mod Console, Disable the RoundMaster tab by going to it and clicking the [Disable Script] button Create a new tab called TempRoundMaster paste the code into it by selecting the code window and using Ctrl-V press the [Save Script] button Open a new tab on your browser and open the campaign (if its not already open) Go back to the browser tab for the Mod Console and check the APIs have started OK without any errors. The bug should be fixed Final fix ETA: Wednesday 24th April. Once I announce on the&nbsp; RPGMaster forum &nbsp;that the new versions have gone live, you can disable the new code on the Mod console TempRoundMaster tab and re-enable the original RoundMaster One-Click tab. Sorry again for this
RPGM Release Notes v3.400 RPGMaster Release Notes for version 3.4.0 released 25th April 2024 v3.4 Release Notes Initiative mods table Multiple magical and spell effects can impact a creature's initiative at the same time. Adding and removing these effects to date has relied on mods to one attribute for additive mods (those that affect the priority of initiative actions achieved) and one attribute for multiplicative mods (those that affect number of actions in a round). Now, an initiative mods table has been added to each creature's character sheet (hidden, not visible on the sheet) to which additive and multiplicative mods can be added with a descriptive and identifying name. InitMaster command&nbsp; --check-init &nbsp;has been provided for the player to view the current state of the mods table, and the&nbsp; --set-mods &nbsp;command has been provided to add, change and delete entries in the table. A button has also been provided on the Initiative Menu to view the mods table. Items that affect initiative Some magical items can have an effect on initiative, such as a&nbsp; Stone of Weight . Such items can now use the data attributes&nbsp; init+:# &nbsp;and&nbsp; init*:# &nbsp;as part of their definition to automatically affect initiative rolls. These will appear in the initiative mods table when displayed by a player, with their effect. init+:# will change the additive modifier (-ve is beneficial), and init*:# will change the multiplicative modifier (&gt;1 is beneficial). The qualifiers '=', '+' and '-' can be used to overwrite, increase and decrease the current value, and simple maths can be done in the value. {{hide#=...}} and [Show more...] button Many spell descriptions and magic item descriptions can be quite long, and displaying them in full can clog up the chat window. The RPGMspell and RPGMdefault roll templates now have the additional special tag&nbsp; hide#= &nbsp;where # is a number between 1 and 9, providing the ability to divide up the description. When a template with this tag included is displayed, the entries with the&nbsp; hide#= &nbsp;tag will not be displayed, but a&nbsp; [show more...] &nbsp;button will be added to the {{desc=...}} section (which must be provided). Selecting the [show more...] button will display the text tagged with any hide# and the button will change to&nbsp; [show less...] .&nbsp; Note: &nbsp;if text is instead tagged with {{desc#=...}} the&nbsp; [show less...] &nbsp;button will be displayed initially and clicking it will hide the tagged text and then a [show more...] button will display. Many other RPGM templates are based on the RPGMspell and RPGMdefault templates and gain the same&nbsp; show more &nbsp;functionality. RPGMattack, RPGMmessage, RPGMmenu and RPGMwarning do not provide show more/show less. New pick: and put: command data attributes When a creature picks up an item from a container using the looting function under&nbsp; Item Menu &gt; Search for Items &amp; Treasure , any command tagged with the data specification&nbsp; pick: &nbsp;tag will be executed. This command is also run if the item is added to the character sheet using the GM [Add Items] function or player&nbsp; Item Menu &gt; Edit Items &nbsp;dialog. Similarly, if an item is put away in a container or removed from a character sheet, any command tagged with&nbsp; put: &nbsp;in the data specification will be executed. Additional support for "changing" items Items that can change as they are used to the item specified with the&nbsp; to: &nbsp;data tag, either as each charge is used (change-each) or once totally expended (change-last), had problems if it was the use of a charge for a power that caused the change. The --mi-power command has now been updated so that it can take multiple item names for the name of the item casting the power, each separated with a forward slash '/'. New magicMaster --query-qty command Some items and powers need to access the number of charges left on the item or power each time they are used. Including a call to the magicMaster command --query-qty will set the character sheet attribute "spellcharges|current" to the number of charges left at the point the command is run. Body searchability improvements When a "death" (red X) status marker is set on a token, the current container type of the character sheet associated with that token is saved &amp; then set to 6 (force inanimate) which will allow the body to be searched without a "pick pockets" roll being made, simulating the fact that a dead creature can't stop anyone searching them. If the death status is later removed (e.g. because the creature has been revived, or a different creature using the same character sheet is placed on the map) the container type returns to what it was before token death. Fixes Maint Menu &gt; Set Round No &nbsp;now defaults to ' ' (blank) which evaluates to +1 - this helps avoid errors in setting the number Trap tableLookup() method called with undefined index to return undefined result Made default attack initiative setting more reliable Fixed handling of innate objects by classAllowedItem() to include multitype objects Fixed mob tokens not having statuses and markers moved between pages Fixed creature initiative where creature has both innate and weapon attacks Fixed detection of creature innate attacks where none exist, and count them where correct count field not recorded Fixed weapon proficiency with complex innate weapons and spells Fixed attacks with weapons and weaponised spells missing a +: attribute definition Fixed bag creation on MI use. Fixed display of spells stored in a spell-storing item using a --view-spells command Fixed trapped container that does not have a "Trap-1" (open/disarmed) macro to assume trap removed.