Skip to content

v1.0.0

Latest

Choose a tag to compare

@Stratiz Stratiz released this 13 Oct 18:08
· 2 commits to main since this release
2aa9398

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 to Get, Observe, OnChanged and their ForPlayer versions.
  • 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 use GetAssignmentsForPlayer() instead. GetGroupForPlayer() returns only the first assignment.
  • shared.GBMod is removed.

Features:

  • Multiple configurations, each addressed by alias, name or id.
  • Experiment assignments: GetAssignmentsForPlayer(), GetServerAssignments(), ObserveAssignmentsForPlayer(), OnAssignmentsChangedForPlayer() and OnServerAssignmentsChanged().
  • 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) and serverReportRate (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 Observe calls.

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:

  1. Put the configuration's alias at the start of every config path.
  2. Remove any use of the Events and Jobs services.
  3. Replace GetGroupForPlayer() with GetAssignmentsForPlayer().

Full documentation: https://docs.gamebeast.gg/sdk