Only use the documentation below if you know what you are doing, we do not provide any support for the custom scripts given below.
With SIMS there are endless possibilities for you to customise your overhead. One common way to customise your SIMS is by adding custom icons to some students. This page shows you some examples and things to know about customising the overhead.
Before getting started here are some things you should know:
Any icons you add should be cloned into the players character and NOT use Player.Character.Head.PlayerOverhead.Icons.Verfied.Visible = true
Basic example of a script that clones an icon
An example of code that you could use with the overhead in another server script. All this script does is wait for the overhead on join then clone new icons into the existing overhead.
Here is a icon template if you are having trouble with size and dimensions, just rename the decal and change the decal id.
game.Players.PlayerAdded:Connect(function(Player) Player.CharacterAdded:Connect(function(char) char:WaitForChild('Humanoid').DisplayName =" " wait(3)if char.Head:FindFirstChild("PlayerOverhead") thenlocal PlayerOverhead = char.Head.PlayerOverhead if Player:GetRankInGroup(1234) >=20thenlocal Cloned = script.Icons["YourIcon"]:Clone() Cloned.Parent = PlayerOverhead.Badgesendif Player.UserId ==1234thenlocal Cloned = script.Icons["YourIcon"]:Clone() Cloned.Parent = PlayerOverhead.Badgesend warn("Overhead System | Successfuly loaded custom nametag icons for: ".. Player.Name)else warn("Overhead System | Overhead tag not found for: ".. Player.Name.." on joining the game.")endend)end)
You should have a Icons folder within your script so it works as shown.
Gamepass owner example that clones the icon
game.Players.PlayerAdded:Connect(function(Player) Player.CharacterAdded:Connect(function(char) char:WaitForChild('Humanoid').DisplayName =" " wait(3)if char.Head:FindFirstChild("PlayerOverhead") thenlocal PlayerOverhead = char.Head.PlayerOverheadlocal OwnsGamepass = game:GetService("MarketplaceService"):UserOwnsGamePassAsync(Player.UserId, "238072835") if OwnsGamepass thenlocal Cloned = script.Icons["YourIcon"]:Clone() Cloned.Parent = PlayerOverhead.Badgesend warn("Overhead System | Successfuly loaded custom nametag icons for: ".. Player.Name)else warn("Overhead System | Overhead tag not found for: ".. Player.Name.." on joining the game.")endend)end)
You can stack these as many times as you want just make sure they are in the same script like below, combining both of the examples above into one.
game.Players.PlayerAdded:Connect(function(Player) Player.CharacterAdded:Connect(function(char) char:WaitForChild('Humanoid').DisplayName =" " wait(3)if char.Head:FindFirstChild("PlayerOverhead") thenlocal PlayerOverhead = char.Head.PlayerOverheadlocal OwnsGamepass = game:GetService("MarketplaceService"):UserOwnsGamePassAsync(Player.UserId, "238072835") if Player:GetRankInGroup(1234) >=20thenlocal Cloned = script.Icons["YourIcon"]:Clone() Cloned.Parent = PlayerOverhead.Badgesendif Player.UserId ==1234thenlocal Cloned = script.Icons["YourIcon"]:Clone() Cloned.Parent = PlayerOverhead.Badgesendif OwnsGamepass thenlocal Cloned = script.Icons["YourIcon"]:Clone() Cloned.Parent = PlayerOverhead.Badgesend warn("Overhead System | Successfuly loaded custom nametag icons for: ".. Player.Name)else warn("Overhead System | Overhead tag not found for: ".. Player.Name.." on joining the game.")endend)end)