Dear developers,
A number of changes have been introduced on the Studio and the BGA Framework since the last newsletter (sent in the end of Q1 2022). If you missed it, you can find them here : Q1 2026 newsletter.
This thread list all changes that have been make on the Studio and the BGA Framework side. We highly recommend you to read it, to know all the added or updated tools that are available. It should make coding of BGA games easier and faster
In green: information about migration, if you want to migrate an old game to the most recent ways
Studio
Bug report dump loading
Instead of creating a table with the good number of payers, then copy paste the ticket number, you can now use the new button “Load on the Studio” from the bug report.
Project visibility
Developers can now set the project private to hide it, if it has secret content. And make it public once the game is revealed.
Framework
New _merge_private flag
If you add _merge_private => true next to _private, the private information will be accessible in args instead of args._private. If you want all your _private objects to be merged (state args and notif args), call $this->bga->notify->alwaysMergePrivate(); in your Game constructor instead of adding the _merge_private flag on each arg.
https://en.doc.boardgamearena.com/Main_ ... me_players / https://en.doc.boardgamearena.com/State ... on_getArgs
Visibility setting in PlayerCounter
The counters can now be of visibility SELF (the player can only see its counter, for example money count hidden behind a screen) or HIDDEN (for example: scoring hidden until the end of the game). Default stays VISIBLE where anyone can see the values of all players.
https://en.doc.boardgamearena.com/Playe ... bleCounter
Jsonc support
The json setting files can now be jsonc instead of json, allowing comments in them.
The gameinfos file that was previously on PHP is now also a jsonc file.
Using player no in bga->notify/PlayerCounter
For developers relying on player no, you had to convert player no to player id to use bga->notify and PlayerCounter.
Now they can handle player no, so you can almost never need player id in your code.
For notify: https://en.doc.boardgamearena.com/Main_ ... ifications
For PlayerCounter: https://en.doc.boardgamearena.com/Playe ... r#Overview
Regarding the PlayerCounter, you can either specify it in the factory method, or in the Game constructor (for pre-created bga->playerScore and bga->playerScoreAux)
Dark mode support
It was mentioned for a long time in https://en.doc.boardgamearena.com/Game_ ... _Dark_mode as a possibility, it’s now becoming a reality! It’s planned to be activated to all players in production for July 8th, and it’s already active on the Studio (click your avatar on a Studio page, the new toggle next to the sound one).
Don’t hesitate to check if your game works well in Dark mode, and build a fix version if needed!
A number of changes have been introduced on the Studio and the BGA Framework since the last newsletter (sent in the end of Q1 2022). If you missed it, you can find them here : Q1 2026 newsletter.
This thread list all changes that have been make on the Studio and the BGA Framework side. We highly recommend you to read it, to know all the added or updated tools that are available. It should make coding of BGA games easier and faster
Studio
Bug report dump loading
Instead of creating a table with the good number of payers, then copy paste the ticket number, you can now use the new button “Load on the Studio” from the bug report.
Project visibility
Developers can now set the project private to hide it, if it has secret content. And make it public once the game is revealed.
Framework
New _merge_private flag
If you add _merge_private => true next to _private, the private information will be accessible in args instead of args._private. If you want all your _private objects to be merged (state args and notif args), call $this->bga->notify->alwaysMergePrivate(); in your Game constructor instead of adding the _merge_private flag on each arg.
https://en.doc.boardgamearena.com/Main_ ... me_players / https://en.doc.boardgamearena.com/State ... on_getArgs
Visibility setting in PlayerCounter
The counters can now be of visibility SELF (the player can only see its counter, for example money count hidden behind a screen) or HIDDEN (for example: scoring hidden until the end of the game). Default stays VISIBLE where anyone can see the values of all players.
https://en.doc.boardgamearena.com/Playe ... bleCounter
Jsonc support
The json setting files can now be jsonc instead of json, allowing comments in them.
The gameinfos file that was previously on PHP is now also a jsonc file.
Using player no in bga->notify/PlayerCounter
For developers relying on player no, you had to convert player no to player id to use bga->notify and PlayerCounter.
Now they can handle player no, so you can almost never need player id in your code.
For notify: https://en.doc.boardgamearena.com/Main_ ... ifications
For PlayerCounter: https://en.doc.boardgamearena.com/Playe ... r#Overview
Regarding the PlayerCounter, you can either specify it in the factory method, or in the Game constructor (for pre-created bga->playerScore and bga->playerScoreAux)
Dark mode support
It was mentioned for a long time in https://en.doc.boardgamearena.com/Game_ ... _Dark_mode as a possibility, it’s now becoming a reality! It’s planned to be activated to all players in production for July 8th, and it’s already active on the Studio (click your avatar on a Studio page, the new toggle next to the sound one).
Don’t hesitate to check if your game works well in Dark mode, and build a fix version if needed!