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

Processing Parameters

I have a Mod for creating Mothership 1E characters. It is working except for the GenClass function. The intent is that a macro calls GenClass and prompts for the class as follows: !GenClass {Class?|Teamster|Marine|Scientist|Android} However, it does not appear that this is even reaching the API. What am I missing? /** * Generates Mothership 1E Characters * */ var RPG = RPG || { version: "0.0.1", output: [], const handleInput = (msg) =&gt; { if (msg.type !== "api") { return; } let args = msg.content.split(/\s+/); switch (args[0]) { case '!NAME': break; } }; listen: function () { "use strict"; on("chat:message", function (msg) { if ("api" == msg.type) { switch (msg.content) { case "!Generate": RPG.Generate(msg); break; case "!GenAbilities": RPG.GenAbilities(msg); break; case "!GenClass": RPG.GenClass(msg); break; case "!GenSkill": RPG.GenSkill(msg); break; case "!CharView": RPG.printSheet(msg); break; case "!SaveChar": RPG.save(msg); } } }); }, showHelp: function () { sendChat("API", "/w gm &lt;table style='background: #DCD9D5; border-radius: 20px; font-size: 10px;'&gt;" + "&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Help&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;" + "&lt;tbody&gt;" + "&lt;tr&gt;&lt;td&gt;&lt;strong&gt;!RPG&lt;/strong&gt;&lt;br&gt;&lt;strong&gt;!fodder help&lt;/strong&gt;&lt;br&gt;Show this help screen.&lt;/td&gt;&lt;/tr&gt;" + "&lt;tr&gt;&lt;td&gt;&lt;strong&gt;!RPG core&lt;/strong&gt;&lt;br&gt;Runs the script.&lt;/td&gt;&lt;/tr&gt;" + "&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;/tr&gt;" + "&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;"); }, Generate: function (msg, outputCallback, saveCallback) { sendChat("API", "Starting character creation"); RPG.id = msg.playerid; RPG.player = msg.who; RPG.name = msg.who + " #" + (findObjs({ _type: "character", controlledby: msg.playerid }).length + 1) }, GenAbilities: function (msg) { RPG.Strength = randomInteger(10) + randomInteger(10) + 27; RPG.Speed = randomInteger(10) + randomInteger(10) + 27; RPG.Intellect = randomInteger(10) + randomInteger(10) + 27; RPG.Combat = randomInteger(10) + randomInteger(10) + 27; RPG.Hits_max = 2; RPG.Health = randomInteger(10) + 11; RPG.Sanity = randomInteger(10) + randomInteger(10) + 12; RPG.Fear = randomInteger(10) + randomInteger(10) + 12; RPG.Body = randomInteger(10) + randomInteger(10) + 12; RPG.Armor = randomInteger(10) + randomInteger(10) + 12; RPG.Stress = 2; RPG.output['Strength'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Strength&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Strength + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Speed'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Speed&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Speed + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Intellect'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Intellect&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Intellect + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Combat'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Combat&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Combat + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Hits_max'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Hits_max&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Hits_max + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Health'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Health&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Health + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Sanity'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Sanity Save&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Sanity + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Fear'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Fear Save&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Fear + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Body'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Body Save&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Body + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Armor'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Armor Save&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Armor + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Stress'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Stress&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Stress + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Stats'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Stats&lt;/td&gt;&lt;td style='padding: 5px;'&gt;&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Skills'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Skills&lt;/td&gt;&lt;td style='padding: 5px;'&gt;&lt;/td&gt;&lt;/tr&gt;"; RPG.output['stress_panic'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Trauma Response&lt;/td&gt;&lt;td style='padding: 5px;'&gt;&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Equipment'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Equipment&lt;/td&gt;&lt;td style='padding: 5px;'&gt;Drag the following equipment from the Compendium onto your character sheet:&lt;/td&gt;&lt;/tr&gt;"; RPGText1 = "&lt;table font-size: 10px;'&gt; &lt;tbody&gt;" + RPG.output['Strength'] + RPG.output['Speed'] + RPG.output['Intellect'] + RPG.output['Combat'] + RPG.output['Hits_max'] + RPG.output['Health'] + RPG.output['Sanity'] + RPG.output['Fear'] + RPG.output['Body'] + RPG.output['Armor'] + RPG.output['Stress'] + RPG.output['Stats'] + RPG.output['Skills'] + RPG.output['stress_panic'] + RPG.output['Equipment'] + "&lt;/tbody&gt;&lt;/table&gt;"; sendChat(msg.who, "/direct " + RPGText1); }, GenClass: function (msg) { sendChat(msg.who, "/direct Got to here."); let args = msg.content.split(/\s+/); if ('!GenClass' === args.shift()) { sendChat('my API', 'received parameters: ' + args.join(', ')); } switch (args[0]) { case "Teamster": RPG.Strength = RPG.Strength + 5; RPG.Speed = RPG.Speed + 5; RPG.Intellect = RPG.Intellect + 5; RPG.Combat = RPG.Combat + 5; RPG.Sanity = RPG.Sanity + 10; RPG.Fear = RPG.Fear + 10; RPG.Body = RPG.Body + 10; RPG.Armor = RPG.Armor + 10; RPG.Stats = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Stat Penalty&lt;/td&gt;&lt;td style='padding: 5px;'&gt;Subtract 10 from Strength, Speed, or Combat" + "&lt;/td&gt;&lt;/tr&gt;"; RPG.Skills = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Additional Skills&lt;/td&gt;&lt;td style='padding: 5px;'&gt;You get Heavy_Machinery, Zero-G, one more Trained Skill and one Expert Skill. You must have one of the Expert Skill's prerequisite Skills" + "&lt;/td&gt;&lt;/tr&gt;"; RPG.stress_panic = "Once per session, a Teamster may re-roll a roll on the Panic Effect Table."; sendChat("API", "/roll 1t[TLoadout]", function (result) { var content = JSON.parse(result[0].content); RPG.Loadout = content.rolls[0].results[0].tableItem.name; }); RPG.output['Strength'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Strength&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Strength + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Speed'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Speed&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Speed + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Intellect'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Intellect&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Intellect + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Combat'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Combat&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Combat + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Hits_max'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Hits_max&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Hits_max + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Health'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Health&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Health + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Sanity'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Sanity Save&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Sanity + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Fear'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Fear Save&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Fear + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Body'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Body Save&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Body + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Armor'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Armor Save&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Armor + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Stress'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Stress&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Stress + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Stats'] = RPG.Stats + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Skills'] = RPG.Skills + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['stress_panic'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Trauma Response&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.stress_panic + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Equipment'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Equipment&lt;/td&gt;&lt;td style='padding: 5px;'&gt;Drag the following equipment from the Compendium onto your character sheet: " + RPG.Loadout + "&lt;/td&gt;&lt;/tr&gt;"; break; case "Android": RPG.Intellect = RPG.Intellect + 20; RPG.Fear = RPG.Fear + 60; RPG.Hits_max = RPG.Hits_max + 1; RPG.Stats = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Additional Skills&lt;/td&gt;&lt;td style='padding: 5px;'&gt;Subtract 10 from Strength, Body, or Combat" + "&lt;/td&gt;&lt;/tr&gt;"; RPG.Linguistics = 10; RPG.Computers = 10; RPG.Mathematics = 10; RPG.Skills = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Additional Skills&lt;/td&gt;&lt;td style='padding: 5px;'&gt;You get Linguistics, Computers, Mathematics, one more Trained Skill, and one Expert Skill. You must have one of the Expert Skill's prerequisite Skills" + "&lt;/td&gt;&lt;/tr&gt;"; RPG.stress_panic = "Fear Saves made in the presence of Androids have Disadvantage."; sendChat("API", "/roll 1t[ALoadout]", function (result) { var content = JSON.parse(result[0].content); RPG.Loadout = content.rolls[0].results[0].tableItem.name; }); RPG.output['Strength'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Strength&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Strength + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Speed'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Speed&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Speed + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Intellect'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Intellect&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Intellect + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Combat'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Combat&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Combat + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Hits_max'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Hits_max&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Hits_max + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Health'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Health&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Health + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Sanity'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Sanity Save&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Sanity + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Fear'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Fear Save&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Fear + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Body'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Body Save&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Body + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Armor'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Armor Save&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Armor + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Stress'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Stress&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Stress + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Stats'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Stats Adjustment&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Stats + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Skills'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Additional Skills&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Skills + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['stress_panic'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Trauma Response&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.stress_panic + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Equipment'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Equipment&lt;/td&gt;&lt;td style='padding: 5px;'&gt;Drag the following equipment from the Compendium onto your character sheet: " + RPG.Loadout + "&lt;/td&gt;&lt;/tr&gt;"; break; case "Scientist": RPG.Intellect = RPG.Intellect + 10; RPG.Sanity = RPG.Sanity + 30; RPG.Skills = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Additional Skills&lt;/td&gt;&lt;td style='padding: 5px;'&gt;You get one Master Skill, and an Expert and Trained Skill prerequisite, as well as another Trained Skill." + "&lt;/td&gt;&lt;/tr&gt;"; RPG.Stats = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Stat Bonus&lt;/td&gt;&lt;td style='padding: 5px;'&gt;Add 5 to Oone Stat." + "&lt;/td&gt;&lt;/tr&gt;"; RPG.stress_panic = "Whenever a Scientist fails a Sanity Save, every friendly player nearby gains 1 Stress."; sendChat("API", "/roll 1t[SLoadout]", function (result) { var content = JSON.parse(result[0].content); RPG.Loadout = content.rolls[0].results[0].tableItem.name; }); RPG.output['Strength'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Strength&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Strength + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Speed'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Speed&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Speed + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Intellect'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Intellect&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Intellect + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Combat'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Combat&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Combat + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Hits_max'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Hits_max&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Hits_max + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Health'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Health&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Health + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Sanity'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Sanity Save&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Sanity + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Fear'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Fear Save&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Fear + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Body'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Body Save&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Body + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Armor'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Armor Save&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Armor + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Stress'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Stress&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Stress + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Stats'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Stats Adjustment&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Stats + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Skills'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Additional Skills&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Skills + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['stress_panic'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Trauma Response&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.stress_panic + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Equipment'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Equipment&lt;/td&gt;&lt;td style='padding: 5px;'&gt;Drag the following equipment from the Compendium onto your character sheet: " + RPG.Loadout + "&lt;/td&gt;&lt;/tr&gt;"; break; case "Marine": RPG.Combat = RPG.Combat + 10; RPG.Body = RPG.Body + 10; RPG.Fear = RPG.Fear + 20; RPG.Hits_max = RPG.Hits_max + 1; RPG.Military_Training = 10; RPG.Athletics = 10; RPG.Stats = "None" + RPG.Skills + "&lt;/td&gt;&lt;/tr&gt;"; RPG.Skills = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Skills&lt;/td&gt;&lt;td style='padding: 5px;'&gt;You get Military Training, Athletics, and either one Expert Skill or two Trained Skills. You have one of the Expert Skill's prerequisite Skills" + "&lt;/td&gt;&lt;/tr&gt;"; RPG.stress_panic = "Whenever a Marine Panics, every friendly player nearby must make a Fear Save."; sendChat("API", "/roll 1t[MLoadout]", function (result) { var content = JSON.parse(result[0].content); RPG.Loadout = content.rolls[0].results[0].tableItem.name; }); RPG.output['Strength'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Strength&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Strength + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Speed'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Speed&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Speed + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Intellect'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Intellect&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Intellect + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Combat'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Combat&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Combat + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Hits_max'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Hits_max&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Hits_max + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Health'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Health&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Health + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Sanity'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Sanity Save&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Sanity + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Fear'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Fear Save&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Fear + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Body'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Body Save&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Body + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Armor'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Armor Save&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Armor + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Stress'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Stress&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.Stress + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Stats'] = RPG.Stats + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Skills'] = RPG.Skills + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['stress_panic'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Trauma Response&lt;/td&gt;&lt;td style='padding: 5px;'&gt;" + RPG.stress_panic + "&lt;/td&gt;&lt;/tr&gt;"; RPG.output['Equipment'] = "&lt;tr&gt;&lt;td style='font-weight: bold; padding: 5px;'&gt;Equipment&lt;/td&gt;&lt;td style='padding: 5px;'&gt;Drag the following equipment from the Compendium onto your character sheet: " + RPG.Loadout + "&lt;/td&gt;&lt;/tr&gt;"; sendChat(msg.who, "/direct " + RPGText1); break; default: sendChat(msg.who, "/direct no class selected."); return; } }, printSheet: function (msg) { let styleLabel = "style='font-weight: bold; padding: 5px;'"; let styleVal = "style='padding: 5px;'"; RPGText1 = "&lt;table font-size: 10px;'&gt; &lt;tbody&gt;" + RPG.output['Strength'] + RPG.output['Speed'] + RPG.output['Intellect'] + RPG.output['Combat'] + RPG.output['Hits_max'] + RPG.output['Health'] + RPG.output['Sanity'] + RPG.output['Fear'] + RPG.output['Body'] + RPG.output['Armor'] + RPG.output['Stress'] + RPG.output['Stats'] + RPG.output['Skills'] + RPG.output['stress_panic'] + RPG.output['Equipment'] + "&lt;/tbody&gt;&lt;/table&gt;"; RPGTextAll = "&lt;p&gt;&lt;p&gt;CURRENT CHARACTER PARAMETERS&lt;p&gt;&lt;p&gt;" + RPGText1; sendChat(msg.who, "/direct " + RPGTextAll); }, save: function (msg) { let character = createObj("character", { name: RPG.name, archived: false, inplayerjournals: "all", controlledby: "all" }); character.set('bio', RPGTextAll); createObj('attribute', { name: 'strength', current: RPG.Strength, _characterid: character.id }); createObj('attribute', { name: 'speed', current: RPG.Speed, _characterid: character.id }); createObj('attribute', { name: 'intellect', current: RPG.Intellect, _characterid: character.id }); createObj('attribute', { name: 'combat', current: RPG.Combat, _characterid: character.id }); createObj('attribute', { name: 'health_max', current: RPG.Hits, _characterid: character.id }); createObj('attribute', { name: 'health', current: RPG.Health, _characterid: character.id }); createObj('attribute', { name: 'stress', current: RPG.Stress, _characterid: character.id }); createObj('attribute', { name: 'sanity', current: RPG.Sanity, _characterid: character.id }); createObj('attribute', { name: 'fear', current: RPG.Fear, _characterid: character.id }); createObj('attribute', { name: 'body', current: RPG.Body, _characterid: character.id }); createObj('attribute', { name: 'armor', current: RPG.Armor, _characterid: character.id }); sendChat('', 'Created &lt;a href="<a href="http://journal.roll20.net/character/" rel="nofollow">http://journal.roll20.net/character/</a>' + character.id + '" style="color:blue;text-decoration:underline;"&gt;RPG ' + RPG.name + '&lt;/a&gt;'); } }; on("ready", function () { RPG.listen(); });
1696652383
GiGs
Pro
Sheet Author
API Scripter
I havent looked at your script, but your query isn't formed properly. You have !GenClass {Class?|Teamster|Marine|Scientist|Android} But it should be !GenClass ?{Class?|Teamster|Marine|Scientist|Android}