Release Notes for 449

Notes for Release 449


Client Difference Log

API Changes

Added Property Enum<AutomaticSize> GuiObject.AutomaticSize
Added Property Enum<TriStateBoolean> PolicyService.IsLuobuServer {RobloxScriptSecurity} [Hidden]
Added Property Enum<TriStateBoolean> PolicyService.LuobuWhitelisted {RobloxScriptSecurity} [Hidden]
Added Property Enum<AutomaticSize> ScrollingFrame.AutomaticCanvasSize
Added Property bool Studio.Highlight Occurances
Added Property Enum<StudioScriptEditorColorPresets> Studio.Script Editor Color Preset
Added Property Enum<MeshPartHeads> Workspace.MeshPartHeads  [NotScriptable]

Added Function void Selection:Add(Objects instancesToAdd) {PluginSecurity}
Added Function void Selection:Remove(Objects instancesToRemove) {PluginSecurity}

Added Enum AutomaticSize
	Added EnumItem AutomaticSize.None : 0
	Added EnumItem AutomaticSize.X : 1
	Added EnumItem AutomaticSize.Y : 2
	Added EnumItem AutomaticSize.XY : 3

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

Added Enum StudioScriptEditorColorCategories
	Added EnumItem StudioScriptEditorColorCategories.Default : 0
	Added EnumItem StudioScriptEditorColorCategories.Operator : 1
	Added EnumItem StudioScriptEditorColorCategories.Number : 2
	Added EnumItem StudioScriptEditorColorCategories.String : 3
	Added EnumItem StudioScriptEditorColorCategories.Comment : 4
	Added EnumItem StudioScriptEditorColorCategories.Keyword : 5
	Added EnumItem StudioScriptEditorColorCategories.Builtin : 6

Added Enum StudioScriptEditorColorPresets
	Added EnumItem StudioScriptEditorColorPresets.RobloxDefault : 0
	Added EnumItem StudioScriptEditorColorPresets.Extra1 : 1
	Added EnumItem StudioScriptEditorColorPresets.Extra2 : 2
	Added EnumItem StudioScriptEditorColorPresets.Custom : 3

Added Enum TriStateBoolean
	Added EnumItem TriStateBoolean.Unknown : 0
	Added EnumItem TriStateBoolean.True : 1
	Added EnumItem TriStateBoolean.False : 2

Added EnumItem Font.AmaticSC : 21 [Preliminary]
Added EnumItem Font.Bangers : 22 [Preliminary]
Added EnumItem Font.Creepster : 23 [Preliminary]
Added EnumItem Font.DenkOne : 24 [Preliminary]
Added EnumItem Font.Fondamento : 25 [Preliminary]
Added EnumItem Font.FredokaOne : 26 [Preliminary]
Added EnumItem Font.GrenzeGotisch : 27 [Preliminary]
Added EnumItem Font.IndieFlower : 28 [Preliminary]
Added EnumItem Font.JosefinSans : 29 [Preliminary]
Added EnumItem Font.Jura : 30 [Preliminary]
Added EnumItem Font.Kalam : 31 [Preliminary]
Added EnumItem Font.LuckiestGuy : 32 [Preliminary]
Added EnumItem Font.Merriweather : 33 [Preliminary]
Added EnumItem Font.Michroma : 34 [Preliminary]
Added EnumItem Font.Nunito : 35 [Preliminary]
Added EnumItem Font.Oswald : 36 [Preliminary]
Added EnumItem Font.PatrickHand : 37 [Preliminary]
Added EnumItem Font.PermanentMarker : 38 [Preliminary]
Added EnumItem Font.Roboto : 39 [Preliminary]
Added EnumItem Font.RobotoCondensed : 40 [Preliminary]
Added EnumItem Font.RobotoMono : 41 [Preliminary]
Added EnumItem Font.Sarpanch : 42 [Preliminary]
Added EnumItem Font.SpecialElite : 43 [Preliminary]
Added EnumItem Font.TitilliumWeb : 44 [Preliminary]
Added EnumItem Font.Ubuntu : 45 [Preliminary]

Changed the parameters of Function Plugin:PlaySound 
	from: (Instance soundChannel)
	  to: (Instance soundChannel, double normalizedTimePosition = 0)

Changed the parameters of Event BulkImportService.AssetImported 
	from: (Enum<AssetType> assetType, string name, int id)
	  to: (Enum<AssetType> assetType, string name, int64 id)

(Click here for a syntax highlighted version!)


Why are the new fonts marked as Deprecated? Are we not supposed to use them yet??

What in the world

Boolean with 3 states O_O


Omg, I though that this day will never come…

Thanks for making development so much easier!


I think that that’s because it’s still “pending”, so they may be trying to make people not use it yet until fully they release it. Not sure, but that’s my guess.

Also, it says [Prelimanary] instead of deprecated in the highlighted version:


This seems interesting:

By AutomaticSize, is it replacing the SizeConstraint property? Or is it there to work with UIAspectRatioConstract as an alternative/replacement for the DominantAxis property? For example, setting DominantAxis to Width is the same as letting it automatically scale the Height (Y).

It seems cool IMO. Hopefully, it can be used for responsive UI, but if not, still cool nonetheless.


AutomaticSize is looking real delicious, but I’ll need to field test it before I can confirm how useful it is towards making Guis. I often struggle with making Guis appropriate for all screen sizes, typically opting to cop out with proper design by using only offset.

Also, nice to see more detailed errors for failed indexing.


Looks like fonts are about to become a thing, mostly new ones! I’ll be glad to use them in an upcoming project of mine whenever they’re off of pending, nice!

Although, it’s still in [Preliminary] or “deprecated” at the moment until it’s fully done, not cool so far…


^ Also, what colors or “presents” does this do or represent? I’m very interested in what will this be used for something related to the script editor on it(s) presents.

TriStateBoolean, seems interesting to see this being added with the Value / Boolean family for some alternatives? Want to see what this does in the future!


Very glad this is a feature now!image
I would find myself constantly having to re-iterate and add random :GetFullName() prints sometimes.


I’m not sure when this happened, but this is beautiful! Reporting bugs on the Devforum pays off! :grinning:

Also, it looks like the new fonts already show in Studio if you set them via scripting.


Lots of people are talking about the fonts, but what about not having to scroll for a minute to find where you want to publish? Great update.


Its an ugly hack that Roblox engineers use to hide the enum in Roblox Studio’s dropdown menu when they don’t want it to be used yet.

I dislike it too and requested they stop doing that, but unfortunately they haven’t changed this yet.

For now my API Dump Tool just hacks around it and assume that additions with a [Deprecated] tag are supposed to be [Preliminary]. Also when a [Deprecated] tag is removed from a member, it is removed as [Preliminary].



Interested in Selection::Add and Selection::Remove though. What’s the benefit over using Selection::Get/Set?


The reasons that Deprecated is still used are rather arcane, so there’s no easy explanation for why we still have to do this, but I can let you know that some work which is underway will likely eliminate the need for the deprecated tags (and give us more flexibility on adding other tags).


The Explorer window (and other parts of studio) can be smarter about how they processes the selection change. This has both performance benefits and behavioral benefits. For example, if you use SelectionService::Add then the Explorer pane will jump the scroll state specifically to the added object.


Just make sure everything still smoothly reflects to the JSON API Dump. I’m not sure if anyone is maintaining that at the moment, but I remember the unit test was very flaky and it might break if anything is changed in the ReflectionMetadata.


This is a terrible stupid nitpick, but can I suggest instead of calling it Unknown, it be called Other? Unknown implies an invalid or problematic state, while Other is completely neutral, and offers less confusion to anyone who may choose to use this for other purposes.


TriStateBoolean is something they added for their own internal use and it isn’t intended for us.
I wouldn’t count on it sticking around or use it in any code.

@Dekkonot @loueque


Thank goodness images are no longer uploaded as rbxgameassets. Literally the first thing I’ve done for years when I upload images is change those to rbxassetids. This is a much-appreciated change. Does this also mean we no longer have to publish a place to use the property widget image uploader?


I noticed a (potential?) little bug a few days ago, (Honestly its so obscure I’m surprised I found it)
If you have a completely empty script and you open it fresh, a color picker shows up on the side of the script editor. I wasn’t able to get this to show up in any other case and as soon as you edited the script it’d go away. If you selected a color it inserted the RGB values directly. I could not get this to show up with anything other than a blank script with absolutely no content.

This is great to see, I’ve been using WeldConstraints over Welds much more now since the floating point issues were fixed (no more hunchback characters in my project lmao), and they’re much easier to work with.

I’m excited for the new Fonts, and this is absolutely amazing

Overall, not too bad an update! :smile: Not much, but, not boring.


Yes, I saw this the other day. I thought it was a bug or something with VSCode not closing properly. Maybe this is related to that StudioScriptEditorColorPresets Enum?