I’m not sure how to start this so, let’s jump right into the details without any further interruption…
I’d like to introduce my recently made custom overhead system, which was inspired by Roblox’s default username and health overhead, as well as currently available overhead systems. This system also includes additional features!
Advantages of the system:
- This overhead GUI is easy to customize and comes with a preset template for use.
- The overhead system’s module is easy to understand, maintain, and has good documentation (I believe).
- Tweens are being played client-side for the health bar and username GUI elements, and then the properties are applied server-side (using an external library).
- The ability to customize the tween range for both the username and health bar allows for reducing the amount of data received by far-away players, such as certain players or at certain tween distances.
- The username and health bar GUI elements are nearly acting the same as the Roblox’s default ones.
- The system comes with three preset arrays for ranking people, as well as additional features.
- Seven high-quality badges are pre-implemented.
- Typechecking friendly .
- The health bar may become invisible when viewed from a long distance if it is below a certain size (such as 0.1-0.3 in scale).
- Health bar size will depend on the player health (Server Side Only).
- This system only supports the assignment of one badge, based on its priority.
How to implement:
- First, you can place the system’s module script in the
ServerStorage (location is not restricted).
- Place the Replicated Tweening module in the
ReplicatedStorage so that both the client and server can access it.
- To use the overhead system module, create a server script inside the
ServerScriptService and require the overhead system module or require it from any other script that already exist there (doesn’t really matter) and then enable the module by calling the method:
- Create a local script inside the
StarterPlayerScripts and require the Replicated Tweening module (to be able to play username and health tweens).
- Place the remote event that is included inside the
- Ensure that the scripts and remote event are in the correct locations, along with any required modules, etc.
And that’s it!
The Overhead System can be obtained from the Roblox Creator Marketplace:
Intermediate Overhead System - Creator Marketplace (roblox.com)
Please let me know if you have any suggestions or criticism!
Can the overhead GUI (ranks) change depending on what team your on or?
Nope, that isn’t included. But if you want such a thing, you can use the following function and call it inside TeamChanged connection:
local function UpdateRank(Player: Player, OverheadInformation: Folder)
local PlayerInfoLabel = OverheadInformation:FindFirstChild("Information"):FindFirstChildWhichIsA("TextLabel")
if PlayerInfoLabel then
if Player.Team then
PlayerInfoLabel.Text = Player.Team.Name.."\nData: <Any>"
PlayerInfoLabel.Text = "No Team".."\nData: <Any>"
Also, you may modify the
GiveInfo function (image attached below) to get the player team name and put it into the info text label once they spawn, too
thanks! i will figure out how to use it
Hi, the system works fine on my blocky model but when I switch to my man model the system disappears completely.
Template.Parent and Head.Parent returns nil when printed
(In the overhead system module in server storage)
Update: I guess I managed to find a fix by changing the Head:Part parameter to send over the player Character first, then calling Character:FindFirstChild(“Head”).
Not sure if this is a temporary fix but its working for now
Thank you for the bug report!
I’ve discovered the issue and it was caused (mostly) because the character is not yet a descendant of the workspace. About the typechecking, it wasn’t the problem, but it should’ve been “MeshPart” Or “Part” anyways…
Fix: After the CharacterAdded event, we should wait until the character is descendant of the workspace:
repeat task.wait() until Character:IsDescendantOf(workspace) or Character.Parent ~= nil
The asset has been updated moments ago with the fix applied and changed the head’s type: “MeshPart | Part”.
Hi Im not sure what happened here but when I join the game with all the scripts needed in their spots i get no overhead gui AND there is an error in a script
Just edit the path to:
Don’t forget about the
ReplicatedTweening module, too!
I’ve mentioned in the topic and inside the ReadMe file to review and edit those paths if needed.
Thanks, is it required that we edit the paths? Because the overhead still does not work.
It is not like that, I meant that you would’ve to edit the paths of the
local(s) if they aren’t the same location as where you’ve put the scripts at.
I’ve updated these lines moments ago to prevent any confusion.
Ahh okay I just followed where you put the scripts and did what you did above but I still don’t get a overhead sorry for the confusion im not a scripter lol…
Are there any errors in the output feed of studio?
Sorry to be back so soon , I really like the overhead gui and wish to use it… But what does the “”\nData: “…”" mean? and is there a way to change it to just text or is there something i need too edit? Sorry again
It is acting like a placeholder (a dump text), nothing much
"\n" text is to make a new line.
you can edit it on your own like to make it a value from a datastore or something…
Where’s the health bar? It says in the title that there is one.
You got to edit the module to fit your needs, currently by default, the username and health bar billboards are hidden from the owner but others which means you can’t see your own username or health bar.
This system/library/module is no longer constantly maintained. Meaning that you may find bugs and issues over the time.