Release Notes for 494

Notes for Release 494


Client Difference Log

API Changes

Renamed Class
"LinearVelocityConstraint" to "LinearVelocity"

Added Class AnimationRigData : Instance
	Added Function bool AnimationRigData:LoadFromHumanoid(Instance humanoid) {RobloxScriptSecurity}

Added Class MaterialService : Instance [NotCreatable] [Service] [NotBrowsable]
	Added Property MaterialVariant MaterialService.Brick
	Added Property MaterialVariant MaterialService.Cobblestone
	Added Property MaterialVariant MaterialService.Concrete
	Added Property MaterialVariant MaterialService.CorrodedMetal
	Added Property MaterialVariant MaterialService.DiamondPlate
	Added Property MaterialVariant MaterialService.Fabric
	Added Property MaterialVariant MaterialService.Foil
	Added Property MaterialVariant MaterialService.Granite
	Added Property MaterialVariant MaterialService.Grass
	Added Property MaterialVariant MaterialService.Ice
	Added Property MaterialVariant MaterialService.Marble
	Added Property MaterialVariant MaterialService.Metal
	Added Property MaterialVariant MaterialService.Pebble
	Added Property MaterialVariant MaterialService.Plastic
	Added Property MaterialVariant MaterialService.Sand
	Added Property MaterialVariant MaterialService.Slate
	Added Property MaterialVariant MaterialService.SmoothPlastic
	Added Property MaterialVariant MaterialService.Wood
	Added Property MaterialVariant MaterialService.WoodPlanks

Added Class MaterialVariant : Instance [NotBrowsable]
	Added Property Enum.Material MaterialVariant.BaseMaterial {PluginSecurity}
	Added Property Content MaterialVariant.ColorMap {PluginSecurity}
	Added Property Content MaterialVariant.MetalnessMap {PluginSecurity}
	Added Property Content MaterialVariant.NormalMap {PluginSecurity}
	Added Property Content MaterialVariant.RoughnessMap {PluginSecurity}
	Added Property float MaterialVariant.StudsPerTile

Added Class CustomDspSoundEffect : SoundEffect [NotCreatable]

Added Class CanvasGroup : GuiObject
	Added Property Color3 CanvasGroup.GroupColor
	Added Property float CanvasGroup.Transparency

Added Property Enum.OrientationAlignmentMode AlignOrientation.Mode
Added Property CFrame AlignOrientation.CoordindateFrame
Added Property Vector3 AlignOrientation.PrimaryAxis
Added Property Vector3 AlignOrientation.SecondaryAxis
Added Property Enum.PositionAlignmentMode AlignPosition.Mode
Added Property Vector3 AlignPosition.Position
Added Property MaterialVariant BasePart.MaterialVariant
Added Property bool ImporterRootSettings.InvertNegativeFaces
Added Property int PausedState.ThreadId {RobloxScriptSecurity} [Hidden] [ReadOnly]
Added Property bool PausedState.AllThreadsPaused {RobloxScriptSecurity} [Hidden] [ReadOnly]
Added Property Enum.AnimatorRetargetingMode Workspace.Retargeting

Added Function void AssetImportService:UpdateSettings(Instance settings) {RobloxScriptSecurity}
Added Function Vector3 Humanoid:GetAccessoryHandleScale(Instance instance, Enum.BodyPartR15 partType) {RobloxScriptSecurity}
Added Function bool PlayerEmulatorService:RegionCodeWillHaveAutomaticNonCustomPolicies(string regionCode) {RobloxScriptSecurity}
Added Function bool VoiceChatService:IsContextVoiceEnabled() {RobloxScriptSecurity}
Added Function bool VoiceChatService:SubscribePauseAll(bool paused)

Added Enum AnimatorRetargetingMode
	Added EnumItem AnimatorRetargetingMode.Default : 0
	Added EnumItem AnimatorRetargetingMode.Disabled : 1
	Added EnumItem AnimatorRetargetingMode.Enabled : 2

Added Enum OrientationAlignmentMode
	Added EnumItem OrientationAlignmentMode.OneAttachment : 0
	Added EnumItem OrientationAlignmentMode.TwoAttachment : 1

Added Enum PositionAlignmentMode
	Added EnumItem PositionAlignmentMode.OneAttachment : 0
	Added EnumItem PositionAlignmentMode.TwoAttachment : 1

Changed the category of Property LinearVelocity.LineDirection 
	from: "LineConstraint"
	  to: "Line"

Changed the category of Property LinearVelocity.LineVelocity 
	from: "LineConstraint"
	  to: "Line"

Changed the category of Property LinearVelocity.PlaneVelocity 
	from: "PlaneConstraint"
	  to: "Plane"

Changed the category of Property LinearVelocity.PrimaryTangentAxis 
	from: "PlaneConstraint"
	  to: "Plane"

Changed the category of Property LinearVelocity.SecondaryTangentAxis 
	from: "PlaneConstraint"
	  to: "Plane"

Changed the category of Property LinearVelocity.VectorVelocity 
	from: "VectorConstraint"
	  to: "Vector"

Changed the parameters of Function DebuggerConnection:Pause 
	from: (Function status)
	  to: (ThreadState thread, Function status)

Changed the parameters of Function DebuggerConnection:Resume 
	from: (Function status)
	  to: (ThreadState thread, Function status)

Changed the thread safety of Function ServiceProvider:FindService 
	from: {🧬Safe}
	  to: {🧬Unsafe}

Changed the thread safety of Function ServiceProvider:GetService 
	from: {🧬Safe}
	  to: {🧬Unsafe}

Removed Property PausedState.IsValid
Removed Property PausedState.ThreadCount
Removed Property PausedStateBreakpoint.BreakpointThread
Removed Property PausedStateException.ExceptionThread

Removed Function PausedState:GetThread

(Click here for a syntax highlighted version!)


Does this mean that animations that were made on a wide, short R15 rig will also look the same on a tall, skinny avatar?

For example, if I make an axe swing animation such that the axe hits the ground on one rig, and I run the animation on my tall & skinny dragon avatar - does the animation get dynamically adjusted so that the axe also hits the ground with my avatar? Am I understanding this correctly?

Right now with the old behavior, the axe would not hit the ground if you ran the animation on a rig of a different scale or proportion.

EDIT : It seems this is the case :smiley:


Yessss! I had just started working on an NPC system and I was low on hopes that Roblox would be shifting attention back to PathfindingService anytime soon.


Is that custom materials I see? :flushed:

More than that, I’m interested in this CanvasGroup object. Making assumptions based off of the name and the API, I’m hoping this is something akin to being able to apply a transparency modifier and have it affect all Gui elements kind of like how SoundGroup’s Volume works. Being able to tween just one transparency and have all elements follow along instead would be great. Not fond of my current implementation… :joy:



It’s basically render to layer: The stuff in the CanvasGroup gets rendered together into it, and then you can apply a transparency + tint to the final result all at once.


Will the CanvasGroup instance potentially get any special features or functionality, or, is it more just a simple QoL thing which opens up more possibilities for developers?

It sounds like it’d already be quite useful for a lot of developers, e.g. making HUD layers, or composites of different UI elements, like multiple ViewportFrames “stitched” together seamlessly, but, it also sounds like something which could solve some issues, for example, I know that rotated clipping is challenging for a bunch of reasons, some of which this feature might resolve.

I ask because it sounds like this is the type of feature Roblox would add as a prerequisite to other features that are being considered, and I’m curious if there’s any plans to use it for something.


This bugfix was listed as “pending” in the last two release notes, but is no longer listed in this one?

I’m still getting this bug in certain situations (scales up with the number of characters in the game), and although I had a workaround, I removed it in anticipation if it getting fixed before I release my game.
Any updates on this?

1 Like

Fear not, the relevant flag just hasn’t been turned on yet.


The animation retargeting seems to be causing some issues, some animations are causing the player’s arms to completely disconnect which never happened before.