This is a beta feature for a new editor in the Properties Panel for changing fonts of GUI instances like TextLabel, TextButton, and TextBox.
How to enable the beta
-
Go to File → Beta Features.
-
Scroll until you see New Font Picker UI.
-
After you enable the checkbox, you will be prompted to restart Studio.
Overview
Currently, when selecting fonts, you have to choose from a dropdown with more than 50 options, with some fonts being listed more than once because of having a bold or italic version. There is no preview of what these fonts look like, and some of the names are also generic and do not match the original name of the font, which can make it hard to work in external tools like Photoshop. Quickly toggling bold and italic is also a pain, sometimes requiring RichText.
The new UI displays a preview and is more organized. In addition, it provides access to more weights than before. This is possible through a new API that we’ve added for fonts that is now live everywhere - no beta needed.
This feature has been requested many times by developers and was made more necessary when we added 25 new fonts back in 2020. In the future, we plan to offer even more fonts, adding search and favorite functionality.
Additional Info
Renamed Fonts
Some fonts display under a different name with the new font UI. You can find this information in the dropdown table below. A full list of all available fonts can be found in the documentation. The old names refer to Enum.Font
values which will stay the same.
Renamed fonts
Enum name | Displays as | Asset ID |
---|---|---|
Legacy |
Arial (Legacy) | rbxasset://fonts/families/LegacyArial.json |
SourceSans |
Source Sans Pro | rbxasset://fonts/families/SourceSansPro.json |
Bodoni |
Accanthis ADF Std | rbxasset://fonts/families/AccanthisADFStd.json |
Garamond |
Guru | rbxasset://fonts/families/Guru.json |
Cartoon |
Comic Neue Angular | rbxasset://fonts/families/ComicNeueAngular.json |
Code |
Inconsolata | rbxasset://fonts/families/Inconsolata.json |
Highway |
Highway Gothic | rbxasset://fonts/families/HighwayGothic.json |
SciFi |
Zekton | rbxasset://fonts/families/Zekton.json |
Arcade |
Press Start 2P | rbxasset://fonts/families/PressStart2P.json |
Fantasy |
Balthazar | rbxasset://fonts/families/Balthazar.json |
Antique |
Roman Antique | rbxasset://fonts/families/RomanAntique.json |
Gotham |
Gotham SSm | rbxasset://fonts/families/GothamSSm.json |
Tips
You can right-click on items in the dropdown to copy their asset ID for use in scripts.
Rollout Plan
If no major blocking issues come up during this beta, we plan to enable the feature live for everyone in a few weeks.
After that, we’ll be working on the next step for this feature. In the future, we plan to add support for picking fonts in the Script Editor similar to the color picker widget, as well as integrating it with the toolbox so that we can offer a much larger catalog of free fonts. The toolbox integration was previously announced at RDC 2021.
New API
This API is already live and you can start using it right now. The beta feature is only for the Studio UI.
Note when the beta feature is off, some fonts will show up as Unknown
in the old font picker UI. These fonts were previously not available.
-
New property: TextLabel/TextButton/TextBox.FontFace
This serves as an alternative to the Font property, providing more functionality. -
New data type: Font
Has properties like Weight and Style. This can also be used as an Attribute. -
New method: TextService:GetTextBoundsAsync()
An alternative toGetTextSize()
that uses the new Font type instead. -
New method: TextService:GetFamilyInfoAsync()
Returns a dictionary which includes the name and list of available weights for the given font. -
New RichText tags:
<font family="...">
and<font weight="...">
Allows finer weight distinctions than only bold, providing more options when authoring rich text.
With this new API, some fonts are downloaded from the cloud similar to textures and sounds, instead of built into into the client. As a result, ContentProvider:PreloadAsync() can now be used on text objects to ensure that the fonts have loaded.
Credit goes to all these people: @Tiffblocks, @Rototally, @uiuxartist, and everyone else who contributed!
Thanks for reading.