Studio Package 0.7.0

Hello Creators! We’ve got another exciting update: server side persistence is landing today! This allows you to store player data into persistent storage in the cloud, enabling stateful features like inventories/wallets/leaderboards/etc.

Let’s dig in:

What’s New

  • Storage API The Storage API provides functionality for saving and loading persistent data. This can be used for player-specific data such as storing player progress or a high score. This can also be used for global data for tracking the progress of all players or a global leaderboard. The Storage API is only available on the server. For saving a player’s obtained items or currency, use the Inventory API.
    See StorageError for a list of errors that can be returned from Storage functions. There is a limit of how often Storage functions can be called before functions will start returning StorageError.RequestThrottled. See the documentation for StorageError.RequestThrottled for details.

  • Inventory API The Inventory API provides functionality for handling owned items and currencies. Inventories can be stored per player, but also supports non-player ids to allow for features such as storage boxes for either a single player or group of players. Changes to the inventory are handled through InventoryTransactions which contains actions that are either all processed when a operation succeeds or are all skipped if the operation fails. This means you will never have cases such as a player buying an item from a shop within the world, losing their currency, but not getting the item, or cases such as two players trading items and the items end up duplicated or permanently lost.
    See InventoryError for a list of errors that can be returned from Inventory functions. There is a limit of how often Inventory functions can be called before functions will start returning InventoryError.RequestThrottled. See the documentation for InventoryError.RequestThrottled for details.
    Note: Documentation to come

Bug Fixes

  • Improved client/server stability and error handling
  • Fixed user interface not working correctly in Virtual Player
  • Fixed hud ui sort order so it is behind the chat history
  • Fixed UI not hiding when the component or GameObject is disabled
  • Fixed UI not destroying when the component is removed or GameObject destroyed
  • Fixed bug in UI template for newly created UI’s that included an incorrect :Bind call
  • Fixed bug with Character.usePathFinding = true which would not properly enable pathfinding
  • Fixed bug causing lua scripts attached to prefabs to not run on the server
  • Fixed various methods such as Transform.RotateAround and Transform.SetPositionAndRotation that were not correctly workign with virtual players
  • Fixed bug with some Vector3 math operations that would cause incorrect lua errors
  • Fixed Event.FireClient so it properly sends an event to just a single client
  • Added Event.Fire method which will fire an event without networking
  • Added support for creating UI elemnets at runtime with the .new operator (ex. UILabel.new())
  • Added new view global on UI scripts that provides access to the attached UILuaView
  • Added new unity apis
    • NavMeshSurface
    • NavMeshObstacle
    • NavMeshAgent
    • MaterialPropertyBlock
    • Sprite
    • SpriteRenderer

Note builds uploaded with this Studio Package will require Highrise client version 4.6.2 or higher.

Studio Package 0.7.1

Bug Fixes

  • Fixed a server/studio crash with accessing player.name during PlayerDisconnect event (crashed virtual player on exit)
  • Fixed a bug importing modules
  • Fixed all virtual player coordinate issues
  • Fixed crash with setting a character prefab with no Character component
  • Fixed the bug preventing publish from working
  • Alt drag now rotates virtual players

Discord - Join the #studio-chat and #studio-help channels on Highrise Discord to chat with other creators

Creator Portal - Get started learning how to make worlds with Highrise Studio

3 Likes