Releases: heroiclabs/hiro
Releases · heroiclabs/hiro
v1.33.0
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
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
v1.30.0
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
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
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
v1.27.0
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
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
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.