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

API Roadmap

As with so many things relating to Roll20, I hesitate to put specific dates with these items since things are very "fluid" around here :-). But I would like to keep you guys up to date in terms of what my top priorities for the API are in the short and long term. Coming Soon-ish (Probably Within the Next Few Updates) API Repository (primary focus being compatibility of scripts, and ease of using scripts for non-programmers) Card Deck objects Jukebox objects (and Jukebox controls) Ability to at least *clone* if not *create* all available objects (not sure yet how to let folks create from scratch objects which rely on external images and paths which require long strings of computer-generated information based on user interaction) Long Term Goals (3 - 6 months out) Better debugging support REST API Finish up utility functions (finally...) Information on user interaction ( what token was selected when command was sent (done), ability to attach commands to right-click menu, possibly some other UI customizations/hooks)
Nice to hear that, you guys are awesome! Did someone mention that before? :) Ok here's a few comments: Riley D. said: Ability to at least *clone* if not *create* all available objects (not sure yet how to let folks create from scratch objects which rely on external images and paths which require long strings of computer-generated information based on user interaction) A few options for creating objects might be: "Pull Character linked to Character Sheet XY out onto the map" - granted that's not really creating from scratch but should be in there if you're on it anyway Use picture "Goblin 123" from the library/search function/marketplace and put it on the map. I guess there gotta be a unique identifier to each of those search result goblins, so they can be referenced? Use picture "Orc 456" from my own library (not sure how much that differs from the previous option internally) Use picture from this URL and add it Riley D. said: REST API Information on user interaction (what token was selected when command was sent, ability to attach commands to right-click menu, possibly some other UI customizations/hooks) I'm not sure what REST API is. Really looking forward to the other one though, and wished it came earlier. But that it's on your radar at all is good news already!
1373606468
Alex L.
Pro
Sheet Author
Quatar said: Nice to hear that, you guys are awesome! Did someone mention that before? :) Ok here's a few comments: Riley D. said: Ability to at least *clone* if not *create* all available objects (not sure yet how to let folks create from scratch objects which rely on external images and paths which require long strings of computer-generated information based on user interaction) A few options for creating objects might be: "Pull Character linked to Character Sheet XY out onto the map" - granted that's not really creating from scratch but should be in there if you're on it anyway Use picture "Goblin 123" from the library/search function/marketplace and put it on the map. I guess there gotta be a unique identifier to each of those search result goblins, so they can be referenced? Use picture "Orc 456" from my own library (not sure how much that differs from the previous option internally) Use picture from this URL and add it Riley D. said: REST API Information on user interaction (what token was selected when command was sent, ability to attach commands to right-click menu, possibly some other UI customizations/hooks) I'm not sure what REST API is. Really looking forward to the other one though, and wished it came earlier. But that it's on your radar at all is good news already! A REST API basically would let a site/app outside of roll20 request information. Riley D. said: As with so many things relating to Roll20, I hesitate to put specific dates with these items since things are very "fluid" around here :-). But I would like to keep you guys up to date in terms of what my top priorities for the API are in the short and long term. Coming Soon-ish (Probably Within the Next Few Updates) API Repository (primary focus being compatibility of scripts, and ease of using scripts for non-programmers) Card Deck objects Jukebox objects (and Jukebox controls) Ability to at least *clone* if not *create* all available objects (not sure yet how to let folks create from scratch objects which rely on external images and paths which require long strings of computer-generated information based on user interaction) Long Term Goals (3 - 6 months out) Better debugging support REST API Finish up utility functions (finally...) Information on user interaction (what token was selected when command was sent, ability to attach commands to right-click menu, possibly some other UI customizations/hooks) All looking good so far Riley. For creating objects that require stuff from the lib I'm happy at least to just use debugging to get the values out of a object I create manually until you can work out a better way (maybe displaying a id we could use in the lib on the dev server), and as for the paths just give us the syntax and we will make tools for it in the mean time if they are needed. Can you enlighten us a little on what your current thoughts are on the API Repository or are you still undecided?
For creating objects that require stuff from the lib I'm happy at least to just use debugging to get the values out of a object I create manually until you can work out a better way (maybe displaying a id we could use in the lib on the dev server), and as for the paths just give us the syntax and we will make tools for it in the mean time if they are needed. Yeah. At this point it's probably going to be a combination of "use this image from my image library", and "you can use URLs as long as they are files that have been uploaded to Roll20." The main thing I'm concerned about is allowing arbitrary URLs as image sources could allow people to cause security issues for players. Honestly I may have to go back and enforce that same restriction for /direct Chat URLs as well...we'll see. Can you enlighten us a little on what your current thoughts are on the API Repository or are you still undecided? The only thing I've decided so far is that a) there will be versioning, and b) the script will have to be hosted with us (as opposed to relying on Gists). The reason for that is that once a script is approved, if it's a Gist someone could go and change it and we would start pulling the new version without re-approving it. But I have done some basic research into building a basic dependency management system, so hopefully we can get it set up similar to npm or gem where you just list all the dependencies, and then it will automatically resolve those and include them. 
1373638512
Alex L.
Pro
Sheet Author
Riley D. said: For creating objects that require stuff from the lib I'm happy at least to just use debugging to get the values out of a object I create manually until you can work out a better way (maybe displaying a id we could use in the lib on the dev server), and as for the paths just give us the syntax and we will make tools for it in the mean time if they are needed. Yeah. At this point it's probably going to be a combination of "use this image from my image library", and "you can use URLs as long as they are files that have been uploaded to Roll20." The main thing I'm concerned about is allowing arbitrary URLs as image sources could allow people to cause security issues for players. Honestly I may have to go back and enforce that same restriction for /direct Chat URLs as well...we'll see. Yeah that sounds good to me, as I say I know its not exactly easy to do so I'm fine with working around what ever you put in. Can you enlighten us a little on what your current thoughts are on the API Repository or are you still undecided? The only thing I've decided so far is that a) there will be versioning, and b) the script will have to be hosted with us (as opposed to relying on Gists). The reason for that is that once a script is approved, if it's a Gist someone could go and change it and we would start pulling the new version without re-approving it. But I have done some basic research into building a basic dependency management system, so hopefully we can get it set up similar to npm or gem where you just list all the dependencies, and then it will automatically resolve those and include them.  Sounds good, I was going to suggest you directly link to a revision of a Gist (I don't think revisions can be edited) but that was more to make life easyer for you I'm more than happy for you to roll your own. The one thing that would be helpful is if you could rig it up so the debugger knows what script takes up what line regions in the combined script so it can report what script an error happens in. Keep up the good work.
Riley D. said: For creating objects that require stuff from the lib I'm happy at least to just use debugging to get the values out of a object I create manually until you can work out a better way (maybe displaying a id we could use in the lib on the dev server), and as for the paths just give us the syntax and we will make tools for it in the mean time if they are needed. Yeah. At this point it's probably going to be a combination of "use this image from my image library", and "you can use URLs as long as they are files that have been uploaded to Roll20." The main thing I'm concerned about is allowing arbitrary URLs as image sources could allow people to cause security issues for players. Honestly I may have to go back and enforce that same restriction for /direct Chat URLs as well...we'll see. Ah hadn't thought about that, but that makes perfect sense. Far too easy to put a malicious script on a server somewhere, name it .jpg and hope it exploits some loophole. As long as I can upload something, reference it in my script and then distribute the script and the script will use said uploaded image for the new user, I don't think it really needs more.
Great to hear about "Deck" support in the API coming soon.   You mentioned in an earlier thread with my question about card name and you mentioned the "Card" object was not fully available yet in the API, that you needed to add that.  Sounded like that would be sooner than later, just wondering if that will be out there along with the deck stuff, or if that is in the 3-6 months boat.
Riley D. said: Ability to at least *clone* if not *create* all available objects (not sure yet how to let folks create from scratch objects which rely on external images and paths which require long strings of computer-generated information based on user interaction) For paths, possibly make a subscipt in the API that recognizes text, circle, and poly commands? i.e.  drawing(){ type="path" subtype="poly" height= number of pixles in height width= number of pixels in width left top color } and utilize those attributes to create a shape? add a varaiable for circles which is a radius and use left and top for a center, as well as add a string function for text? (Sorry if this is a newbie suggestion, fairily new to programming and also don't know what system you use for creating vectors)
1374039243
Alex L.
Pro
Sheet Author
Emile l. said: Riley D. said: Ability to at least *clone* if not *create* all available objects (not sure yet how to let folks create from scratch objects which rely on external images and paths which require long strings of computer-generated information based on user interaction) For paths, possibly make a subscipt in the API that recognizes text, circle, and poly commands? i.e.  drawing(){ type="path" subtype="poly" height= number of pixles in height width= number of pixels in width left top color } and utilize those attributes to create a shape? add a varaiable for circles which is a radius and use left and top for a center, as well as add a string function for text? (Sorry if this is a newbie suggestion, fairily new to programming and also don't know what system you use for creating vectors) As I pointed out we are more than capable of writing functions that create circles and other shapes.
Is there any talk about creating a marketplace for scripts?
1375421288
Alex L.
Pro
Sheet Author
Jonathan S. said: Is there any talk about creating a marketplace for scripts? Yes ... "API Repository" its like the 1st thing on his list, did you even read the OP?
Marketplace and Repository are two different implementations of a similar feature though. He was probably asking specifically about being able to sell API scripts, which I do believe won't be happening.
1375424913
Alex L.
Pro
Sheet Author
HoneyBadger said: Marketplace and Repository are two different implementations of a similar feature though. He was probably asking specifically about being able to sell API scripts, which I do believe won't be happening. If it does it will just be part of the Repository, he hasn't said one way or another at any point. I agree its unlikely. Remember the current library and market place are basically one and the same thing, just two parts of one feature. If the repo comes out in such a way that you don't get access to the source code of scripts you install then I would say he designed it so it could be a market place, as that would be a requirement for selling scripts. I havent watched all of Wednesdays vid yet once i have if he hasn't said anything i will try to remember to ask him some questions next wednesday.
I think he mentioned it here on the API forums or in one of the mentor podcasts.
1375428073
Alex L.
Pro
Sheet Author
HoneyBadger said: I think he mentioned it here on the API forums or in one of the mentor podcasts. This is the last I have seen on the matter. Riley D. said: Can you enlighten us a little on what your current thoughts are on the API Repository or are you still undecided? The only thing I've decided so far is that a) there will be versioning, and b) the script will have to be hosted with us (as opposed to relying on Gists). The reason for that is that once a script is approved, if it's a Gist someone could go and change it and we would start pulling the new version without re-approving it. But I have done some basic research into building a basic dependency management system, so hopefully we can get it set up similar to npm or gem where you just list all the dependencies, and then it will automatically resolve those and include them. 
Hello this is penty!!!!!!!!!!!!
If you offer a REST API that would allow sending of information to and from roll20, I'll gladly pay to be Mentor. Wink, wink, nudge, nudge :)
Davout said: If you offer a REST API that would allow sending of information to and from roll20, I'll gladly pay to be Mentor. Wink, wink, nudge, nudge :) +1000
Riley, Working in the software development field I understand how timelines can change. But I am very curious about the REST API time frame. What does it currently look like? Thanks.
Davout said: Riley, Working in the software development field I understand how timelines can change. But I am very curious about the REST API time frame. What does it currently look like? Thanks. I don't like to commit to hard timelines in advance since it's just me and sometimes I get bogged down with unexpected things like bugs, technical support, server outages, etc. However, at this point you can expect to hear more about a REST API in the next few weeks.
Riley D. said: I don't like to commit to hard timelines in advance since it's just me and sometimes I get bogged down with unexpected things like bugs, technical support, server outages, etc. However, at this point you can expect to hear more about a REST API in the next few weeks. Look forward to it Thanks.