I’ve experimented a bit here and honestly your best bet is to use a Auto Wrapped TextBox nested inside a ScrollBox. A lot of games use this solution.

Another solution is to use “Size to Content” if it’s part of a Canvas Panel. This way it will resize the border (if it’s nested inside) to make sure the text doesn’t escape.
There’s one more thing you could is simply not use Auto-Wrap and wrap it yourself. Text and line sizes aren’t consistent when Auto-Wrap is on and resolutions change, so you could simply create new lines for text you input on your own, that way the texts remain the same sizes no matter what. I’ve tried this and it looks nice.
If you’re dead set on having text size perfectly consistent across at a fixed border size, it’s better to make your own scaling solution which might be a lot more work

