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
This post has been closed. You can still view previous posts, but you can't post any new replies.

[Script] CreatureGen, Pathfinder Monster Statblock -> Combat ready Token/Journal

Ken L. said: It sounds like you're getting the unexpected token error which is detailed here: <a href="https://app.roll20.net/forum/post/1647248/unexpect" rel="nofollow">https://app.roll20.net/forum/post/1647248/unexpect</a>... ...this is more of a roll20 API sandbox problem as opposed to the script itself. Re-saving the scripts and restarting the sandbox usually resolves this. It's a Roll20 bug that still persists. It's unrelated to the script as it has happened to a number of others. It's more of a recent problem starting around the beginning of this year.
Ok thanks. That's pretty frustrating, but as I understand it the "API" is pretty new here so hopefully they get that worked out soon. Thank you very much for the quick responses Ken.
Salut je comprend rien car je ne comprend que le français et les logiciels et services de traductions sont inssufisants pour obtenir une traduction de qualité, l'un d'entre vous saurait-il m'expliquer en français ce sujet svp ?
NaEL said: Salut je comprend rien car je ne comprend que le français et les logiciels et services de traductions sont inssufisants pour obtenir une traduction de qualité, l'un d'entre vous saurait-il m'expliquer en français ce sujet svp ? You're right, a translator is a bit insufficient. I studied some french so I was able to understand about half of what you just wrote, and for the remainder I used google translate. I'm afraid I can't help in explaining in french how the script functions, but perhaps someone else on roll20 can.
1433731517

Edited 1433731764
update v1.25: Minor updates - Fixed an issue with attacks with names like 'orc double axe' where it would attempt to parse 'or' in orc. where 'or' only looked for a word boundary on the right. It was to accommodate minor PRD errors where it wouldn't properly place 'or' as it's own word due to poor formatting. - Added Fast healing to defenses - Added Aura to defenses - Removed the name 'API' from sendChat in cgen_confirm.js as in the new update on dev server, it displays sender name for the /desc command for messages sent from the script. cgen.js and cgen_confirm.js need to be updated, if you don't use the cgen_confirm.js script then you need not worry about updating that one. but the base cgen.js script will need to be updated. See the git hub for the freshest updates.
Any idea how this could be modified to accept Psionic-Like abilities and psionic powers for npcs/monsters from Dreamscarred Press' line?
What do their statblocks generally look like when copy/pasted into a text editor (like geany or notepad++) ?
1435244897

Edited 1435267127
Similar, but I was hoping for something to pick up psionic like abilities and manifester level and stuff like that. I'll post examples soon.
1435246658

Edited 1435261128
I'm not on my machine right now, but if it looks like this: <a href="http://www.d20pfsrd.com/psionics-unleashed/psionic" rel="nofollow">http://www.d20pfsrd.com/psionics-unleashed/psionic</a>... Then you can quickly mod it at the following locations: termEnum termEnum: Object.freeze({ GENERAL : 1, MONABILITY: 2, SPELL: 3, FEAT: 4, SQ: 5, SA: 6, SKILL: 7 }), add: DSP_PSI: 8 don't forget to add a comma after SKILL since you're increasing the length of the enum fields /** * Various fields that can be changed for customization * */ fields: { defaultName: "Creature", publicName: "@{name}", publicEm: "/emas ", publicAtkEm: "/as Attack ", publicDmgEm: "/as Damage ", publicAnn: "/desc ", privWhis: "/w GM ", menuWhis: "/w GM ", resultWhis: "/w GM ", urlTermGeneral: '&lt;a href="<a href="http://www.google.com/cse?cx=006680642033474972217%3A6zo0hx_wle8&q=&lt;&lt;FULL&gt;&gt;&quot;&gt;&lt;span" rel="nofollow">http://www.google.com/cse?cx=006680642033474972217%3A6zo0hx_wle8&q=&lt;&lt;FULL&gt;&gt;"&gt;&lt;span</a> style="color: #FF0000; font-weight: bold;"&gt;&lt;&lt;LABEL&gt;&gt;&lt;/span&gt;&lt;/a&gt;', //urlTermGeneral: '&lt;a href="<a href="http://www.d20pfsrd.com/system/app/pages/search?scope=search-site&q=&lt;&lt;FULL&gt;&gt;&quot;&gt;&lt;span" rel="nofollow">http://www.d20pfsrd.com/system/app/pages/search?scope=search-site&q=&lt;&lt;FULL&gt;&gt;"&gt;&lt;span</a> style="color: #FF0000; font-weight: bold;"&gt;&lt;&lt;LABEL&gt;&gt;&lt;/span&gt;&lt;/a&gt;', urlTermMonAbility: '&lt;a href="<a href="http://paizo.com/pathfinderRPG/prd/additionalMonsters/universalMonsterRules.html#&lt;&lt;FULL&gt;&gt;&quot;&gt;&lt;span" rel="nofollow">http://paizo.com/pathfinderRPG/prd/additionalMonsters/universalMonsterRules.html#&lt;&lt;FULL&gt;&gt;"&gt;&lt;span</a> style="color: #2F2F2F; font-weight: bold;"&gt;&lt;&lt;FULL&gt;&gt;&lt;/span&gt;&lt;/a&gt;', urlTermSpell: '&lt;a href="<a href="http://www.d20pfsrd.com/magic/all-spells/&lt;&lt;0&gt;&gt;/&lt;&lt;FULL&gt;&gt;&quot;&gt;&lt;span" rel="nofollow">http://www.d20pfsrd.com/magic/all-spells/&lt;&lt;0&gt;&gt;/&lt;&lt;FULL&gt;&gt;"&gt;&lt;span</a> style="color: #2E39FF; font-weight: bold;"&gt;&lt;&lt;LABEL&gt;&gt;&lt;/span&gt;&lt;/a&gt;', urlTermFeat: '&lt;a href="<a href="http://www.google.com/cse?cx=006680642033474972217%3A6zo0hx_wle8&q=&lt;&lt;FULL&gt;&gt;&quot;&gt;&lt;span" rel="nofollow">http://www.google.com/cse?cx=006680642033474972217%3A6zo0hx_wle8&q=&lt;&lt;FULL&gt;&gt;"&gt;&lt;span</a> style="color: #29220A; font-weight: bold;"&gt;&lt;&lt;FULL&gt;&gt;&lt;/span&gt;&lt;/a&gt;', urlTermSQ: "", // unused urlTermSA: "", // unused summoner: null, shortAtkRiders: false // unused }, add: urlTermDSP_Psionic: '&lt;a href="<a href="http://www.d20pfsrd.com/psionics-unleashed/psionics-unleashed/psionic-powers/&lt;&lt;0&gt;&gt;/&lt;&lt;FULL&gt;&gt;&quot;&gt;&lt;span" rel="nofollow">http://www.d20pfsrd.com/psionics-unleashed/psionics-unleashed/psionic-powers/&lt;&lt;0&gt;&gt;/&lt;&lt;FULL&gt;&gt;"&gt;&lt;span</a> style="color: #2E39FF; font-weight: bold;"&gt;&lt;&lt;LABEL&gt;&gt;&lt;/span&gt;&lt;/a&gt;', getTermLink /** * Return a link whose format depends on type */ getTermLink: function(str,type,label) { if (!str || !type) return null; if (!label) label = str; var retval = str; switch(type) { case this.termEnum.GENERAL: retval = this.getFormattedUrl(str,this.fields.urlTermGeneral,label); break; case this.termEnum.SPELL: retval = this.getFormattedUrl(str,this.fields.urlTermSpell,label); break; case this.termEnum.FEAT: retval = this.getFormattedUrl(str,this.fields.urlTermFeat,label); break; case this.termEnum.SQ: retval = this.getFormattedUrl(str,this.fields.urlTermSQ,label); break; case this.termEnum.SA: retval = this.getFormattedUrl(str,this.fields.urlTermSA,label); break; default: retval = str; } this.creLog("getTermLink: " + retval,3); return retval; }, add: case this.termEnum.DSP_PSI: retval = this.getFormattedUrl(str,this.fields.urlTermDSP_Psionic,label); break; add this before default ParseSpells /** parse out spells the marco will spit them out, possibly even link * them to a known PRD search engine. */ parseSpells: function() { var charId = this.character.get('_id'); var lineEndFnd = this.data.length; var casterType = null, attrName = null; var rc = null, line = ""; var termChars = [';',',']; lineEndFnd = this.getLineNumberByName("TACTICS",this.data); if (!lineEndFnd) lineEndFnd = this.getLineNumberByName("STATISTICS",this.data); this.formatSpells("Spell-Like Abilities",lineEndFnd,this.termEnum.GENERAL,"SLA"); this.formatSpells("Spells Known",lineEndFnd,this.termEnum.SPELL); this.formatSpells("Spells Prepared",lineEndFnd,this.termEnum.SPELL); this.formatSpells("Extracts Prepared",lineEndFnd,this.termEnum.SPELL); }, add: this.formatSpells("Psi-like",lineEndFnd,this.termEnum.DSP_PSI); That will get your auto-linking of the psi stuff from dreamscarred. for mind-level, you'll need to change some gritty parsing logic in formatSpells, basically your goal is to check if the ' casterType ' is 'Psi-Like' then rather than looking for CL you should look for ML instead. You'll also need to add some logic to the casterType check near the end of formatSpells where you'll have to subsitute the CL button for an ML button but that's more for aesthetics. Good luck. PS: (btw, I haven't tested any of this, so if you're relying on pure copy paste, please don't, it's a general guide.)
I have some coding experience so this is a good start thankyou! I'm going to play around with this and see if I can get something working, thank you so much!
1435331806

Edited 1435334008
Drag to roll!? What the heck? Deciding where and how "hard" I want to roll? That is strange but freaking amazing. But what is it for? - and where is it from?
Julix said: Drag to roll!? What the heck? ? If you're referring to the new Dev server update, that's part of the new rolling mechanic they added, you can disable that in the settings menu. I wasn't aware they they made that the default option.
1435333957

Edited 1435334062
Uhhh! that's so cool! Hehehe. Okay, well that explains a lot. :) -- thought it was somehow tied to this script, since it was the first time I noticed it. sorry about the confusion --- also hadn't actually used anything else yet today (just upped to mentor again to use dev and api) -- this even works for inline rolls. hmpf, interesting. Back to topic I guess: AWESOME WORK! :)
I'm kicking this around on my new campaign, because I like having things automated for me, and I'm wondering: Is it possible to make the script parse multi-attacks? Like, when importing a sheet that says "2 claws +X (XdX+X)" in the Melee line, could the script parse the number before the attack and use it as a way to generate the macro to actually roll the second attack, or maybe make a separate button that does 1 single attack and 1 that does the two at the same time? It's a minor thing, but it seems like it could make the readability more neat by having the multiple attacks rolled as one macro.
Askren said: Is it possible to make the script parse multi-attacks? It already does do that, hence why it's very precise in dividing iteratives and attack groups. On what you mean, yes, it could be added to the parsing logic, but it won't be as simple as arcane's shield since what he wanted was pretty high level so I just pointed the existing machinery to work elsewhere. I'd suggest looking at formatAttacks, and see where it's gathering the 'volley' to add a full multi-attack. Note that if you want this all inline you'll need to develop your own templates for the attack as the default and none of the cgen_tmp.js templates can handle that. Good luck.
1435353291

Edited 1435353338
I noticed at various zoom levels/widths of chat-area there's an optical hicup in the template's background images - but I checked and the size for both is 194 pixels width I think. - So what causes that and is there any way around it? Edit: just realized maybe it's because of the difference in height? I might experiment a bit with that...
There's small graphical blips if you want to zoom in very close. The design and attack templates pretty much use a header, body, footer metric for image placement. It's impossible to get something seamless given the varying height of the body, but we can get close enough for all intents and purposes.
First of all, I just want to say thanks for all your hard work with this script. I had been on the fence about taking the mentor plunge for a while, but when I poked around the API forums and saw this, it singlehandedly sealed the deal. Bravo sir! A couple questions/comments: 1. It drives me a little batty that the journal entries are all lower-case (even though I capitalized them). Any way to change this? 2. I realize that integrating auto-calculated stats (like factoring changes in DEX to affect AC) is beyond the purview of this script, but it would be nice if the parsed attributes aligned with the names given to attributes in the community PF character sheet (particularly the fields in the NPC tab) so that, if they wanted, GMs could do this work on their own. 3. On that note, I for one would not mind if this script parsed a few more attributes into the character sheet. For example, I'd like to be able to call a monster's XP value with a command rather than double click to check it in the token GM's notes. 4. Any thoughts on how this will interact with the Roll20 compendium (once the export functionality gets implemented)? Again, thank you for all your hard work! This script is a real game changer.
1436191247

Edited 1436191377
Glenn H. said: 1. It drives me a little batty that the journal entries are all lower-case (even though I capitalized them). Any way to change this? This is done in the function parseCore @LN517 . This was intended to normalize names since depending on the source of the statblock, it could be all caps, all lowercase, or traditional in terms of layout. Glenn H. said: 2. I realize that integrating auto-calculated stats (like factoring changes in DEX to affect AC) is beyond the purview of this script, but it would be nice if the parsed attributes aligned with the names given to attributes in the community PF character sheet (particularly the fields in the NPC tab) so that, if they wanted, GMs could do this work on their own. I don't plan on binding CGen to any one sheet. It's meant to be agnostic. I suppose I could have a parameter field that would allow users to substitute attribute names but that's not a high priority right now. Glenn H. said: 3. On that note, I for one would not mind if this script parsed a few more attributes into the character sheet. For example, I'd like to be able to call a monster's XP value with a command rather than double click to check it in the token GM's notes. What attributes are you looking for? Also if you're looking at the attributes section on the journal, that's not much different than looking at the gm notes section of the journal since they both require a double click. That is unless you're referring to placing it in a macro. Glenn H. said: 4. Any thoughts on how this will interact with the Roll20 compendium (once the export functionality gets implemented)? There's nothing really solid on the compendium. Given that CGen is not part of the offical repository, I doubt that there will be any major interaction. I believe the compendium is built more for auto-field completion. There's also a good chunk of PF material that isn't in the compendium.
Re: 1 Ok, would it be possible for me to edit that line to in order to have the output format be traditional ("Hill Giant" instead of "hill giant")? Re: 3, Yeah, I meant adding attributes to the character journal for use in macros. Actually, the only glaring example I can think of is the XP value lol
Glenn H. said: Re: 1 Ok, would it be possible for me to edit that line to in order to have the output format be traditional ("Hill Giant" instead of "hill giant")? Yep, I'll also see what I can do about EXP, perhaps I'll add it in some non-essential information section. Also thanks are in order for Russ H. , Rhyannon , Alan H. , whom without, the script would have looked awful. Check out their marketplace maps listed above :) .
Will the tooltips that show on mouseover appear in campaigns without the API? Namely, if they're exported from the vault of a mentor to a nonmentor's game?
Daniel T. said: Will the tooltips that show on mouseover appear in campaigns without the API? Namely, if they're exported from the vault of a mentor to a nonmentor's game? Yep, all the ability macros should work just as if the API server were down. What won't work is auto-population so drag-drop auto hp/ac/name won't work. That can be worked around by doing it once for a token then just copy pasting it. Overall, separated from the API after generation, it should work with most of the functionality intact.
Non, coder here, but a mentor none the less because of these magical API's you guys have coded. I cannot for whatever reason, get any spells to populate as per your screen shots and am wondering what I am doing wrong or if there are any tips to watch out for. Everything else populates great for the most part. Sometimes I get the tactics, sometimes I don't. All in all, this is a great timesaver. Thanks a ton Ken.
Ken L. said: Glenn H. said: Re: 1 Ok, would it be possible for me to edit that line to in order to have the output format be traditional ("Hill Giant" instead of "hill giant")? Yep, I'll also see what I can do about EXP, perhaps I'll add it in some non-essential information section. Also thanks are in order for Russ H. , Rhyannon , Alan H. , whom without, the script would have looked awful. Check out their marketplace maps listed above :) . As for @LN517. I removed the part of the script ".toLowerCase()" and it populated my monsters without error and kept the name as I had entered it. "Small Water Elemental" came out as "Small Water Elemental". So as long as you enter the monster name as you want it in the token GM notes before you generate it, it should produce how you want it.
Jeff said: I cannot for whatever reason, get any spells to populate as per your screen shots and am wondering what I am doing wrong or if there are any tips to watch out for. If the spell layout fits PRD or D20PFSRD format, it will work. Can you link the stat-block? Also are you sure all the spells are properly aligned (all first level spells on one line, second level on one line etc). I mentioned in the post to watch for wordwrap as it won't look past a line where it finds the level indicator. Jeff said: Everything else populates great for the most part. Sometimes I get the tactics, sometimes I don't. Tactics is split into three sections Before Combat During Combat Morale Each text section on their own line. Note that blank lines are fine and you can space out the tactics section to separate those 3 to ensure it's well isolated. I'm guessing that you're transferring from a PDF copy-paste. Be aware that if you're direct copy-pasting you need to do some alignment as Paizo stat-blocks in PDFs are usually compressed and abilities aren't aligned on a single line. I noted above about using a text editor with line numbers to help make sure that each ability is on a single line as opposed to word wrapped.
@Jeff (and Ken L.) I was also having some trouble with getting Spells and SLAs to import recently. Checked and rechecked the formatting, fiddled a little with spacing, tried both the PRD and D20PFSRD formats, even tried&nbsp;"scrubbing" the entry through notepad++; nothing.&nbsp; Then I went back up to the top post and did some more comparing with the examples (The Barbazu / Drow Matron). That's when realized that the monster I had been trying to format (The&nbsp; Derghodaemon ), for whatever reason, is listed with "Spell-like Abilities" instead of "Spell-Like Abilities." Uppercasing the L did the trick. Moral of the story: check your capitalization.&nbsp;
Glenn H. said: That's when realized that the monster I had been trying to format (The&nbsp; Derghodaemon ), for whatever reason, is listed with "Spell-like Abilities" instead of "Spell-Like Abilities." Uppercasing the L did the trick. Parsing always has little quirks like that. The PRD is for the most part consistent, but there are small quirks, I'd be wary of the attack section in particular. The capitalization issue I can't resolve as that's a distinguishing marker for the spells section (as specials may mention how X ability affects the 'spell-like abilities'). I perhaps could use location to narrow it further but for now it works for &gt;95% of the PRD provided stat blocks.
Hey Ken&nbsp; This is a fantastic set up my brudda but I was wondering if&nbsp;there anyway We can get this API script for 3.5?
Shaun Bradley (Elmo) said: &nbsp;I was wondering if&nbsp;there anyway We can get this API script for 3.5? This is a script specifically for pathfinder. Chris S. already has a great script for 3.5&nbsp;<a href="https://app.roll20.net/forum/post/1761348/slug%7D" rel="nofollow">https://app.roll20.net/forum/post/1761348/slug%7D</a>
Ken L. said: Ken L. said: It sounds like you're getting the unexpected token error which is detailed here: <a href="https://app.roll20.net/forum/post/1647248/unexpect" rel="nofollow">https://app.roll20.net/forum/post/1647248/unexpect</a>... ...this is more of a roll20 API sandbox problem as opposed to the script itself. Re-saving the scripts and restarting the sandbox usually resolves this. It's a Roll20 bug that still persists. It's unrelated to the script as it has happened to a number of others. It's more of a recent problem starting around the beginning of this year. If this is a known bug why is it taking forever to fix? I have to check and save my scripts so many times I can't count as it always seems to randomly disable with no notification. I have it happen in the middle of game
Yeah I am having similar issues Ken I was hopping I could get with you, I had Aaron look at it and he told me to hit you up
1439449106

Edited 1439519718
Shaun Bradley (Elmo) said: Yeah I am having similar issues Ken I was hopping I could get with you, I had Aaron look at it and he told me to hit you up I really can't do anything about the unexpected token s bug. It's unrelated to the script as it's from the Roll20 API sandbox and it has plagued practically every other script since Roll20 started using Cloudflare. To be more accurate, it's not the script that's throwing this error, it is the sandbox that loads the scripts.&nbsp;I'm guessing that token s comes from some minimized javascript used by roll20. That's the main reason why I made the generated creatures API failure tolerant as the sandbox would crash out of the blue during high server stress. CGen should be pretty bug free as far as any hard logical crashes are concerned, the Sandbox choking up which houses the environment in which all scripts run I really don't have any control over. Again, it's not related to CGen, any script will have this happen in addition to the socket rebinding API crash eventually I've found. Several support emails have been sent about this, I guess bugging them more could escalate it but every time they say it's fixed it surfaces its ugly head again.
Your script did work for a day but ok bummer, but thanks for responding.
1439519972
The Aaron
Pro
API Scripter
Just for completeness, the issue I was seeing was not the "Unknown Token s" issue. &nbsp;I left a not in the script about where it was crashing. I suspect the Game is in some way corrupt, because of the other issues I was seeing, however I'm not familiar enough with your script to know if it isn't something else.
Shaun, can you elaborate on the error you're seeing if it's not that? The logic for CGen should be pretty sound.
it sure would be a lot easier if I could invite you onto my table so u could see my skype is "shaun.bradley2012"
1439524628
The Aaron
Pro
API Scripter
I annotated the script where I made one change: /* 2719 */&nbsp; &nbsp; creLogDump: function(lvl) { &nbsp; &nbsp; &nbsp; &nbsp; if (this.dmesg) { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; log('--- Dumping log at level ['+lvl+'] ---'); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for (var line in this.dmesg) { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // AARON: &nbsp;This is getting a non-string object??? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var clvl = (this.dmesg[line] && this.dmesg[line].match && this.dmesg[line].match(/\d+/)) || false; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (clvl && (parseInt(clvl[0].trim()) &lt;= lvl)) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; log(this.dmesg[line]); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; log('--- Log dump at level ['+lvl+'] complete ---'); &nbsp; &nbsp; &nbsp; &nbsp; } else {log("No log found");} &nbsp; &nbsp; },
1439527441

Edited 1439528193
The Aaron said: I annotated the script where I made one change: /* 2719 */&nbsp; &nbsp; creLogDump: function(lvl) { &nbsp; &nbsp; &nbsp; &nbsp; if (this.dmesg) { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; log('--- Dumping log at level ['+lvl+'] ---'); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for (var line in this.dmesg) { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // AARON: &nbsp;This is getting a non-string object??? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var clvl = (this.dmesg[line] && this.dmesg[line].match && this.dmesg[line].match(/\d+/)) || false; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (clvl && (parseInt(clvl[0].trim()) &lt;= lvl)) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; log(this.dmesg[line]); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; log('--- Log dump at level ['+lvl+'] complete ---'); &nbsp; &nbsp; &nbsp; &nbsp; } else {log("No log found");} &nbsp; &nbsp; }, That looks like it was modded, the base script is different.&nbsp; LN2719 If you're referring to property iteration, 'For ... in' won't try to index into the length or other properties. In hindsight, 'For ... in' wasn't exactly the best choice for arrays, but I was pretty new to JS at the time.
Looked at shaun's campaign, it turned out to be a conflict with another script he was using.
1439739194
The Aaron
Pro
API Scripter
Yeah, I modded the line to prevent the crash on non string objects.&nbsp; Which script was the conflict? How was it conflicting?
the pop up script how not sure.
I'm not sure how the occult adventures Psionic layout will look like, but it shouldn't be a terribly large change. As of now I don't have it so I can't say CGen supports it yet. I'm currently in the middle of moving so it'll be some time before I can sort this out.
DO NOT create a creature with this and remove the token then try and drag and drop it later. I did this and when I tried to use the pre-made macros they all fouled up and only would give errors.Once you set the token and create the monster DO NOT MOVE IT this is what I get now: No ability was found for %{wererat 1 fighter 6|ATK_+1 mithral rapier(1)}.
1440555016

Edited 1440555104
It sounds like you renamed the character journal that was created. The character journal is statically binded at creation, if you change the name of the journal later, then it won't find the journal correctly. As far as removing the token. That should not raise any issue, what's fouling you up appears to be the name. (IE: you change the journal name, then try to use the abilities, the abilities internally still refer to the journal name it was originally generated in.)
&nbsp;I seem to be receiving this error,&nbsp;ENOENT, no such file or directory 'textchat-dev.js'&nbsp; whenever I try to save the script. It has been working fine in the past and this happened when I tried to use it this morning.
This was a temporary problem that should be resolved now. &nbsp;It had to do with some work that the DEV team was doing.
1442667060

Edited 1442667826
update v1.3: Feature add - Added: Auto-sizing. Now CGen will scan the size of the imported creature and store this in the 'Size' attribute, this will be used to automatically size the token during drag-drop auto-population. Note that if context such as 'Space 10ft.' exists, it'll use that size parameter as opposed to 'Medium','Small','Huge' etc.. Also note that sizes smaller than medium (which is considered 1 unit square) are not illustrated, but sizes larger than medium (2x2 Large,3x3 Huge,4x4 Gargantuan,6x6 Colossal) are illustrated. For tokens generated without the size attribute, or if it is invalid or missing, there is no auto-sizing. As an added bonus, it'll know the unit scale of the page on which the token resides and will size appropriately. - Added: Mass-Import. Now you can transmogrify pages with numerous tokens, select all tokens on a page, and mass-import them. This is ideal for moving around your monster databases. Note that this will NOT &nbsp;work for 'summons' for players. &nbsp;There is also a very rare race condition that will sometimes occur which I haven't pinned my thumb on where CGen will get stuck in the 'Busy' state (a lock to prevent multiple CGen operations during a mass import). To resolve this, simply re-save the script, if you could describe in detail what you did in a post that would help too. Only&nbsp; cgen.js needs to be updated, nothing has changed with the companion scripts. See the Git hub for the freshest updates.
Awesome! The automatic sizing is especially nifty. Would it be possible in the future to import the descriptive text which often appears above a stat block, and parse it into a macro that when clicked sends it the text to chat as a /desc?
I was just about to report the BUSY bug, suddenly the fix appeared - oh happy day. Thanks for this plugin, Ken. That's really good stuff.