Hey! I have a nametag handler and it seems to be giving me this error. I have tried searching and figuring it out on my yet, it doesn’t work.
https://gyazo.com/5846506efdc0be9a7c7ba32d6c860b93
Code:
print("[Stage 2/nil] Loading server "..script.Name);local startTick = tick()
local NameTagBind = game.ReplicatedStorage.Remotes.Binds.NameTag
local RankModule = require(game.ReplicatedStorage.GlobalModules.GroupRanks)
local function giveBaseTag(Player)
local newTag = script.TagTemplate:Clone()
newTag.Parent = Player.Character.Head
newTag.Name = "Tag"
newTag.Holder.Username.Text = Player:GetRoleInGroup(RankModule.Main[1]).." "..Player.Name
newTag.Holder.AddRank.Visible = false
if Player:GetRankInGroup(11359577) >= 8 then
newTag.Holder.AddRank.TextColor3 = Color3.fromRGB(166, 12, 226)
newTag.Holder.AddRank.Text = "OFFICER"
newTag.Holder.AddRank.Visible = true
elseif Player:GetRankInGroup(RankModule.Main[254]) >= RankModule.Main[254] then
newTag.Holder.AddRank.TextColor3 = Color3.fromRGB(243, 204, 9)
newTag.Holder.AddRank.Text = "HICOM"
newTag.Holder.AddRank.Visible = true
end
if Player:GetRankInGroup(RankModule.Main[13]) == 13 then
newTag.Holder.AddRank.TextColor3 = Color3.fromRGB(0, 170, 255)
newTag.Holder.AddRank.Text = "DEVELOPER"
newTag.Holder.Username.Text = "[X] Developer "..Player.Name
newTag.Holder.AddRank.Visible = true
end
Player.Character.Humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
return newTag
end
NameTagBind.Event:Connect(function(Request,serverPackage)
if Request == "setNametag" then
local tag
if serverPackage[2].Character and serverPackage[2].Character.Head:FindFirstChild("Tag") then
serverPackage[2].Character.Head.Tag:Destroy()
end
if serverPackage[1] == "RoyalGuards" then
tag = giveBaseTag(serverPackage[2])
tag.Holder.Division.Visible = true
tag.Holder.Division.Text = "Royal Guards "..serverPackage[2]:GetRoleInGroup(RankModule.RG[1])
tag.Holder.Division.TextColor3 = Color3.fromRGB(255, 217, 25)
tag.Holder.AddRank.Visible = false
elseif serverPackage[1] == "Paladins" then
tag = giveBaseTag(serverPackage[2])
tag.Holder.Division.Visible = true
tag.Holder.Division.Text = "Paladins "..serverPackage[2]:GetRoleInGroup(RankModule.P[1])
tag.Holder.Division.TextColor3 = Color3.fromRGB(135, 96, 209)
tag.Holder.AddRank.Visible = false
elseif serverPackage[1] == "MilitaryEnforcers" then
tag = giveBaseTag(serverPackage[2])
tag.Holder.Division.Visible = true
tag.Holder.Division.Text = "Military Enforcers "..serverPackage[2]:GetRoleInGroup(RankModule.ME[1])
tag.Holder.Division.TextColor3 = Color3.fromRGB(255, 0, 0)
tag.Holder.AddRank.Visible = false
elseif serverPackage[1] == "Mercenary" then
tag = giveBaseTag(serverPackage[2])
tag.Holder.Division.Visible = true
tag.Holder.Division.Text = "Mercenary "..serverPackage[2]:GetRoleInGroup(RankModule.M[1])
tag.Holder.Division.TextColor3 = Color3.fromRGB(175, 117, 0)
tag.Holder.AddRank.Visible = false
elseif serverPackage[1] == "Citizens" then
tag = giveBaseTag(serverPackage[2])
tag.Holder.Division.Text = "Citizens"
tag.Holder.Division.TextColor3 = serverPackage[2].TeamColor.Color
tag.Holder.Username.Text = serverPackage[2].Name
tag.Holder.Username.TextColor3 = --[[serverPackage[2].TeamColor.Color]]Color3.fromRGB(255, 255, 255)
tag.Holder.Division.Visible = true
tag.Holder.AddRank.Visible = false
elseif serverPackage[1] == "Rebels" then
tag = giveBaseTag(serverPackage[2])
tag.Holder.Division.Text = "Rebels"
tag.Holder.Division.TextColor3 = serverPackage[2].TeamColor.Color
tag.Holder.Username.Text = serverPackage[2].Name
tag.Holder.Username.TextColor3 = --[[serverPackage[2].TeamColor.Color]]Color3.fromRGB(97, 0, 0)
tag.Holder.Division.Visible = true
tag.Holder.AddRank.Visible = false
elseif serverPackage[1] == "Peacekeeper Corps" then
tag = giveBaseTag(serverPackage[2])
tag.Holder.Username.Text = ""
tag.Holder.Division.Text = "Peacekeepers Corps "serverPackage[2]:GetRoleInGroup(RankModule.PKC[1])
tag.Holder.Division.TextColor3 = Color3.fromRGB(20,20,20)
tag.Holder.Division.Visible = true
tag.Holder.AddRank.Visible = false
elseif serverPackage[1] == "Demolisher" then
tag = giveBaseTag(serverPackage[2])
tag.Holder.Username.Text = serverPackage[2].Name
tag.Holder.Username.TextColor3 = --[[serverPackage[2].TeamColor.Color]]Color3.fromRGB(57, 115, 0)
tag.Holder.Division.Text = "Demolisher"
tag.Holder.Division.TextColor3 = BrickColor.new("Forest green").Color
tag.Holder.Division.Visible = true
tag.Holder.AddRank.Visible = false
end
local Humanoid = serverPackage[2].Character:WaitForChild("Humanoid")
local HealthBar = tag.Holder.HealthBar -- Error
local function updateBar()
local bool,result = pcall(function()
if not HealthBar or not HealthBar.Bar or not Humanoid then return end
if Humanoid.Health ~= Humanoid.MaxHealth then
HealthBar.Visible = true
HealthBar.Bar:TweenSize(UDim2.new(Humanoid.Health/Humanoid.MaxHealth,0,1,0),"Out","Sine",0.2,true)
else
HealthBar.Visible = false
end
end)
end
Humanoid:GetPropertyChangedSignal("Health"):Connect(function()
updateBar()
end)
updateBar()
end
end)
print("[Stage 2/nil] Loaded server "..script.Name.." ("..tick()-startTick..")")
Please, help if anyone can.
1 Like
Syntheix
(noah)
January 4, 2022, 3:56am
2
Can you give more information about what giveBaseTag() does? Are you sure that its even returning anything in the first place?
1 Like
I am not too sure if it is returning anything.
1 Like
if you could print what it returns? that would be great
I am not too sure if it is. Tbh I am not sure of what it means.
1 Like
it says attempt to index nil with holder because you are doing tag.Holder although tag is nil. tag is nil because you are doing tag = giveBaseTag(serverPackage[2]). this sets tag to nil because the function returns nothing. (returning, meaning return which is a keyword that can be used in functions to return something) for example this is how returning works:
-- Sorry for no indentations i wrote this in the devforum
local function idkahfldhf()
return 1+1
end
print(idkahfldhf()) -- prints "2" because the function returns 1+1 (which i'm sure you know that it equals to 2)
Ohh, I see. So how would I fix that now that I know the reasoning behind it?
1 Like
oh haha just noticed you already used return but could you do a print before it returns the newTag in the giveBaseTag function?
How would it work? Tbh I script not knowing what it does and when I get an error I try fixing it myself, then research, then devforum.
1 Like
AkariInsko
(AkariInsko)
January 4, 2022, 2:35pm
10
if you are asking how return works, return just returns the value you put after it so you can put it in a variable like what you did, tag = giveBaseTag(serverPackage[2])
like i said, if you could print the newTag in the giveBaseTag function before the return it could give me an idea on why your code might not be working (and also show me what it prints of course)
Would this work?
local NameTagBind = game.ReplicatedStorage.Remotes.Binds.NameTag
local RankModule = require(game.ReplicatedStorage.GlobalModules.GroupRanks)
local function giveBaseTag(Player)
local newTag = script.TagTemplate:Clone()
newTag.Parent = Player.Character.Head
newTag.Name = "Tag"
newTag.Holder.Username.Text = Player:GetRoleInGroup(RankModule.Main[1]).." "..Player.Name
newTag.Holder.AddRank.Visible = false
if Player:GetRankInGroup(11359577) >= 8 then
newTag.Holder.AddRank.TextColor3 = Color3.fromRGB(166, 12, 226)
newTag.Holder.AddRank.Text = "OFFICER"
newTag.Holder.AddRank.Visible = true
elseif Player:GetRankInGroup(RankModule.Main[12]) >= RankModule.Main[12] then
newTag.Holder.AddRank.TextColor3 = Color3.fromRGB(243, 204, 9)
newTag.Holder.AddRank.Text = "HICOM"
newTag.Holder.AddRank.Visible = true
end
if Player:GetRankInGroup(RankModule.Main[13]) == 13 then
newTag.Holder.AddRank.TextColor3 = Color3.fromRGB(166, 12, 226)
newTag.Holder.AddRank.Text = "DEVELOPER"
newTag.Holder.Username.Text = "[X] Developer "..Player.Name
newTag.Holder.AddRank.Visible = true
end
Player.Character.Humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
return newTag
end
NameTagBind.Event:Connect(function(Request,serverPackage)
if Request == "setNametag" then
local tag
if serverPackage[2].Character and serverPackage[2].Character.Head:FindFirstChild("Tag") then
serverPackage[2].Character.Head.Tag:Destroy()
end
if serverPackage[1] == "RoyalGuards" then
tag = giveBaseTag(serverPackage[2])
tag.Holder.Division.Visible = true
tag.Holder.Division.Text = "Royal Guards "..serverPackage[2]:GetRoleInGroup(RankModule.RG[12677099])
tag.Holder.Division.TextColor3 = Color3.fromRGB(255, 217, 25)
tag.Holder.AddRank.Visible = false
elseif serverPackage[1] == "Paladins" then
tag = giveBaseTag(serverPackage[2])
tag.Holder.Division.Visible = true
tag.Holder.Division.Text = "Paladins "..serverPackage[2]:GetRoleInGroup(RankModule.P[12652461])
tag.Holder.Division.TextColor3 = Color3.fromRGB(135, 96, 209)
tag.Holder.AddRank.Visible = false
elseif serverPackage[1] == "MilitaryEnforcers" then
tag = giveBaseTag(serverPackage[2])
tag.Holder.Division.Visible = true
tag.Holder.Division.Text = "Military Enforcers "..serverPackage[2]:GetRoleInGroup(RankModule.ME[1])
tag.Holder.Division.TextColor3 = Color3.fromRGB(255, 0, 0)
tag.Holder.AddRank.Visible = false
elseif serverPackage[1] == "Mercenary" then
tag = giveBaseTag(serverPackage[2])
tag.Holder.Division.Visible = true
tag.Holder.Division.Text = "Mercenary "..serverPackage[2]:GetRoleInGroup(RankModule.M[1])
tag.Holder.Division.TextColor3 = Color3.fromRGB(175, 117, 0)
tag.Holder.AddRank.Visible = false
elseif serverPackage[1] == "Citizen" then
tag = giveBaseTag(serverPackage[2])
tag.Holder.Division.Text = "Citizen"
tag.Holder.Division.TextColor3 = serverPackage[2].TeamColor.Color
tag.Holder.Username.Text = serverPackage[2].Name
tag.Holder.Username.TextColor3 = --[[serverPackage[2].TeamColor.Color]]Color3.fromRGB(255,255,255)
tag.Holder.Division.Visible = true
tag.Holder.AddRank.Visible = false
elseif serverPackage[1] == "Hostiles" then
tag = giveBaseTag(serverPackage[2])
tag.Holder.Division.Text = "Rebellion"
tag.Holder.Division.TextColor3 = serverPackage[2].TeamColor.Color
tag.Holder.Username.Text = serverPackage[2].Name
tag.Holder.Username.TextColor3 = --[[serverPackage[2].TeamColor.Color]]Color3.fromRGB(255,255,255)
tag.Holder.Division.Visible = true
tag.Holder.AddRank.Visible = false
elseif serverPackage[1] == "Peacekeeper Corps" then
tag = giveBaseTag(serverPackage[2])
tag.Holder.Username.Text = ""
tag.Holder.Division.Text = "Peacekeepers Corps "serverPackage[2]:GetRoleInGroup(RankModule.PKC[1])
tag.Holder.Division.TextColor3 = Color3.fromRGB(20,20,20)
tag.Holder.Division.Visible = true
tag.Holder.AddRank.Visible = false
elseif serverPackage[1] == "Demolisher" then
tag = giveBaseTag(serverPackage[2])
tag.Holder.Username.Text = serverPackage[2].Name
tag.Holder.Username.TextColor3 = --[[serverPackage[2].TeamColor.Color]]Color3.fromRGB(255,255,255)
tag.Holder.Division.Text = "Demolisher"
tag.Holder.Division.TextColor3 = BrickColor.new("Bright yellow").Color
tag.Holder.Division.Visible = true
tag.Holder.AddRank.Visible = false
end
local Humanoid = serverPackage[2].Character:WaitForChild("Humanoid")
local HealthBar = tag.Holder.HealthBar
local function updateBar()
local bool,result = pcall(function()
if not HealthBar or not HealthBar.Bar or not Humanoid then return end
if Humanoid.Health ~= Humanoid.MaxHealth then
HealthBar.Visible = true
HealthBar.Bar:TweenSize(UDim2.new(Humanoid.Health/Humanoid.MaxHealth,0,1,0),"Out","Sine",0.2,true)
else
HealthBar.Visible = false
end
end)
end
Humanoid:GetPropertyChangedSignal("Health"):Connect(function()
updateBar()
end)
updateBar()
end
end)
print("[Stage 2/nil] Loaded server "..script.Name.." ("..tick()-startTick..")")
AkariInsko
(AkariInsko)
January 4, 2022, 2:39pm
12
what did you change? cause i dont want to read all the code to know
Really confused about this. Hmm.