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 .
×

[UPDATE WISH LIST] A brief listing of omissions, quirks, bugs, or minor features you'd like Riley to consider when looking at updating the API.

1418660144

Edited 1418660652
The Aaron
Roll20 Production Team
API Scripter
Riley has said he is doing a pass through the API code soon. He suggested starting a new thread to list any of the above. I suggest one comment per item, with a short title informing of the topic (Header 4), followed by a brief description.
1418660222
The Aaron
Roll20 Production Team
API Scripter
An updated to the Underscore.js Library Currently, 1.4.4 is available to the API. There are some nice features in 1.6 and 1.7 that would be nice to have.
1418660319
The Aaron
Roll20 Production Team
API Scripter
Images on Rollable Table Tokens don't update on side change When the API adjusts the side setting on a token, the image does not update to match that side.
1418660491

Edited 1418662106
The Aaron
Roll20 Production Team
API Scripter
The limitation to only set imgsrc to personal library links If we could create tokens with imgsrc set from other tokens on in the campaign, that would at least allow teleporting tokens between pages, or creating spell effects that have already been setup on another page. Being able to create any img that the Player has access to would be better still.
1418660623
Lithl
Pro
Sheet Author
API Scripter
sendChat(who, ...) missing avatar for characters If the first parameter to sendChat is a name, it will appear in chat similarly to the GM using the /as command: a name with no avatar. If the first parameter to sendChat is "player|" concatenated with the id of a player in the campaign, it will appear in chat as though that player had sent the message (including the player's avatar). If the first parameter to sendChat is "character|" concatenated with the id of a character in the campaign, per the documentation it is supposed to appear in chat as thought someone "Speaking As" that character had sent the message (including the character's avatar). However, the avatar does not appear. (The correct name is used, though, so the id is being parsed.)
1418660704
The Aaron
Roll20 Production Team
API Scripter
Access to the Global Illumination setting on the Page object Setting that would allow some nice automation.
1418660764
The Aaron
Roll20 Production Team
API Scripter
Access to the Light Multiplier on Tokens As it says...
1418660809

Edited 1418660893
Lithl
Pro
Sheet Author
API Scripter
The Aaron said: An updated to the Underscore.js Library Currently, 1.4.4 is available to the API. There are some nice features in 1.6 and 1.7 that would be nice to have. It may be useful to detail what these changes are. I doubt many people are interested in sifting through Underscore's changelog. The Aaron said: The limitation to only set imgsrc to personal library links If we could create tokens with imgsrc set from other tokens on in the campaign, that would at least allow teleporting tokens between pages, or creating spell effects that have already been setup on another page. Being able to create any img that the Player has access to would be better still. Since it seems the main desire for this is to copy tokens between pages, why not either a copy function for objects (with an options parameter to change properties of the copy), or make _pageid of graphics be a writable property? I like the idea of a copy function, as it could also be used for something like easily duplicating cards in a deck.
1418661039

Edited 1418662088
The Aaron
Roll20 Production Team
API Scripter
Greater transparency into the ' Sandbox closed due to error. ' error. Any sort of details we can get there would be fantastic. It's quite frustrating to hit that error and have absolutely no view on what the problem is. I spend an hour trying to get a _.reduce() call to work that should have been trivial, but this was the only error I got, forcing me to rewrite in a much less elegant and efficient way.
1418661691

Edited 1418662076
The Aaron
Roll20 Production Team
API Scripter
Brian said: The Aaron said: An updated to the Underscore.js Library Currently, 1.4.4 is available to the API. There are some nice features in 1.6 and 1.7 that would be nice to have. It may be useful to detail what these changes are. I doubt many people are interested in sifting through Underscore's changelog. The Aaron said: The limitation to only set imgsrc to personal library links If we could create tokens with imgsrc set from other tokens on in the campaign, that would at least allow teleporting tokens between pages, or creating spell effects that have already been setup on another page. Being able to create any img that the Player has access to would be better still. Since it seems the main desire for this is to copy tokens between pages, why not either a copy function for objects (with an options parameter to change properties of the copy), or make _pageid of graphics be a writable property? I like the idea of a copy function, as it could also be used for something like easily duplicating cards in a deck. re: Underscore.js: ( Changelog ) _.property(), _.matches(), _.partition(), _.each() chaining support, _.partition(), _.indexby(), _.template() revamp, etc re: imgsrc: That's why I said at least with that possible option. Full access to creating from links to images the user has access to would allow quite a bit more flexibility in what could be done, especially with configuring scripts that create tokens. Example : Stephen's Geomorph Tile Packs and the API script that creates them. Users must download and reupload the images if they want the script to create them. That's got to be less efficient than just using the single version in the marketplace. Suddenly everyone that buys the pack must duplicate all of them into the cloud. The Zip is 13 megs, I imagine uncompressed and in the cloud that's more like 25 megs. Assuming 25 people bought the set and did the upload, that's 1gig used. Multiply by the number of assets people want to do that with.
1418661838
The Aaron
Roll20 Production Team
API Scripter
Error messages with Correct Line Numbers. Keeping a log of the concatenation order of the scripts and accounting for the joining bits should allow changing the line numbers of the error messages to reflect the actual line they occurred on or at least close to it. At a minimum, it should be able to tell the script name.
1418661943

Edited 1418662051
The Aaron
Roll20 Production Team
API Scripter
Fix rotation of drawings on the Dynamic Light layer to be respected with regards to how they block light. Right now, rotating an outline of a door will not change the way it reflects light. That makes it very difficult on scripts that create dynamic lighting elements, or manipulate them.
1418662001

Edited 1418662039
The Aaron
Roll20 Production Team
API Scripter
Fix text objects' width and height to correctly reflect the bounding box of the text. Placing dynamic text is made much more difficult by not having a way to judge it's size.
1418663484

Edited 1418663495
Lithl
Pro
Sheet Author
API Scripter
The Aaron said: Error messages with Correct Line Numbers. Keeping a log of the concatenation order of the scripts and accounting for the joining bits should allow changing the line numbers of the error messages to reflect the actual line they occurred on or at least close to it. At a minimum, it should be able to tell the script name. Totally behind this. I would like to encourage script authors to start using fewer anonymous functions, however, as the current system does report the name of the function that the error occurred in. on('ready', function(){...}); is easy to write for something short, but function foo(){...} on('ready', foo); is more maintainable in the long run.
1418663777
The Aaron
Roll20 Production Team
API Scripter
Brian said: The Aaron said: Error messages with Correct Line Numbers. Keeping a log of the concatenation order of the scripts and accounting for the joining bits should allow changing the line numbers of the error messages to reflect the actual line they occurred on or at least close to it. At a minimum, it should be able to tell the script name. Totally behind this. I would like to encourage script authors to start using fewer anonymous functions, however, as the current system does report the name of the function that the error occurred in. on('ready', function(){...}); is easy to write for something short, but function foo(){...} on('ready', foo); is more maintainable in the long run. You could write: on('ready', function myOnReady(){...}); Certainly, proper functional decomposition helps in many regards though, so yes please! =D
Roll20 should hire you Aaron lol
1418667485
Steve D.
Sheet Author
API Scripter
Access to 3D Dice system Be able to edit dice icon graphics and dice colors for other game systems.
1418669637
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
Access to image tags
1418670086
Finderski
Pro
Sheet Author
Compendium Curator
Support for Card Decks Ability to deal, sort, manage discards, etc.
1418671743
Lithl
Pro
Sheet Author
API Scripter
We need to be careful to not venture too far into feature requests: that's what the suggestions forum is for. It's one thing to talk about fixing minor bugs or granting access to simple properties. It's another thing to talk about entire features. Even if it's simply API control of a regular UI feature that already exists, we should keep the distinction in mind for this thread going forward.
1418674639

Edited 1418674915
vÍnce
Pro
Sheet Author
Shaun Bradley (Elmo) said: Roll20 should hire you Aaron lol +100 API access to sounds/sound library
1418675085
vÍnce
Pro
Sheet Author
Brian said: We need to be careful to not venture too far into feature requests: that's what the suggestions forum is for. It's one thing to talk about fixing minor bugs or granting access to simple properties. It's another thing to talk about entire features. Even if it's simply API control of a regular UI feature that already exists, we should keep the distinction in mind for this thread going forward. Oops, your right Brian. I hadn't read your post until after I mentioned "API access to sounds/sound library" Without knowing enough/anything about the API, that's probably more of a suggestion... ;-(
1418677034
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
<a href="https://app.roll20.net/forum/post/1241901/api-the-" rel="nofollow">https://app.roll20.net/forum/post/1241901/api-the-</a>... Anchor tag commands. (and vote)
1418677650
The Aaron
Roll20 Production Team
API Scripter
sendChat() doesn't currently support the quoted names of players/characters for whispers Quoting of character and player names was added to the chat, but the backend doesn't support it yet.
1418677762
The Aaron
Roll20 Production Team
API Scripter
Add Campaign Owner ID and a list of Promoted GM ids to the Campaign object This could probably be seen as a suggestion, but it's omission seems more like an oversight than a design decision.
1418693579
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
THIS <a href="http://fabricjs.com/interaction-with-objects-outsi" rel="nofollow">http://fabricjs.com/interaction-with-objects-outsi</a>... Fabric.js demos Interaction with objects outside canvas
1418831700
The Aaron
Roll20 Production Team
API Scripter
Writeable Path attribute on a Path object. Currently, _path is readonly. It would be great if we could change the path of a path object. Right now, if we want to do interesting changes, we need to create a new path for each change we want to make, and then hide the path object we already had somewhere, expecting the user to delete it later. It's tantamount to making a new token each time we want to change the hit points.
1418932559

Edited 1418932739
The Aaron
Roll20 Production Team
API Scripter
Token Action Bar updates immediately when the API makes changes that would be reflected Currently, the token must be reselected to rebuild the list of Token Actions. Allowing them to change immediately would allow one use actions to be removed, or actions that added other options to be reflected without the necessity to deselect. It could also change when the token's reference changes, such as when a Druid is into a wild shape and gain new powers.
1418933354
The Aaron
Roll20 Production Team
API Scripter
Writeable macrobar field on Player object to allow dynamically adjusting which macros they have displayed. Would allow dynamic adjusting of player options for games that have phases or scripts that manage options.
1418974968
The Aaron
Roll20 Production Team
API Scripter
Access to the representative token assigned to a character Currently, the API has no notion of this token. It would be great to be able to get and set the token, or change its properties. Even just spawning it at a location on a page would be awesome.
1418975446

Edited 1418976139
DXWarlock
Sheet Author
API Scripter
Delete objects from within API We can create objects using createObj, but no function such as DeleteObj. The best we can do now is hide them on GM layer to manually delete later.
1418976390

Edited 1418976535
DXWarlock
Sheet Author
API Scripter
Update linked bars when changing within API Currently when doing something such as id.set("bar3_link", barSet); it does not update the bar graphic correctly unless you select the token and open the stats screen, causing weird issues. Such as going from an attribute thats 20/20 to one thats 400/500 the bar goes off the screen as if its displaying 400/20. Opening the tokens stats and 'reselecting' the same attribute manually fixes this. Only work around at the moment is to set the bar, then ALSO set the current and max values to the values of that attribute (which is redundant) in the API
1419002948
Lithl
Pro
Sheet Author
API Scripter
William R. said: Delete objects from within API We can create objects using createObj, but no function such as DeleteObj. The best we can do now is hide them on GM layer to manually delete later. &lt;3 &lt;3 &lt;3
I dont know much about the API but I am trying to learn and in the documentation there is a section with a bunch of distance unit/pixel conversions that say not yet implemented...they seem to have been there for some time....maybe we should focus on previously announced but not yet finished functions before adding new stuff???? unless they have been added and nobody updated the wiki....
1419245974
The Aaron
Pro
API Scripter
Roger A. said: I dont know much about the API but I am trying to learn and in the documentation there is a section with a bunch of distance unit/pixel conversions that say not yet implemented...they seem to have been there for some time....maybe we should focus on previously announced but not yet finished functions before adding new stuff???? unless they have been added and nobody updated the wiki.... You are right, they are not yet implemented. Those are convenience functions that don't actually add functionality but getting them implemented isn't a bad idea.
I suppose it would be silly to ask if the API could be given the ability to do things with the FX engine(spawn FX at a specific spot, set variables for what it looks like) since the FX engine isn't finished yet?
Ability to copy scripts between campaigns
1419306382
Lithl
Pro
Sheet Author
API Scripter
Brian said: We need to be careful to not venture too far into feature requests: that's what the suggestions forum is for. It's one thing to talk about fixing minor bugs or granting access to simple properties. It's another thing to talk about entire features. Even if it's simply API control of a regular UI feature that already exists, we should keep the distinction in mind for this thread going forward. Just reiterating this, since IMO we appear to be drifting a bit again. This isn't the suggestions forum. To quote the title of the thread, "omissions, quirks, bugs, or minor features." Deleting objects is something of an omission, since we can create, read, and update objects (we need the D part of CRUD). Error reporting is a bit of a quirk of the system. sendChat as a player is a bug (missing avatar). Implementing the documented-but-not-implemented utility functions is a minor feature. I don't want to see this thread get locked and everyone directed to the suggestions forum instead, because I like the majority of the stuff that's here, but wouldn't find them important enough to spend a precious vote on if it were an individual suggestion.
1419913222
The Aaron
Pro
API Scripter
Fix the error to the log when you aren't specifying an image for table rows, characters, and handouts Currently, if you create objects that have an imgsrc, but don't specify it, you get the error: "ERROR: You cannot set the imgsrc or avatar of an object unless you use an image that is in your Roll20 Library. See the API documentation for more info."
1419964293
The Aaron
Pro
API Scripter
Objects passed to on('add:graphic',...) and related are not always well formed Often, objects passed to these event handers are not completely created yet, and accessing them will cause crashes similar to the createObj() bug. Current workaround is to setTimeout() and process them after 2-5 seconds.
1419966843
Lithl
Pro
Sheet Author
API Scripter
The Aaron said: Objects passed to on('add:graphic',...) and related are not always well formed Often, objects passed to these event handers are not completely created yet, and accessing them will cause crashes similar to the createObj() bug. Current workaround is to setTimeout() and process them after 2-5 seconds. How, specifically, are they not well-formed?
1419968115
The Aaron
Pro
API Scripter
I don't recall specifically. Certainly the object lacked properties that would have been copied from the source object. It's possible setting properties were not retained or caused an outright crash. I'll have to make an example and find out for sure.
A lot of this stuff (or at least a decent chunk of it) is addressed in the newest Dev update (details in the Mentors forum). I'll continue to hack away on it as I'm able during this Dev cycle.
1421023252
The Aaron
Pro
API Scripter
So AWESOME!
1421423390

Edited 1421423428
Ability to Call Jukebox from API Because what good is automatically opening doors, setting off traps, or showing damage if you can't have creaking hinges and cries of dismay accompanying it!
1421427607
The Aaron
Pro
API Scripter
Mark R. said: Ability to Call Jukebox from API Because what good is automatically opening doors, setting off traps, or showing damage if you can't have creaking hinges and cries of dismay accompanying it! That is a suggestion, and beyond the scope of intent for this list. There is an existing suggestion for this already: <a href="https://app.roll20.net/forum/post/1241733/sound-tr" rel="nofollow">https://app.roll20.net/forum/post/1241733/sound-tr</a>...
My apologies! Thanks!
1421438453
The Aaron
Pro
API Scripter
No problem. =D