Open Source Fully Documented Nametag and Rank System

UPDATE: Nametag+ has been released! This version is much more performant and customizable but does require some knowledge of module scripts. If you know basic scripting, I’d highly recommend that version. However, if you are looking for a simpler drag-and-drop system or a place to learn about nametag systems, this model may work better for you.

Hello everyone! Today I’d like to share with you this open source nametag (and rank) system. If you’d like to get it, I have the place file and free-model below:

NameTagSystem.rbxl (24.2 KB)


  • FULL DOCUMENTATION OF ALL CODE (great for learning some more advanced Lua)!
  • Customizable group and rank requirement.
  • Add people to a VIP list even if they haven’t bought a gamepass or joined a group.
  • Nametags are server sided.
  • Integrated VIP gamepass support (Disco nametag).
  • Integrated leaderstats functionality (will use a preexisting folder if available).
  • Custom nametag colors.
  • Single model - moves all the stuff around for you.
  • Custom names for those who haven’t joined your group.
  • Most customization is done with values rather than variables in the script!

What you can learn from it:

  • Variables
  • For loops
  • Arrays
  • RemoteEvents
  • Functions
  • And more!

Hope you enjoy! Please comment below if there is anything you think that I should add!

UPDATE: Here’s a preview:
(Blue outline for clarity).

UPDATE 2: Squashed the bugs! WOOHOO! Let me know if you spot any more. Credit to xWil_l for finding these!

UPDATE 3: Added optional leaderstats ranks and reorganized the settings. Thanks for the suggestion @Swinsor! To enabe leaderstats, set UseLeaderstats (In the shiny new Settings folder) to true.


Wow :hushed:! That looks Great, I might use it in a new Game I’m making.


On lines 30 - 31 you are changing the Text Color when it should be TextColor3 which gives an error like this:


This can be easily fixed by using the property TextColor3:

newTag.Holder.PlayerName.TextColor3 = script.Resources.NameColor.Value
newTag.Holder.Rank.TextColor3 = script.Resources.RankColor.Value

I also get an error when you call on the folder Nametags when I leave the game and it says that it’s not a valid member of Folder which is caused because you are calling on the Resources folder when the nametags folder is a child of NametagMain and is separate from the folder Resources:


This can simply be fixed just by removing the part where you call on Resources:


Other than those silly errors, you did a good job. :clap:


Thanks for catching that! Those were some of the last things I added, so I didn’t have to much time to test them. I’m pretty sure I corrected the removal bug in the new version, but I must have messed up the custom colors! I’ll get that corrected soon!


This is an awesome thing for new programmers, especially because you took the time to go through each line explaining what it does. I know that when I used to be confused about how more complex scripts worked, any sort of line by line documentation was extremely useful!


@xWil_l Thanks for spotting those! Just updated the thread with the fixed script!


One note as I was reading through your ClientTagReset, you might consider using the Player.CharacterRemoving and Humanoid.Died events when firing the ResetTag event on the server. (I don’t have much experience using those events though, so there may well be a good reason why you didn’t use them :smiley:)


I attempted to do that server-side, but it ended up not working out for me. Feel free to give it a try though if you’re interested! :smiley:


It’s be cool if this also integrated leaderboard ranks!


I’ll look into that! Thanks for the suggestion!


I’ve added optional leaderboard ranks as you suggested! Thanks for the input, let me know if you have any other ideas!


What happened to the rank systems?


Which part? The leaderboard ranks, the overhead ranks, or something else?


um… when I add it into the ServerScriptStorage, then I do all the necessary steps, I join the game in Roblox Studio and nothing shows up :frowning: Please help!

1 Like

When i downloaded the test place, the script was in the Workspace, tested it and everything worked.
Then i tried to put it in ServerScriptService like you said, nothing popped up. So i think this has something that stops it from working in ServerScriptService :confused:


oh ok, then I will put the model in the Workspace and hopefully that will solve the problem :slight_smile:

1 Like

Sometimes someone in server can’t get that NameTag.

1 Like

Hello! This is a great system, but I have 2 suggestions!

  1. My group has special fonts, which breaks the system because these fonts don’t work. I would add a system to override, so you have the option to choose what the rank says. An example would be if the user is rank 20 in the group, instead of getting the rank text, you can choose what text you want people at that rank are.

  2. I would try making the rainbow color changing script a lot more smooth, it doesn’t really look that much like a rainbow as of now.

Other than these two things, I love this system! I am so glad it’s open-sourced.


Thanks for the suggestions! For #1, you could probably implement a series of if then checks to make the rank text whatever you want it to be. For #2, you could use a UI gradient to achieve a smoother effect. I provided the included rainbow script just as an example. You can change the source code of the rainbow script to use UI gradients instead and it should still work.

I probably won’t add specifically #1, since it is a bit niche considering that most rolesets in groups are named what the rank is. However, I will consider adding #2 to the main build, since UI gradients are now available (they were still in studio beta when I made this). If you want me to make a custom build with those features for you, feel free to PM me.

1 Like

EDIT2: I’ve released Nametag+! check it out here:

Original Post:
Hey there everyone! Sorry for the necrobump, but I wanted to get everyone’s thoughts on a new related project I’ve been considering doing:

(tentative name; DM me if you can think of something better)

The general idea is to take the underlying concept of this project, which is to create an open-source system for group ranks, but rewrite it from the ground up to be more professionally-oriented with these core principles in mind:

  • Performance: This project, although it is easy to read and use, unfortunately, isn’t the most efficient system out there. The new one would be centered around being as reliable and fast as possible.
  • Modularity: Right now, with OSFDNaRS (really rolls off the tongue), there isn’t a whole lot of easy customization for things like in-game titles unrelated to groups or adding custom health bars without completely rewriting the script. Ideally, a new system would be a module that comes with an example implementation of how to use it, to where developers could easily make their own system rather than having to recode the example.
  • Accessibility: At the moment, there isn’t a good way to make the current system easy for others to contribute to. The new project would be hosted on GitHub to make it easy for people to update it and get the latest version.

However, this would be a lot of work for me to initially write and maintain, so I wanted to get some community input beforehand. Note that this system would still be documented, but not line-by-line.

Which feature do you care most about?
  • Performance
  • Modularity
  • Accessibility

0 voters

Would you be interested in using this project if I make it?
  • Yes
  • No, I prefer the current system, even with its flaws.
  • No, I think the new system needs to be built differently.
  • No, I have some other reason why I don’t want to support a new system (reply or DM me).

0 voters

Thank you for your responses! If I get enough positive feedback I’ll edit this post to let you know when I’ve started work on the project.

EDIT: The new system is in progress! Expect to get an update soon!