Release 0.24.0

Posted 10 January 2021 by Darragh Van Tichelen

It’s been a while! But I had a lot of free time in the past month so this release contains some exciting new features and a ton of bug fixes!

A small warning when opening a map on the new version: Due to a bugfix with zoom for non-default gridsizes, you will likely encounter your first load on a map to be slightly off centered from where you had your camera last time. This should normally not be far off from the original location. If you have issues finding your stuff back try the space bar to center on your tokens or ctrl+0 to go to the world center. If you still have issues contact me and I can give you some console code.


An often requested thing for good reason is hexagon support. I can now finally say that there is some support.

As part of the DM grid settings you can now select the grid type, this defaults to square grids, but can be changed to flat or pointy hexes. This can be configured on a campaign or location level.

It might not be extremely clear due to my low grid opacity, sorry for that

One important thing to know is that grid snapping is not yet supported, so I highly recommend to invert your ALT behaviour for now when using hexes.

Group improvements

Groups are a way to organize shapes with an optional badge to differentiate them (e.g. ogre 5). Within a group each shape has a unique value, its badge.

Up until this release there was an implicit grouping concept that would apply when you copy paste a shape.

This release greatly expands the grouping system and makes it much more configurable and explicit.

Edit Asset Group

A new tab in the edit asset dialog is now available to shape owners/DMs. This tab allows the configuration of various things related to the group the selected shape belongs to.

Character sets can be configured, 2 premade sets are available, but you’re free to set a custom set (e.g. α,β,γ,δ,ε,ζ,η,θ,ι,κ,λ,μ,ν,ξ,ο,π,ρ,ς,τ,υ,φ,χ,ψ,ω).

Badges can be toggled individually or for the entire group at once. Individual members can be removed and the entire group can also be removed.

Badges can now also be randomized to temper possible metagaming players.

Additionally there is also a new context menu option related to groups when right clicking on a selection of shapes. This allows you to create/merge/split/delete groups as you please.

This also means that groups are no longer limited to shapes of the same asset!

For more information on the grouping system check the docs


This is experimental, I expect some cornercases to appear, so please do let me know if you encounter any bugs!

A new feature for shapes is the ability to add variants. Variants are loosely defined as any other shape one might want to swap to without having to create a new token and removing a previous token. Think wildshapes, alternate art, multistage bosses, surprise reveals …

At any time only one variant is visible and can be swapped out for another one. Each variant retains its own size, properties and trackers, but trackers and auras can be configured to be shared among all variants.

As can be seen in the above video, variants can be created, renamed and removed from a new UI element at the bottom of the edit shape dialog.

Known limitations

When creating a new variant, it won’t have any of the applied settings the base variant has. This includes access rights, general shape properties (e.g. name, is a token etc) or annotations!

At the moment you can only add new variants that are assets in your asset manager. The base shape however can be any shape. In the future you’ll also be able to select a basic token as an alternative instead of only being able to pick from the asset manager.

At this moment, saving a shape with variants to the database is not possible, this will be possible in the future when you can also save other custom shapes to the database.



The initiative tool got some small changes, it received an explicit button to remove effects instead of only relying on the auto remove behaviour for negative numbers.

Additionally the round counter now starts at 1 instead of 0 and a lot of bugs related to initiative syncing have been fixed.


The map tool now has keep-aspect ratio functionality! When configuring the grid values a lock icon kan be toggled to force aspect ratio lock.

Another new thing is that you can decide to skip the resize selection, but instead directly scale the entire asset. This can be done in # of grid cells or in pixels.


The ruler got a new keybinding that allows you to bend rulers. When pressing “space” you can start a new ruler starting from the last ruler’s endpoint. The displayed distance is the total sum of all the current rulers combined.

You can now also toggle ‘show ruler’ on the select tool, to show a ruler when moving shapes. This will show a ruler starting at the original shape’s position and follow the shape you’re actively moving. This also supports ‘space’ to measure distances behind corners.

When using the ruler in select mode it will retain the privacy mode (i.e. public/private) of the ruler tool.



The vision tool’s behaviour got changed when you deselect the last shape. In the past it would immediately select everything again. This was however very counterintuitive and annoying so this has been removed.

To make it visually clear that you are limiting your vision view to a select set of tokens, the vision tool will now have a different background colour when not showing everything.

Asset import/export

Last release saw the addition of templates. It is now possible to export assets from the assetstore to your local computer and upload them to another PA server or keep them around as a sort of backup.

The exported file will end with the ‘.paa’ extension, short for planar ally assets. It will retain the exact folder structure and naming scheme that you had including all template information.

When importing a paa file it will extract everything to the current folder you’re looking at. Do take into account that files with the same name will not be overwritten, but new files and folders will always be created.

Important The above footage is sped up (or rather some frames have been cut) as the process depends on the size of the files/folders and little feedback is provided during this period currently. I hope to improve this in future releases, but it provides a working baseline for now.

General UX improvements

Opening the edit dialog

The edit dialog could always be opened from either the right click shape context menu or the quick selection info in the top right.

Now you can also press ‘enter’ on a selected shape to immediately open this window.

Moving around

You can now use the numpad to navigate around, this also has full hexagon movement support. Pressing 5 will center the screen on the origin.

Create token dialog

The input field is now auto focussed and pressing enter will submit the information!

General tools

Most tools now support the right click context menu on selected shapes without having to swap to the select tool.

There are two exceptions to this: draw and map. These have their own right click behaviour.

Additionally the filter and vision tools allow a wider set of select tool options to be used without swapping.

Finally, when changing to a tool mode that the current tool does not support, automatically change to the Select tool.

Delete performance

When removing multiple shapes at once, especially related to vision/lighting, the client could take a big performance hit or even outright stall and only perform a partial remove.

This was due to pretty inefficient recalculation of the vision/lighting triangulation. This is now done smarter and results in much snappier behaviour.

Notable fixes

Shape selection

Two fixes were made to shape selection regarding rotated shapes:

When clicking on a rotated shape with the intent to select it, the code would select the shape if you clicked on a location that the non-rotated shape would occupy.

When making a group selection, polygons (and other shapes) would use their biggest bounding box to determine hit collision. This is rather inaccurate and has now be changed to be exact.

Other Changes

Some smaller technical changes that should not immediately impact endusers have also been made:

Other fixes