Repository navigation
v1.0.0 moves the SDK onto Gamebeast's v2 API. Games can use several configurations, run several experiments at once with targeting, and pick up dashboard changes without a restart. The SDK no longer uses MessagingService, and DataStore is only used for a configuration backup.
Breaking changes:
- Config paths now start with the configuration's alias (or its name or id):
Configs:Get({ "MyConfig", "spawn", "rate" }). This applies toGet,Observe,OnChangedand theirForPlayerversions. - The Events and Jobs services are removed, along with the Ban, Unban and Kick request functions.
Experiments:GetGroupForPlayer()is deprecated. A player can be in several experiments now, so useGetAssignmentsForPlayer()instead.GetGroupForPlayer()returns only the first assignment.shared.GBModis removed.
Features:
- Multiple configurations, each addressed by alias, name or id.
- Experiment assignments:
GetAssignmentsForPlayer(),GetServerAssignments(),ObserveAssignmentsForPlayer(),OnAssignmentsChangedForPlayer()andOnServerAssignmentsChanged(). - Experiment targeting on device, input type, country, language and place, gathered by the SDK.
- Targeting on your own properties:
SetPlayerProperties(),SetPlayerProperty(),SetServerProperties(),SetServerProperty()and their getters. Values can be strings, numbers, booleans, or lists of one of those (up to 100 items). - New settings for how often the SDK talks to Gamebeast:
markerFlushRate(default 10s),statusPollRate(30s),assignmentRefreshRate(30s) andserverReportRate(30s). In Studio, rates you leave out default to 2s, 5s, 10s and 10s so dashboard edits show up quickly. Gamebeast:UpdateSettings()changes settings on a running SDK.- Config paths can reach array elements with a segment like
"2".
Changes:
- Dashboard changes to configs and experiments are picked up by polling, and an unchanged poll is nearly free. During an incident Gamebeast can ask servers to poll less often, never more.
- A group change made on the dashboard reaches players already in game at the next assignment refresh, instead of when they rejoin.
- If Gamebeast can't be reached at startup, the server retries with a growing delay (10 seconds up to 5 minutes) while it runs on its backed up configs.
- Invalid settings now error with what was expected, for example
Expected at least 5 seconds, got 2. - Game pass and asset purchases are only recorded once the player is seen to own the item.
- Per-player subscriptions (
OnChangedForPlayer,ObserveForPlayer,OnAssignmentsChangedForPlayer,ObserveAssignmentsForPlayer) disconnect automatically when the player leaves. - Config subscriptions are much cheaper, which matters for games with hundreds of
Observecalls.
Fixes:
- Fixed chat messages for sentiment analysis being sent unfiltered. They're now filtered at broadcast level, and a message that fails filtering isn't sent.
- Fixed private config values inside arrays reaching clients.
- Fixed a listener connected while a signal was firing causing another listener to be skipped.
- Fixed errors when a config path runs through a value that isn't a table.
Upgrading from v0.10.1:
- Put the configuration's alias at the start of every config path.
- Remove any use of the Events and Jobs services.
- Replace
GetGroupForPlayer()withGetAssignmentsForPlayer().
Full documentation: https://docs.gamebeast.gg/sdk