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

RPGMaster  The first release of the the first 5 APIs in the RPGMaster series are now available by the One-Click install.  You can find information on RoundMaster, InitMaster, AttackMaster, MagicMaster & CommandMaster on the RPGMaster Wiki page, which includes introductory videos on use, and links to the Wiki pages for each individual API. RoundMaster   extends the functionality of the  t   Turn Tracker  capability. Based on the old TrackerJacker API, extended to support  Effect Macros  triggered when statuses are added, exist on, or are removed from tokens.  Effect Macros  are user programmable and can do anything Roll20 or added APIs can do. InitMaster   supports initiative for RPGs (initially only AD&D 2e) using RoundMaster, and manages issues like multiple Turn Order entries for multiple attacks per round, dealing with the effects of spells like Haste  and Slow  on initiative, action speeds for many different weapons, magic items and other actions, plus many other features . AttackMaster   provides functions to manage weapons, armour & shields, including taking weapons in hand and using them to attack. It uses standard AD&D 2e rules to the full extent. MagicMaster   provides functions to manage all types of magic, including Wizard & Priest spell use and effects; Character, NPC & Monster Powers; and discovery, looting, use and cursing of Magic Items. CommandMaster   manages the initialisation of a  Campaign  to use the RPGMaster APIs, communication and command syntax updates between the APIs and, most importantly for the  DM , easy menu-driven setup of  Tokens  and  Character Sheets  to work with the APIs. These APIs currently are focused on supporting AD&D 2E game-play, although RoundMaster can be used more widely. If you have any questions, thoughts or ideas (or bug reports...), please post them on this thread.
1642283704
vÍnce
Pro
Sheet Author
Wow Richard!  That looks like a very comprehensive 2e companion script(s). Still watching the vids linked on the wiki... Awesome job.
1642358401
Peter B.
Pro
Sheet Author
Hey Richard You freaking mad lad! Here I thought you were just making an API to play the game a bit easier, but it turns out you have created an entire freaking Game Engine for ADnD 2E !  I took a look at the first couple of videos of yours and I must say that I am filled with emotions. I am amazed at your feature set, I am in awe of the sheer amount of work you have put into this. I am going insane over how much code it must have taken to get everything working. It is now more clear to me that ever, that our approaches to playing the game could not be more different. I know fully understand why you prefer to have the character sheet as "static" and control all functionality through the API. From my point of view, you have managed to automate the game to such a degree that the character sheet becomes rather obsolete. Your work completely redefines how a player interacts with Roll20. I dare to say that with your APIs the game becomes quite different even from the 5E by Roll20 sheet, that to my knowledge is some of the most automated that is out there. I do also see a bit of a learning curve for both DM and players, but that is natural. I really love your videos. Without them I would never have figured out how to do all the things that are possible. Keep up the good work! One word of advice though. Try to cut out parts where stuff goes a bit a stray (like the layers being wrong) or technical stuff that is working due to some Roll20 bug, and these kind of things becomes noise to the average player that just wants to use your APIs but has very little technical understanding of what a json file is or why 3D dice are not working with API calls. There were three things I noticed from your videos that caught my interest. As being forever the rules lawyer in my games, I was wondering the following: In your video on initiative and attacks you mention that specialist warriors gain 1 attack on odd rounds and 2 attacks on even rounds. Is there a source that specifically mentions odd and even rounds anywhere? To my knowledge, or well how we have always done it, is that the first round is one attack and the second round is two attacks, regardless of the round in odd or even, but to be fair we do not keep track of odd and even rounds. If this is just an easy convention to handle the multiple attacks then I can fully understand that. So in summary: Is there any source that states that differentiating multiple attacks are always done on the even round? The way you handle multiple attacks from a single source is by adding the speed factor of a weapon again (like with the short bow and the specialized long sword), and I have played like that myself in games, as it makes sense. However by the Player's Handbook, multiple attacks from a single weapons is handleded differently. In the PHB it is described as everyone makes their first attack, and once the first  attack sequence or   subround  (for a lack of a better term) has ended, everyone with a second attacks makes their attacks. Any comment or thoughts on this? I can only assume that implementing such a thing is really hard to do, hence why you wend for the easy option of adding the speed factor again. For sources, check both the PHB p. 126 Multiple Attacks and Initiative  and The Complete Book of Elves p. 74 The Quick-Draw Shot. So In summary: Have your considered support for pushing multiple attacks from a single source into different attack sequences / subrounds? You mentioned that changing weapons takes one round which is only partially true. In the players handbook it is stated that if you drop your weapon on the ground and draw a new one then that can be done without spending a round. This of course brings the risk that if you are forced to flee from combat then the weapon is lost as you are forced to leave it on the ground. For a source see the PHB p. 122 What You Can Do in One Round. Here is a quote: Any thoughts on allowing players to change weapons "instantly" by dropping they current weapon on the ground? Keep up the good work. It all looks amazing! P.S.: Oh by the way! I love the possibility to use a physical dice and add the result into the machine . It gives players an opportunity to use their physical dice which I love, and sorely miss!
1642360917

Edited 1643527900
Richard @ Damery
Pro
API Scripter
Peter, thanks for the really useful comments.  You are absolutely right that the APIs and the Character Sheets represent two different ways of playing.  My group were not so happy with maintaining Roll20 Character Sheets as well as their paper ones, and also were focused on the Roll20 game and so not striking spells & MI charges from their paper sheets, or deducting ammo etc, so were very supportive of the approach my APIs give.  But this of course does not make using the Character Sheet perfectly sensible for others as a way to play.  Some will like one way and others the other way, perhaps.  It is possible to combine the two ways, e.g. using MagicMaster to load weapons, but using the Character Sheet to attack with them. I agree with what you say about the videos.  I wanted to get some out there quickly, as the APIs were already released via One-Click and I knew users would struggle or be daunted by the documentation without help.  So videos of how they are used seemed the best way.  Once I have videos covering all the functionality (at least at a high level), I'll go back and edit or rerecord them. In answer to your points: Is there any source that states that differentiating multiple attacks are always done on the even round? No.  This is pure convenience for the API, but it also has the advantage of meaning that, if you don't strike with a weapon in a round then you don't drop back to a single attack the next round you attack.  We used to play the way you describe, but we felt the odd/even way was fairer.  However, it would be possible to add a DM flag to do it the other way and choose which to do, if people wanted. Have your considered support for pushing multiple attacks from a single source into different attack sequences / subrounds? That is indeed what the PHB says (on page 95 in my 2E PHB (c) 1989) but I think as I read it this refers to Standard  initiative - the default in AD&D, where one group "wins" initiative over the other.  If the system is put into Standard Initiative mode (using the Initiative menu) and the party and the foes each roll one d10 and one group wins, the multiple attacks work just as you describe - the "winning" group have first attacks, the losing group go next, and then the first group second attacks happen, etc.  With "Individual" initiative (described on the same page of the PHB), it can be read that it also works this way (though I suspect that is more to do with the Haste  spell mentioned in the description, than weapons that have 2 attacks per round, or 3/2 or whatever), but as a group we feel it is more realistic if it works the way it is programmed here: everyone just gets the priority that results from adding the action speed to their individual d10 roll, multiple times if that's appropriate.  Since no-one "wins", you can't say who goes first or who goes second etc.  Everyone (party members individually, and foes individually) go at their calculated priority.  Choosing a fast weapon, such as a dagger, has real advantages and slow weapons, such as Longbows and 2-handed swords, get slow outcomes.  Of course, it works equally for both sides.  As the system does all the dice rolling and calculations, it also works quite fast & does not hold things up (too much...). We (as a AD&D playing group, not just me) believe this is as it should be - it feels more realistic than artificially saying "Even though I'm attacking with a dagger, 2 attacks per round, speed 2 and I rolled a 1, so I should go on 3 & 5, and you are using a 2-handed sword, 1 attack per round, speed 10 and rolled a 5, so go on 15, I'll do my first attack and then just wait around for your slow 2-handed weapon to hit me, before my fast dagger gets its second strike..." However, I can see how you read the rules as you state even for Individual  and Group  initiative.  A future enhancement might be to have an option flag for this. Any thoughts on allowing players to change weapons "instantly" by dropping they current weapon on the ground? Absolutely - the system supports this out of the box.  It's only an issue if doing Individual  or Group  initiative (which use action speeds) and therefore need the speed of the newly selected weapon which they won't get without first taking it in-hand.  In this case, the Player would use the Attk Menu/Change Weapon command while doing initiative (to get the new weapon in-hand) before doing initiative for the next round as an attack with that weapon (so that the correct weapon speed is used) stating to the DM at the same time that they were doing this by dropping their previous weapon.  If you want to be really pedantic, you could instead ask them to use the MI-Menu/Store MI option to actually place the old weapon on the ground (that's a bit OTT even for me... there would have to be a container token representing the ground that they could store it to).  They would then have to remember to pick it up (use MI-Menu/Search for MIs & Treasure  on the ground token) to retrieve it before they leave... The key point here is that the system does not impose any sequence to the use of commands - you can do anything at any point.  The System will not stop it, but the DM might!  While Change Weapon  in theory takes a round, if your character is neatly sheathing their previous weapon and drawing the next, it does not have to.  The system would allow you to Change Weapon, cast a spell and attack with the selected weapon all in one round - that might even be appropriate: e.g. for Mordenkainen's Sword spell, it does precisely this.  It is the DM that points out that you did not have a hand free to undertake the Somatic component of the spell, so you have to drop something first... I hope all that sounds sensible, but very happy to get comments and suggestions, or even other interpretations of the rules - it might make me think of option switches I can allow DMs/players to set.
1642405583
Peter B.
Pro
Sheet Author
Richard @ Damery said: In answer to your points: Is there any source that states that differentiating multiple attacks are always done on the even round? No.  This is pure convenience for the API, but it also has the advantage of meaning that, if you don't strike with a weapon in a round then you don't drop back to a single attack the next round you attack.  We used to play the way you describe, but we felt the odd/even way was fairer.  However, it would be possible to add a DM flag to do it the other way and choose which to do, if people wanted. Ahh! I thought so. It is absolutely a fine way of doing things. Thank you for clearing that up! My concern was that it allows players to min-max the rounds, and only switch to a specialized weapon on the round they get the multiple attacks. But then again so can the monsters, so I guess it is fair all in all. It gives another dimension of player, but it is all a matter of taste :) Have your considered support for pushing multiple attacks from a single source into different attack sequences / subrounds? We (as a AD&D playing group, not just me) believe this is as it should be - it feels more realistic than artificially saying "Even though I'm attacking with a dagger, 2 attacks per round, speed 2 and I rolled a 1, so I should go on 3 & 5, and you are using a 2-handed sword, 1 attack per round, speed 10 and rolled a 5, so go on 15, I'll do my first attack and then just wait around for your slow 2-handed weapon to hit me, before my fast dagger gets its second strike..." However, I can see how you read the rules as you state even for  Individual  and  Group  initiative.  A future enhancement might be to have an option flag for this. I complete agree with your argument. I also find this the more realistic method, and it also makes more sense when looking at descriptions of weapons. One of my pet peeves are the description in the Arm and Equipment Guide for Darts: From this description it makes sense that keep multiple attacks in the same attack sequences, because if they are pushed back, then the above description makes no sense. If a spell caster cast a spell that has a cast time of 8, then throwing Darts at them with a speed factor of 2 and a rate of fire of 3 would still only give you 1 chance for interruption, because the 2 following attacks would be "pushed back" to the next attack sequence. By using your system of just adding the speed factor to the each attack, an attacker would have 3 chances to interrupt an opposing spell caster, which fits the above description. I guess it all comes down to preferences of how easy / hard it should be to interrupt a spell caster. It might become too hard to get spells with a long cast time off, with more chances for interruption, but then again it would force the players to think more about positioning of their spell casters in order to keep them safe. Any thoughts on allowing players to change weapons "instantly" by dropping they current weapon on the ground? Absolutely - the system supports this out of the box. Good to know. I just wanted to make sure your system wasn't too rigid :) Another question for you here at the end. Do you your system support the "Fire into a Melee" rules from the PHB? I believe it is p. 99 in the 1989 book and p. 132 in the 1995 reprint
Another question for you here at the end. Do you your system support the "Fire into a Melee" rules from the PHB? I believe it is p. 99 in the 1989 book and p. 132 in the 1995 reprint The APIs don't track the locations of tokens on the screen, so would not know when a ranged weapon is being fired into melee, though I suppose the Player or the DM could have a button to say this is what is happening.  Right now, this has to be dealt with outside of the system (at least at the moment).  If the DM sees a player firing into melee, the DM will have to determine the outcome based on the roll he sees that the Player makes (the DM, and all other players, always see the result of the roll, though only the roll itself if 3D dice are enabled).  I think there probably are too many special circumstances about firing into melee for the system to do a full evaluation.
Note to those watching my videos for installing & using RPGMaster APIs.  I left out the crucial (to spell effect usage) step of correctly configuring ChatSetAttr & Tokenmod APIs (from Jacob & The Aaron ) from "Video 1: Loading & Initialising the APIs" .  Please do revisit this 10 minute video to see how to correctly configure ChatSetAttr & Tokenmod for use with RPGMaster Effects.
1642617259

Edited 1642618167
I am not seeing RPGMaster in the one click. Nevermind. I figured it out. Curious how hard it would be to adapt this to Castles & Crusades.
1642626129

Edited 1642626767
Richard @ Damery
Pro
API Scripter
Peacekeeper B  said: I am not seeing RPGMaster in the one click. Nevermind. I figured it out. Curious how hard it would be to adapt this to Castles & Crusades. I'm not familiar with Castles & Crusades - how similar are the rules to AD&D 2E, is it a derivative?  The Wiki pages for the individual APIs (accessible via the links on the  RPGMaster  Wiki page) have instructions on adapting the APIs to work with other Character Sheets: Look for the section on each Wiki page titled "Matching the API to a type of Character Sheet" .  If the rule-sets are the same or similar, then give it a go!  Let me know how it goes. RoundMaster , which manages the Turn Order & status-driven effect macros, will work with any rule-set and campaign, as it is not dependent on the character sheet or game-play at all. Changing the rule-base (e.g. for how mods work on attacks) for the other APIs would be more tricky, but not impossible.  However, it would not be my priority at the moment.
1642626448

Edited 1642626677
Richard @ Damery
Pro
API Scripter
Note:  currently, there is a bug that is stopping MagicMaster & CommandMaster loading from One-Click unless you use the "Import" button, and InitMaster won't install at all.  This is due to some errors I made in the script.json for each API during this week's merge.  Sorry!  I'm new at this API release game, and I'm still learning. The corrections should  go live on Wednesday, 26th January.  Until then you can use the GitHub hyperlinks on the individual API Wiki pages to copy the code into your Campaign's sandbox. If you do install native code, the APIs will not update as I release changes (very regular at the moment - mostly new features, rather than bug fixes...), so I recommend you either wait, or replace the temporary code installs with the One-Click installs once I fix it.
C&C is fairly close, it is a D20 OGL game so it has the same terminiology and stats and stuff. It doesn't use percentages and everything is roll high against a traget number (so ascending AC not descending AC).  Richard @ Damery said: Peacekeeper B  said: I am not seeing RPGMaster in the one click. Nevermind. I figured it out. Curious how hard it would be to adapt this to Castles & Crusades. I'm not familiar with Castles & Crusades - how similar are the rules to AD&D 2E, is it a derivative?  The Wiki pages for the individual APIs (accessible via the links on the  RPGMaster  Wiki page) have instructions on adapting the APIs to work with other Character Sheets: Look for the section on each Wiki page titled "Matching the API to a type of Character Sheet" .  If the rule-sets are the same or similar, then give it a go!  Let me know how it goes. RoundMaster , which manages the Turn Order & status-driven effect macros, will work with any rule-set and campaign, as it is not dependent on the character sheet or game-play at all. Changing the rule-base (e.g. for how mods work on attacks) for the other APIs would be more tricky, but not impossible.  However, it would not be my priority at the moment.
Peacekeeper B said: C&C is fairly close, it is a D20 OGL game so it has the same terminiology and stats and stuff. It doesn't use percentages and everything is roll high against a traget number (so ascending AC not descending AC).  Attacks are actually quite easy to reprogram - there are two functions in AttackMaster, buildMWattkMacros  & buildRWattkMacros , that build ability macros  on the Character Sheet on the fly when you select a weapon to attack with, specific to that weapon and that Character's statistics at that very moment, that can easily be rewritten to add, subtract, multiply and divide the appropriate mods in whatever way you want to compare against a d20 roll.  The macro finally gets run when you press the weapon or range button on the attack menu - it is a dynamically built macro on the Character Sheet so that 3D dice will actually be seen to roll (which they won't if the API did a programmatic sendChat()  call).  You can actually see the macros it creates on the Attributes & Abilities  tab of the character sheet: they are the ones that start with "Do-not-use..." (so named as some of the DMs in my group started showing them as Token Actions, thinking they should do so...). If you are comfortable with minor Javascript programming, you could take a look and play around with the coding of attacks. How is Initiative done, and are spells dealt with the same way, as slots the spellcasters memorise into and then expend?
C&C uses the same general Vancian system for magic, though the spell progression is different (all spellcasting classes have 10 levels of spells, 0-9, and gnerally start with 2 1st level spells at level 1). In the core system initiative is a d10 base but with different modifiers. I use the 3E version, ie, d20+ dexterity modifier (etc), high goes first. Been thinking of using a weapon factor system but it gets too complicated.
Peacekeeper B said: C&C uses the same general Vancian system for magic, though the spell progression is different (all spellcasting classes have 10 levels of spells, 0-9, and gnerally start with 2 1st level spells at level 1). There is a table called spellsPerLevel in the data definition section at the top of the MagicMaster API that defines how many spells each type of character gets at each level, and what the maximum number of levels of spells is for each class.  This is easily altered. In the core system initiative is a d10 base but with different modifiers. I use the 3E version, ie, d20+ dexterity modifier (etc), high goes first. Been thinking of using a weapon factor system but it gets too complicated. The InitMaster API supports 3 different standards for running Initiative (as defined by AD&D 2E): Standard: party rolls a d10, the DM rolls another d10 for the foes, and all members of the winning group go first, followed by the others - input the dice rolls in the Initiative menu at the start of each round and InitMaster enters the right entries into the Turn Order to facilitate this. Group:  party rolls d10 and then each Character adds a modifier for the action they will take.  DM does the same for foes, one d10 roll and all add their action modifier to the roll.  In InitMaster, enter the d10 rolls (as per Standard ) and then each Character/Foe selects an action, and InitMaster enters the resulting priorities into the Turn Order (including support for multiple attacks per round & magic speed modifiers). Individual:  each Character and each Foe select the action they will take next round, and then InitMaster rolls a d10 dice for each individual entry and adds it to that Character's/Foe's selected action, entering the result into the Turn Order - again, multiple attacks & magic speed modifiers are supported) Do any of these match what you need?  If so, just select the right form of initiative from the Initiative Menu and you're there.  If not, that will need a bit more thought.
I really like these scripts. It will take me some time to get used to the attributes and terminology used for the associated sheet and translate it to my custome Castles & Crusades sheet, but it should be well worth the effort. Well done.  Does attack master take into account monster damage and magical resistances and vulnerabilities?
1642765463

Edited 1642765819
Richard @ Damery
Pro
API Scripter
Peacekeeper B  said: I really like these scripts. It will take me some time to get used to the attributes and terminology used for the associated sheet and translate it to my custome Castles & Crusades sheet, but it should be well worth the effort. Well done.  Does attack master take into account monster damage and magical resistances and vulnerabilities? Thanks Peacekeeper, very much appreciated. If "Monsters" are using weapons, they use the same attack tables and work the same way as Characters & NPCs. Other Monsters use the "Monster Tab" of the AD&D 2E sheet.  If that part of the sheet is filled in, AttackMaster detects it and will display Innate Monster Attacks.  The three "Attack" fields ( monsterdmg, monsterdmg2 & monsterdmg3 ) on the Monster tab have an extended syntax: you can use Attack Name, damage roll, speed  as a comma separated list in each Attack field.  e.g. Claw 1,2+2d4,5  will display a possible attack called " Claw 1"  in Initiative & Attack menus, with a speed of 5 and doing 2+2d4 damage .   Different innate attacks can have different attack speeds.  If the speed is omitted, the value in the monsterini  field is used for action speed.  If the attack name is omitted, the damage dice roll is displayed to select Initiative & when making an attack. Monsters can also do Initiative to do all of their Innate attacks in a round (or the DM can select one of them to do), using buttons on the Initiative Attack action selection menu. The new "Additional Monster Attacks" section on the Monster Tab is not currently used, as AttackMaster treats Monster weapon use exactly the same as Character & NPC weapon use. Magical resistances & vulnerabilities are not yet catered for - not sure I ever will as they are quite complex.
1643364069

Edited 1643392090
Richard @ Damery
Pro
API Scripter
The latest release of the RPGMaster APIs  is now live.  The following improvements and fixes are included: One-Click install is now working correctly for all APIs: Loading CommandMaster  via One-Click Install first will load all  the APIs at once. Characters not rendered by One-Click install in handouts and some menus have been replaced by working characters Some database definitions for Weapons & Spells have been corrected where they were not fully working New function:  the "Add-Items" DM menu (accessed via the Macro Quick Bar or the !magic --gm-edit-mi  command) now includes a button to add spells to "Ring of Spell Storing" and Powers to "Powerful Longsword".  See "How To" video 12  for tips on how to use this function and how to create your own Spell-Storing or Powerful magic items. Standard rules do not allow Bow Mastery, but only Bow Specialisation which just gives the new range of Point Blank with no extra damage.  Added "Bow Mastery" as a possible Weapon Proficiency, which doubles the dice roll for damage at Point Blank range, and takes a total of 4 weapon proficiency slots to achieve. Fixed errors displayed when the DM does End-Of-Day routine for Non-Player-Character tokens (rather than using the Maintenance Menu function). Fixed errors when deleting a token with statuses under certain conditions, or moving statuses to tokens on the Player Page.
There are enough differences between C&C and 2E that I may have to just wholesale switch to 2E instead of covert. This must have taken a lot of work and a long time. Amazing job. The spells are just awesome. 
Peacekeeper B said: There are enough differences between C&C and 2E that I may have to just wholesale switch to 2E instead of covert. This must have taken a lot of work and a long time. Amazing job. The spells are just awesome.  Having started playing 2E over 40 years ago, I still love it and think it has the best flexibility.  The APIs hopefully mean that many of the difficult calculations and complex rules are dealt with for the DM & the Players, and so speed up gameplay which I think was sometimes seen as a downside to 2E.  However, they are not a total replacement for knowing the rules, so I hope you have a Players Handbook and Dungeon Master's Guide for 2E?
I recommend anyone who has installed the APIs but not used One-Click install (perhaps due to the issues with doing that over the last 8 days) reinstalls them using One-Click Install.  That way you will receive the latest updates in future releases automatically.  You will need to delete the manually loaded APIs so that they can be downloaded by One-Click.
Oh I am very familiar with 2E. Played it since 1989 (earlier if you consider the updates in Drgonlance Adventures, Greyhawk Adventures, and several Dragon Magazine Issues lol). I even did extensive work with For Gold & Glory 9the 2E retro clone) including publishing a spell book and kit book for that clone version of the game and using it as the house system for my Ice Kingdoms books and adventures published with Mad Martian Games. I just find C&C to be more my flavor over the past few years. If I understood code better and had the time, I would definitely adapt this to that game. 
Peacekeeper B said: Oh I am very familiar with 2E. Played it since 1989 (earlier if you consider the updates in Drgonlance Adventures, Greyhawk Adventures, and several Dragon Magazine Issues lol). I even did extensive work with For Gold & Glory 9the 2E retro clone) including publishing a spell book and kit book for that clone version of the game and using it as the house system for my Ice Kingdoms books and adventures published with Mad Martian Games. I just find C&C to be more my flavor over the past few years. If I understood code better and had the time, I would definitely adapt this to that game.  Great!  I do want other people who know 2E to play 2E with them and let me know if they are what they expect.  There are a few "extensions" our group use in House Rules (such as the adoption of an adaptation of  Short Rests  from 5E). It may well take quite some time to adapt.  I did try and create them in such a way as to be adaptable so I could add a 5E version, and/or a Pathfinder version, but not sure I'll even have time for that!
Very much a beginner to APIs, and had a try, but they seemed to slow Roll 20 down - was it the API's or could it have been something else? 
1643448875

Edited 1643488153
Richard @ Damery
Pro
API Scripter
Lexin  said: Very much a beginner to APIs, and had a try, but they seemed to slow Roll 20 down - was it the API's or could it have been something else?  When you say they slowed Roll20 down, can you describe a bit more in what way?  Which browser are you using, and what is the specification of the machine(s) you are playing on?  Happy to try and speed things up if I know a bit more about the problem. The APIs do watch everything you do on Roll20 - e.g. when you move a token, or change the Player Page, but they do not add very much speed overhead.  The APIs do take up memory, and I have noticed that over a 2 hour gaming session Roll20 does slow down (with or without the APIs, but more quickly when the APIs are loaded).  I suspect this is an issue with "unrecovered memory" and Roll20 or Google not recovering temporary storage after it is freed up.  This will happen faster if there is less memory available due to the APIs being loaded. Edit:   you can reset this issue just by exiting the campaign at a convenient time and closing the browser, then opening the browser again and restarting the campaign again immediately, and everything should have speeded up again.  As previously mentioned, this does not seem to be limited to my APIs but something to do with Google/Roll20 interaction. The first start-up of a campaign after loading the APIs will initiate the building of a number of databases and help handouts, so the first load will always be slow.  Let the system stabilise for at least 2 minutes after the first load, then exit the Campaign and reload it.  The system will then only take about 10 seconds to index the databases each time you start the Campaign on each subsequent load - unless I do a new release with changes to the databases (in which case it will take about 20 or 30 seconds on the load to rebuild them).  This will happen for each new Campaign you load the APIs into. I do recommend that the DM at least has a high-spec machine, with at least 16GB RAM.  Players really should have at least a reasonable spec of machine and 8GB RAM. If everything is slowing down too much, then with more information I might be able to look closer at any issues.  It would be useful to know what you are doing when you notice slow performance.  Everything seems very fast for me and my group, but I have high-spec machines and I appreciate I won't necessarily see performance issues others do. Really happy to hear more and try and improve things for you - but no guarantees...
Are there built in optionsc or house rules? For example I usually streamline the ability scores so bonuses begin at 15 for all 6 abilities. Or customize classes so rangerscand paladins can specialize at 3rd level. Or add extra races or new classes?
Peacekeeper B said: Are there built in optionsc or house rules? For example I usually streamline the ability scores so bonuses begin at 15 for all 6 abilities. Or customize classes so rangerscand paladins can specialize at 3rd level. Or add extra races or new classes? The ability score bonuses are not managed by the APIs, but by the Advanced 2e Character Sheet.  The defaults set on the sheet can just be overwritten and all will work fine (until you change the ability value - the Character Sheet workers will then set the new defaults, which can again be overwritten).  The APIs will use those you put in. Weapon specialisation & mastery are not restricted by the APIs.  You can mark a Dagger proficiency for a Wizard as Specialist or Masterful and the Wizard will get the attack benefits (though only Fighters get extra attacks).  They don't even have to only specialise at 1st level: they can specialise at any level and in more than 1 weapon, if you allow it. However, if a character tries to use a weapon the rules say they cannot use, the non-proficient weapon penalties will be doubled and damage halved.  The allowed weapons are defined in the classAllowedWeaps  table at line 1467 of AttackMaster API, which can easily be changed if desired. Similarly, the system calculates the armour class using only armour allowed according to the rules (see the classAllowedArmour  table at line 1501 of AttackMaster), but the AC fields on the Character Sheet and on the Token can just be overwritten by the DM or Player if desired, and AC is not used by the attack macros - the DM & Players make the decisions as to the success of a hit. Races other than defined in the handouts are assumed to have the same defaults as Humans, but e.g. saving throws can just be manually updated to reflect different race characteristics using the Saves  menu option under the Other Actions  ability button (or directly on the character sheet).  The raceToHitMods  table at line 1462 of AttackMaster holds the weapon mods for various races, and you should easily be able to add more lines to it for your own races. Classes other than those shown in the Handouts are assumed to be the same as the base classes of Warrior, Wizard, Priest, Rogue or  Psion , according by which column of the classes on the Character Sheet they are put in.  In most cases, fields can be changed to reflect differing characteristics: e.g. for spellcasters, use the Misc spells button on the Memorise Spells  menu to change the number of spells at each level if a new class has a different amount, like a specialist.  You can also use Powers to add to a class: e.g. Barbarians have a power of Rage , and Priests of Life have a power of Preserve Life . I hope that helps?
As a player and DM in Richard's group, currently running a campaign using these API's, I would say that they have considerably improved the play when using Roll20. Not all our players get on well with looking up tables of information and calculating results of dice rolls, but most of this work is now done with a menu click, so things move on more smoothly. As a DM who likes to create Campaigns from scratch - including original monsters - I have mase a number of challenges for Richard;s programming, whuch the system has been flexible enough to cope with. See the video on complex monsters for my Marelune; 4 arms and a tail, plus limited spell casting! One aspect which has been well received has been indivifual initiative, which we had not used when playing IRL, but have really taken to now it is handled by this system.
Richard @ Damery said: Lexin  said: Very much a beginner to APIs, and had a try, but they seemed to slow Roll 20 down - was it the API's or could it have been something else?  When you say they slowed Roll20 down, can you describe a bit more in what way?  Which browser are you using, and what is the specification of the machine(s) you are playing on?  Happy to try and speed things up if I know a bit more about the problem. I found Roll 20 very slow to respond to things like rolling dice during the session - rolls would take over a minute to be reflected in the chat window, if they came up at all - some just didn't show. It really slowed the game down. My players did not report any change, so I took the view it was likely to be the APIs and deleted them, in which case the response speeded up somewhat. Browser is Chrome and my computer has 16GB of RAM.  It has an Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz   3.90 GHz, and a 64 bit operating system. (I don't know whether that's good or bad! I think it's quite good.) Does that help?
Lexin said: I found Roll 20 very slow to respond to things like rolling dice during the session - rolls would take over a minute to be reflected in the chat window, if they came up at all - some just didn't show. It really slowed the game down. My players did not report any change, so I took the view it was likely to be the APIs and deleted them, in which case the response speeded up somewhat. Browser is Chrome and my computer has 16GB of RAM.  It has an Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz   3.90 GHz, and a 64 bit operating system. (I don't know whether that's good or bad! I think it's quite good.) Does that help? This is very odd.  I'm very sorry you are having this issue.  The APIs actually run on the DMs machine and all Players machines as well, so if the Players are not reporting any issue, this might indicate an issue specifically with your machine.  The spec would indicate everything was OK, though. Roger P. , one of the DMs in my group, did report a similar issue with his graphics, and found it was a setting on Chrome to do with using graphics acceleration, which forced all graphics rendering to be done by the main processor in main RAM, as opposed to the Graphics processor in graphics RAM. Switching this setting over made everything suddenly work much faster, but I'm not promising that is so in your case.  This definitely slows things down as you describe, so perhaps worth looking at?   I assume that if you just do a dice roll from the chat (not using the APIs, but with them loaded) it has the same issue?    There is nothing in the APIs that intercepts chat-window dice rolls, so if these are slow, it must be to do with the amount of RAM and graphics processing that Chrome has available to it - perhaps the graphics issue described above. Do you have processor-managed virtualisation turned on in the BIOS? This can "reserve" RAM for the virtualisation and stop Roll20 from using it.
Peacekeeper B  said: Are there built in optionsc or house rules? For example I usually streamline the ability scores so bonuses begin at 15 for all 6 abilities. Or customize classes so rangerscand paladins can specialize at 3rd level. Or add extra races or new classes? Peacekeeper, my release in a couple of weeks will include a menu with 3 settings for several different aspects of use: strictly follow AD&D2e rules (e.g. Wizard's can't use any weapons other than dagger, staff, dart, knife or sling); use our group's in-house rules (e.g. Wizards can use any weapon, but other than those above get double non-proficient penalty, and can only be proficient in those above); or not impose any rules (e.g. Wizards can be proficient in any weapon - it is a DM/Player choice to agree which ones, not a system one). These settings will initially apply to allocating proficient and usable weapons, usable armour types, ranged weapon mastery, ranger, paladin & bard spell use.
That's pretty cool.  One thing I think would be nice is if the sub rolls from the spells (saves, damage, etc) used a template instead of just an inline roll. It would look neater. Though it would take time to update. Richard @ Damery said: Peacekeeper B  said: Are there built in optionsc or house rules? For example I usually streamline the ability scores so bonuses begin at 15 for all 6 abilities. Or customize classes so rangerscand paladins can specialize at 3rd level. Or add extra races or new classes? Peacekeeper, my release in a couple of weeks will include a menu with 3 settings for several different aspects of use: strictly follow AD&D2e rules (e.g. Wizard's can't use any weapons other than dagger, staff, dart, knife or sling); use our group's in-house rules (e.g. Wizards can use any weapon, but other than those above get double non-proficient penalty, and can only be proficient in those above); or not impose any rules (e.g. Wizards can be proficient in any weapon - it is a DM/Player choice to agree which ones, not a system one). These settings will initially apply to allocating proficient and usable weapons, usable armour types, ranged weapon mastery, ranger, paladin & bard spell use.
Peacekeeper B said: That's pretty cool.  One thing I think would be nice is if the sub rolls from the spells (saves, damage, etc) used a template instead of just an inline roll. It would look neater. Though it would take time to update. The saves button on spells is actually a legacy, from a time before I really knew what I was doing!  I ought to remove it, as generally its not the spell caster, but the target  that must use the Other Actions  token action menu, Saves  button to make a saving throw, which does result in a template and formatted roll. For where the damage is just a dice roll, I'd have to program an API command for the button to call - possible, but not high priority, I'm afraid.  You could play around with programming your own version of, for instance, the Magic Missile damage buttons using a macro solution e.g. something like: [Roll Missile Damage](&{template:default}{{name=Magic Missile Damage}}{{Roll=[[1d4+1]]}}) Not sure this will work as an API Button call, but might be worth trying.
Richard @ Damery said: I assume that if you just do a dice roll from the chat (not using the APIs, but with them loaded) it has the same issue?    No, it doesn't. Or not that I noticed, because I had at times to resort to rolling from the chat - which is a problem for me in 2e as I'm mathematically challenged and have to ask my players if they hit or not, giving away the AC.
Richard @ Damery said: Roger P. , one of the DMs in my group, did report a similar issue with his graphics, and found it was a setting on Chrome to do with using graphics acceleration, which forced all graphics rendering to be done by the main processor in main RAM, as opposed to the Graphics processor in graphics RAM. Switching this setting over made everything suddenly work much faster, but I'm not promising that is so in your case.  This definitely slows things down as you describe, so perhaps worth looking at?   Do you have processor-managed virtualisation turned on in the BIOS? This can "reserve" RAM for the virtualisation and stop Roll20 from using it. I have no idea where I would look for these - can you help? At least, I think I can get into the BIOS, but am wary of fiddling with settings in there.
1643665585

Edited 1643667140
Richard @ Damery
Pro
API Scripter
Lexin said: No, it doesn't. Or not that I noticed, because I had at times to resort to rolling from the chat OK. This is a new one on me - sorry your experiencing it.  If you're willing to help me diagnose the issue, great!  If not, just let me know.  If you can, let me know the answers to these questions: Does the performance improve if you are using the APIs without any players in the campaign, e.g. to do random Attacks? Are the Character Sheets ones that you set up from scratch with the APIs or are they ones you and the Players have had for some time?  I'm assuming they and you are using the Advanced 2nd edition sheet from Peter B. Which commands/actions were you using that had slow dice rolls or ones that never happened - mostly attacks with weapons?  Or monster attacks? If attacks with weapons, were they (a) weapons just typed into the Character Sheet fields on the Weapons  tab of the character sheet, or (b) loaded using the APIs from the Databases onto the Character Sheets using:    - the !magic --edit-mi or !magic --gm-edit-mi  command, or more easily using the Token Action MI Menu  - Change MIs  action, and then - taken in-hand by using the !attk --weapon  command, or more easily using the Token Action Attk Menu - Change Weapon  action? Edit:   Do you have any other APIs loaded, other than Token-mod, CharSetAttr, RoundMaster, InitMaster, AttackMaster, MagicMaster and  CommandMaster ?  There might be some interaction with other APIs that I'm not yet aware of. I'm unable to do deep-dive debugging this week for various reasons, but next week I'll see if I can change things on my machines to reproduce the issue your seeing. If anyone else is seeing similar slow-downs , I'd be very interested to hear about it, to see if I can see a pattern.
Lexin said: I have no idea where I would look for these - can you help? At least, I think I can get into the BIOS, but am wary of fiddling with settings in there. The Google setting: go to Google Settings  menu (under the 3 dots top right below the X), ->  Advanced  -> System  -> Use hardware acceleration when available -> on . You're right not to play around with the BIOS if you're not comfortable with it.  Let's assume its something else.   
You should see if you can rebrand this for For Gold & Glory (the 2E retroclone) and see if they will place it as one of their game compendiums.
Richard @ Damery said: OK. This is a new one on me - sorry your experiencing it.  If you're willing to help me diagnose the issue, great!  If not, just let me know.  If you can, let me know the answers to these questions: Does the performance improve if you are using the APIs without any players in the campaign, e.g. to do random Attacks? Yes, it seems better if there are no players. Are the Character Sheets ones that you set up from scratch with the APIs or are they ones you and the Players have had for some time?  I'm assuming they and you are using the Advanced 2nd edition sheet from Peter B. They are the Advanced 2nd edition one from Peter B. Though it has to be said that at least one of my players thinks that Character Sheet is confusing and difficult to use, and disputes that it's rolls are random. Which commands/actions were you using that had slow dice rolls or ones that never happened - mostly attacks with weapons?  Or monster attacks? It was monster attacks, from monsters that I had put into the character sheet, and NPC attacks again from NPC's I'd put into the character sheet. I was, for example, using Scorpion men which have three attacks, and also random cultists that I'd put in the sheets. Edit:   Do you have any other APIs loaded, other than Token-mod, CharSetAttr, RoundMaster, InitMaster, AttackMaster, MagicMaster and  CommandMaster ?   No, just those. Thanks for taking the time to help out. Much appreciated.
There has been an (unannounced) change in the way Roll20 manages the Turn Order and how APIs interact with the Turn Order.  This has broken several APIs, including the RoundMaster API in the RPGMaster API suite. I have a fix ready to release in the merge next week (available from Thursday, 10 Feb - perhaps a little earlier), though Roll20 are working on a fix to resolve the impact of the change which may appear sooner. In the meantime,  The Aaron  has posted a fix for those comfortable with adding a small, self-contained API to your campaigns as code.  Follow this link to the fix. Once added The Aaron's fix as a new API, after everyone has done their initiative the DM can use the !fix-turn-order  command in the Chat Window to display all the turns in the Turn Order. Once my fix is released next week, that command will no longer be needed. Thanks to The Aaron for finding & issuing a work-around.
1644320962

Edited 1644321006
Richard @ Damery
Pro
API Scripter
The new version of RoundMaster, which fixes the Turn Order issue mentioned above, has been merged into the master code but not yet been pushed by One-Click install to your campaigns.  However, you can copy the code from the GitHub repository if you are comfortable with that.  Copy the Raw version of the code into an API slot and save it. The One-Click install version will update itself by Thrusday, 10 Feb at the latest.  If you're not comfortable with loading the raw API script, or don't need to because your not running a game before then using RoundMaster, wait for the One-Click version to update. Remember:  raw code loads of RoundMaster will not automatically update when I release new versions, whereas the One-Click version will.  Do delete the raw code version and update to the One-Click version unless you want to modify the code in any way.
The new version of RoundMaster  has now been updated on the One-Click install, and has automatically updated for those who have installed it via One-Click, so should now be working with the latest Roll20 update .  All other RPGMaster APIs have also updated and here are the latest features: RoundMaster Swapped Rage effect programming to latest field definitions Added Scabbard of Enchanting & Protection vs Fiends effects Added token _pageid to turnorder token entry to support the latest Roll20 release InitiativeMaster Corrected the Maintenance Menu "End-of-Day" button command call AttackMaster Added --config command and menu for DM to alter some API behavior. Multiple weapon changes and additions MagicMaster Added --config command and menu for DM to alter some API behavior Fixed Shocking Bracers LB error & enhanced Rage power Multiple weapon and magic item definition updates CommandMaster Added buttons to Abilities menu to set if a PC or DM token Linked to AttackMaster "masterRange" flag to allow or disallow Ranged weapon mastery The next piece of function to be worked on is a "Class Database" to allow DMs to add or change the definitions of classes supported by the APIs, the weapons & armour they can use, and the powers that they have.  Other aspects of class might be added to the database in future.
If I want to change a spell, or add one, what do I do?
You can create your own Spells database.  The information you need is hopefully in the " Magic Database Help"  handout.  Take a look at that handout (created and added to your campaign when the APIs are loaded)  and then let me know if you have any questions. I'll create the Spells Database   Video  when I get a moment.
1645034877

Edited 1645038440
Richard @ Damery
Pro
API Scripter
I have now added new videos explaining some of the aspects of the Spell & Magic Item databases and how to add your own Spells & Magic Items.  Of course, the Database Help handouts added to your campaign when the APIs are loaded can also be of use, and have more detail on the total list of values parameters in the Databases can have. RPGMaster Intro video 15  17min Introduction to the RPGMaster databases RPGMaster Intro video 16  18min A bit more detail about the spells databases and how to create your own Spells RPGMaster Intro video 17  30min More detail about the Magic Items databases and how to create your own Items This does not yet cover Weapons & Ammo databases.   Weapons and Ammo are a little bit more complex, so I will create a new video soon to help you with adding new weapons and such.  Armour & Shields  (simpler than weapons) will also have their own video, along with the Effects Database as another video.
BUG Found!  In attacking with a non-proficient weapon. I have just found a bug, introduced in the latest version of AttackMaster by the changes I made to introduce the --config  command.  If a character attacks with a weapon that the Class of character can use, but is not Proficient in, the system will always treat the weapon as if it was a weapon the Class cannot use!   That means, if you have a Strict  weapon-use configuration set the Character will get a -100 as the Proficiency penalty, or if you have Lax  weapon-use configuration set the Character will get a x2 Proficiency penalty. A temporary fix is to use the !attk --config  command to set the Weapon-use configuration for  Allowed Weapons to  Allow All  and manually stop Characters from using weapons that their Class is restricted from using for the next week. This will be corrected in the release which will be merged and updated next week (in your APIs from Wednesday).
There is a new "How To" video for the RPGMaster series: RPGMaster Intro video 18  32min The Weapons & Ammo databases and how to create your own Melee & Ranged Weapons and Ammo
Found bug: I have found a fairly major bug in the AttackMaster API if it is used without the MagicMaster API.  AttackMaster will not create the Weapons, Ammo or Armour databases correctly - MagicMaster does any required correct update to all databases before AttackMaster checks them, so if MagicMaster is loaded no error is seen. Workaround:   Do not use AttackMaster API without MagicMaster API until this error is fixed.  MagicMaster need not be used for anything if it is not required for your campaign, it just needs to be present. If you already have AttackMaster loaded without MagicMaster, and you are experiencing errors: Delete the MI-DB-Weapons database character sheet from your campaign. Use One-Click API install to find MagicMaster API and load it to your campaign. The databases should all automatically rebuild themselves using MagicMaster (rather than AttackMaster) and be corrected. If you are still experiencing errors, try deleting MI-DB database character sheet and restarting the API sandbox.  The databases should then rebuild themselves using the already loaded MagicMaster API. Fix ETA:  Error has been found and fixed in the code, and will go into the merge and release for Wednesday 2nd March.
Richard @ Damery said: BUG Found!  In attacking with a non-proficient weapon. I have just found a bug, introduced in the latest version of AttackMaster by the changes I made to introduce the --config  command.  If a character attacks with a weapon that the Class of character can use, but is not Proficient in, the system will always treat the weapon as if it was a weapon the Class cannot use!   That means, if you have a Strict  weapon-use configuration set the Character will get a -100 as the Proficiency penalty, or if you have Lax  weapon-use configuration set the Character will get a x2 Proficiency penalty. This bug is now fixed in the released version, and will have been auto-updated for those who installed via One-Click.
Bug found:  Prioritising user-defined database entries that replace  and overwrite the provided database entries is not reliably working (depends randomly on load order).  If you create your own database to supplement an API defined database (e.g. you create MI-DB-My-Database to supplement MI-DB ) and you add a definition of an entry with the same name as one in the API provided database, so as to replace/overwrite the provided one (e.g. you add an entry called Amulet-vs-Undead  in your database to replace the definition of  Amulet-vs-Undead  provided in the API-supplied database) the APIs would choose which to use randomly  rather than prioritising and always using the one in your custom database.  This applies to all API-provided databases, not just MI-DB, which is just used as an example here. Workaround:  There is currently no reliable workaround for this bug, except to call your new item something different to the API supplied item. Fix ETA:  The bug has been found and fixed in the code, and will be released in the next merge and release for Wednesday 2nd March. 
Requests for input on next major release I am in the process of finalising the next major release of the RPGMaster suite of APIs, which will add the Class Database and externalise a number of rules associated with character classes so that DMs and game creators can add new classes and modify existing ones.  I'd like input on any other Class-related rules that you think should be added to the Class specifications (or should any of those I am including be left out). The rules I am currently exposing to be open to change by setting values in the Class Database are: Allowed weapons and weapon groups:  the APIs hold data on which weapons and weapon tight groups each class of character can use (as per the AD&D 2e manuals) - all others being unavailable to them (subject to a configuration setting which can override this rule).  The Class definition in the class database can change this for existing classes, or specify restrictions for new user-defined classes.  If not specified, the default reverts to the restrictions of the Base Class of the class definition ( Warrior, Wizard, Priest, Rogue, or Psionicist ). Allowed armour & shields:  similar to weapons, the APIs hold allowed armour and armour types for classes (as defined in the AD&D 2e manuals).  Other armour will not be recognised by Armour Class calculations made by the APIs (can be overwritten on the Token or overridden by a configuration setting).  Again, as for weapons, the Class definition in the class database can change this for existing classes, or specify restrictions for new user-defined classes.  If not specified, the default reverts to the restrictions of the Base Class of the class definition ( Warrior, Wizard, Priest, Rogue,  or  Psionicist ). Non-proficient weapon penalty:  the penalty applied to the attack roll if the character is not proficient in a weapon can be specified for each class, and can be different from the Base Class.  E.g. a Barbarian might get a -1 penalty (as per Unearthed Arcana ) as opposed to the standard Warrior of -2.  If not specified, the default reverts to the restrictions of the Base Class of the class definition ( Warrior, Wizard, Priest, Rogue,  or  Psionicist ).  A configuration flag also allows the Non-Proficient Weapon penalty specified on the Character Sheet to override the rules-based penalty. Additional Attacks per Round progression:  under AD&D 2e rules, Warrior classes get additional attacks per round as they gain experience levels.  These can be adjusted/overwritten for individual Classes in the class definition in the class database.  Indeed, non-Warrior classes can be given additional attacks per round as their levels progress, if so desired.  If not specified, the default reverts to the standard rules. Wizard specialist and banned spell schools:  the spell schools for specialist Wizards can be specified, as can the banned spell schools.  If specified, banned schools will not be available to be memorised by the specialist Wizard.  A configuration flag can override this and allow all Wizards to use all spells.  If not specified for a class, the default reverts to non-specialist behaviour. Priest major and minor spell spheres:  the major and minor spell spheres for classes of Priest can be specified, and those not listed will not be able to be memorised.  Those listed as minor spheres will only be able to be memorised if of spell level 1 to 3.  A configuration flag can override this and allow all spells to be used at all spell levels by all Priest classes.  If major & minor spheres are not specified for a class, the default is no restrictions for that class. Non-standard spells per level:  the progression of spells per experience level can be set for Wizard and Priest classes, overriding the standard AD&D 2e rules.  Indeed, Wizard-classes can be granted the ability to cast Priest spells as well as Wizard spells, and visa-versa, with non-standard spell progressions in each.  The default is for classes to have the standard spell progression for their base class. Non-Wizard and non-Priest spellcasters:   any  class type can be given spell-casting ability (similar to Paladins, Rangers & Bards), with the type of spells (Wizard or Priest, or both(!) ) and the spell progression by experience level being specified in the Class definition.  The default is that only classes of base class Wizard or Priest will be given spell casting capability. Class Powers can be specified:  if the Powers are defined in the Powers Database, the powers granted to the class can be specified with the level at which those powers are gained and the usage per day and per level per day.  These can be added to and overridden by the DM in-game as required using the Token Setup function (powers still need to be memorised by the Player/Character).  The default is no powers are granted. These additional parameters can be set in each Class definition in the Class Database for future use, but are not currently queried or used: Allowed races:  the Character races that can adopt the class can be listed, but are not currently intended to be restricted or used in any way. Hit Dice:  the hit dice roll per level applicable to the class can be defined, but is not currently used. Allowed alignments:  the allowed character alignments for the class can be listed, but are not currently restricted or used. Character handedness:  the number of hands that the Character has (an odd one this...!) can be specified - e.g. a class that is only open to an Octopus!  Not currently used. Are there any other rule aspects that are dependent on character class  that would be useful to expose for change?  Currently envisaged future developments might be: The Attack calculations for To-Hit and Damage A database of Races with Race characteristics, weapon bonuses, infravision, immunities and save bonuses etc.
1645821104

Edited 1645821226
Richard @ Damery
Pro
API Scripter
Found bug (25th Feb 2022) in RoundMaster API:  If the optional message parameter is used for  --addstatus, --addtargetstatus,  or  --target  and includes 2 dice rolls separated only by one character that is not a digit (e.g. 2d4/1d4) caused a Chat Window sendchat() API crash (such crashes cannot be trapped by the APIs in the same way as JavaScript or functional errors). Workaround:  Ensure that all message parameters do not include two dice rolls separated by one other character.  Unfortunately, the databases supplied with RPGMaster APIs (if used in conjunction with RoundMaster) have many messages and not all of them have been checked.  So if the APIs stop working, the DM/Game Creator must go to the API Sandbox and restart it. Fix ETA:  The bug has been fixed in the code, and will be in the next merge to be released by Wednesday 2nd March.