Hi, so I'm a bit new to Programming and just dived into Roblox. The goal I'm trying to accomplish here is making a script for a part in which will insta-kill any roblox player that steps on it.
Here is my code:
local Part = script.Parent function local onTouch(hit) human = hit.Parent:FindFirstChild("Humanoid") -- Finds the "Humanoid" part if h ~= nil then human.Health = 0 end end if Part.Touched then -- If something is touching the part onTouch(Part.Touched) -- Invokes the "onTouch" function with the character's leg being it's parameter end
I've written down an explanation (or what I think it means at least). However it does not work, I also tried putting an infinite while loop on the if statement but that just crashes the game. If someone can spot the error to my code or suggest me a new form of code I would really appreciate it.
I would also like to note, that I'm currently a noob, so an explanation on each line would help and why you chose this etc etc. Thank you very much
Hey! Welcome to scripting! I put the changes in the code. If you've got questions, I'm right here!
local Part = script.Parent -- Set the part function onTouch(hit) if hit ~= nil then -- Check if hit is not nil human = hit.Parent:FindFirstChild("Humanoid") -- Finds the "Humanoid" part if human ~= nil then -- check if human is not nil human.Health = 0 -- kill player end end end script.Parent.Touched:connect(onTouch) -- You can just use this line rather than the if Part.Touched statement
Also, if you do a while loop, be sure to do this:
while true do --Code here wait() -- you can leave the brackets blank. end
Here is my simplified version,
script.Parent.Touched:connect(function(hit) local human = hit.Parent:WaitForChild("Humanoid") -- variable for the humanoid human.Health = 0 -- kills the player end)
this should work