Why is my script not working?

Im trying to make a kill streak script, but the script doesn’t work and it doesn’t error eathier.

Does anyone know how im supposed to fix this?

local Players = game.Players

local countDownScript = script:WaitForChild("countDownScript")

Players.PlayerAdded:Connect(function(player)
	for i, v in pairs(game.Workspace:GetChildren()) do
		if v.Name == player.Name then
			local character = v
			local h = character:FindFirstChildOfClass("Humanoid")
			local creator = Instance.new("StringValue", h)
			creator.Name = "creator"

			local KillStreak = Instance.new("IntValue", player)
			KillStreak.Name = "killStreak"

			h.Died:Connect(function()
				local playerResponsible = h:WaitForChild("creator").Value

				for i, v in pairs(Players:GetChildren()) do
					if v.Name == playerResponsible then
						local PlayersKillStreak = v:WaitForChild("killStreak")

						PlayersKillStreak.Value = PlayersKillStreak.Value + 1

						local clonedScript = countDownScript:Clone()
						clonedScript.Parent = v
					end
				end
			end)
		end
	end
end)
local timE = 9

local BadgeService = game:GetService("BadgeService")

if script.Parent:WaitForChild("killStreak") then
	local killStreak = script.Parent:WaitForChild("killStreak")
	local Audio -- put "Audio ="" and then put in a Sound Id
	
	task.wait(timE)
	
	if killStreak == 1 then
		BadgeService:AwardBadge(script.Parent.UserId, 2127194048)
		-- You can put Audio:Play() here after you put in a valid sound id
		
		game:GetService("StarterGui"):SetCore("ChatMakeSystemMessgae",{
			Text = script.Parent.Name.."Has a 3 Kill Streak in under 9 Seconds!",
			Font = Enum.Font.SourceSansBold,
			TextSize = 24,
			Color = Color3.new(1, 0.172549, 0.172549),
		})
	else
		script.Parent:Destroy()
	end
end

Your script doesn’t find the character because it only looks when the player first joins the game, and doesnt have a character. To fix it you should use player.CharacterAdded

Is this a local script?
If so, maybe make a variable for your character like this:

local char = Players.CharacterAdded:Wait()

Like this?

local Players = game.Players

local countDownScript = script:WaitForChild("countDownScript")

Players.CharacterAdded:Connect(function(player)
	for i, v in pairs(game.Workspace:GetChildren()) do
		if v.Name == player.Name then
			local character = v
			local h = character:FindFirstChildOfClass("Humanoid")
			local creator = Instance.new("StringValue", h)
			creator.Name = "creator"

			local KillStreak = Instance.new("IntValue", player)
			KillStreak.Name = "killStreak"

			h.Died:Connect(function()
				local playerResponsible = h:WaitForChild("creator").Value

				for i, v in pairs(Players:GetChildren()) do
					if v.Name == playerResponsible then
						local PlayersKillStreak = v:WaitForChild("killStreak")

						PlayersKillStreak.Value = PlayersKillStreak.Value + 1

						local clonedScript = countDownScript:Clone()
						clonedScript.Parent = v
					end
				end
			end)
		end
	end
end)

No its no a local script.


Players.PlayerAdded:Connect(function(plr)
   plr.CharacterAdded:Connect(function(char)
       -- Function here
   end)
end)

As “Players.CharacterAdded” should be “Players.Username.CharacterAdded” (replace “Username” with something else)

1 Like

So like this?

local Players = game.Players

local countDownScript = script:WaitForChild("countDownScript")

Players.PlayerAdded:Connect(function(player)
	Players.CharacterAdded:Connect(function(char)
		local character = char
		local h = character:FindFirstChildOfClass("Humanoid")
		local creator = Instance.new("StringValue", h)
		creator.Name = "creator"

		local KillStreak = Instance.new("IntValue", player)
		KillStreak.Name = "killStreak"

		h.Died:Connect(function()
			local playerResponsible = h:WaitForChild("creator").Value

			for i, v in pairs(Players:GetChildren()) do
				if v.Name == playerResponsible then
					local PlayersKillStreak = v:WaitForChild("killStreak")

					PlayersKillStreak.Value = PlayersKillStreak.Value + 1

					local clonedScript = countDownScript:Clone()
					clonedScript.Parent = v
				end
			end
		end)
	end)
end)

This should work, tell me if I’m wrong.

1 Like

Ok, I will make sure to test it a bit later, thanks!

You’re very welcome. characters