Scrolling Into the Future with TextBoxes

Hi Creators,

We’re excited to announce support for TextBox scrolling on desktop platforms. :tada:

Text will now scroll when your cursor leaves the bounds of your TextBox to keep what you’re typing in view at all times. Multiline vertical scrolling is also supported. This new behavior allows users to edit longer text without needing to enable something like TextScaled, which often shrinks text to an unreadable size.

Example of TextBox scrolling

Example of multiline vertical scrolling

How do I use it?

This scrolling behavior is on at all times, but you need to make sure you don’t have any properties enabled that stop text from leaving the bounds such as TextScaled or TextWrapped. You’ll also probably want to enable ClipsDescendants so that the overflowing text doesn’t cover other interface elements. :scroll:

If you encounter any issues, feel free to comment under this post or submit a bug report.

Thank you!


:star_struck: Up until now i thought the future was simply bright… but now i know, it’s scrollable too! :scroll:


This topic was automatically opened after 9 minutes.

Is this what FFlagFixLuaTextBoxScrollingBehavior was for?

I saw it today, and coincidentally just saw that there’s a release about TextBox and Scrolling now.


Cool, i could probably use this in some way.


Woah an amazing update to TextBoxes!

I think this will help with general readability of text when inputting things like applications or general short answers.

In addition to this, I think Roblox should be looking into automatic font size scaling across devices, we all know text scaled is a pain and not the best thing to use, and most of the time I end up using a solution based on screen aspect ratio to give a constant text size across my interfaces, something like this would be great.


I am once again asking for an automatic way of scaling text vertically to fit a desired number of lines. If I want a TextBox to accommodate 3 lines of text, the only way to do this currently is to set TextSize to AbsoluteSize.Y / 3 every frame. We should have an automatic way of doing this.

With this update, a feature like this is more important than ever.


I hope in the future they can add more GuiObjects or at least improve the ones we already have, and I hope in the near future they will take Flex elements out of beta, roblox is on a better way :happy4:


W feature. would be nice if ui outlines could scale with the ui element it’s a descendant of.


This is a very useful update, especially for games with custom chat. Are advanced post processing effects planned by any chance?


Flex elements exist on roblox like CSS display: flex;?


They’re currently being trialed in the UiLayout instances, I must admit they are really great.


Nice update. On a similar topic, when can we expect to get the ability to control the scroll speed of ScrollingFrames?


Yes, there is flex alignment and the “wrap” property (and several others), this for uilistlayouts


Heavily agree! Not even just for TextBox, but TextLabels & TextButtons, I often just separate lines into their own label as an easy workaround. While it’s good to avoid TextScaled whenever possible, there are cases where it makes sense to use it.

Anyways, this feature was soooo needed, glad it’s here now! I had to implement this for a couple TextBoxes of mine, and it wasn’t that fun xD


Thank you for this much needed addition!

First of all, small bug: if the textbox is centred, the cursor won’t centre back if it’s been moved to the side when scrolling.

Otherwise, can we expect a way to toggle this feature, and an option to change the scrolling direction to be vertical? I can see this being useful for multiline inputs, as looking at the demo, it feels very unnatural to present those scrolling horizontally. Take for example the text box I’m typing in right here on the DevForum, among basically every multiline input on websites.


Would be even better if you guys didn’t force it.

All jokes aside, this is great! Now we can finally make our chat system more realistic…


Interesting, I’ve played some experiences that already do this. It must’ve been a home-made solution, which I guess goes to show how much this was needed!


Something we never asked for but something we needed.


Roblox does not seem to have its wants and needs prioritized…