Hi so i have this local script inside of a GUI. I'm trying to make an among us style game, but the kill gui does not work properly. When the imposter kills, it only happens on the imposter screen also known as client sided. I don't have much experience with making stuff server side, as I usually build and make UIs. If you can provide how you would do it, thank you.
local gui = script.Parent
local players = game:GetService("Players")
local player = players.LocalPlayer
local run = game:GetService("RunService")
local sound = script.KillSound
gui.KillButton.MouseButton1Click:Connect(function()
local character = player.Character
if not character then return end
local head = character:FindFirstChild("Head")
if not head then return end
for _, v in pairs(workspace:GetChildren()) do
if v:IsA("Model") and v:FindFirstChild("Humanoid") and v:FindFirstChild("Head") and v ~= character then
if (character.Head.Position - v.Head.Position).Magnitude <= 20 and v.Humanoid.Health > 0 and script.Parent.KillButton.Timer.Visible == false then
sound:Play()
v.Humanoid.Health = 0
character:MoveTo(v.HumanoidRootPart.Position)
script.Parent.KillButton.Timer.Visible = true
script.Parent.KillButton.Timer.Text = "10"
wait(1)
script.Parent.KillButton.Timer.Text = "9"
wait(1)
script.Parent.KillButton.Timer.Text = "8"
wait(1)
script.Parent.KillButton.Timer.Text = "7"
wait(1)
script.Parent.KillButton.Timer.Text = "6"
wait(1)
script.Parent.KillButton.Timer.Text = "5"
wait(1)
script.Parent.KillButton.Timer.Text = "4"
wait(1)
script.Parent.KillButton.Timer.Text = "3"
wait(1)
script.Parent.KillButton.Timer.Text = "2"
wait(1)
script.Parent.KillButton.Timer.Text = "1"
wait(1)
script.Parent.KillButton.Timer.Visible = false
break
end
end
end
end)
run.Heartbeat:Connect(function()
local character = player.Character
if not character then return end
local head = character:FindFirstChild("Head")
if not head then return end
local cankill = false
for _, v in pairs(workspace:GetChildren()) do
if v:IsA("Model") and v:FindFirstChild("Humanoid") and v:FindFirstChild("Head") and v ~= character then
if (character.Head.Position - v.Head.Position).Magnitude <= 20 and v.Humanoid.Health > 0 and script.Parent.KillButton.Timer.Visible == false then cankill = true end
end
end
if cankill then
gui.KillButton.ImageTransparency = 0
else
gui.KillButton.ImageTransparency = 0.65
end
end)

4 comments
for your timer I suggest using a for loop. Such as: for i = 10,0,-1 do Text = i wait(1) end. Also I don't really have much time to answer the question yet but in order for you to do this do some research on RemoteEvents :)
First of all, use a for loop. That's why it exists. Secondly, just use FireServer() and use the 1st parameter (which is the player.) You can immediately use the Character and the Humanoid once you use the OnServerEvent.
thank you. i will do some research on remoteevents
you know how much times you posted this question :/ ive already answered it giving you all scripts