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

Is there a scripts for 1) Wild Shape & 2) Summoning? for 5e OGL sheets

I am looking for a script(s) to allow my druid to freely summon stuff & for him to wild shape with token and attributes ready to go.
1520308995

Edited 1520309175
The Aaron
Pro
API Scripter
Kings summon script for summoning. TokenMod for wild shape, depending on how you’ve got it set up.  (I’m falling asleep writing this, hopefully someone can post some examples, otherwise I will tomorrow.)
how would I go about Token Mod to handle wild shape & image change?
1520310840
Kirsty
Pro
Sheet Author
Here's the maco I use for my shapeshifters. &{template:npcaction} {{name=@{selected|token_name} }} {{rname=Shapeshifter}} {{description=[Elf](!token-mod --set currentside|1 width|70 height|70 light_radius|60 light_dimradius|0 light_angle|360 --off light_otherplayers @{selected|token_id}) [Brown Bear](!token-mod --set currentside|2 width|140 height|140 light_radius| light_dimradius| light_angle|360 --off light_otherplayers @{selected|token_id}) }} Sorry for the poor formatting, I'm on my phone.
1520317614

Edited 1520317676
on King Script - I tested the Torch thing and realized I needed to create a character sheet, name it torch and add a picture for it to work. I did that and it worked.  Now - it isnt working when - let's say I grab a random monster from my compendium Monster Manual or Volo Guide. Let's say a Cow. Since it is already a character sheet - I move it to the proper tab "Characters" and attempt the !summon - it's not working. If I change the default cow pic to the same torch pic I used for "torch" - it works.  how can I keep the same cow pic from my purchased books? 
Without having a look at it I would guess that its another case of the API only having access to images already in your library (and not in the marketplace). I could be wrong, but if you reupload the picture in question to your library and use that image it should work. I know this is probably not a solution, you can work with but its the current state of affairs.
Florian B. said: Without having a look at it I would guess that its another case of the API only having access to images already in your library (and not in the marketplace). I could be wrong, but if you reupload the picture in question to your library and use that image it should work. I know this is probably not a solution, you can work with but its the current state of affairs. DANG - 1 that is super annoying having to look for all the beast, elemental, feys, to reupload and when I am already low on space :( I dont mind putting the work but I also wish the transmogrifer allowed transferring folders
1520353274
The Aaron
Pro
API Scripter
Agree on all counts. =/
1521353122

Edited 1521353147
Personally I found the api TokenSwapper works really well for Wild Shape. You do have to make a character sheet that the druid can control for each creature that the druid can turn into. I just add new character sheets as the druid levels and have the player adjust the creatures stats per the wild shape rules.
I use !token-mod and load the images into my library then I set up the token to swap and I create a macro on the character sheet (Shaped) that calls the Statblock of the beast. Works like a charm, just don't forget to give control to the character, also you can Archive it which is useful.
1521487200

Edited 1521487293
as it happens i am in need of a druid forms they went circle of the moon (token mod :D newbie to it.) im all aware of the API limitation just wish it was easier to manage things that should be part of the class like this.   my plan was to make a roll table token icon and let them select there form and just have separate sheets. from the MM or volos that they can customize. like running several characters at once. so if token mod can make this easier for them please instruct 
1521488546
The Aaron
Pro
API Scripter
For druids in my game, I've ended up pulling in the forms they can convert to and making copies that I explicitly give them access to.  Since Druids retain their Intelligence, Wisdom, Charisma, Saving and Skill Proficiencies, alignment, etc, that means they can craft the critter to be exactly correct.  You can also make a specialized token for it (maybe your druid's wolf is grey with a white streak), and set the HP to a fixed number (rather than random rolling it each time, if you care about that).  They can then drag the token out when they need to get a new form and you can either push their regular token to the GM layer, or remove it.  I put them all in a forms folder and let them manage moving between them.
The Aaron said: For druids in my game, I've ended up pulling in the forms they can convert to and making copies that I explicitly give them access to.  Since Druids retain their Intelligence, Wisdom, Charisma, Saving and Skill Proficiencies, alignment, etc, that means they can craft the critter to be exactly correct.  You can also make a specialized token for it (maybe your druid's wolf is grey with a white streak), and set the HP to a fixed number (rather than random rolling it each time, if you care about that).  They can then drag the token out when they need to get a new form and you can either push their regular token to the GM layer, or remove it.  I put them all in a forms folder and let them manage moving between them. that is my current plan they can edit and fix the template forms from the MM change the name and what not just wanted a bit easy for them to swap once all the sheets are done and imported a kind of 1. player clicks a button called wild shape 2. selects form from list in chat or drop down 3. token mod removes main token to gmlayer 4. drops the form token on the board in it's place and the form token is stated and linked to that sheet. 5. then they can simple @selected token action on the form to swap to normal or a new form. 5a If normal Token mod Removes form token via delete and swap from gmlayer normal token. 5b if another form token mod removes token via delete and swaps in new form. but for now im just going to import on the fly and let them tweak once all that work is done then maybe ill lookinto programing a token mod for each form both abilites and swap 
1521552051
The Aaron
Pro
API Scripter
Currently, #3 is the only one TokenMod could automated: !token-mod --set layer|gm
One problem I've found about having the sheets available is this adds to the amount of sheets available in the game. Which means they load everytime, where as if they were archived and you were able to call from your main sheet this would help.
1521566719
The Aaron
Pro
API Scripter
That doesn't actually save you anything, even archived characters are loaded.  Try archiving a character named Bob (or whatever) with some attribute and referencing it from the chat: @{Bob|attribute}
ahhh, I see. That makes a lot of sense. Well then time to fix it where they player can just use the sheet and token, will be much easier.
For my games, I made a druid shifting script here:&nbsp; <a href="https://app.roll20.net/forum/post/5345882/druid-sh" rel="nofollow">https://app.roll20.net/forum/post/5345882/druid-sh</a>... The images aren't so hard to get, if you have them from the monster manual already. I just drag the creature from the manual, which generates the character. Then I go to edit, right click the avatar to copy, save as png in paint.net, and upload back as the avatar. Give the druid control of the character, and it's done. Also, I made a little macro for the druid to shift forms with (some non-creature forms on there are from a special druid forms book they found): For summoning, again, I drag out the creature from the manual. I made a crummy script to assign control, but I need to update it to also put it in journals (or just begin using TokenMod, which probably does all of this already). Anyways, shift double click to open the character of the creature, and assign to the player who summoned.
Bast L. said: For my games, I made a druid shifting script here:&nbsp; <a href="https://app.roll20.net/forum/post/5345882/druid-sh" rel="nofollow">https://app.roll20.net/forum/post/5345882/druid-sh</a>... The images aren't so hard to get, if you have them from the monster manual already. I just drag the creature from the manual, which generates the character. Then I go to edit, right click the avatar to copy, save as png in paint.net, and upload back as the avatar. Give the druid control of the character, and it's done. Also, I made a little macro for the druid to shift forms with (some non-creature forms on there are from a special druid forms book they found): For summoning, again, I drag out the creature from the manual. I made a crummy script to assign control, but I need to update it to also put it in journals (or just begin using TokenMod, which probably does all of this already). Anyways, shift double click to open the character of the creature, and assign to the player who summoned. Can you post the macro you use for this?
Script works great but i'm running into this error on some of the creatures I attempt to switch to. Any suggestions?
I updated the gist with the macro, but you'll need to change the /w name, and the "einin form" name to the druid's name. However, I am also running into an error. I'd used this for months, and it worked fine. Then today, it gave me a different error than you had. However, roll20 was also being a bit slow/weird, and on reload, things worked fine again. Maybe it was roll20? I dunno. Anyways, the exact name matching is important, as well as making sure the creature's avatar (not token, though it couldn't hurt) is the uploaded version. Actually, and this is very strange, I just tested it on creatures which I did not upload the avatars for, and it worked fine. This is not how the API has previously worked. I know they're adding functionality to roll20 api stuff soon, but I thought it was all on dev, and did not read anything about api access to marketplace/compendium images. This is pretty damned neat if we can now do this.
Yea worked great for me too without uploading! Any way to add the ability to have AC change along with HP when you change forms?
1522180981

Edited 1522181314
on("ready", function() { var getCleanImgsrc = function (imgsrc) { var parts = imgsrc.match(/(.*\/images\/.*)(thumb|med|original|max)([^\?]*)(\?[^?]+)?$/); if(parts) { return parts[1]+'thumb'+parts[3]+(parts[4]?parts[4]:`?${Math.round(Math.random()*9999999)}`); } return; }; on("chat:message", function (msg) { // Make sure to copy your druid character's name exactly in CharacterGet parameter. if (msg.type === "api" && msg.content === "!DSBaseChar") { CharacterGet('Morthos', msg, 'Normal', 0); } if (msg.type === "api" && msg.content === "!DSApe") { CharacterGet('Druid Ape', msg, 'Normal', 0); } if (msg.type === "api" && msg.content === "!DSAxeBeak") { CharacterGet('Druid Axe Beak', msg, 'Large', 60); } if (msg.type === "api" && msg.content === "!DSBrownBear") { CharacterGet('Druid Brown Bear', msg, 'Large', 60); } if (msg.type === "api" && msg.content === "!DSCrocodile") { CharacterGet('Druid Crocodile', msg, 'Large', 60); } if (msg.type === "api" && msg.content === "!DSDireWolf") { CharacterGet('Druid Dire Wolf', msg, 'Large', 60); } if (msg.type === "api" && msg.content === "!DSGiantBadger") { CharacterGet('Druid Giant Badger', msg, 'Normal', 0); } if (msg.type === "api" && msg.content === "!DSGiantCentipede") { CharacterGet('Druid Giant Centipede', msg, 'Normal', 0); } if (msg.type === "api" && msg.content === "!DSGiantEagle") { CharacterGet('Druid Giant Eagle', msg, 'Large', 60); } if (msg.type === "api" && msg.content === "!DSGiantGoat") { CharacterGet('Druid Giant Goat', msg, 'Large', 60); } if (msg.type === "api" && msg.content === "!DSGiantHyena") { CharacterGet('Druid Giant Hyena', msg, 'Large', 60); } if (msg.type === "api" && msg.content === "!DSGiantOctopus") { CharacterGet('Druid Giant Octopus', msg, 'Large', 60); } if (msg.type === "api" && msg.content === "!DSGiantSeaHorse") { CharacterGet('Druid Giant Sea Horse', msg, 'Large', 60); } if (msg.type === "api" && msg.content === "!DSGiantSpider") { CharacterGet('Druid Giant Spider', msg, 'Large', 60); } if (msg.type === "api" && msg.content === "!DSGiantWolfSpider") { CharacterGet('Druid Giant Wolf Spider', msg, 'Large', 60); } if (msg.type === "api" && msg.content === "!DSGiantPoisonousSnake") { CharacterGet('Druid Giant Poisonous Snake', msg, 'Normal', 0); } if (msg.type === "api" && msg.content === "!DSGiantToad") { CharacterGet('Druid Giant Toad', msg, 'Large', 30); } if (msg.type === "api" && msg.content === "!DSPanther") { CharacterGet('Druid Panther', msg, 'Normal', 60); } if (msg.type === "api" && msg.content === "!DSReefShark") { CharacterGet('Druid Reef Shark', msg, 'Large', 30); } if (msg.type === "api" && msg.content === "!DSWarhorse") { CharacterGet('Druid Warhorse', msg, 'Large', 30); } if (msg.type === "api" && msg.content === "!DSGiantVulture") { CharacterGet('Druid Giant Vulture', msg, 'Large', 30); } if (msg.type === "api" && msg.content === "!DSTiger") { CharacterGet('Druid Tiger', msg, 'Large', 60); } if (msg.type === "api" && msg.content === "!DSLion") { CharacterGet('Druid Lion', msg, 'Large', 60); } }); function Size(charSize, msg) { if (charSize === "Normal"){ _.each(msg.selected,function (o) { getObj(o._type,o._id).set("height", 70); getObj(o._type,o._id).set("width", 70); });} if (charSize === "Large"){ _.each(msg.selected,function (o) { getObj(o._type,o._id).set("height", 140); getObj(o._type,o._id).set("width", 140); });} if (charSize === "Huge"){ _.each(msg.selected,function (o) { getObj(o._type,o._id).set("height", 210); getObj(o._type,o._id).set("width", 210); });} if (charSize === "Gargantuan"){ _.each(msg.selected,function (o) { getObj(o._type,o._id).set("height", 280); getObj(o._type,o._id).set("width", 280); });} } function CharacterGet(characterName, msg, charSize, darkvision) { var ShiftCharacter = findObjs({ type: 'character', name: characterName })[0]; //sendChat("", "ShiftChar is: " + ShiftCharacter.get('name')); if(getAttrByName(ShiftCharacter.get('id'), 'npc', 'current') == 1) { //sendChat("", "NPC thing happened"); _.each(msg.selected,function (o) { getObj(o._type,o._id).set({ imgsrc: getCleanImgsrc(ShiftCharacter.get('avatar')), bar1_link: 'None', represents: ShiftCharacter.id, bar1_value: getAttrByName(ShiftCharacter.get('id'), 'hp', 'max'), bar1_max: getAttrByName(ShiftCharacter.get('id'), 'hp', 'max'), bar3_value: getAttrByName(ShiftCharacter.get('id'), 'npc_ac', 'current'), bar3_current: getAttrByName(ShiftCharacter.get('id'), 'npc_ac', 'current'), light_radius: darkvision, light_dimradius: 0, light_otherplayers: false }); }); } else { //sendChat("", "PC thing happened"); _.each(msg.selected,function (o) { getObj(o._type,o._id).set({ imgsrc: getCleanImgsrc(ShiftCharacter.get('avatar')), represents: ShiftCharacter.id, bar1_value: getAttrByName(ShiftCharacter.get('id'), "hp", 'current'), bar1_max: getAttrByName(ShiftCharacter.get('id'), "hp", 'max'), bar1_link: findObjs({type: "attribute", characterid: ShiftCharacter.get('id'), name: 'hp'})[0].id, bar3_value: getAttrByName(ShiftCharacter.get('id'), "ac", 'current'), bar3_current: getAttrByName(ShiftCharacter.get('id'), "ac", 'max'), bar3_max: getAttrByName(ShiftCharacter.get('id'), "ac", 'max'), bar3_link: findObjs({type: "attribute", characterid: ShiftCharacter.get('id'), name: 'ac'})[0].id, light_radius: darkvision, light_dimradius: 0, light_otherplayers: false }); }); } Size(charSize, msg); } }); This is what I am using right now it switches AC properly throughout the animal forms but it doesn't remember the druids AC when switching back. Any suggestions?
Um, yeah, I put it in the blue bar, since that's the one the default MM tokens have, could easily be switched. I think this works: <a href="https://gist.github.com/Bastlifa/ad4bde084d583fd00" rel="nofollow">https://gist.github.com/Bastlifa/ad4bde084d583fd00</a>...