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] RecursiveTables -- Expands Inline Rolls in Rollable Table Results

1453177317

Edited 1455065797
The Aaron
Pro
API Scripter
Given a table named Encounters with entries like: [[1d3+2]] Rats [[1d6]] Snakes [[1d8]] Spiders This command: !rt You encounter [[ 1t[Encounters] ]]! will produce things like: You encounter 4 Rats! You encounter 3 Snakes! You encounter 5 Spiders! You can roll on other tables in your results to a depth about 10 or 11. Messages will come from the speaker who entered the command. &nbsp;&nbsp;Additionally, commands placed in the text will be respected: !rt /w gm They encounter [[ 1t[Encounters] ]]! will whisper the text to the GM. !rt /w "Bob the Slayer" You find a horde of [[ 3t[Coins] ]], [[ 5t[[Small-Gems] ]], [[ 1t[Potions] ]], and [[ 1t[Weak-Magic-Items] ]]! will whisper to "Bob the Slayer" something like: You find a horde of 30 sliver coins, 10 gold coins, 23 copper coins, a garnet worth 25gp, a ruby worth 50gp, a pearl worth 100gp, a garnet worth 25gp, a diamond worth 300gp, a potion of healing, and a dagger of venom! Go nuts! =D (Thanks for the Idea Arthur B. !) Git:&nbsp; <a href="https://github.com/shdwjk/Roll20API/blob/master/Re" rel="nofollow">https://github.com/shdwjk/Roll20API/blob/master/Re</a>... Support my work on If you use my scripts, want to contribute, and have the spare bucks to do so , go right ahead. However, please don't feel like you must contribute just to use them! I'd much rather have happy Roll20 users armed with my scripts than people not using them out of some sense of shame. Use them and be happy, completely guilt-free! Disclaimer: This Patreon campaign is not affiliated with Roll20; as such, contributions are voluntary and Roll20 cannot provide support or refunds for contributions.
1453177569
The Aaron
Pro
API Scripter
( Pairs nicely with a red wine and&nbsp; TableExport (which supports imports too, btw)&nbsp;)
I do wish this was already built in to the roll tables, but it's great to see and may perhaps sway me to finally upgrade my sub.&nbsp;
1453178707
Silvyre
Forum Champion
Amazing!! Thank you!!
1453180490
The Aaron
Pro
API Scripter
I've upgraded TableExport as well, so that it can export and import tables with inline rolls in them (without those rolls being expanded on input). &nbsp;Go get version 0.2.1 and then try this table set out: !import-table --Dwarf-Surname-First --hide !import-table-item --Dwarf-Surname-First --Bitter --1 -- !import-table-item --Dwarf-Surname-First --Blazing --1 -- !import-table-item --Dwarf-Surname-First --Blunt --1 -- !import-table-item --Dwarf-Surname-First --Bottle --1 -- !import-table-item --Dwarf-Surname-First --Cask --1 -- !import-table-item --Dwarf-Surname-First --Chaos --1 -- !import-table-item --Dwarf-Surname-First --Coal --1 -- !import-table-item --Dwarf-Surname-First --Coin --1 -- !import-table-item --Dwarf-Surname-First --Deep --1 -- !import-table-item --Dwarf-Surname-First --Drake --1 -- !import-table-item --Dwarf-Surname-First --Ember --1 -- !import-table-item --Dwarf-Surname-First --Flint --1 -- !import-table-item --Dwarf-Surname-First --Gold --1 -- !import-table-item --Dwarf-Surname-First --Granite --1 -- !import-table-item --Dwarf-Surname-First --Gray --1 -- !import-table-item --Dwarf-Surname-First --Keg --1 -- !import-table-item --Dwarf-Surname-First --Leather --1 -- !import-table-item --Dwarf-Surname-First --Merry --1 -- !import-table-item --Dwarf-Surname-First --Mountain --1 -- !import-table-item --Dwarf-Surname-First --Oaken --1 -- !import-table-item --Dwarf-Surname-First --Orc --1 -- !import-table-item --Dwarf-Surname-First --Ruby --1 -- !import-table-item --Dwarf-Surname-First --Silver --1 -- !import-table-item --Dwarf-Surname-First --War --1 -- !import-table-item --Dwarf-Surname-First --Fiery --2 -- !import-table-item --Dwarf-Surname-First --Flat --2 -- !import-table-item --Dwarf-Surname-First --Great --2 -- !import-table-item --Dwarf-Surname-First --Iron --2 -- !import-table-item --Dwarf-Surname-First --Magma --2 -- !import-table-item --Dwarf-Surname-First --Noble --2 -- !import-table-item --Dwarf-Surname-First --Red --2 -- !import-table-item --Dwarf-Surname-First --Shadow --2 -- !import-table-item --Dwarf-Surname-First --Shatter --2 -- !import-table-item --Dwarf-Surname-First --Storm --2 -- !import-table-item --Dwarf-Surname-First --Black --3 -- !import-table-item --Dwarf-Surname-First --Night --3 -- !import-table --Dwarf-Surname-Second --hide !import-table-item --Dwarf-Surname-Second --armour --1 -- !import-table-item --Dwarf-Surname-Second --bane --1 -- !import-table-item --Dwarf-Surname-Second --belly --1 -- !import-table-item --Dwarf-Surname-Second --blade --1 -- !import-table-item --Dwarf-Surname-Second --branch --1 -- !import-table-item --Dwarf-Surname-Second --breaker --1 -- !import-table-item --Dwarf-Surname-Second --foot --1 -- !import-table-item --Dwarf-Surname-Second --forged --1 -- !import-table-item --Dwarf-Surname-Second --hide --1 -- !import-table-item --Dwarf-Surname-Second --pike --1 -- !import-table-item --Dwarf-Surname-Second --river --1 -- !import-table-item --Dwarf-Surname-Second --rock --1 -- !import-table-item --Dwarf-Surname-Second --spine --1 -- !import-table-item --Dwarf-Surname-Second --sunder --1 -- !import-table-item --Dwarf-Surname-Second --view --1 -- !import-table-item --Dwarf-Surname-Second --basher --2 -- !import-table-item --Dwarf-Surname-Second --belt --2 -- !import-table-item --Dwarf-Surname-Second --cloak --2 -- !import-table-item --Dwarf-Surname-Second --heart --2 -- !import-table-item --Dwarf-Surname-Second --shoulder --2 -- !import-table-item --Dwarf-Surname-Second --buster --3 -- !import-table-item --Dwarf-Surname-Second --mace --3 -- !import-table-item --Dwarf-Surname-Second --mail --3 -- !import-table-item --Dwarf-Surname-Second --master --3 -- !import-table-item --Dwarf-Surname-Second --back --4 -- !import-table-item --Dwarf-Surname-Second --sword --4 -- !import-table-item --Dwarf-Surname-Second --maul --5 -- !import-table --Dwarf-Surname --hide !import-table-item --Dwarf-Surname --&lt;%%91%%&gt;&lt;%%91%%&gt;1t&lt;%%91%%&gt;Dwarf-Surname-First&lt;%%93%%&gt; &lt;%%93%%&gt;&lt;%%93%%&gt;&lt;%%91%%&gt;&lt;%%91%%&gt;1t&lt;%%91%%&gt;Dwarf-Surname-Second&lt;%%93%%&gt; &lt;%%93%%&gt;&lt;%%93%%&gt; --1 -- After importing the above, you can use: !rt [[5t[Dwarf-Surname] ]] to make 5 shiny new random Dwarf Surnames: Flatback, Fieryhide, Embersword, Orcmaster, Nobleriver =D
1453194905

Edited 1453194925
Radek G.
KS Backer
Sheet Author
Oh.. I was looking for that BAAADLY!! Thank you. One question: Is "weight" of rollable table's entries taken into account?
1453197366
Ziechael
Forum Champion
Sheet Author
API Scripter
Radek G. said: Oh.. I was looking for that BAAADLY!! Thank you. One question: Is "weight" of rollable table's entries taken into account? With some very basic testing I suspect that weighting is taken into account yes... not to create hundreds of tables Muahahhahaaa!
1453202134
Ziechael
Forum Champion
Sheet Author
API Scripter
Dear Mr Scriptomancer sir, would it be possible to have the script ignore certain table inputs... I'm envisioning leaving an entry blank in the rollable table (which currently assigns a default value of '0') so that I could have a macro that was along the lines of: !rt /w "Bob the Slayer" You find a horde of [[ 3t[Coins] ]], [[ 5t[[Small-Gems] ]], [[ 1t[Potions] ]], and [[ 1t[Weak-Magic-Items] ]]! and by having a high weighted entry for potions and weak magic items with no value assigned Bob would have a chance of finding: You find a horde of 30 sliver coins, 10 gold coins, 23 copper coins, a garnet worth 25gp, a ruby worth 50gp, a pearl worth 100gp, a garnet worth 25gp, a diamond worth 300gp, , ! rather than always getting a potion and an item. *I can live with the additional commas before the ! in that particular example although I could just prefix all my table entries with ", " to add them as needed ;)
1453205937
Ziechael
Forum Champion
Sheet Author
API Scripter
Help... Updated the tableexport script, made a quick table for checking (good ole concatenate formula!) but got this as my table: from this code: !import-table --coinage --hide !import-table-item --coinage --[[1d6]]gp equivalent --1 -- !import-table-item --coinage --[[2d6]]gp equivalent --1 -- !import-table-item --coinage --[[3d6]]gp equivalent --1 -- !import-table-item --coinage --[[4d6]]gp equivalent --1 -- The actual table is 50 strong but all are the same...
1453206198
The Aaron
Pro
API Scripter
Radek G. said: Oh.. I was looking for that BAAADLY!! Thank you. One question: Is "weight" of rollable table's entries taken into account? Yes, table weights are respected. &nbsp;It is literally no different than just taking the output and pasting it back in chat enough times to have all the dice rolled.
1453206339
The Aaron
Pro
API Scripter
Ziechael said: Help... Updated the tableexport script, made a quick table for checking (good ole concatenate formula!) but got this as my table: from this code: !import-table --coinage --hide !import-table-item --coinage --[[1d6]]gp equivalent --1 -- !import-table-item --coinage --[[2d6]]gp equivalent --1 -- !import-table-item --coinage --[[3d6]]gp equivalent --1 -- !import-table-item --coinage --[[4d6]]gp equivalent --1 -- The actual table is 50 strong but all are the same... Yeah, that's the reason for the update to TableExport. &nbsp;You'll need to replace the [ and ] with &lt;%%91%%&gt; and &lt;%%93%%&gt;: !import-table-item --coinage --&lt;%%91%%&gt;&lt;%%91%%&gt;gp equivalent Also, I made the weight and the image link optional, so the above will now work and result in a weight of 1.
1453206451
Ziechael
Forum Champion
Sheet Author
API Scripter
ah sweet... i figured from your example with the dwarf names that it might be to do with that (but was in a meeting so couldn't read through too much ;) ). Thanks for the optional weight and link addition too... concatenate made it less of a chore but at least i don't have to remember it each time now =D
1453206634
The Aaron
Pro
API Scripter
Ziechael said: Dear Mr Scriptomancer sir, would it be possible to have the script ignore certain table inputs... I'm envisioning leaving an entry blank in the rollable table (which currently assigns a default value of '0') so that I could have a macro that was along the lines of: !rt /w "Bob the Slayer" You find a horde of [[ 3t[Coins] ]], [[ 5t[[Small-Gems] ]], [[ 1t[Potions] ]], and [[ 1t[Weak-Magic-Items] ]]! and by having a high weighted entry for potions and weak magic items with no value assigned Bob would have a chance of finding: You find a horde of 30 sliver coins, 10 gold coins, 23 copper coins, a garnet worth 25gp, a ruby worth 50gp, a pearl worth 100gp, a garnet worth 25gp, a diamond worth 300gp, , ! rather than always getting a potion and an item. *I can live with the additional commas before the ! in that particular example although I could just prefix all my table entries with ", " to add them as needed ;) Interesting question. &nbsp;I can certainly take out the ', ' from the join. &nbsp;It happens when you do multiple rolls on a Rollable Table. &nbsp;Could also post-process the text to remove any superfluous ", ,"s, but that might be harder. &nbsp;I'll think on it. =D
1453207418
Ziechael
Forum Champion
Sheet Author
API Scripter
No worries either way, you know me and nitpicking ;) One thing I have noticed with the tableexport is that if you delete a table and try to add one with the same name it still thinks that the original one exists?!
1453208754
The Aaron
Pro
API Scripter
If you restart your scripts, does that problem go away? &nbsp;I have a feeling it's caching it for various reasons.
1453209085
Ziechael
Forum Champion
Sheet Author
API Scripter
Ahhhh, that gets it. Cheers :)
1453209415
The Aaron
Pro
API Scripter
Ok, I updated TableExport to version 0.2.2 to fix that. &nbsp;Give it a try! =D
1453212222
Ziechael
Forum Champion
Sheet Author
API Scripter
Perfect, now when I screw up the initial table I can delete and re-import without having to refresh the API :)
Added to&nbsp; Spotlights ! Great work The Aaron!
1453227197
Ziechael
Forum Champion
Sheet Author
API Scripter
if anyone is interested i've spent the afternoon creating some loot tables for 3.5 which when finished i'll post a link to in here. There is some house ruled stuff in there (we only use gold coin equivalent for currency rather than the various denominations for example) but it is all SRD and easy to change. The minor magic items table will be a particular highlight once i get it finished, i've already got the code ready for all of the scrolls (730+ of them) and potions, some art items, mundane items, gems and the barebones coinage... hoping to have it finished sometime tomorrow or thursday but thought i'd post here in case it would save some poor soul from having to duplicate on my work :)
1453227437
Silvyre
Forum Champion
I'm interested!
1453228103
Ziechael
Forum Champion
Sheet Author
API Scripter
Cool, thats enough interest for me to persevere :) I've tried to arrange the weighting to ensure that high level scrolls and expensive potions are much rarer than the low level dross every mook carries around but of course the discerning could easily separate them out into smaller grouped tables with more balanced weightings... and once my minor magic item tables are done i can get to work on nesting the loot into one overall table, still beats doing my day job right? My efforts so far.
1453228264
The Aaron
Pro
API Scripter
Oooh, that's nice! &nbsp;=D
1453228742
Silvyre
Forum Champion
Great! Thanks a lot!
It should be possible to add the option trigger this off any inline roll that has a label like [[ [RTE] 1t[TableName] ]]. Might make it compatible with powercards without any update from me.
1453238882
The Aaron
Pro
API Scripter
I thought about that, but since it must parse the rolls asynchronously with sendChat(), it couldn't make changes to the original message in time for PC to render it. &nbsp;Additionally, the API wouldn't be able to change the display in the chat for vanilla chat messages. &nbsp;It is a good idea though, and something similar might be to set it up as a preprocessing option similar to the way I've setup that preprocessor for scripts to parse inline rolls back into the message. &nbsp;There are some complications there as well, but it's a thought...
1453241922
vÍnce
Pro
Sheet Author
Not enough hours in the day... Thanks Aaron Thanks Ziechael for sharing your tables.
1453304179
Ziechael
Forum Champion
Sheet Author
API Scripter
Updated loot tables (for DnD 3.5e SRD), now with added random magic item generator (low level items only as more powerful loot will likely not be part of a random cache, well not in my games anyway): Get it&nbsp; here .
1454564241
Falcon
Pro
Sheet Author
Hey Aaron - can this be combined with the Rollable Table that you modified for me? &nbsp;It would be great to be able to modify the weight of the roll as well as what is inside the roll. &nbsp;It would be AWESOME!!
1454565316
The Aaron
Pro
API Scripter
It can, but it will be a non-trivial amount of work. &nbsp;You're talking about the script of Brian's that I modified? &nbsp;Can you PM me a link to that modified code, I don't know that I still have it.
1454934844
The Aaron
Pro
API Scripter
@Global: &nbsp;I hope you got your problem worked out. (Extra space in the inline roll). If not, definitely post back!
1455090837

Edited 1455090868
The Aaron said: @Global: &nbsp;I hope you got your problem worked out. (Extra space in the inline roll). If not, definitely post back! It was kind of obvious after I read the error in the API output to the end of the line. It doesn't like having spaces after the double bracket ( [[ ) in the tables, I just had to go fix all the tables so they didn't have the space before 1t
Aaron, this Recursive Tables tool would be very useful for what i am doing in my AD&D laboratory in making macro & rollable table generators for treasure types. &nbsp;However, there are a lot of tables i need to reach, like in the range of 15t-30t. &nbsp;How deep will your tool go currently? &nbsp;I recall you mentioning it reaching to about 10-11. &nbsp;Am i even understanding what you mean? &nbsp;:) I really don't know API and have been trying to keep this in the realm of Macros & Rollable tables, but i am willing to try anything that works!
1456635004
The Aaron
Pro
API Scripter
It is set to a max depth of 10 currently as a practical measure. &nbsp;Line 14 of the code has the max depth setting: maxParseDepth = 10, If you bump that up to 30 or so, it will recurse more deeply, which should suit your case.
Aaron i want to give you a big greasy Bugbear kiss!!! &nbsp;:)
1456685938
The Aaron
Pro
API Scripter
Hahahahaha! &nbsp;I have 7 kids, believe me when I say, I get worse daily!
This is fantastic. Nicest way to display my Roll Table text and more useful than the basic tables. Awesome work as usua, Aaron.
1458327185
The Aaron
Pro
API Scripter
Cool! &nbsp;Glad you like it! &nbsp;When paired with TableExport (does imports too) it can really help make some great random text. =D
I love this script, however, there are two things that I need help with, I probably am not typing the code correctly but how do I get this to work with a roll template and as a player not a gm.
1458958709
The Aaron
Pro
API Scripter
Hmm. It should just work with a roll template provided you aren't whispering it. You'd just need to preface it with !rt: !rt &{template:default}{{name=Dwarf Contact}}{{[[ 1t[Dwarf-Surnane] ]]}}
Can anyone tell me why I am getting this error? TypeError: Cannot read property 'name' of undefined at apiscript.js:2507:53 at iterator (/home/node/d20-api-server/node_modules/underscore/underscore.js:184:16) at Function.&lt;anonymous&gt; (/home/node/d20-api-server/node_modules/underscore/underscore.js:199:14) at apiscript.js:2506:39 at iterator (/home/node/d20-api-server/node_modules/underscore/underscore.js:184:16) at Function.&lt;anonymous&gt; (/home/node/d20-api-server/node_modules/underscore/underscore.js:199:14) at apiscript.js:2504:30 at iterator (/home/node/d20-api-server/node_modules/underscore/underscore.js:184:16) at Function.&lt;anonymous&gt; (/home/node/d20-api-server/node_modules/underscore/underscore.js:199:14) at _.(anonymous function) [as reduce] (/home/node/d20-api-server/node_modules/underscore/underscore.js:1496:34) I am using tableexport script and I imported Ziechael 's list of dnd items above. I created a small table to host the subtables of commonloot, rareloot and magicloot in a 90/8/2 % weighting.&nbsp; I also have tokenmod and powercards3 running along with recursive tables. Is this something in the data or the script?
1461086189
The Aaron
Pro
API Scripter
It's hard to say. &nbsp;What command are you running when this happens? &nbsp; If you're copy pasting Z's stuff when this happens, you might try using smaller chunks and see if you can narrow it down to a specific block that causes the error. If the import had no errors and you're running a !rt command, it may be an error on line 84 of RecursiveTables, where the tableItem doesn't exist. &nbsp;I can't see how that would actually happen. &nbsp;Given your command, try manually running the inlines and see if you get an error. &nbsp;That would indicate a corrupt Rollable Table. Very weird, let me know how it goes, I might need/like to jump in your game and see what's going on.
I imported your Dwarf data above and ran it a few dozen times and did not get that error so it's probably something in the data I imported. I am going to go thru and slim it down a bit.
is there a way to randomly roll a macro if i try "!rt [[ 1t[test] ]]" with [[#Condition-Blinded]] as the only thing is the table the api crashes. this is the macro Condition-Blinded "&{template:5eDefault} {{title=Blinded}} {{save=1}} {{subheader=@{selected|token_name}}} {{subheaderright=Condition}} {{subheader2=PHB, pg. 290.}}{{freetext= You can't see You automatically fail any ability check which requires sight. You have disadvantage on attack rolls. Attack rolls against you have advantage.}}" am i missing sum thing or can this not be done?
1461289510
The Aaron
Pro
API Scripter
Macros can't be called by the API in any reasonable manner, sadly.
1461290032
Silvyre
Forum Champion
Mason C. , if you're interested in creating a macro that randomly rolls a condition, I recommend checking out PowerCards (namely its 'conditionals' feature). Definitely make a post in the&nbsp; PowerCards thread if you'd like any help in writing such a macro.
1461296489

Edited 1461301616
i got it working with !randomizer,&nbsp;[Blinded](!.&.#.1.3.;.#Condition-Blinded) works by havving a button as the result that you can click removing the . from !.&.#.1.3.;.#&nbsp;(i made this post in both forms for anyone else that might be looking for a way to do this)
1461344256
The Aaron
Pro
API Scripter
Ah, good. &nbsp;I was going to come back and suggest that as a work around. &nbsp;In that case, the macro is executed by the client, not the API, so it can work. BTW, you can type html entities by putting them in like this: &nbsp;&amp;amp;#13; The &amp;amp; will get eaten by the forum but will show the right text. &nbsp;if you ever edit that text, you'll have to expand all the &amp; back into &amp;amp;
I have run into an error that I think has to do with the way my tables are constructed, however I don't know specifically where or how things are going wrong. &nbsp;I could use some help. SyntaxError: Expected "[" or [ |\t] but "1" found. undefined I am using the following table (s): !import-table --kEvent-Generic --show !import-table-item --kEvent-Generic --a natural blessing &nbsp;and ROLL AGAIN. --2 -- !import-table-item --kEvent-Generic --good weather and ROLL AGAIN. --2 -- !import-table-item --kEvent-Generic -- &lt;%%91%%&gt;&lt;%%91%%&gt; 1t&lt;%%91%%&gt;kEvent-benKingdom&lt;%%93%%&gt; &lt;%%93%%&gt;&lt;%%93%%&gt;. --20 -- !import-table-item --kEvent-Generic -- &lt;%%91%%&gt;&lt;%%91%%&gt; 1t&lt;%%91%%&gt;kEvent-danKingdom&lt;%%93%%&gt; &lt;%%93%%&gt;&lt;%%93%%&gt;. --25 -- !import-table-item --kEvent-Generic -- &lt;%%91%%&gt;&lt;%%91%%&gt; 1t&lt;%%91%%&gt;kEvent-benSettlement&lt;%%93%%&gt; &lt;%%93%%&gt;&lt;%%93%%&gt;. --25 -- !import-table-item --kEvent-Generic -- &lt;%%91%%&gt;&lt;%%91%%&gt; 1t&lt;%%91%%&gt;kEvent-danSettlement&lt;%%93%%&gt; &lt;%%93%%&gt;&lt;%%93%%&gt;. --22 -- !import-table-item --kEvent-Generic --bandit activity and ROLL AGAIN. --1 -- !import-table-item --kEvent-Generic --squatters and ROLL AGAIN. --1 -- !import-table-item --kEvent-Generic --monster attack and ROLL AGAIN. --1 -- !import-table-item --kEvent-Generic --vandals and ROLL AGAIN. --1 -- !import-table --kEvent-benKingdom --show !import-table-item --kEvent-benKingdom --an archaeological find --7 -- !import-table-item --kEvent-benKingdom --a diplomatic overture --5 -- !import-table-item --kEvent-benKingdom --a discovery --5 -- !import-table-item --kEvent-benKingdom --an economic boom --11 -- !import-table-item --kEvent-benKingdom --a festive invitation --8 -- !import-table-item --kEvent-benKingdom --a food surplus --14 -- !import-table-item --kEvent-benKingdom --good weather --13 -- !import-table-item --kEvent-benKingdom --a land rush --9 -- !import-table-item --kEvent-benKingdom --a natural blessing --10 -- !import-table-item --kEvent-benKingdom --new subjects --5 -- !import-table-item --kEvent-benKingdom --political calm --10 -- !import-table --kEvent-danKingdom --show !import-table-item --kEvent-danKingdom --an assassination attempt --5 -- !import-table-item --kEvent-danKingdom --bandit activity --13 -- !import-table-item --kEvent-danKingdom --a feud --10 -- !import-table-item --kEvent-danKingdom --a food shortage --13 -- !import-table-item --kEvent-danKingdom --an improvement demand --11 -- !import-table-item --kEvent-danKingdom --an inquisition --8 -- !import-table-item --kEvent-danKingdom --a large disaster --5 -- !import-table-item --kEvent-danKingdom --a monster attack --12 -- !import-table-item --kEvent-danKingdom --a plauge --8 -- !import-table-item --kEvent-danKingdom --a public scandal --8 -- !import-table-item --kEvent-danKingdom --smugglers --8 -- !import-table --kEvent-benSettlement --show !import-table-item --kEvent-benSettlement --a boomtown --14 -- !import-table-item --kEvent-benSettlement --a discovery --10 -- !import-table-item --kEvent-benSettlement --justice prevails --14 -- !import-table-item --kEvent-benSettlement --a noblesse oblige --6 -- !import-table-item --kEvent-benSettlement --an outstanding success --11 -- !import-table-item --kEvent-benSettlement --a pilgrimage --8 -- !import-table-item --kEvent-benSettlement --a remarkable treasure --6 -- !import-table-item --kEvent-benSettlement --an unexpected find --9 -- !import-table-item --kEvent-benSettlement --a visiting celebrity --12 -- !import-table-item --kEvent-benSettlement --a wealthy immigrant --7 -- !import-table --kEvent-danSettlement --show !import-table-item --kEvent-danSettlement --building demand --10 -- !import-table-item --kEvent-danSettlement --a crop failure --7 -- !import-table-item --kEvent-danSettlement --cult activity --8 -- !import-table-item --kEvent-danSettlement --a drug den --8 -- !import-table-item --kEvent-danSettlement --a feud --8 -- !import-table-item --kEvent-danSettlement --an inquisition --8 -- !import-table-item --kEvent-danSettlement --a localized disaster --5 -- !import-table-item --kEvent-danSettlement --a monster attack --7 -- !import-table-item --kEvent-danSettlement --a plague --5 -- !import-table-item --kEvent-danSettlement --a sensational crime --8 -- !import-table-item --kEvent-danSettlement --slavers --6 -- !import-table-item --kEvent-danSettlement --squatters --10 -- !import-table-item --kEvent-danSettlement --vandals --10 -- While using: &nbsp;!rt /w gm&nbsp;You have [[ 1t[[kEvent-Generic]] ]]. &nbsp;Could anyone help with this small problem?