Release Notes for 490

Notes for Release 490


Client Difference Log

API Changes

Added Class ImporterBaseSettings : Instance [NotCreatable] [NotReplicated]
	Added Property string ImporterBaseSettings.Id [ReadOnly]
	Added Property string ImporterBaseSettings.ImportName
	Added Property bool ImporterBaseSettings.ShouldImport

Added Class VoiceChatService : Instance [NotCreatable] [Service]
	Added Property Enum.VoiceChatState VoiceChatService.VoiceChatState [ReadOnly]
	Added Function string VoiceChatService:GetAndClearCallFailureMessage()
	Added Function Tuple VoiceChatService:GetAudioProcessingSettings()
	Added Function string VoiceChatService:GetGroupId() {RobloxScriptSecurity}
	Added Function Tuple VoiceChatService:GetMicDevices()
	Added Function Array VoiceChatService:GetParticipants()
	Added Function Tuple VoiceChatService:GetSpeakerDevices()
	Added Function int VoiceChatService:GetVoiceChatApiVersion()
	Added Function int VoiceChatService:GetVoiceChatAvailable()
	Added Function bool VoiceChatService:IsPublishPaused()
	Added Function bool VoiceChatService:IsSubscribePaused(int64 userId)
	Added Function bool VoiceChatService:JoinByGroupId(string groupId, bool isMicMuted = false)
	Added Function bool VoiceChatService:JoinByGroupIdToken(string groupId, bool isMicMuted = false)
	Added Function void VoiceChatService:Leave()
	Added Function bool VoiceChatService:PublishPause(bool paused)
	Added Function void VoiceChatService:SetMicDevice(string micDeviceName, string micDeviceGuid)
	Added Function void VoiceChatService:SetSpeakerDevice(string speakerDeviceName, string speakerDeviceGuid)
	Added Function bool VoiceChatService:SubscribePause(int64 userId, bool paused)
	Added Event VoiceChatService.ParticipantsStateChanged(Array participantsLeft, Array participantsJoined, Array updatedStates)
	Added Event VoiceChatService.PlayerMicActivitySignalChange(Dictionary activityInfo)
	Added Event VoiceChatService.StateChanged(Enum.VoiceChatState old, Enum.VoiceChatState new)

Added Class ImporterGroupSettings : ImporterBaseSettings [NotCreatable] [NotReplicated]

Added Class ImporterMeshSettings : ImporterBaseSettings [NotCreatable] [NotReplicated]
	Added Property bool ImporterMeshSettings.DoubleSided

Added Class ImporterRootSettings : ImporterBaseSettings [NotCreatable] [NotReplicated]
	Added Property Vector3 ImporterRootSettings.FileDimensions [ReadOnly]
	Added Property bool ImporterRootSettings.FlattenAll
	Added Property float ImporterRootSettings.PolygonCount [ReadOnly]
	Added Property Enum.MeshScaleUnit ImporterRootSettings.ScaleUnit
	Added Property Enum.NormalId ImporterRootSettings.WorldForward
	Added Property Enum.NormalId ImporterRootSettings.WorldUp
	Added Property bool ImporterRootSettings.ZeroOrigin

Added Class ImporterTextureSettings : ImporterBaseSettings [NotCreatable] [NotReplicated]

Added Class LinearVelocityConstraint : Constraint
	Added Property float LinearVelocityConstraint.MaxForce
	Added Property Vector3 LinearVelocityConstraint.LineDirection
	Added Property float LinearVelocityConstraint.LineVelocity
	Added Property Enum.ActuatorRelativeTo LinearVelocityConstraint.RelativeTo
	Added Property Enum.VelocityConstraintMode LinearVelocityConstraint.VelocityConstraintMode
	Added Property Vector2 LinearVelocityConstraint.PlaneVelocity
	Added Property Vector3 LinearVelocityConstraint.PrimaryTangentAxis
	Added Property Vector3 LinearVelocityConstraint.SecondaryTangentAxis
	Added Property Vector3 LinearVelocityConstraint.VectorVelocity

Added Property Enum.ResamplerMode ImageButton.ResampleMode
Added Property Enum.ResamplerMode ImageLabel.ResampleMode

Added Function Variant BillboardGui:GetScreenSpaceBounds() {RobloxScriptSecurity}
Added Function void RbxAnalyticsService:AddGlobalPointsTag(string key, string value) {RobloxScriptSecurity}
Added Function void RbxAnalyticsService:RemoveGlobalPointsTag(string key) {RobloxScriptSecurity}

Added Enum MeshScaleUnit
	Added EnumItem MeshScaleUnit.Stud : 0
	Added EnumItem MeshScaleUnit.Meter : 1
	Added EnumItem MeshScaleUnit.CM : 2
	Added EnumItem MeshScaleUnit.MM : 3
	Added EnumItem MeshScaleUnit.Foot : 4
	Added EnumItem MeshScaleUnit.Inch : 5

Added Enum ResamplerMode
	Added EnumItem ResamplerMode.Default : 0
	Added EnumItem ResamplerMode.Pixelated : 1

Added Enum VelocityConstraintMode
	Added EnumItem VelocityConstraintMode.Line : 0
	Added EnumItem VelocityConstraintMode.Plane : 1
	Added EnumItem VelocityConstraintMode.Vector : 2

Added Enum VoiceChatState
	Added EnumItem VoiceChatState.Idle : 0
	Added EnumItem VoiceChatState.Joining : 1
	Added EnumItem VoiceChatState.JoiningRetry : 2
	Added EnumItem VoiceChatState.Joined : 3
	Added EnumItem VoiceChatState.Leaving : 4
	Added EnumItem VoiceChatState.Ended : 5
	Added EnumItem VoiceChatState.Failed : 6

Changed the security of Class FaceControls 
	from: {None}
	  to: {PluginSecurity}

Changed the parameters of Function CommandService:RegisterCommand 
	from: (string name, string description)
	  to: (Plugin pluginname, string description, string )

Removed Property CommandInstance.Group

Removed Tag [NotScriptable] from Property FaceControls.Corrugator
Removed Tag [NotScriptable] from Property FaceControls.LeftBrowLowerer
Removed Tag [NotScriptable] from Property FaceControls.LeftInnerBrowRaiser
Removed Tag [NotScriptable] from Property FaceControls.LeftNoseWrinkler
Removed Tag [NotScriptable] from Property FaceControls.LeftOuterBrowRaiser
Removed Tag [NotScriptable] from Property FaceControls.RightBrowLowerer
Removed Tag [NotScriptable] from Property FaceControls.RightInnerBrowRaiser
Removed Tag [NotScriptable] from Property FaceControls.RightNoseWrinkler
Removed Tag [NotScriptable] from Property FaceControls.RightOuterBrowRaiser
Removed Tag [NotScriptable] from Property FaceControls.EyesLookDown
Removed Tag [NotScriptable] from Property FaceControls.EyesLookLeft
Removed Tag [NotScriptable] from Property FaceControls.EyesLookRight
Removed Tag [NotScriptable] from Property FaceControls.EyesLookUp
Removed Tag [NotScriptable] from Property FaceControls.LeftCheekRaiser
Removed Tag [NotScriptable] from Property FaceControls.LeftEyeClosed
Removed Tag [NotScriptable] from Property FaceControls.LeftEyeUpperLidRaiser
Removed Tag [NotScriptable] from Property FaceControls.RightCheekRaiser
Removed Tag [NotScriptable] from Property FaceControls.RightEyeClosed
Removed Tag [NotScriptable] from Property FaceControls.RightEyeUpperLidRaiser
Removed Tag [NotScriptable] from Property FaceControls.JawDrop
Removed Tag [NotScriptable] from Property FaceControls.JawLeft
Removed Tag [NotScriptable] from Property FaceControls.JawRight
Removed Tag [NotScriptable] from Property FaceControls.ChinRaiser
Removed Tag [NotScriptable] from Property FaceControls.ChinRaiserUpperLip
Removed Tag [NotScriptable] from Property FaceControls.FlatPucker
Removed Tag [NotScriptable] from Property FaceControls.Funneler
Removed Tag [NotScriptable] from Property FaceControls.LeftCheekPuff
Removed Tag [NotScriptable] from Property FaceControls.LeftDimpler
Removed Tag [NotScriptable] from Property FaceControls.LeftLipCornerDown
Removed Tag [NotScriptable] from Property FaceControls.LeftLipCornerPuller
Removed Tag [NotScriptable] from Property FaceControls.LeftLipStretcher
Removed Tag [NotScriptable] from Property FaceControls.LeftLowerLipDepressor
Removed Tag [NotScriptable] from Property FaceControls.LeftUpperLipRaiser
Removed Tag [NotScriptable] from Property FaceControls.LipPresser
Removed Tag [NotScriptable] from Property FaceControls.LipsTogether
Removed Tag [NotScriptable] from Property FaceControls.LowerLipSuck
Removed Tag [NotScriptable] from Property FaceControls.MouthLeft
Removed Tag [NotScriptable] from Property FaceControls.MouthRight
Removed Tag [NotScriptable] from Property FaceControls.Pucker
Removed Tag [NotScriptable] from Property FaceControls.RightCheekPuff
Removed Tag [NotScriptable] from Property FaceControls.RightDimpler
Removed Tag [NotScriptable] from Property FaceControls.RightLipCornerDown
Removed Tag [NotScriptable] from Property FaceControls.RightLipCornerPuller
Removed Tag [NotScriptable] from Property FaceControls.RightLipStretcher
Removed Tag [NotScriptable] from Property FaceControls.RightLowerLipDepressor
Removed Tag [NotScriptable] from Property FaceControls.RightUpperLipRaiser
Removed Tag [NotScriptable] from Property FaceControls.UpperLipSuck
Removed Tag [NotScriptable] from Property FaceControls.TongueDown
Removed Tag [NotScriptable] from Property FaceControls.TongueOut
Removed Tag [NotScriptable] from Property FaceControls.TongueUp

(Click here for a syntax highlighted version!)



a bunch of banger changes, thanks engineers


This new flag is making the Linux community very nervous, could anyone explain what this flag is actually for? :sweat_smile:



Autocomplete in Toolbox search.

Amazing, that’ll be great, along with hex code :clap:

It seems like VoiceChatService is officially going to be out w/out any pullbacks, so an official release anytime soon I’d assume for this upcoming event?


really? :bowing_man:

Although saying that; how does the built in method handle “partial” hex codes? e.g. does #9E expand to #9E9E9E, or would it just throw?


I’m very excited to test out ResampleMode since I easily assume that it’s support for pixel images at long last, but although the Release Notes say it’s live the ResamplerMode property is currently hidden on ImageObjects and while it can be set by command, there appears to be no visual difference yet.

I don’t suppose this is a bug but really hoping that it’ll become functional as soon as possible.


The new functions are Color3.fromHex(string) -> Color3 and Color3:ToHex() -> string.

fromHex supports “partial hex codes” in the form RGB which is equivalent to RRGGBB, so FFF is equivalent to FFFFFF (white). Only specifying 2 hexadecimal digits generates an error. An octothorpe (#) may be present at the start of the string, but is not necessary.

ToHex converts a Color3 to a hex string, in the format rrggbb, and errors if the Color3 contains a value which is NaN or out of range.


It’s used to add information about the “real” OS name into our analytics to help distinguish stability issues on real Windows platforms (that we support) from issues on Wine (which we don’t support officially). AFAIK we don’t have plans to block attempts of using Roblox on Wine, but we also don’t support it so it may break accidentally at any given point.


Oooh, really excited about this one! I just hope it comes to Decals, Textures, SurfaceAppearance, skyboxes, ParticleEmitters, etc. as well.


Definitely not right away. Those things use significantly different rendering paths, so it’s not simply a matter of adding the Lua property exposing it on each thing.


It seems the status is not correctly updated. I have contacted to request to switch it for a pending state. We will do announcement when it is live / testable in studio or clients. Thanks.


Sooooooo… anybody gonna talk about this?


I will, I’m very excited for its use. Obviously it’s necessary to restrict its usage to 13+, and moderation concerns, but this is an incredible step.

1 Like

It’s actually going to be 18+, you will need to input a valid ID to confirm your age in order to get access.

1 Like

Strange, I disagree with this system.
Platforms like Steam, Discord, Guilded, Teamspeak, and others have an age gate of 13 or above, and none of those require you to put your ID in to use voice chat.


It’s moreso a safety measure. Those platforms require every user to be 13+. Roblox allows any user, but to prevent security flaws, they make VC 18+. It’s usually around this age that the user is mature enough to act civil-ish.


I can respect the decision to restrict it for 18+ users, however, not respect uploading identification.


It’s really the only way of truthfully verifying the information quickly.

1 Like

This system isn’t permanent. Its going to be a start restrictive and loosen up over time deal. The idea is to rush out with 18+, work out scale and scalability etc then roll out to more people.