

Improved F/X Tool
We've been hard at work on re-working the F/X Tool. This is something that we created back in the day as a "cool experiment," and until now we haven't had a chance to really get it to the point that it was super-useful. But today that changes!
In today's update, you'll find a plethora of additional F/X options that you can use, including multiple color schemes for some. In addition, some of the F/X (such as, for example, Beam), now allow you to click-and-drag to determine the direction that the effect will travel -- perfect for firing a magical spell!
You can also now add your own custom effects, and share the code that powers those effects with other users. For more information on the new features, read our updated Wiki page: https://wiki.roll20.net/Custom_FX
Finally, we've added more robust support for the F/X Tool to the macro system, including support for custom FX by name. Custom FX names cannot have spaces or "-" characters in them.
/fx <type-color> <target.id> <destination.id>
The id's can be set manually if you know them, but more likely you'll want to dynamically select them with @{selected|token_id} or @{target|token_id}
/fx beam-acid @{selected|token_id} @{target|token_id}
If a destination isn't set but one is required for an aimed effect, the agency overlay will appear allowing you to aim the effect. If no target is set, the fx will assume the selected token is the target. If no token is selected it will throw an error.
(Note that the F/X Tool is a feature that is only available to Pro users.)
Re-Order Repeating Section Rows
Now when you click the Modify button on a repeating section, you'll find that in addition to the already-existing trash can icon for deleting a row, there is a handy move icon on the left-hand side. You can click and drag on this move icon to move the rows in the repeating section around as you wish. This is made possible by the changes we've made in the past couple of months where we switched to repeating rows having a randomly-assigned, unique ID. So now even if you re-order the rows your existing macros, buttons that you have dragged onto your quick bar, etc. will continue to function. Note that nth-based macros (such as "repeating_spells_$0" for the "first row") will work with this as well -- so if you move a new row to the first position, it will now be the $0th row, etc.
API Support for F/X Tool
There's now support in the API for the F/X Tool, via two new functions:
spawnFx(x, y, type, pageid): Spawns a brief effect at the location at x,y of type. If you omit the pageid or pass 'undefined', then the page the players are currently on ('playerpageid' in the Campaign object) will be used by default. Type should be a string and be one of the following:
beam-color
bomb-color
breath-color
bubbling-color
burn-color
burst-color
explode-color
glow-color
missile-color
nova-color
splatter-color
Where "color" in the above ones that contain that word is one of:
acid
blood
charm
death
fire
frost
holy
magic
slime
smoke
water
spawnFxBetweenPoints(point1, point2, type, pageid): Works the same as spawnFx, but instead of a single point you pass in two points, in the format {x: 100, y: 100}. For example: spawnFXBetweenPoints({x: 100, y: 100}, {x: 400, y: 400}, "burn-acid"); The effect will "travel" between the two points for effects that support that (the same ones that allow agency on the client side).
Note that you can also use the above "type" names with the "/fx <effectname>" macro command.
API Support for GM Page
There is a new property in the API for the Player object called "_lastpage". This read-only property contains the current page that a player last viewed as a GM. So basically, you can access this property to know what page a GM is looking at currently. Note that if the GM has joined the game as a player, this property may be "out of date" since the page a player is viewing is set by either "playerpageid" on the Campaign object or "playerspecificpages" on the Campaign object (depending on what the GM has chosen to do in-game).
Repeating Section Events and Attribute
Sheetworkers can now listen for a change event of a special attribute that is modified whenever a repeating section is re-ordered.
on("change:_reporder_repeating_<sectionname>");
You can also request the "_reporder_repeating_sectionname" attribute with getAttrs() to get a list of all the IDs in the section that have been ordered. However note that this may not include the full listing of all IDs in a section. Any IDs not in the list that are in the section are assumed to come after the ordered IDs in lexographic order.
The API can also access this attribute using findObjs({_type: "attribute", name: "_reporder_repeating_<sectionname>"});
Bug Fixes and Miscellaneous
- You can now use gradients in the CSS for the background-image property when using /direct commands via the API. You can also now make use of the background-size property as well.
- Fixed a bug (hopefully) which would sometimes cause the Jukebox to stop playing tracks for some players when there are more than 4 players in a game and you are using a Jukebox Playlist.
- When you re-join the game as a GM, we will now attempt to put you back on the last page you were viewing as the GM, rather than the page the players are on.