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] Complete Set of Sample Images to Make Your "Dungeon Ready" (Random Dungeon Generator and Dynamic Lighting for Walls and Doors with Editing UI)

1418140230

Edited 1418469617
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
Gist: Found just below this lead post. You can try this out by just installing the API script. Items Included: 70 “Dungeon Ready” sample geomorphic tiles (information on how to purchase the set below.) 14 “Dungeon Ready” sample elements. 22 “GM Information” sample images. 50 “GM Labels” Labels complete images (Freebies!) 1 “GM-Legend” Handout. Features Included: Improved Setup (Rollable Tables and Items auto-created.) 8 User Interface Macro Actions. “Random-Map” (Random Dungeon Generator.) “Add-Map-Feature” (Drop in Stairs, Torches, Doors, etc.) “Add-GM-Feature” (Special GM Information Icons: Secret door, “sense” sound, etc.) “Add-GM-Label” (Map room number and other lables.) “Add-Dynamic-Lighting-Walls” (Auto created Dynamic Lighting once your map is ready.) “Light-Doors-Stairs” (Auto Lighting of doors and other features.) “Lighting-To-From-GM-Layer” (Need to add custom lighting? Move all your walls to the GM layer and back. Makes final edits much easier.) "Delete-Lighting-Walls" (Moves all Dynamic Lighting to a "Trash Bin.") 10 User Interface Token Actions. Side Chooser “Fast Right.” (For objects that are multi-sided.) Side Chooser “Right.” Side Chooser “Left.” Side Chooser “Fast Left.” Flip Horizontal. Flip Vertical. Rotate Left 90 degrees Rotate Right 90 degrees. Turn 180 degrees. Paste-Selected. (Creates a copy of the selected object.) Recommended Setup and Use: Initial Setup Create a new campaign. Install the API script: (Found just below this lead post.) Enter the API command: “!dungeonready” “!dungeonready” Is the command to get you started Initial Errors and things to care for. Create a new or rename the “Start” page to “DungeonReady” Change the map height and width to where both are multiple of 12 and greater than 36. Check for the existence of the following macros: 8 User Interface Macro Actions and the 10 User Interface Token Actions (listed above.) Make sure the “check” the option for “In Bar” on the following Macros: 8 User Interface Macro Actions (listed above.) Review the following Rollable Tables, ensure each has a sample image: Dungeon-Ready-Tiles, Dungeon-Ready-Elements, GM_Special and GM_Labels. Check for the following Handouts: Dungeon-Ready and GM-Legend (You can delete the “Dungeon Ready” handout and it will not reappear unless you also delete the legend.) Setup should be complete Using “Dungeon Ready”. Click the macro bar button “Random-Map” The tile weight is the count of connections the tile provides and is used to calculate the percentage chance for a tile to appear. A weight of -1 turns the tile off. On the Map layer: Click on a tile to use the 10 edit Token Actions. Repeat this step as many times as you like. On the Map layer: Select a map tile that is approximately where you want to add a dungeon feature and click the macro bar button “Add-Map-Feature.” NEXT: Select this new tile to use the 10 edit Token Actions. Place the object where you want it. Repeat this step as many times as you like. You can also use the "Paste-Selected" Token Action (useful for things like torches.) On the GM layer: Click the macro bar button “Add-GM-Feature”. Token will appear in the middle of the map. NEXT: Select this new tile to use the 10 edit Token Actions and move the token to where you desire it to be. Repeat this step as many times as you like. On the GM layer: Click the macro bar button “Add-GM-Label”. You will be prompted for a room number (1-30,) sub-room label (a-j) or dungeon level (L1-L10.) Token will appear in the middle of the map. NEXT: Select this new tile to use the 10 edit Token Actions and move the token to where you desire it to be. Repeat this step as many times as you like. On the Dynamic Lighting layer: Click the macro bar button “Add-Dynamic-Lighting-Paths”. The Dynamic Lighting paths for the map walls will be drawn automatically. On the Dynamic Lighting layer: Click the macro bar button “Light-Doors-Stairs”. The Dynamic Lighting paths for doors and stairs will be drawn automatically. Torches will be moved to the object layer and torches that are "on" will be provided light settings. On the Dynamic Lighting layer: If you have additional paths to manually add to the map then click the macro bar button “Lighting-To-From-GM-Layer”. The Dynamic Lighting paths for the map walls will be moved to the GM Layer. This will make the adding of additional Dynamic Lighting paths easier. Once complete click the macro bar button “Lighting-To-From-GM-Layer.” The Dynamic Lighting paths for the map walls will be moved back to the GM Layer. Dynamic Lighting layer. "Delete-Lighting-Walls" will move all the wall paths under a "Trash-Bin" graphic on the upper right corner of the map on the object layer. Repeat this process until the "Trash-Bin" is full. To empty it, use drag select to grab the "Trash-Bin" and the paths beneath it and hit the delete key. For the Dungeon Ready tiles the tile weight is the count of completed connections the tile provides and is used to calculate the percentage chance for a tile to appear. A weight of -1 turns the tile off . Purchase the “Dungeon Ready” pack here: Dungeon Ready Download the pack to your computer For each item remove the sample tile and add the matching downloaded image (a script to help with this will follow.) Once its all in good working order, update the URLs in the API arrays to your library's URL. (a script to help with this will follow.) Enjoy! Special thanks to Alex L., Wes, " The Aaron" and posters in the API forum!
1418140339

Edited 1418823705
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
<a href="https://gist.github.com/BaldarSilveraxe/fe582e5845d38d64d76a#2" rel="nofollow">https://gist.github.com/BaldarSilveraxe/fe582e5845d38d64d76a#2</a>
1418141567
The Aaron
Roll20 Production Team
API Scripter
Oooh! Pretty!
1418142463
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
NOTE: If you copy from the Gist raw the Macro array's UTF-8 characters with be alter. Be sure to correct that before running the script just replace the array with this code below. It functions the same it just ensure the UTF-8 characters are retained. var dungeonReadyMacros = [ {istokenaction: true, action: "!rght_5", name: "-&gt;&gt;|"}, {istokenaction: true, action: "!rght_1", name: "-&gt;|"}, {istokenaction: true, action: "!left_1", name: "|&lt;-"}, {istokenaction: true, action: "!left_5", name: "|&lt;&lt;-"}, {istokenaction: true, action: "!h_flip", name: "↔Flip-Horizontal"}, {istokenaction: true, action: "!v_flip", name: "↕Flip-Vertical"}, {istokenaction: true, action: "!left90", name: "↶Turn-Left-90-Degrees"}, {istokenaction: true, action: "!rght90", name: "↷Turn-Right-90-Degrees"}, {istokenaction: true, action: "!trn180", name: "↻Turn-180-Degrees"}, {istokenaction: true, action: "!double", name: "▓»▓-Paste-Selected"}, {istokenaction: false, action: "!mapdun", name: "♦1-Random-Map"}, {istokenaction: false, action: "!addfea", name: "♦2-Add-Map-Feature"}, {istokenaction: false, action: "!addGMf", name: "♦3-Add-GM-Feature"}, {istokenaction: false, action: "!addGMl ?{1-30, a-j, or L1-L10|1}", name: "♦4-Add-GM-Label"}, {istokenaction: false, action: "!lightW", name: "♦5-Add-Dynamic-Lighting-Walls"}, {istokenaction: false, action: "!lightf", name: "♦6-Light-Doors-Stairs"}, {istokenaction: false, action: "!tofrom", name: "♦7-Lighting-To-From-GM-Layer"}, {istokenaction: false, action: "!dltpth ?{Are you sure?|N}", name: "♦8-Delete-Lighting-Walls"} ];
1418142588

Edited 1418142622
The Aaron
Roll20 Production Team
API Scripter
Note : The beautiful UTF-8 characters in the macro names get horribly corrupted if you copy the gist from it's raw view. Despite usually suggesting that, in this case I would suggest just copying the text from the pretty view. Edit: heheheheeh
1418143158
The Aaron
Roll20 Production Team
API Scripter
Very cool and fun! I love to see all the tiles pop into existence. It's like the Matrix for DnD: I need a dungeon. A dark dungeon. With light blocking walls. -- DM Neo
1418146799
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
Sample map with the sample tiles.... the paths should be draw automatically. Door paths are in "green" so they can be pushed to the GM layer (simple way to open the Dynamic Lighting and track open doors.) "Open door" images could also be used, I just want to get as much packed in here as I could and then show it for feedback. Torches that are "on" are also given light settings.
1418146845
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
The Aaron said: Very cool and fun! I love to see all the tiles pop into existence. It's like the Matrix for DnD: I need a dungeon. A dark dungeon. With light blocking walls. -- DM Neo API anchors with /W direct would make all that so mcuh easier.
1418239387

Edited 1418239981
So I purchased the pack, but am confused as to how I use the stuff within, and not just the samples, can you explain it a bit more? Everything is in my marketplace, but how do I figure out the link to my marketplace?
1418240521
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
API currently doesn't have access to the tags in your library or on the market, so this is where you have to do some work. download the pack and unzip to a folder on your PC that works best for you. Starting with the "Dungeon-Ready-Elements" rollable table... (cuz it the shortest) perform the following steps: 1) Open the table "Dungeon-Ready-Elements" rollable table. 2) Click the first item (should be "door".) 3) Without changing the name or weight remove the icon. 4) Once removed you should have the "choose file" option. 5) Upload your downloaded door tile. You have to repeat for each item.... its just a limitation of the API's access to market purchases and your library. Then you have repeat for all the other tables... its a bit of work. You do not need to do it for labels (tired to spare everyone as much as I could.) I will have a utility script up tonight that should make this a little bit better. But its still work, there are lot of images in this pack.
1418270774
Finderski
Pro
Sheet Author
Compendium Curator
I purchased the set, but I don't get a download button. Do I have to really download and tag every image individually?
1418273273
The Aaron
Roll20 Production Team
API Scripter
GV: Stephen told me there is a config issue with the pack on the marketplace. He's sent an email and is just waiting for them to fix it. The download link should show up shortly. If you PM Stephen, he might have some options for you in the interim.
1418289826
Finderski
Pro
Sheet Author
Compendium Curator
Awesome. Thanks.
1418321200
Kevin the Barbarian
Pro
Sheet Author
API Scripter
Really nice!
1418469039
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
Download link is now there!!!!
1418744815
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
Will be adding these "free" (GM Layer door swing marker and open door.) Just working on the script now.
1418787912
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
Interesting thing was noticed while working on this. The idea is to find and relate the door path to the door after the creating of both (I have to assume that the Transmogrifier will be used so ID capture at create wont work.) So... I was going to use (doorpath.top === doorimage.top && doorpath.left === doorimage.left) BUT those paths tend to slip a px.... and I am not sure how random it is. But.... I had someone else in the party... This code is out of context... but worth showing if you need to find something "close" to something else. filterDoorPath = _.chain(doorpath) .filter(function( o ) { return (o.get('left') &gt; obj.get("left") - 2) && (o.get('left') &lt; obj.get("left") + 2) && (o.get('top') &gt; obj.get("top") - 2) && (o.get('top') &lt; obj.get("top") + 2); }) .value();
1418794573
The Aaron
Roll20 Production Team
API Scripter
BWAHAHAHAHA. Is there codes there? I've got a code hammer, it's like +7 vs. codes!
The Aaron said: BWAHAHAHAHA. Is there codes there? I've got a code hammer, it's like +7 vs. codes! YOU'RE NOT THERE! YOU'RE GETTING DRUNK!
1418825662
The Aaron
Roll20 Production Team
API Scripter
Wade said: The Aaron said: BWAHAHAHAHA. Is there codes there? I've got a code hammer, it's like +7 vs. codes! YOU'RE NOT THERE! YOU'RE GETTING DRUNK! Heheheheh.
1418826100
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
Main script updated to version = 0.2 (see above) Additional script below. Door Script Recommended Setup and Use: 1) Use the updated DungeonReadyScript (version = 0.2) to make your maps (posted above.) 2) Use the Transmogrifier to move your map (or maps) to an active campaign or the campaign you intend to use, (there are a lot of "Token Actions" and "In Bar" macros you wont need in game that are part of the Dungeon Ready map making script.) 3) For the campaign you want to use the map(s) in, install the script just below this post. 4) Enter the command: !readydoors The script will: 1) Check all maps for Dungeon Ready doors and torches. 2) Capture URLs and add them to the State (this saves adding them again. Recommend you have at least 1 lighted torch, 1 non-lighted torch, 1 normal door and 1 barred door.) 3) Will add a character named "DungeonReadyDoorControl" with one Token Action called "Toggle-Feature." Use: 1) Select a door or torch on the object layer and hit the Token Action "Toggle-Feature." Lastly you can hard code in the URLs (recommended.) Images used can be found here: ZIP
1418826106
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
<a href="https://gist.github.com/BaldarSilveraxe/3b09ede4260a39ab491c" rel="nofollow">https://gist.github.com/BaldarSilveraxe/3b09ede4260a39ab491c</a>
What's the learning curve on implementing this as GM? Also, does the Sample Images posted above include full functionality as to test it before buying the full set of market place assets?
1418827270
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
Wade said: What's the learning curve on implementing this as GM? Also, does the Sample Images posted above include full functionality as to test it before buying the full set of market place assets? The learning curve should be low. And its fully functional without purchase. Purchasing removes the water-markers (takes a bit of effort to get the URLs from your library once you upload the pack.) The " Recommended Setup and Use:" should hopefully be clear enough (found in the lead post.) If you have any trouble just post here or send me a PM.
Stephen S. said: The " Recommended Setup and Use:" should hopefully be clear enough (found in the lead post.) If you have any trouble just post here or send me a PM. Cool. Thanks!
1419093804
Gen Kitty
Forum Champion
Purchase the “Dungeon Ready” pack here: Dungeon Ready Download the pack to your computer For each item remove the sample tile and add the matching downloaded image (a script to help with this will follow.) Once its all in good working order, update the URLs in the API arrays to your library's URL. (a script to help with this will follow.) Is this hoop-jumping still required? I only ask because that's a lot of tiles to be playing swapsies with :&gt;
1419094211
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
Unfortunately yes. I do have a script you can try.... (its very raw)... that might help. I will PM it to you.
1419098602
Gen Kitty
Forum Champion
I'm now going to ask what may seem like a very dumb question: Why do you say do this in a new campaign?
1419099235
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
I have one campaign I use for map making and then I use the transmographer to export/import completed maps. The reason I do this is I don't all the token action and macros in my active game campaigns.
For the door script do you add the open door to the rollable token or somewhere else? Does it need a specific name?
1419153504
Gen Kitty
Forum Champion
Stephen S. said: I have one campaign I use for map making and then I use the transmographer to export/import completed maps. The reason I do this is I don't all the token action and macros in my active game campaigns. Ahhh, that makes perfect sense!
1419165165
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
Zepth said: For the door script do you add the open door to the rollable token or somewhere else? Does it need a specific name? No need to do that. Its pulled from my library. However if you wanted to, you could download the copy I provided and place it in your library and then just update the URL information in the door script.
1419184639
Gen Kitty
Forum Champion
Stupid Question the second: I didn't feel the need to try before buying, it was an obvious "of course I'm buying this!" decision. Does that change anything in the Setup directions? Stupid Question the third: What if I don't want to make a random dungeon, but I still want the scripts to do the automatic dynamic lighting lines and whatnot? I'll be playing with these tiles over the next week, and look forward to doing so :&gt;
Hey Guys, Can someone explain to me what and how I should apply the updated scripts? I had already applied the previous script as well as updated all of the dungeon tiles. I am not sure if I am supposed to overwrite the previous API or create a new one. Also I am not sure if I am supposed to add the Door Script as a separate script. and then there is another script above that is: var dungeonReadyMacros = [ Am i supposed to add these somewhere? I hate to ask however i do not want to mess up what I have already done (The Tiles). Thanks in advance. Bobby
1419357435
The Aaron
Pro
API Scripter
GenKitty: Buying first doesn't change the setup directions, you still have to do the image dragging stuff. =/ If you don't want the random, but want to make use of the tiles, you'll still need to do the same setup. I'm not certain if there is a way to add the DL walls if you just drag the tiles in, but you can certainly create the random map, and then just change all the tiles to what you want for your non-random map. Stephen will probably jump in here and give better directions at some point though. =D Bobby: You should be able to just replace your existing script with the new one.
1419358220
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
Here is what I have done and recommend, 1) Have one campaign for map making. 2) In that campaign use the latest version (0.2) of the DungeonReadyScript 3) Make a map you like. 4) In another campaign (the one you use to actively game in) use the Transmogrifier to bring your new map over. 5) In this campaign (the one you use to actively game in) be sure to have the DungeonReadyDoors script installed. 6) In this campaign (the one you use to actively game in) enter "!readydoors" and the torches and doors on your newly imported map will have token action controls.
1419359587
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
The Aaron said: you can certainly create the random map, and then just change all the tiles to what you want for your non-random map. This! But there is no reason to not change the code.... do whatever with it. dungeonReadyTiles = []; dynamicLightingArray = []; Those two arrays have everything needed to do all sorts of creative things. For example... you could have a map that changes as the players move through it.
1419360077
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
Come to think of it maps should be shared just by sharing a tile array.
Stephen S. said: For example... you could have a map that changes as the players move through it. Now that would be awesome to set up... Stephen..Thanks for the explanation. I see you had mentioned this previously, I just didn't put it all together. Do I need to add the other script that you posted? Also...probably should go on another thread but, By having a campaign for map making and then another for gaming...Do you recommend I just have two as base campaigns ie: map maker & gaming. If so can I then transfer the gaming map with all of its settings to a new campaign? Will it keep all of the scripts or will I need to add them in each time? Obviously I haven't got that far yet..Still trying to get my brain around the basics first. Oh yeah..Does the character sheets or all that is in a campaign get transferred? Seriously! Thanks for what you guys do. Bobby
I just tried the dungeonready after the new script and I have a couple of issues that I cannot fix. One is related to the tiles. I have replaced all tiles with the same method however (1) tile will not update from the watermarked one. Also When I apply the Dynamic lighting walls and Light Doors and Stairs, The walls show up but the doors do not show up. Am I supposed to see the doors with DLL (Dynamic Lighting Lines) at this time or does that happen once transfered?
1419367480
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
"probably should go on another thread"~Bobby This is the right thread. "Do you recommend I just have two as base campaigns ie: map maker & gaming. If so can I then transfer the gaming map with all of its settings to a new campaign? Will it keep all of the scripts or will I need to add them in each time?"~Bobby That is what I do.... and make use of the Transmogrifier. The map making campaign should have the DungeonReadyScript The gaming campaign should have the DungeonReadyDoors Script. Does the character sheets or all that is in a campaign get transferred?~Bobby The character sheet will get created in the gaming campaign when you run the door script. "I have replaced all tiles with the same method however (1) tile will not update from the watermarked one." ~Bobby You might have to send me a campaign invite.... There are 106 tiles that are watermarked, so, easy to miss one.
1419367773

Edited 1419368349
Stephen, I believe i got the tile fixed... I cannot get the dynamic lighting to work on the new maps created with the new script. I went back to the map I made prior to the updated script and it is working fine. Any suggestions??? Bobby
1419367899
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
What is the new map named?
1419368392

Edited 1419370820
Stephen S. said: What is the new map named? Dungeonready... Update...I changed the map name to see if that would fix to problem and it didn't. Update #2...I removed the API DR.2 and added it again. I also removed ReadyDoors API from gaming campaign and added it as a new script. The good: Dungeon is working Dynamic Lighting is working (on Walls Only) The DLL that you show in the example is not showing up (In map making campaign or gaming campaign) The Bad: Restriction is not working Light goes through doors Toggle Feature doesn't do anything
1419370521
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
Is the API running? (and spaces in the names or two pages named "Dungeonready" can halt it.)
1419370741
Wes
Sheet Author
It is possible that the map name is case sensitive. Maybe try DungeonReady. I'm not positive as I'm away from my computer and can't check.
Stephen, See above..i updated my post...I guess my browser wasn't refreshed as i did not see your post until I posted mine.
1419372637
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
Restriction is not working is a native roll20 map setting ( see section six. )
I have it checked and it does not work anymore. i have closed out of roll20 and restarted and it doesn't work now. This has happened since the new dungeonReady api was installed. I will test to see if it will work with a hand drawn and get back to you. The Darkness is Closing in has stopped working as well. Is it possible that the updated scripts could effect this? Bobby
1419377240
The Aaron
Pro
API Scripter
Is there an error message on the API page?
Really like the idea of this API, and i've been playing around with it. Bought the image packs and swapped them out. I'm seeing that any time i add a Map Feature, it is only the door. When i add a GM Feature, it only the "North" indicator. if i roll from the table, i get random results, but the resulting map/gm feature isn't added to the page. Is this a known bug? Or maybe a common mistake in updating the sample images?,