Text+ | Custom fonts & advanced control

An efficient, robust, open-source text-rendering library for
Roblox, featuring custom fonts and advanced text control.

ModuleGitHubGitBook




:sparkles: Powerful creativity.

Experience text in Roblox like never before.

  • Custom fonts: Use any font file, whether one of your own or one you found online.
  • Advanced control:
    • Easily transform and style any individual character, word or line with freedom.
    • Utilize awesome text styling like justified alignments and spacing controls.
    • Effortlessly setup text scaling, ensuring perfect size on all devices.
      • Differs from TextScaled. Learn more at the documentation.

:eyes: Check it out below!

🎬 Showcases

:speech_balloon: Super simple dialogue!

A really simple ‘dialogue’, featuring:

  • Neat text in/out animations.
  • A custom font.
  • A cool shining word effect.

TUTORIAL

:collision: Text explosion!

A cool text explosion effect. :exploding_head:
Features a custom font too.

:sparkles: @baconcoolboysun’s text effects!

An interesting showcase of numerous special text effects.

:megaphone: @Judash399’s text effects announcement!

Watch the announcement for cool text effects in this game. :smiling_face_with_sunglasses:


:high_voltage: Fast, stable, intuitive.

  • Blazingly fast, lag-free performance.
  • Catches errors with clear feedback.
  • Proper typing and documentation.

:bell: Don’t forget to stay up-to-date!

Make sure you always have the latest version of the library,
so that you benefit from the newest features, improvements and fixes.

You can see all releases in detail at the GitHub repository.
Major updates will be posted in this topic as well.

:loudspeaker: Share your works and thoughts!

I’d love to see your amazing creations, so consider sharing what you craft!

And please don’t hesitate to ask questions or report any errors you encounter/discover.
I’m always here to help and improve!





Special thanks to:


Like what you see?
Check out my other projects!

∙ ​ Tween+ | Advanced & performant tweening
∙ ​ Signal+ | Super fast & elegant signals
∙ ​ Inxpect | Easy & efficient API maps

Tags

library module api text effects rendering renderer custom fonts advanced fine control dialogue animation creativity features open source scripting ui gui graphical interface design quality performance optimization customization

354 Likes

im nooticing :face_with_monocle:


25 Likes

Ah, that’s the previous version of this library, posted by my alternative account.
I’ll probably just get rid of that post, since it’s a predecessor of Text+.

20 Likes

Oh no, it’s fine if so, it was just unsure if it was your alt or not. Instead of completely deleting it, you should edit the original post and link this post at the very top.

20 Likes

Hell yeah! Dude that’s amazing. Have been looking to something like this for a while.

5 Likes

this seems pretty, cool im bookmarking this fs!

3 Likes

This is really cool!
Im not joking im already trying to implement this into my game lol

3 Likes

how are animations applied for this module?

2 Likes

Looks nice! Would text localization still works using this module?

1 Like

based on what ive seen the power of the module comes in that every character of the string is split into its own text label. You can use one of the functions to get all the characters in the text and then loop through them to do effects on them. at least thats what ive been doing. (let me know if this isnt what your supposed to be doing)

2 Likes

You should make an example place for these to show how the module should be used.

6 Likes

Unfortunately automatic text localization won’t detect text created using Text+.

2 Likes

Sounds like a great idea!

Do note that there’s already a detailed guide on how you use the module, so don’t skip that!

9 Likes

Just stumbled upon this resource, and I gotta say — this is looking very promising! I’m mainly excited for the fact that this allows me to use custom fonts for my project.

Roblox’s choice of fonts is…meh. They’re fine as is, but the limitations set in place really grinds my gears. It also doesn’t help the fact that we’ve heard no further confirmations of new fonts being added as of now.

Can’t wait to try this out~
Thanks for this resource. :tada:

2 Likes

How did you do the effects and the typewriting effect?, sorry if it’s kinda obvious

edit : actually i see it’s explained, but a showcase place would be cool

1 Like

Alright. Some immediate thoughts on this resource after giving it a go:

Janky Font Sizing/Positioning

I had to adjust the size of my custom font in the CustomFonts module so that it would actually be centered inside the frame (XAlignment = Enum.TextXAlignment.Center and YAlignment = Enum.TextYAlignment.Center were applied).

I think this may be dependent on the typeface and the settings I used when creating the necessary assets for it, so I’m not sure if this is a universal thing for everyone else. Still, kind of annoying to deal with, but it’s not too major.

Before (Size = 100)
Screenshot 2025-03-04 140718

After (Size = 128)
Screenshot 2025-03-04 140753

--<< Code to display text
textPlus.Create(
	text_frame_obj,
	"Some text here",
	{
		Font = Font.new(
			"Manrope",
			Enum.FontWeight.ExtraBold,
			Enum.FontStyle.Normal
		),
		
		Size = 50,
		Color = Color3.fromRGB(255, 255, 255),
		XAlignment = Enum.TextXAlignment.Center,
		YAlignment = Enum.TextYAlignment.Center,
	}
)

Lack of Some Customization Options

Firstly, it would’ve been nice if there were customization options to include text strokes (outlines on the text), especially on custom fonts. I know it’d be somewhat complicated to implement with custom fonts, so I don’t expect much in this area, but still — it’d be nice to have.

Secondly, I had to create a separate Frame object to act as the text shadow for the main text: adjusted the positioning and ZIndex of it to display beneath the main text, then I copied and pasted the code to display the main text for the shadow text with slightly differences. It’d be nice to have all of this extra work consolidated into the same block of code used to display the main text as custom options for shadow text.


These are what’s stood out to me as I was testing this resource. If there’s anything else I discover, I’ll follow through with another reply.

Still, this resource is quite ingenious~ I intend to further test it and see if it’s a good fit for my project. :+1:

3 Likes

Thanks for the constructive criticism, this is what I’m looking for!

I think this may be dependent on the typeface and the settings I used when creating the necessary assets for it, so I’m not sure if this is a universal thing for everyone else

I’ve not experienced this. Like you say, it might be to do with your typeface — some typefaces are just “janky”, having really huge line heights etc.

If you’re able to find any further information for this, perhaps a clue that it’s not the typeface, let me know!

Firstly, it would’ve been nice if there were customization options to include text strokes (outlines on the text), especially on custom fonts. I know it’d be somewhat complicated to implement with custom fonts, so I don’t expect much in this area, but still — it’d be nice to have.

I’ll definitely add this for built-in fonts.

As for custom fonts, it will be way more advanced to add strokes. I would have to use EditableImage instances, using a lot of math to draw pixels the right places — likely having to use another open-source module just for drawing the pixels — while technically not impossible, it’s a big task, complicating the module a whole lot more than needed, not at all performant. TLDR: not worth it.


Thanks for the appreciation of this resource! I’ve put a lot of work into it, and positive comments are what keeps me going.

2 Likes

:package: Version 1.1

:sparkles: New features:

  • TextBounds calculation — obtain through TextPlus.GetTextBounds().
  • Stroke customization option — uses UIStroke instances — only works for built-in fonts.
  • Line break support — you can use multiline strings.

:hammer_and_wrench: Changes & fixes:

  • Minor performance improvements.
  • Minor bug fixes.
  • Minor comment changes and additions.
2 Likes

Shouldn’t this be the complete opposite? Built-in fonts should use the default textstroke option, and custom fonts should use UIstroke?

No? Custom fonts consist of ImageLabels. You can’t add strokes to images as of now in Roblox Studio — you can, but it will simply be the border of the image container, it will not respect any alpha of the actual image.

2 Likes