Release Notes for 459

Notes for Release 459


Client Difference Log

API Changes

Added Property bool Studio.Enable Temporary Tabs In Explorer

Added Function Instance AvatarEditorService:CheckApplyDefaultClothing(Instance humanoidDescription) {RobloxScriptSecurity} [Yields]
Added Function Instance AvatarEditorService:ConformToAvatarRules(Instance humanoidDescription) {RobloxScriptSecurity} [Yields]
Added Function void AvatarEditorService:PerformCreateOutfitWithDescription(Instance humanoidDescription, string name) {RobloxScriptSecurity}
Added Function void AvatarEditorService:PerformSaveAvatarWithDescription(Instance humanoidDescription, Array addedAssets, Array removedAssets) {RobloxScriptSecurity}
Added Function void AvatarEditorService:SignalCreateOutfitFailed() {RobloxScriptSecurity}
Added Function void HeightmapImporterService:CancelImportHeightmap() {RobloxScriptSecurity}
Added Function Tuple HeightmapImporterService:GetGreyscale(Content heightmapAssetId) {RobloxScriptSecurity}
Added Function void HeightmapImporterService:ImportHeightmap(Region3 region, Content heightmapAssetId, Content colormapAssetId, Enum<Material> defaultMaterial) {RobloxScriptSecurity} [Yields]
Added Function void HeightmapImporterService:SetImportHeightmapPaused(bool paused) {RobloxScriptSecurity}
Added Function Objects InsertService:LoadPackageAssetAsync(Content url) {RobloxScriptSecurity} [Yields]
Added Function void Workspace:SetMeshPartHeads(Enum<MeshPartHeads> value) {RobloxScriptSecurity}

Added Event HeightmapImporterService.ProgressUpdate(float progressRatio) {RobloxScriptSecurity}

Added EnumItem WrapLayerDebugMode.BoundCage : 1
Added EnumItem WrapLayerDebugMode.BoundCageAndLinks : 3

Added Tag [Deprecated] to Function PlayerGui:GetTopbarTransparency
Added Tag [Deprecated] to Function PlayerGui:SetTopbarTransparency
Added Tag [Deprecated] to Event PlayerGui.TopbarTransparencyChangedSignal

Changed the parameters of Function HeightmapImporterService:IsValidColormap 
	from: (Content heightmapAssetId)
	  to: (Content colormapAssetId)

Changed the parameters and return-type of Function GlobalDataStore:SetAsync 
	from: (string key, Variant value) void
	  to: (string key, Variant value, Variant userids, Instance options = nil) Variant

Changed the return-type of Function GlobalDataStore:GetAsync 
	from: Variant
	  to: Tuple

Changed the return-type of Function GlobalDataStore:RemoveAsync 
	from: Variant
	  to: Tuple

Removed Property StudioData.EnableScriptCollabVersionHistoryOnLoad

Removed EnumItem WrapLayerDebugMode.BindedCage
Removed EnumItem WrapLayerDebugMode.BindedCageAndLinks

(Click here for a syntax highlighted version!)


I’m probably misreading this:

RichText will now be able to scale to fit if TextScaled is set to true.
Also, it will correctly wrap against spaces if possible.

But does that mean RichText will now wrap with wrapped text?

Also, is there any planned public release date for the AvatarEditorService? I’m really looking forward to this feature, and I’d love to use it in my own in-game avatar editor!


Attributes are going to be released soon confirmed? :eyes:


There are some flags pertaining to a beta feature for it coming soon. It likely won’t be out until next year, but if all goes well perhaps we could see the beta start before the year is over.


What are these functions going to return new, what new arguments will they be accepting? Is Instance options going to be some settings datatype, similar to RaycastParams? Will there be a DataStoreResult class or similar? I noticed that similar datatypes to RaycastParams were added for TeleportService, that is really cool.


These are part of upcoming changes to datastores and will not affect existing usage of datastores. We will update the documentation page with more information.


My guess is it’s for GDPR specifically, so that you can save data to a given user ID to make it easier to delete that data when a GDPR request is issued. It’s basically how Data Persistence used to work.


Users can now add Groups/other Users to play without having to enable Team Create. Groups can add Users to play without having to enable Team Create.

Loosened team create permissions so user team create games can add groups that they are not a part of with the play permission and group team create games can add users that are not part of their group with the play permission.

Now this is the takeaway I got from this update. I recall that this was initially a setting and then it was removed for some strange reason (something about impracticality? not sure). I am very happy to see that this feature is now going to be part of the product.

Groups being able to add other groups and users for play permissions and users being able to do the same is a very valuable feature. In workflows like mine, I split my development groups and places with my main group and in a case where I want to have a private testing session, I’d love to whitelist the Roblox QA Team while disallowing non-NDA verified testers from playing or requiring them to join my development group in order to play and thus taking up a group slot.

I believe this feature has been asked back a few times and if it was added in as a result of those requests, then I want to thank Roblox for respecting the feedback of developers for a valuable use case and reinstating this feature which will help us with our workflows.

Just a question though: these two points seem a bit contradictory. The first one states we can add other users/groups without team create but the second says we can only add opposites with it. What’s the true state here? Can we add other groups and players to play with or without team create?

Changed the parameters and return-type of Function GlobalDataStore:SetAsync
from: (string key, Variant value) void
to: (string key, Variant value, Variant userids, Instance options = nil) Variant

Getting excited here. If this is what I think it is, then this might be the batch requests that Roblox said we would be getting at RDC 2020, allowing us to write multiple players’ data at once. If not, then I’ll be awaiting updates for documentation. I would sure hope that UpdateAsync will get batching as well and the API will be clean and comfortable to use.


If I can take a wild guess, I think this (at least the UserIds) will be used to help developers comply with GDPR. I recall an announcement of upcoming changes to ease this.


This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.