Release Notes for 366


Notes for Release 366


Client Difference Log

API Changes

Added Class KeyframeMarker : Instance
	Added Property string KeyframeMarker.Value

Added Class LocalStorageService : Instance [NotCreatable] [Service] [NotReplicated]
	Added Function void LocalStorageService:Flush() {RobloxScriptSecurity}
	Added Function string LocalStorageService:GetItem(string key) {RobloxScriptSecurity}
	Added Function void LocalStorageService:SetItem(string key, string value) {RobloxScriptSecurity}
	Added Function void LocalStorageService:WhenLoaded(Function callback) {RobloxScriptSecurity}
	Added Event LocalStorageService.ItemWasSet(string key, string value) {RobloxScriptSecurity}
	Added Event LocalStorageService.StoreWasCleared() {RobloxScriptSecurity}

Added Class AppStorageService : LocalStorageService [NotCreatable] [Service] [NotReplicated]
Added Class UserStorageService : LocalStorageService [NotCreatable] [Service] [NotReplicated]

Added Property Enum<DEPRECATED_DebuggerDataModelPreference> Studio.Attach Debugger To
Added Property bool Studio.LuaDebuggerEnabledAtStartup [Hidden] [ReadOnly]
Added Property bool ReflectionMetadataItem.ClientOnly
Added Property bool ReflectionMetadataItem.ServerOnly

Added Function RBXScriptSignal AnimationTrack:GetMarkerReachedSignal(string name)
Added Function Objects BasePlayerGui:GetGuiObjectsAtPosition(int x, int y)
Added Function void Humanoid:ApplyDescription(Instance humanoidDescription) [Yields]
Added Function void Humanoid:CacheDefaults() {RobloxScriptSecurity}
Added Function Instance Humanoid:GetAppliedDescription()
Added Function void Keyframe:AddMarker(Instance marker)
Added Function Objects Keyframe:GetMarkers()
Added Function void Keyframe:RemoveMarker(Instance marker)
Added Function void StarterPlayer:ClearDefaults() {RobloxScriptSecurity}

Added Enum DEPRECATED_DebuggerDataModelPreference
	Added EnumItem DEPRECATED_DebuggerDataModelPreference.Server : 0
	Added EnumItem DEPRECATED_DebuggerDataModelPreference.Client : 1

Changed the parameters and security of Function Plugin:StartDrag 
	from: (PluginDrag drag) {RobloxScriptSecurity}
	  to: (Dictionary dragData) {PluginSecurity}

Changed the parameters and security of Event PluginGui.PluginDragDropped 
	from: (Instance pluginDragEvent) {RobloxScriptSecurity}
	  to: (Dictionary dragData) {PluginSecurity}

Changed the parameters and security of Event PluginGui.PluginDragEntered 
	from: (Instance pluginDragEvent) {RobloxScriptSecurity}
	  to: (Dictionary dragData) {PluginSecurity}

Changed the parameters and security of Event PluginGui.PluginDragLeft 
	from: (Instance pluginDragEvent) {RobloxScriptSecurity}
	  to: (Dictionary dragData) {PluginSecurity}

Changed the parameters and security of Event PluginGui.PluginDragMoved 
	from: (Instance pluginDragEvent) {RobloxScriptSecurity}
	  to: (Dictionary dragData) {PluginSecurity}

Removed Property Studio.Debug Client In APS Mode

Release Notes for 369

Just a heads up, Roblox Studio appears to still be on v365, so these changes may not be immediately available. With the upcoming holiday code freeze, there may not be any more updates until January.

Once these APIs are available to be used everywhere, they should appear on the DevHub.


There’s been updates to both animation instances and humanoids, so I’m curious to know what’s at work here. First with the keyframes (I’d like to look into these), next with… uh… “descriptions”?


A new object named HumanoidDescription (which is related to these new functions) was added a few updates ago. The object representing a costume for an avatar to wear, as a single object that can be stored in the explorer.

Documentation is currently pending:


As for KeyframeMarkers, they appear to serve a similar purpose to the AnimationTrack’s KeyframeReached event. However, instead of only being able to assign one name to a keyframe, you can have multiple “markers” attached to a keyframe. These markers can appear again in multiple keyframes, all without having to rename the keyframe itself.



:smiley: :smiley:



These API changes should be available now, as Studio is now on v367.
They might not be enabled yet, but they do exist in Roblox Studio.

The release notes for 367 should hopefully be out sometime in the next 24 hours.