[V.3 - Huge Update] TextModule - Handle every text features easily!

Hey everyone !

I just spent some hours to made this module which handle a lot of differents text features, effects and changes for fun !

The module now include the Best TypeWriting ever as it contain Unique effects for your dialog texts.

Hope it will be usefull for you, i’m going to try to keep it updated by the time so feel free to tell me some suggestions if you want to ! :grin:


Ressource

✸⸻✦⸻★⸻✦⸻✸

[V.3] TextModule - Roblox


📌Last Update: 06 march 2023📌

• The “Speech” function got renamed and splited into 2 functions: “TypeWrite” and “TypeDelete”.
• The “TypeWrite” function now support 6 parameters.
• The “TypeDelete” function now support 3 parameters.

• The “Comma” function got renamed to “Spaced”.
• The “Spaced” function now support a second paramater.

• The “RichCustomize” function got renamed to “Customize” and got improved a bit.

• Added a new function “MovingDisplay” !
• Added a new function “Percentage” !
• Added a new function “DamageTaken” !


Functions

✸⸻✦⸻★⸻✦⸻✸

💤Suffixes💤

Convert a Number to its suffixe abreviation format.
Module:Suffixe(Number)
print(Module:Suffixe(2500))
--Result > 2.50K
TextLabel.Text = Module:Suffixe(Coins.Value)

⏰Timer⏰

Convert a Number to a timer format.
Module:Timer(Number)
print(Module:Timer(4207))
--Result > 01:10:07
TextLabel.Text = Module:Timer(Timing.Value)

◽Spaced◽

Convert a Number to a spaced format.
Module:Spaced(Number, "Symbol")
print(Module:Spaced(31250, ","))
-- Result > 31,250
TextLabel.Text = Module:Spaced(Coins.Value, ".")

💯Percentage💯

Convert 2 Numbers to a percentage format.
Module:Percentage(Number1, Number2, BooleanForDecimalVersion))
print(Module:Percentage(1000, 3500, false))
-- Result > 28%

print(Module:Percentage(1000, 3500, true))
-- Result > 28.6%

💥DamageTaken💥

Play a text animation near the selected character when he take damages.
Asigning a Player character is auto handling the respawn while it doesn't on NPC's.
Module:DamageTaken(Character, TextLabel)
local Player = game.Players.LocalPlayer
local Character = Player.Character

Module:DamageTaken(Character, script.Parent.TextLabel)

🖼️MovingDisplay🖼️

Play a text animation which move your text from right to left.
The text come and goes outside your text frame.
Setting 0 or lower value for the RepeatCount parameter will make it infinite animating.
Module:MovingDisplay(TextLabel, "YourText",  SpeedValue, RepeatCount, WaitTimeBetweenEachRepeat)
Module:MovingDisplay(script.Parent.TextLabel, "Hey, this is a pretty cool text effect!", 10, 5, 1)

💬TypeWrite💬

Play a dialog text animation using pretty cool and unique effects !
This unique TypeWrite effects use RichText markup to work.
Module:TypeWrite(TextLabel, "YourText", SpeedValue, Sound, "Mode", {"Effects"})
Here is the current Modes & Effects
V-V-V

Modes

  • Create: Make your text empty and create a new text dialog.
  • Continue: Keep your text how it is and continue the dialog next to it using your new text.

Effects

  • Classic: No special effects, letters are popping up instantly.
  • Fading: Make you text appearing with a transparency fade effect.
  • Growing: Make you text appearing by slowly growing.
  • Hacked: Make each letter having a random font.
  • Colored: Make each letter having a random outline color.
Module:TypeWrite(script.Parent.TextLabel, "Hello There! - ", 0.05, SoundService.Tick, "Create", {"Fading", "Growing"})
task.wait(5)
Module:TypeWrite(script.Parent.TextLabel, "I'm still talking lol", 0.05, SoundService.Tick, "Continue", {"Fading", "Growing"})

🗯️TypeDelete🗯️

Delete the current Text of your TextLabel
There is no special effects for now... but maybe in future updates !
Module:TypeDelete(TextLabel, SpeedValue, Sound)
Module:TypeDelete(script.Parent.TextLabel, 0.05, SoundService.Tick)

🎨Customize🎨

Manually customize each letter or part of your text.
This is basically what RichText markup does, it is just easier to use.
TextLabel.Text = Module:Customize(SettingsTable)
Here is the current Settings
V-V-V

Main Settings

  • Color =#ColorId
  • Size = Value
  • Face = “FontName”
  • Weight = “WeightName”
  • Transparency = Value
  • Stroke = {"#ColorId", “OutlineMode”, ThicknessValue, TransparencyValue}

Special Settings

  • Break = true / false
  • Italic = true / false
  • Strikethrough = true / false
  • Smallcaps = true / false
  • Bold = true / false
  • Uppercase = true / false
  • Underlined = true / false
local Text1 = {"Orange ", Color = "#ff5500", Size = 20}
local Text2 = {"Big ", Color = "#aa55ff", Size = 30}
local Text3 = {"Wow", Size = 20, Face = "Bangers"}
local Text4 = {"Hey ", Weight = "Heavy"}
local Text5 = {"Ghost", Transparency = 0.5}
local Text6 = {"Outlined", Stroke = {"#00ff7f","Round", 1.5, 0}, Break = true}
local Text7 = {"Shy", Italic = true, Strikethrough = true, Smallcaps = true}
local Text8 = {"Crying", Bold = true, Uppercase = true, Underlined = true}

script.Parent.Test1.Text = Module:Customize(Text1).. Module:Customize(Text2).. Module:Customize(Text3)
script.Parent.Test2.Text = Module:Customize(Text4).. Module:Customize(Text5).. Module:Customize(Text6)
script.Parent.Test4.Text = Module:Customize(Text7).. Module:Customize(Text8)
28 Likes

image It is good.
but it can be better
image implant, better type writing, more flexibility GIFS, a transistion for long effects (see this for understanding)
all that i have made (except better type writing) BUT in 1 module ONLY

2 Likes

Alright, thank you for the feedback !

I’m probably going to upgrade, optimize it and add new features by the time, including a better type writing with some additional settings for it ^^

Your SLTT module is pretty cool !
With your authorisation, i maybe can add it to my module and credit you in the module and in the post if you want to ?

I’m going to try this out later because I don’t have time to search for texts or create text animations, but it will likely be very helpful.

Okay, Thanks for the feedback !
Feel free to tell me your though once you tried it, keep in mind this is only the first version.

3 Likes

Btw, I meant that I don’t have time to look for texts and text animations so this module will help me a lot in making it myself

2 Likes

SetEffect(Object: TextLabel, Text: string, Fade: boolean, Bounce: boolean, Grow: boolean): ()

Module:SetEffect(script.Parent.Test6, "I'm working on pretty cool text effects which will be released soon !!!", true, true, true)

4512e5fecc7a12c7455ca936b4d97474

2 Likes

Just literally made the BEST TypeWriting effects ever!!
Without using texts duplication or other tricks that decrease game performances… i think nobody has made it like this before.

It will be included into the next update, get ready ^^
20e2f72dc981c3bcfe97f8ddb897b756


3d36845d6d21430f322918e2f26fae08

2 Likes

Damn thats some cool effects! I will surely follow this post for developments!

1 Like

Alright, the module just got updated with a brand new features and improvements, check it out !

The stuff that can be created with this module is very cool. But it could be more interesting if you add OOP to do something like :

local TextAnimation = TextAnimation.new()
TextAnimation:Play()
TextAnimation:Stop()
-- and other cools features !

It would be also easier for you to organize your stuff :eyes:

1 Like

Yeah, i’m probably going to do it with some special text animations like the current “MovingDisplay” ^^

1 Like

This is great, but you aren’t using string interpolation, if you don’t know what I mean, it’s like this

`{workspace} is great` --> Workspace is great

150/200

1 Like

Its still in beta ig, and only work for studio.
(feel free to correct me if i am wrong)

wrong, string interpolation is available in servers outside of studio, I tried this in Flee the mall public server (currently unavailable for you, please join my group and I may rank you to [ΣT] ΣSC Team) and it printed “Workspace is good” when I put in this

print(`{workspace} is good`)
1 Like

Mb, looks like its implemented for client too, before it only used to work for studio (just like every beta feature)

1 Like

The Hacked and Colored Effects doesn’t work

Alright, I’m going to look into it.
Also, did you enabled rich text on your text properties ?

1 Like

ohhhhhhhhhhhhh. I didn’t enabled rich text. Thx you

1 Like