Core Update 1.0.211 - Damageable Objects & Voice API

Highlights for Version 1.0.211

Patch Notes Header

Welcome to our September 8th patch notes!

With this patch we are introducing a new kind of concept to Core, Damageable Objects.

A Damageable Object is a Core Object that implements the Damageable interface and has properties, events, and functions for objects which can take damage and die.
Interfaces list properties, functions, and events that types which implement that interface must have. When a type implements an interface, the IsA() function will return true for the interface name. For example, someVehicle:IsA("Damageable") will return true, because the Vehicle type implements the Damageable interface.

Check out our API Documentation to learn more about DamageableObjects and keep an eye out for our boss fight tutorial, which is coming soon, and @standardcombo's video below for real world use case examples.

Important Note: With the last patch we introduced a bug affecting games with terrain in multiple scenes where foliage collision is only detected properly on the scene that was active when the game was published. This is now fixed but creators with games already affected by this bug will need to do a manual step and republish to fix them:

  • Go into each scene and perform a save after doing a small change in the scene, which will create a new SceneServerData.pb file in each scene folder with the correct foliage collision data.
  • Publish the game again to upload the correct data.

Make sure to watch the patch notes live stream hosted by Team META on the Core Live Twitch channel at 9 AM PST.

Platform

  • New: Damageable Objects.
  • New: Merged Meshes now support the "Interact with Triggers" mesh flag.
  • New: You can now invite players to join your party from player name searches.
  • New: Added Player Decrowd (default = true) as an option to use collision tests and to ensure that players do not overlap when spawning. Turning this to false will have limited decrowding behavior.
  • New: Added a Microphone Test feature to the options menu.
  • New: Weapon components now support damaging damageable objects!
  • Changed: Rework camera capture: This changes the way that CameraCapture instances are limited:
    • Previously, creators had access to a fixed number of camera capture instances at each size.
    • After this change, creators can create any arbitrary combination of camera capture instances, up until a global size limit is reached. The size limit is calculated based on the size of the captures you are creating. When the limit is reached, attempts to create more CameraCapture will return nil, and creators should reuse or release their existing capture instances.
    • The internal limit has not been reduced, so this change will not affect any existing use of CameraCapture. This change is expected to make the interface more flexible and useful in a majority of cases.
  • Fixed: References to hierarchy items that are converted to templates should no longer fail to be updated inside templates and their instances.
  • Fixed: A bug where a UIContainer in screen space would still receive selection clicks on its world space representation, and then incorrectly put the creator into UI edit mode.
  • Fixed: A crash that could occasionally occur when changing the vertical justification of a networked UI element's text.

API

Player

  • New: Added two properties to the Player object:
    • Player.maxFlySpeed -- Maximum speed while the player is flying. Default = 600.
    • Player.brakingDecelerationFlying -- Deceleration when flying and movement input has stopped. Default = 600.
    • These do the same thing as "Max Fly Speed" and "Braking Deceleration (Flying)" on the Player Movement Settings object.

PlayerStart

  • New: Added a property to the PlayerStart object:
    • PlayerStart.shouldDecrowdPlayers
  • Changed: Made some internal Lua tables read-only to prevent tampering.

VoiceChat

  • New: Added functions and properties to the VoiceChat namespace:
    • VoiceChat.IsPlayerSpeaking(player) -- Returns true if the given player is currently speaking in the game channel.
    • VoiceChat.GetPlayerSpeakingVolume(player) -- Returns a value from 0.0 to 1.0 to indicate how loudly the given player is speaking.
    • VoiceChat.GetChannels() -- Returns a list of VoiceChatChannels.
    • VoiceChat.GetChannelsForPlayer(Player) -- Returns a list of VoiceChatChannels that the given player is in.
    • VoiceChat.GetChannel(string channelName) -- Returns a specific VoiceChatChannel.
    • VoiceChat.IsPlayerInChannel(Player, string channelName) -- Returns true if the given player is in the specified channel, otherwise returns false.
    • VoiceChat.MutePlayerInChannel(Player, string channelName) -- Mutes the given player in the specified channel.
    • VoiceChat.UnmutePlayerInChannel(Player, string channelName) -- Unmutes the given player in the specified channel.
    • VoiceChat.IsPlayerMutedInChannel(Player, string channelName) -- Returns true if the given player is muted in the specified channel, otherwise returns false.

VoiceChatChannel

  • New: Added a `VoiceChatChannel type with the following functions and properties:
    • VoiceChatChannel.name -- The name of this channel.
    • VoiceChatChannel.channelType -- This channel's type. See the VoiceChannelType enum.
    • VoiceChatChannel:GetPlayers() -- Returns a list of players in this channel.
    • VoiceChatChannel:IsPlayerInChannel(Player) -- Returns true if the given player is in the specified channel, otherwise returns false.
    • VoiceChatChannel:IsPlayerMuted(Player) -- Returns true if the given player is muted in this channel, otherwise returns false.
    • VoiceChatChannel:MutePlayer(Player) -- Mutes the given player in this channel.
    • VoiceChatChannel:UnmutePlayer(Player) -- Unmutes the given player in this channel.

World

  • New: Added two functions to the World namespace:
    • World.FindObjectsOverlappingSphere(Vector3 position, number radius, [table parameters])
    • World.FindObjectsOverlappingBox(Vector3 position, Vector3 boxSize, [table parameters])
    • Both return all objects found overlapping or within a sphere or box. They share most optional arguments with Spherecast and Boxcast, with the notable exceptions of debug draw and isWorldShapeRotation.
  • Fixed: Some issues with Raycast() and similar functions:
    • The debug arguments inside of the ignoreObjects and checkObjects optional argument lists for Player, Vehicle, and Terrain now behave as expected.
    • When using the checkObjects optional argument, the raycast will no longer stop at the first thing it hits if that is not in your list.

Miscellaneous

  • Fixed: A bug where UIImage:GetImage() would return an invalid MUID string instead of nil when the image is not set.
    • Note: Be mindful that before this fix, a string was always returned, and this method can now return nil.
  • Fixed: An issue where the combination of Mesh:SetColor(color) -> Mesh:ResetColor() -> Mesh:SetColor() would not set the color back correctly.

Core Content





  • New: Added 85 3D Objects:
    • Basic Apple
    • Basic Avocado
    • Basic Bean 01
    • Basic Bean 02
    • Basic Bean Thin Long
    • Basic Pepper 01
    • Basic Pepper 02
    • Cube - Inverted
    • Cube - Inverted - Bottom-Aligned
    • Cube Bulged
    • Cube Waisted
    • Cube:Cylinder Waisted
    • Cylinder Bulged
    • Cylinder Half
    • Cylinder Half - Bottom-Aligned
    • Cylinder Half - Large
    • Cylinder Waisted
    • Fantasy Dish Set - Bowl 01
    • Fantasy Dish Set - Chalice 01
    • Fantasy Dish Set - Plate 01
    • Fantasy Scroll - Open 01
    • Horn Curled
    • Horn Curled - Golden Ratio
    • Horn Curved
    • Horn Curved Double - Horizontal
    • Horn Curved Double - Vertical
    • Japanese Bamboo Hat - Tassel 01
    • Japanese Bamboo Hat 01
    • Japanese Bamboo Hat 01 with Tassel (Prop)
    • Japanese Bamboo Hat 02
    • Japanese Futon - Base 01
    • Japanese Futon - Blanket 01
    • Japanese Futon - Blanket Fold 01
    • Japanese Futon - Mattress 01
    • Japanese Futon - Pillow 01
    • Japanese Futon (Prop)
    • Lathe Bulb
    • Lathe Pin
    • Lathe Simple
    • Mecha Weapon - Laser - Blade 01
    • Mecha Weapon - Laser - Canister 01
    • Mecha Weapon - Laser - Focus 01
    • Mecha Weapon - Laser - Grip 01
    • Mecha Weapon - Laser - Gun Body 01
    • Mecha Weapon - Laser - Mount 01
    • Mecha Weapon - Laser Rifle (Prop)
    • Mecha Weapon - Shield - Bottom 01
    • Mecha Weapon - Shield - Core 01
    • Mecha Weapon - Shield - Middle 01
    • Mecha Weapon - Shield - Top 01
    • Mecha Weapon - Shield (Prop)
    • Mecha Weapon - Sword - Grip 01
    • Mecha Weapon - Sword - Hilt 01
    • Mecha Weapon - Sword (Prop)
    • Mecha Weapon - Sword Blade - Base 01
    • Mecha Weapon - Sword Blade - Mid 01
    • Mecha Weapon - Sword Blade - Mount 01
    • Mecha Weapon - Sword Blade - Tip 01
    • Plane Parallelogram - One Sided
    • Ring - Large
    • Ring Thick - Large
    • Ring Thin - Large
    • Sphere - Full Slice
    • Sphere - Full Slice Thick
    • Sphere - Full Slice Thin
    • Sphere Pinched - Horizontal
    • Sphere Pinched - Vertical 01
    • Sphere Pinched - Vertical 02
    • Sphere Quarter Wedge
    • Sphere:Cube
    • Teardrop - Flat
    • Teardrop - Flat Half
    • Teardrop - Rounded
    • Teardrop - Rounded Half
    • Urban Craftsman Bed (Prop)
    • Urban Office Ceiling Lamp - Mount 01
    • Urban Office Ceiling Lamp 01
    • Urban Office Ceiling Lamp 01 (Prop)
    • Urban Office Ceiling Lamp 02
    • Urban Office Ceiling Lamp 03
    • Urban Office Ceiling Lamp 04
    • Urban Office Ceiling Lamp 05
    • Urban Office Ceiling Lamp 05 (Prop)
    • Urban Office Ceiling Lamp 02 (Prop)
    • Whitebox Wall Cube 01
    • Whitebox Wall Cube 01 - 300cm

  • New: Added 19 Core Materials:
    • Wallpaper Japanese Waves 01
    • Wallpaper Japanese Triangles 01
    • Wallpaper Japanese Stars 01
    • Wallpaper Japanese Rings 01
    • Wallpaper Japanese Hex 01
    • Wallpaper Japanese Geometric 01
    • Wallpaper Japanese Flowers 01
    • Wallpaper Japanese Bamboo 01
    • Bamboo Floor 01
    • Bamboo Shoot 01
    • Bamboo Blind Horizontal 02
    • Bamboo Blind Horizontal 01
    • Bark Bamboo 01
    • Wicker Basket 03
    • Disco Ball 01
    • Metal Grates 07
    • Metal Grates 06
    • Metal Grates 05
    • Metal Grates 04
    • Food Pizza 01
  • New: Added the Axis Helper Utility, an axis mesh similar to a manipulator gizmo, that can be used for debugging purposes.
  • New: Added Damageable Objects in Gameplay Components:
    • Damageable Crate
    • Damageable Fire Hydrant
    • Damageable Sandbags
    • Damageable Hazard Barrel
  • Changed: Updated all frameworks to support Scenes.
  • Changed: Plane objects are now in their own directory under Basic Shapes.
  • Fixed: An issue where "Wooden Bamboo Sword Stick Impact Hit 01 SFX" and Japanese instrument assets were not affected by the audio settings volume sliders.
  • Fixed: An issue with Katanas and the dual_katana_stance.
10 Likes

been waiting for damageable objects for a really long time :drooling_face:

1 Like

Thank you for the new basic shapes you added! Been needing some of those

Are damageable objects meant to replace the system used in the NPC AI Kit CC?

Dameagble Objects + Activity Handler, I would say yes. Bit of a learning curve to get something working similar to the NPC AI Kit, but definitely possible. If Core ever implements native Nav Mesh support, then it will be a dream come true for those that do want to do AI related stuff.

1 Like