Client Difference Log
API Changes
Added Class EulerRotationCurve : Instance
Added Property Enum.RotationOrder EulerRotationCurve.RotationOrder
Added Function Array EulerRotationCurve:GetAnglesAtTime(float time)
Added Function CFrame EulerRotationCurve:GetRotationAtTime(float time)
Added Function FloatCurve EulerRotationCurve:X()
Added Function FloatCurve EulerRotationCurve:Y()
Added Function FloatCurve EulerRotationCurve:Z()
Added Class FloatCurve : Instance
Added Property int FloatCurve.Length [ReadOnly]
Added Function FloatCurveKey FloatCurve:GetKeyAtIndex(int index)
Added Function Array FloatCurve:GetKeyIndicesAtTime(float time)
Added Function Array FloatCurve:GetKeys()
Added Function float? FloatCurve:GetValueAtTime(float time)
Added Function Array FloatCurve:InsertKey(FloatCurveKey key)
Added Function int FloatCurve:RemoveKeyAtIndex(int startingIndex, int count = 1)
Added Function int FloatCurve:SetKeys(Array keys)
Added Class TextChannel : Instance
Added Class TextChatService : Instance [NotCreatable] [Service] [NotReplicated]
Added Class TextSource : Instance
Added Class Vector3Curve : Instance
Added Function Array Vector3Curve:GetValueAtTime(float time)
Added Function FloatCurve Vector3Curve:X()
Added Function FloatCurve Vector3Curve:Y()
Added Function FloatCurve Vector3Curve:Z()
Added Property string CommandInstance.DisplayName [<📁> LoadOnly] [NotReplicated]
Added Property Vector2 ImageButton.ContentImageSize {RobloxScriptSecurity} [Hidden] [ReadOnly]
Added Property Vector2 ImageLabel.ContentImageSize {RobloxScriptSecurity} [Hidden] [ReadOnly]
Added Property bool ImporterRootSettings.MergeMeshes
Added Function void AssetManagerService:CreateAlias(int assetType, int64 assetId, string aliasName) {RobloxScriptSecurity} [Yields]
Added Function bool AvatarEditorService:NoPromptRenameOutfit(int64 outfitId, string name) {RobloxScriptSecurity}
Added Function void AvatarEditorService:PerformRenameOutfit(string name) {RobloxScriptSecurity}
Added Function void AvatarEditorService:PromptRenameOutfit(int64 outfitId)
Added Function void AvatarEditorService:SignalRenameOutfitFailed() {RobloxScriptSecurity}
Added Function void AvatarEditorService:SignalRenameOutfitPermissionDenied() {RobloxScriptSecurity}
Added Function void CommandInstance:EnableGuiAccess(string displayName, string statusTip, string defaultShortcut) {RobloxScriptSecurity}
Added Function void ImageButton:SetEnableContentImageSizeChangedEvents(bool enabled) {RobloxScriptSecurity}
Added Function void ImageLabel:SetEnableContentImageSizeChangedEvents(bool enabled) {RobloxScriptSecurity}
Added Event AssetManagerService.AssetImportedSignal(int assetType, int64 assetId, string assetName) {RobloxScriptSecurity}
Added Event AvatarEditorService.OpenPromptRenameOutfit(int64 outfitId) {RobloxScriptSecurity}
Added Event AvatarEditorService.PromptRenameOutfitCompleted(Enum.AvatarPromptResult result)
Added Enum KeyInterpolationMode
Added EnumItem KeyInterpolationMode.Constant : 0
Added EnumItem KeyInterpolationMode.Linear : 1
Added EnumItem KeyInterpolationMode.Cubic : 2
Added Enum RotationOrder
Added EnumItem RotationOrder.XYZ : 0
Added EnumItem RotationOrder.XZY : 1
Added EnumItem RotationOrder.YZX : 2
Added EnumItem RotationOrder.YXZ : 3
Added EnumItem RotationOrder.ZXY : 4
Added EnumItem RotationOrder.ZYX : 5
Added Tag [ReadOnly] to Property CommandInstance.DefaultShortcut
Changed the serialization of Property CommandInstance.DefaultShortcut
from: [<📁> LoadOnly]
to: [<🕒> RuntimeOnly]
Changed the thread safety, security, serialization and category of Property ScrollingFrame.AbsoluteCanvasSize
from: {🧬Safe} {RobloxScriptSecurity} [<🕒> RuntimeOnly] "Debugging"
to: {🧬Unsafe} {None} [<💾> SaveOnly] "Scrolling"
Changed the parameters of Function CommandService:RegisterCommand
from: (Plugin plugin, string name, string description)
to: (Plugin plugin, string name, string context, Enum.CommandPermission permission = "LocalUser")
Changed the parameters of Function DebuggerConnection:AddBreakpoint
from: (Instance script, int line, Instance breakpoint)
to: (ScriptRef script, int line, Breakpoint breakpoint)
Changed the parameters of Function DebuggerConnection:GetSource
from: (Instance scriptRef, Function status)
to: (ScriptRef scriptRef, Function status)
Changed the parameters of Function DebuggerConnection:RemoveBreakpoint
from: (Instance breakpoint)
to: (Breakpoint breakpoint)
Changed the parameters of Function DebuggerConnectionManager:ConnectLocal
from: (Instance dataModel)
to: (DataModel dataModel)
Changed the parameters of Function DebuggerConnectionManager:FocusConnection
from: (Instance connection)
to: (DebuggerConnection connection)
Changed the return-type of Function DebuggerVariable:GetVariableByIndex
from: Instance
to: DebuggerVariable
Changed the return-type of Function DebuggerVariable:GetVariableByName
from: Instance
to: DebuggerVariable
Changed the parameters of Event DebuggerConnection.BreakpointAdded
from: (Instance breakpoint)
to: (Breakpoint breakpoint)
Changed the parameters of Event DebuggerConnection.BreakpointChanged
from: (Instance breakpoint)
to: (Breakpoint breakpoint)
Changed the parameters of Event DebuggerConnection.BreakpointRemoved
from: (Instance breakpoint, Enum.BreakpointRemoveReason reason)
to: (Breakpoint breakpoint, Enum.BreakpointRemoveReason reason)
Changed the parameters of Event DebuggerConnection.Paused
from: (Instance pausedState, Enum.DebuggerPauseReason reason)
to: (PausedState pausedState, Enum.DebuggerPauseReason reason)
Changed the parameters of Event DebuggerConnection.Resumed
from: (Instance pausedState)
to: (PausedState pausedState)
Changed the parameters of Event DebuggerConnectionManager.ConnectionEnded
from: (Instance connection, Enum.DebuggerEndReason reason)
to: (DebuggerConnection connection, Enum.DebuggerEndReason reason)
Changed the parameters of Event DebuggerConnectionManager.ConnectionStarted
from: (Instance connection)
to: (DebuggerConnection connection)
Changed the parameters of Event DebuggerConnectionManager.FocusChanged
from: (Instance connection)
to: (DebuggerConnection connection)
Removed Property CommandInstance.Text
Removed Property ImporterRootSettings.FlattenAll
Removed Tag [Hidden] from Property ScrollingFrame.AbsoluteCanvasSize
Removed Tag [NotReplicated] from Property CommandInstance.DefaultShortcut
(Click here for a syntax highlighted version!)
ok but can we get an
@metatable
keyword or similar to strictly denote a table type with a metatable.
type Cat = {
["@metatable"] = {
index: (Cat, any, any) -> any
}
}
type Cat = typeof(setmetatable({},{__index=(nil::any)::(Cat,any)->any}))
This is a way to define Cat as an empty table with an index metamethod that takes any and returns any. Not sure why you made index
take 3 arguments, are you thinking of newindex
?
--!strict
type Cat = typeof(setmetatable({},{__index=(nil::any)::(Cat,any)->any}))
local x:Cat = setmetatable({},{__index=function(_:Cat,v:any)return v end})
-- no warnings
The syntax you use there also conflicts with the normal syntax {[T]:v}
, and using =
is weird in that context
This update is packed full of neat stuff.
This is something I’ve wanted for ages, and makes a lot of UI-related calculations much simpler when it comes to ScrollingFrames.
Both of these were previously mentioned in release notes, and, I’m super excited to see them improving. The impacts this will have on some of my OOP code is likely going to be pretty noticeable!
These sound extremely interesting, and, I’m very curious about them. Interestingly, Vector3Curve
and FloatCurve
are Instance
s, not datatypes, however, FloatCurveKey
is a datatype and accepts two numbers and an Enum called Enum.KeyInterpolationMode
according to its type info.
If I’m interpreting this right, will I be able to get an animation ID without having to leave studio? Right now I have to click a link and copy an ID from my browser, which is really inefficient. If this is correct, then man I am happy. Workflow: improved!
@tnavarts
Sorry to be a thorn in your side again. I’m really close to releasing my latest game, but unfortunately this bug is still happening on mobile devices even with the workaround I’m using, and as a result all of the characters have demon eyes at certain camera angles on mobile.
Is there any chance you can give an update on this or tell me what the flag is called that hasn’t been turned on yet (i.e. something that can be tracked via https://fflag.eryn.io/)? I want the launch to be smooth, and I want mobile users to have a consistent experience and a good first impression playing my game.
Flag will be turned on Monday.
Bonus explanation: The reason that this bug was so subtle is that it derives from stable vs non-stable sorting. The things to be rendered are sorted in multiple ways to get the final order. std::sort
is stable for arrays of less than 32 things, so only in very complex edge cases where there were a lot of objects in the block of things to render the non-stability of the larger sort clobbered the decal order that came from an earlier sort on Z-index.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.