Skip to content

Releases: heroiclabs/hiro

v1.33.0

02 Apr 22:37
e5be7c6

Choose a tag to compare

Notable changes

Added

  • Add "DebugUnenroll" function to Event Leaderboards for easier QA tests.
  • Return "tier_delta" in Event Leaderboard scores which indicates promotion/demotion zones.
  • (Unity) Provide "OnlineChanged" event signal in "NetworkProbe" for eager detection.

Changed

  • All analytics events published to Satori are now public functions.
  • Update all JSON schemas to include latest game system fields and definitions.
  • Expand "LeaderboardsSystem" to wrap everything in Nakama Leaderboards to use Hiro personalizers.
  • (Unreal) Simplify Steam authentication with Identity in Hiro Online Subsystem.
  • (CPP) (Dart) (Godot) (Python) (TypeScript) (Unity) (Unreal) Update clients for all new APIs.

Fixed

  • Handle Auction bid won by player account which has since been deleted gracefully.
  • Fix currency delta dropped when balance matches server after offline.
  • (Unity) Fix "PlayerPrefsStorage" returns hollow objects for missing keys.
  • (Unity) Copy codex properties into inventory items granted in rewards while offline.
  • (Unity) Return valid "AchievementClaimAck" and "EnergySpendReward" types when offline.

v1.32.0

23 Feb 00:04
64b7013

Choose a tag to compare

Notable changes

Added

  • Huge improvement to Event Leaderboards (2.0) which can now handle many different rulesets, replay, and win conditions. 🎉
  • Both claim any rewards and roll into a cohort within a Team Event Leaderboard can be done together.
  • New profanity filter options for User display name, chat message update, Team description, and Challenge name and description fields.
  • New server function to reset an Achievement's progress.
  • (Unity) Add "IsClaimed" util extension method to "ISubAchievement" type.
  • (Unity) Add "GetStoreItemsByCategory" util extension method to "IEconomySystem" type.

Changed

  • AllowFakeReceipts option can now be set outside of Economy data definition for easier environment selection.
  • Update server function to fetch more than one Team by ID.
  • Update to Nakama common v1.44.2 release.
  • (Unity) Logger type can be assigned to both Nakama and Satori client types.
  • (Unity) Update to '3.21.2' Nakama/Satori .NET client release.
  • (Unity) Use "IInitializeSystem" with "RewardMailboxSystem" type.
  • (Unity) "PurchaseStoreItemAsync" can take a raw receipt (not using the UnityPurchasing wrapper).
  • (Unity) Check exception not "IsTransientException(e)" with catch block to switch to offline mode.

Fixed

  • Apply profanity filter checks to both team names and team chat message contents.
  • Use the time offset (if specified) when an Achievement is checked for expiry.
  • (Unity) "EventLeaderboardsSystem" should not be Observable because it does not store internal state.
  • (Unity) Recalculate update time to compute "IsActive" with offline Achievements progress.
  • (Unity) Use correct ID when merging achievement updates in offline progress.
  • (Unity) Trim achievement progress with separate removal list when offline.
  • (Unity) Raise exception when reverse item grant has insufficient items to deduct.

v1.31.0

10 Dec 12:58
0748157

Choose a tag to compare

Notable changes

Fixed

  • Update lookahead/lookbehind inputs to Live Events selector in Satori Personalizer.

v1.30.0

09 Dec 23:35
3a10de5

Choose a tag to compare

Notable changes

Added

  • Achievements, Team Achievements, and Streaks can now specify a UTC time offset to anchor active phases to a player's localtime.
  • New profanity filter can be enabled on usernames, team names, and chat messages.

Changed

  • Request trace IDs are attached to analytics events in the Satori Publisher.
  • Update to Nakama common v1.44.0 release.

v1.29.0

18 Nov 22:09
72a3ac7

Choose a tag to compare

Notable changes

Added

  • New BatchSpend function in Energy system.
  • "RollEventLeaderboard" function can claim which will return the rolled Reward.
  • New option to use max participant count in EventLeaderboard change zone brackets.
  • A custom refill start time can be set by a client to anchor when refill started while offline.
  • Register various endpoints which can be used via the Nakama Console.
  • All leaderboards defined can be returned by the Leaderboard system.
  • Achievements with a duration now have an "is_active" field to know when in an active phase.
  • Reward Mailbox messages can now contain text content.
  • (Unreal) Add OnlineSubsystem for Leaderboards.

Changed

  • Make Go error types public.
  • Update various JSON schemas for the gameplay systems.
  • When claiming a repeating Achievement its Reward is returned.
  • Internally track product SKUs used across multiple store items.
  • "keep_zero" is now returned with Inventory Items for Offline Mode.
  • A Challenge can be created without any initial invitees.
  • Deleted Teams now appear with no name in the Team Event Leaderboard list.
  • A deleted Team now also has its leaderboard scores removed.
  • A Team can be searched with no input or 3+ character input to support filter only searches.
  • Nakama error types are surfaced in Teams system for "name already in use" and scenarios.
  • (Unity) "PollPlacementStatusAsync" now uses "Task.Delay" due to Unity improvements.
  • (Unity) Update "ExampleCoordinator" code to show how to control play session lifetimes.
  • (Unity) (TypeScript) (Dart) (CPP) (Unreal) (Godot) (Python) Update clients for all new APIs.

Fixed

  • Add missing empty storage object definitions to import file.
  • Fix panic when Store Item is purchased but has no Reward definition.
  • Do not progress an Achievement's count after the end of its active phase.
  • Initialize Options in Inventory Item's string properties when deep cloned.
  • Fix incorrect rank calculation for the caller's Team in a Team Event Leaderboard.
  • (Unity) "TeamsSystem" observer emits signal on refresh even where logic returns early.
  • (Unity) Add "langTag" parameter to Create function.

v1.28.0

08 Oct 10:58
16277d5

Choose a tag to compare

Notable changes

Added

  • Add function to fetch user with Team profile.

Changed

  • If Team or user within an active Event Leaderboard has been deleted, skip using an empty score record.
  • (Unity) Update to '3.20.0' Nakama/Satori .NET client release.

Fixed

  • Do not allow re-claiming rewards if Team gift count is exactly equal to reward min count.
  • When an Inventory Item is consumed for Rewards, ensure rolled currencies are accumulated.

v1.27.1

30 Sep 12:16
2e83368

Choose a tag to compare

Notable changes

Changed

  • Update to Nakama 3.32.0 version on the nakama-common 1.42.0 release.

v1.27.0

30 Sep 11:55
14b70bc

Choose a tag to compare

Notable changes

Added

  • New function to get a Team by ID.
  • Delete an Item by instance ID in Inventory.
  • New benchmark suite with Artillery for load tests.
  • (Unity) (TypeScript) (Dart) (CPP) (Unreal) (Godot) (Python) Add client functions for all new features.

Changed

  • An Event Leaderboard score update can submit metadata which is passed through to the underlying Leaderboard.
  • A Challenge score update can decide if metadata should be updated on score change.
  • (Unity) Update to '3.19.0' Nakama/Satori .NET client release.
  • Add user ID and other inputs into Economy logger for debugging.

Fixed

  • "RewardGrant" in server function should correctly grant Rewards which have no Inventory Items.
  • (Unity) Allow negative Economy grants to work in Offline Mode.
  • If set, use config source in Inventory consume function.
  • (Unity) Apply Energy refill increments in Offline Mode.
  • (Unity) Track score changes in Event Leaderboards while in Offline Mode.
  • Pass AvatarUrl into Team update function.
  • If set, apply collection resolver in Challenges invite function.
  • Use the input UNIX time when a Team Gift is claimed.
  • In custom matching function use correct tier override in Event Leaderboards.
  • Fix regression when rolled Reward contents are granted with "RewardGrant" and "GrantItems".
  • Progressions marked as permanently unlocked should remain unlocked even if an item precondition becomes unmet.
  • Expired Mailbox Messages should be pruned at client read time.
  • Fix Achievement replay when auto-reset is enabled and claim when max count is zero.

v1.26.0

14 Aug 09:43
dfff461

Choose a tag to compare

Notable changes

Added

  • A Progression can be defined to allow its counts to be updated irrespective of any other preconditions.
  • If enabled, a Challenge score's metadata is updated only when the score itself changes.
  • A Progression can be defined to unlock permanently rather than have its state be computed.
  • Each player now has a Reward Mailbox which can be used to receive Rewards to be collected.
  • Huge redesign of the Teams gameplay system. This provides a very powerful set of features for Guilds, Clans, and other teamplay game design.
  • A Team can now earn currencies into a Team Wallet.
  • A Team can spend currencies in the Team Virtual Store for Rewards.
  • A Team can collect Inventory which could be consumed for the benefits of all team members.
  • A Team can make progress on Team Achievements with optional reset schedules.
  • A Team can compete on Team Event Leaderboards with individual contributions part of the team's score.
  • A Team can generate Team Gifts for players with different Rewards based on their activity.
  • A Team can track Team Stats about any statistics that are interesting to players.
  • A Team has a Team Reward Mailbox where Rewards can be sent to be collected.
  • Players can be restricted to be joined to only one Team at any time.
  • Players can have their activity and Team activity measured to track the frequency of play.
  • A Reward in all gameplay systems can be directed to grant it into Reward Mailbox.
  • When rolled into an Event Leaderboard cohort, the player's leaderboard record metadata can be set.
  • When rolled into a Team Event Leaderboard cohort, the Team player's leaderboard record metadata can be set.
  • A Streak can be defined with repeating claimable Rewards.
  • (Unity) (TypeScript) (Dart) (CPP) (Unreal) (Godot) (Python) Add functions for all new features.

Changed

  • The Reward definition is greatly extended to support Team Rewards and grants to individual players.
  • Update to Nakama 3.30.0 version on the nakama-common 1.40.0 release.
  • The Challenge gameplay system can now emit analytics events about activity.
  • Team icon field is replaced by the avatar URL field.
  • Teams no longer use "min_entry" metadata parameter on Create.
  • Event Leaderboard cohorts cannot be rolled when the previous cohort Reward is unclaimed.
  • Streak Reward(s) should define no "max_count" to allow them to be claimed beyond their initial eligible step.

Fixed

  • "StoragePersonalizer" type now recognizes Challenge definitions in the Nakama Storage engine.
  • Update JSON schema for Stats to include the latest fields.
  • TotalReward when claimed on an Achievement has its timestamp updated.
  • Set the Start Step correctly when a non-default value is used in a Tutorial definition.
  • Fix how new/updated Items are updated in local state on Grant operations.
  • Treat Item(s) as newly granted when granted as an Item's Reward.
  • The "AllowFakeReceipts" option in Economy definition should be copied into Personalizers.

v1.25.0

17 Jul 15:03
0de0f0c

Choose a tag to compare

Notable changes

Added

  • A Challenge can be created with custom metadata.
  • (Unreal) The Hiro Online Subsystem (OSSv1) for Identity, Achievements, and Leaderboards is no longer in preview.
  • (Python) New Python Hiro GDK also with Nakama Leaderboards support.
  • A "PurchaseIntent" can now provide optional ISO currency code and amount.
  • (Unity) Automatically set ISO currency code and amount in "PurchaseIntent" with "UnityPurchasingSystem" type.

Changed

  • Update to Nakama 3.28.0 version on the nakama-common 1.38.0 release.
  • The category field is now optional in Hiro data definitions which use it.
  • (Unity) Update to '3.17.0' Nakama/Satori .NET client release.
  • AppLovin Max S2S callbacks for rewarded video Placements are updated for the latest changes of the API.

Fixed

  • Set "TotalClaimTimeSec" on Achievement update if claim count reached and "AutoClaimTotal" is enabled.