Releases: Kruptein/PlanarAlly
v2025.3.0
For more details on what's new checkout https://www.planarally.io/blog/release-2025.3/
planarally-bin provides a prebuilt client, with a python server that you'll need to run yourself.
planarally-windows provides a compiled executable that can simply be run by double clicking the exe in the planarally-windows-2022.3 folder. (note an issue with the windows build occurred, which I'll rectify with a separate v2025.2.1 release later this has been resolved)
Check the documentation over at https://www.planarally.io for more info
The changelog for this release:
Added
- Admin panel that can be accessed from the dashboard
- Currently limited to the main admin_user as configured in the server's config
- Shows roughly same content as the original separate admin client
- Also shows total number of users/campaigns and a quick user create button
- Last login day for users
- Toggle to search through shared assets
- This is heavier for the server and niche so not enabled by default
Changed
- Smoothed out the scroll zoom behaviour when zoomed in furthest
- [server] Config values that are not known will now error and stop the server from starting
- [tech] Add debounce to asset search
Removed
- [server] Legacy server configs
- [server] Admin server - this is replaced with a new in-client admin dashboard
Fixed
- Ensure stat export is chunked to prevent rejection from stat server
- Rapid (dis)connect sequences flooding the stats
- Don't re-open shape properties after a re-select
- Last grid-line in X or Y axis sometimes not rendering
- Deleting first initiative entry would enter invalid state
- Going to previous initiative would decrement effect timers
- Going to previous initiative could enter negative rounds
- Render bug in vision mode "behind" showing the entire shape under certain circumstances
- Asset search server query had a missing () causing assets from other users to show up
- Floor renaming the wrong entry
v2025.2.2
This is a small release that fixes three bugs reported on the latest release:
- Initiative effect rename losing focus after pressing 1 character
- Locked shapes not being selectable directly
- DM only auras where no longer rendered due to a bug in the new access logic
v2025.2.1
This contains some small fixes/additions to the new mail setup.
Added
- SSL email configuration
- Choose between START TLS / TLS / SSL / LMTP for smtp connection
Fixed
- Mail not working in envs where username env is missing (e.g. docker)
- This is a problem in the mail lib used, but circumvented in the Dockerfile
- Mail error showing a 500 error in the client
- Email setup reset when the config changes to make sure new email values are used
v2025.2.0
For more details on what's new checkout https://www.planarally.io/blog/release-2025.2/
planarally-bin provides a prebuilt client, with a python server that you'll need to run yourself.
planarally-windows provides a compiled executable that can simply be run by double clicking the exe in the planarally-windows-2022.3 folder. (note an issue with the windows build occurred, which I'll rectify with a separate v2025.2.1 release later this has been resolved)
Check the documentation over at https://www.planarally.io for more info
The changelog for this release:
Server owners: The server config has changed location and format. Ensure you check the release notes for the necessary info.
The old config files are not yet removed from git to prevent losing modifications you made to these files.
They will be removed in a future release though.
The server is now also managed using uv, if you manually manage the server using python/pip directly instead of using docker, you need to install this as well. See the server's readme for details.
Added
- New quick toggle to disable LoS rendering for the DM only
- Forgot password flow if Mail is configured on the server
- This only works if the user account actually has an email-address
- Success notification when changing email in the settings
- Mod improvements
- Can now register shape context menu entries
- Upload/Remove mods for a specific campaign
- Asset create folder/upload file/remove buttons to the in-game asset browser
- [server] Email configuration setup
- [server] Anonymous stat collection
- Sends usage stats about number of campaigns and users to stats.planarally.io
- Identifiers are anonymized, no personal info is included
- Can be disabled
Changed
- Access levels are no longer additive
- e.g. edit access used to automatically include movement & vision access, this is no longer the case
- Selection draw box now appears on top of the fog
- Selection rotate UI now appears on top fo the fog
- Moved zoom bar and selection info behind main modals when overlapping
- the selection info can pop-over when hovered with the mouse
- [server] Server config setup has changed
- The server config is now by default stored in the
datadirectory and in toml format - It's no longer tracked in git, as the default values are now coded in python itself
- An env variable can be used to change the location
- Changes to the config are now checked and loaded by the server during runtime
- The server config is now by default stored in the
- [tech] Server shutdown sequence has been modified
- [tech] Mod improvements
- DataBlock API changes
- Made most functions sync
- Save method renamed to
sync - API added to handle reactivity inside the datablock
- Now listens to saved events from other clients to update local data
- No longer runs the (de)serializer per key, but instead just on the entirety, alloweing root arrays
- Added utility
useDataBlockhook to reduce a lot of boilerplate in mod components - Serialize and Deserialize generic order are swapped
- Now expects a root level
eventsobject with event functions instead of them being exported - Remove registerTrackerSettings event
- DataBlock API changes
Removed
- The
isTokenproperty has been removed from all shapes- This is now fully derived based on vision access of the shape
Fixed
- Draw tool polygon was not updating vision until shape completion
- Reduced some render overhead when token shapes that the player did not own were moved
- Shape context menu not closing when selecting an option
- Select tool build UI not appearing when mode toggling
- Datablocks for room and user categories had a bug in the server preventing creating them
- Asset context-menu remove not working
- Asset context-menu background colour being wrong in-game sometimes
- Asset upload bar missing in the dashboard asset manager
- Asset picker out of game now uses the newer UI
- Dropping assets you have shared-view permission for on the map was not working
- Movement only door toggle not immediately rerendering screen
- Select tool UI would sometimes stick around when there is no shape selected anymore
Release 2025.1.1
This is a fix to the docker & windows builds, no other changes were made.
See https://github.com/Kruptein/PlanarAlly/releases/tag/2025.1 for the main release notes.
Release 2025.1
For more details on what's new checkout https://www.planarally.io/blog/release-2025.1/
planarally-bin provides a prebuilt client, with a python server that you'll need to run yourself.
planarally-windows provides a compiled executable that can simply be run by double clicking the exe in the planarally-windows-2022.3 folder.
Check the documentation over at https://www.planarally.io for more info
The changelog for this release:
Added
- Draw tool:
- Added default colours for walls, windows, doors
- These get automatically applied when the relevant vision/logic settings are enabled in the draw tool
- Can be disabled by unchecking the 'prefer default colours' checkbox in the draw tool vision settings
- The specific colours used can be configured in the user options Appearance section and will update shapes retroactively
- Notes:
- Notes can now be popped out to a separate window
- NoteManager:
- Added a button to clear the current search
- In-Game Assets UI:
- Option to search through assets
- Option to add folder shortcuts per campaign
- These allow quicker navigation to frequently used folders
- A "All assets" shortcut is always available
- [server] Assets:
- limits:
- Added limits to the total size of assets a user can upload and the size of a single asset
- These limits can be configured in the server config
- By default there are no limits, it's up to the server admin to configure them
- These limits will only apply to new assets, existing assets are not affected
- Thumbnails:
- The server will now generate thumbnails for all assets
- limits:
Changed
- Dashboard:
- Changed some border colours in the create new game menu
- MenuBar:
- Add Notes button for players
- [tech] Select tool:
- Delayed syncing of selection state to the global state from mouse down to mouse move/up
- This fixes some of the entries in the Fixed section
- AssetManager:
- Changed UI of renaming assets, allowing inline editing rather than opening a popup
- The images shown in the asset manager will now use the thumbnail of the asset if available
- This should reduce load times and improve general performance
- This also applies to the preview when hovering over assets in the in-game assets sidebar
- Remove initiated from the context menu now removes the entire selection
- Context menu retains selection unless an item not in the current selection is clicked
- In-game assets:
- Sidebar is removed and replaced with a new Assets dialog similar to notes
- The new UI has almost full compatibility with the assets in the dashboard
- Notes:
- Add filtering option 'All' to note manager to show both global and local notes
- Note popouts for clients without edit access now show 'view source' instead of 'edit'
- Dice tool:
- Last result is now displayed in the dice tool rather than a popup window
- Result breakdowns are shown in the last result display and history
- Added a reroll button to quickly redo the previous roll
- Added a reroll button to history entries
- Add an option to roll 3D dice inside a dice box rather than over the playfield
- Input field now scrolls to the end after populating via the on screen buttons
- @planarally/dice:
- (this is the standalone dice library that handles most of the dice logic and rendering)
- Upgraded to v0.7
- Dice will now stop sliding smoother
- Clear state can be configured
- D100 dice now properly work in 3D for the full range (1-100 / 0-99)
- Currently hardcoded to 1-100 in the client, but the library can be told otherwise
- I18n:
- Added 95% i18n for zh (except diceTool)
- [server] Assets:
- Assets are no longer stored in a flat folder structure, but instead use a subpath based structure
- An asset with hash
35eaef2e9a116aa152f7f161f1281411cb1e1375is now stored asassets/35/ea/35eaef2e9a116aa152f7f161f1281411cb1e1375
- An asset with hash
- Assets are no longer stored in a flat folder structure, but instead use a subpath based structure
- [tech] Systems: Move system-core from game/ to core/ so that it can also be used by e.g. assets
Removed
- Labels:
- As mentioned in the last 2 releases these were going to be removed
- I wasn't happy with the current implementation and they were causing more confusion than they were useful
- This also removes the Filter Tool
- .paa asset handling
- This was no longer really maintained and the current frontend doesn't offer any support for it
Fixed
- Notes:
- It was possible to open a 'view-only' note on a tab you weren't supposed to see
- Note manager could be empty and unusable when changing locations or losing view access to an open note
- Search filter not resetting page to 1 potentially causing a blank page if on an other page
- Default edit access on notes was not correctly applied
- Fix searchbar overlapping over other modals
- Global notes no longer have a default access level
- Notes can no longer be locally edited by clients without edit access through the note popouts
- Shape Properties:
- Input changes could not persist or save on the wrong shape if selection focus was changed while editing (see selection changes)
- Modals
- Dragging modals (e.g. notes) now also brings them to the foreground as if clicked
- Composites:
- Moving composites to a different location could sometimes lead to errors on the client even though the moves were succesful serverside
- Select Tool:
- Snapping an existing shape point to some other point could be overriden with a snap to the grid
- Game Listing:
- Clicking on a session that shares a name with another session would foldout both
Release 2024.3
For more details on what's new checkout https://www.planarally.io/blog/release-2024.3/
[2024-11-12] A hotfix has been released that addresses a db corruption when removing Characters. See #1512 for details. The assets in this download section have been updated.
planarally-bin provides a prebuilt client, with a python server that you'll need to run yourself.
planarally-windows provides a compiled executable that can simply be run by double clicking the exe in the planarally-windows-2022.3 folder.
Check the documentation over at https://www.planarally.io for more info
The changelog for this release:
Added
- Optional simple chat system
- This is not stored serverside, so messages will be lost on refresh or later re-opening of the session
- Chat is basic markdown aware, but does not allow direct HTML
- (image) urls can be pasted without special markdown syntax
- Can be collapsed by clicking on the chat title
- Collapse Selection: Temporarily move all shapes in the selection under the cursor for easier navigation through corridors
- [DM] new DM settings section: Features
- Can be used to enable/disable certain features campaign wide
- Currently limited to chat & dice
Changed
- Select tool:
- now integrates all the ruler toggles in its UI as well
- these toggles are synced with the ones in the ruler
- Spell tool:
- now renders hexes instead of squares in Hex grid mode
- step size changed to 1 in Hex grid mode
- shape bar is no longer visible, only hex is available in hex grid mode for now
- Ruler tool:
- now defaults to sharing with other users
- Dice
- non-3D mode
- option to use a click interface to build dice strings
- extra operators and selectors (e.g. keep highest 2)
- 3D code & assets are only loaded when settin "use 3D" to true in the tool config for the first time
- 3D physics now uses havok engine instead of ammo (babylonjs upgraded from 4 to 7)
- history & result UI slightly changed
- Option to share result with nobody
- clicking on the notification of another player's roll shows the details
- clicking on a history entry shows the details
- Toolbar UI
- All extended tool UI is now right aligned fully, no longer hovering over the related tool
- This was preventing tools to the left to be limited in screen estate they could occupy
Fixed
- Draw tool:
- Clicking on the "blocks movement" label in the draw tool's vision setting now properly toggles the related checkbox
- Ruler tool:
- Gridmode spacebar did not synchronize snapped end correctly to other players
2024.2
For more details on what's new checkout https://www.planarally.io/blog/release-2024.2/
planarally-bin provides a prebuilt client, with a python server that you'll need to run yourself.
planarally-windows provides a compiled executable that can simply be run by double clicking the exe in the planarally-windows-2022.3 folder.
Check the documentation over at https://www.planarally.io for more info
The changelog for this release:
Added
- New grid section in Edit Shape dialog
- Configure manual size for shape
- Used for finetuning snapping behaviour
- Show grid cells the shape occupies
- Configure hex orientation
- This is used to determine which orientation even-sized shapes should use in hex grids
- Configure manual size for shape
- Client Setting "Grid Mode Label Format" to decide what the ruler should show in grid mode
- This can be set to either '#cells only', 'distance only' or 'both'
- Import: option to specify the name for the imported campaign
Changed
- Export/Import:
- Error toasts no longer have a timeout
- (Shape)Labels are no longer exported/imported
- Ruler tool: allows Unit Size less than 1.0
- Context menus have been restyled
Fixed
- Draw Tool:
- snapping mode was also snapping to the point being moved
- now also snaps to hex vertices
- the first mouse press now also properly snaps to the grid
- fix small point changes when flipping the rectangle axis while drawing
- Select Tool:
- resizing in snapping mode was also snapping to the point being resized
- polygon edit UI had a small visual glitch on appearance causing a circle to appear around (0, 0)
- Snap to Grid:
- This now has an implementation for hex grids
- This should now more properly snap shapes that are larger than 1x1
- Ruler Tool:
- Snap now properly works for hex grids
- Map Tool:
- Now better supports hex grids
- Spell tool:
- selecting another tool would swap to the Select tool instead
- Change 'Size' input box to allow entering numbers less than 1 easily
- Polygon:
- selection/contains check went wrong if a polygon used the same point multiple times
- selection/contains check was also hitting on the line between the first and last points when not closed
- Moving shapes to front/back not updating immediately
- Export:
- Missing Character, DataBlock and new Note data
- Fixed note data migration crashing due to new format
- Import:
- Prevent a potential timing edgecase causing import to run twice
- If an import fails, the newly created (faulty) room will be removed
- Notes:
- The filter was not properly rerunning when opening shape notes, causing notes from the previous shape to still be visible sometimes
- When shape filtering, the shape name in the UI would change if you clicked on another shape with the select tool.
- Note icons drawn on a shape could be drawn behind the shape in some circumstances.
- Fix 'add shape' and 'remove shape' events not being synced immediately if you only have view access
- Note icon on shape was drawn in strange locations for shapes larger than 1x1
- Fix shape removal not properly removing the shape from related notes client-side
- Fix notes not being stored in shape templates
- Groups:
- The 'edit shape' groups tab was completely broken, this has been resolved
- Multiple things in the groups tab have become more responsive to changes
- Everything badge related is now updating as it happens
- Members will now appear/disappear immediately
- Initiative:
- Fixed an issue where Initiative.Order.Change would fail when called with some Shape Ids.
- Annotations:
- Fixed rendering of markdown which included raw HTML elements.
- Changing client settings for the grid would not immediately update the screen
2024.1
For more details on what's new checkout https://www.planarally.io/blog/release-2024.1/
planarally-bin provides a prebuilt client, with a python server that you'll need to run yourself.
planarally-windows provides a compiled executable that can simply be run by double clicking the exe in the planarally-windows-2022.3 folder.
Check the documentation over at https://www.planarally.io for more info
The changelog for this release:
Added
- New location grid setting: drop ratio
- This is used to indicate how shapes with size info dropped on the map should be resized
- (e.g. a goblin_2x2 will take op 2x2 cells in any setup with dropRatio 1, with dropRatio 0.5 however it would only take up 1x1)
- This addresses an issue where this was not properly working with non ft setups
- Selection Box UI now offers a 'clear' and 'select all' option if it's a multi-select popup
Changed
- Vision blocking shapes will now ignore themselves if they are closed
- e.g. a tree trunk will be visible, but what's behind the tree trunk will remain hidden
- Open polygons will behave as they have in the past
- Note system is overhauled
- notes can now either be global or local (i.e. campaign specific)
- notes can now be shared with other players
- notes are now accessed through a special note manager
- this provides filtering / creation / editing / ...
- multiple notes can be popped out at once
- popout notes can be collapsed and freely resized
- popout notes are now markdown aware
- If the text area of a note is still in focus after 5 seconds and an edit was made, a server save is done
- see the release notes for all the changes
- Dice history now contains user and details
- Selection Info: auras are now toggle and rotation sliders instead of range modifiers
- [tech] ModalStack now supports dynamically inserted modals
Fixed
- Polygon edit UI: was not taking rotation of shape into account
- Teleport: shapes would not be removed on the old location until a refresh
- Dice tool: would not send zero results when dice list is empty
- Character: a collection of bugs with variants have been fixed
- Trackers: add max-height and scrolling
- RotationSlider: fix sync issues
- RotationSlider: fix slider anchor not sticking to the rail under certain angles
- [server] log spam of "unknown" shape when temporary shapes are moved
2023.3.0
For more details on what's new checkout https://www.planarally.io/blog/release-2023.3/
planarally-bin provides a prebuilt client, with a python server that you'll need to run yourself.
planarally-windows provides a compiled executable that can simply be run by double clicking the exe in the planarally-windows-2022.3 folder.
Check the documentation over at https://www.planarally.io for more info
The changelog for this release:
Added
- Character concept
- A shape can be marked as a character
- Characters can be dropped anywhere (by the DM), moving/teleporting the shape to the new location
- This fills in a niche adjacent to the "Templates" concept
- Templates allow configuration of common data before placement, allowing unique modification afterwards
(e.g. useful for prefilling monster info) - Characters are a specific instance that remember their modifications (e.g. useful for (N)PCs)
- Templates allow configuration of common data before placement, allowing unique modification afterwards
- Sort campaign listing by recent play or alphabetically
- Defaults to recent sort
Changed
- Assets removed in the asset manager will not remove the image on disk if there are still shapes depending on it
- Shape removal will now also remove the related image on disk if there are no other assets/shapes depending on it
- Circles used for shadows no longer use a square bounding box, but instead use a polygon approximating the circle.
Fixed
- Export: Campaigns with notes could fail to export
- Vision: Edgecase in triangulation build
- Kicking: The check to prevent the co-DM from kicking the main DM was incorrect
- Shapes: The angle of shapes while rotating was being rounded to whole integers, which is kinda awkard when dealing with radians
- Lighting: auras with both value and dim value set to 0 no longer light up the entire map