If I read the discombobulated code correctly, this is the most likely setup of it.
function onTouch(hit)
while true do
local Wow = Instance.new("Part")
Wow.Parent = game.Workspace
Wow.Position = Vector3.new(-1609, 3473.895, -2417)
Wow.CanCollide = false
Wow.Locked = true
Wow.BrickColor = BrickColor.new("New Yeller")
Wow.Shape = ("Ball")
wait(1)
local Ex = Instance.new("Explosion")
Ex.Parent = game.Workspace
Ex.Position = Wow.Position
Ex.BlastPressure = 5000000
Ex.BlastRadius = 10
Wow.Destroy()
local M = Instance.new("Hint")
M.Text = "SOMEONE HAS TOUCHED EPIC FACE'S BLOCK"
wait(5)
M.Destroy()
end
end
script.parent.Touched:connect(onTouch)
Anyways from my limited experience with the only function I know by heart and soul (Touched)
it appears that you're going for a direct "while true do"loop for whatever reason.
The function seems to be set out normal in regards to spawning in parts and such
local Wow = Instance.new("Part")
Wow.Parent = game.Workspace
Wow.Position = Vector3.new(-1609, 3473.895, -2417)
Wow.CanCollide = false
Wow.Locked = true
Wow.BrickColor = BrickColor.new("New Yeller")
Wow.Shape = ("Ball")
Creating a Ball shaped part at Position (-1609, 3473.895, -2417) that is yellow, and non collidable
and
wait(1)
local Ex = Instance.new("Explosion")
Ex.Parent = game.Workspace
Ex.Position = Wow.Position
Ex.BlastPressure = 5000000
Ex.BlastRadius = 10
Wow.Destroy()
local M = Instance.new("Hint")
M.Text = "SOMEONE HAS TOUCHED EPIC FACE'S BLOCK"
A very powerful explosion set at the position of the newly formed "Wow" part that gives text and destroys the wow Part.
It does , however, seem that you've forgotten to call a part of the script that actually detects the player's presence.
Adding that in after the function which I'll localize I get
local function onTouch(hit)
local explode = hit.Parent
local humanoid = explode:FindFirstChild('Humanoid')
if humanoid then
local Wow = Instance.new("Part")
Wow.Parent = game.Workspace
Wow.Position = Vector3.new(-1609, 3473.895, -2417)
Wow.CanCollide = false
Wow.Locked = true
Wow.BrickColor = BrickColor.new("New Yeller")
Wow.Shape = ("Ball")
wait(1)
local Ex = Instance.new("Explosion")
Ex.Parent = game.Workspace
Ex.Position = Wow.Position
Ex.BlastPressure = 5000000
Ex.BlastRadius = 10
Wow.Destroy()
local M = Instance.new("Hint")
M.Text = "SOMEONE HAS TOUCHED EPIC FACE'S BLOCK"
wait(5)
M.Destroy()
end
end
script.Parent.Touched:connect(onTouch)
with the Humanoid detection occurring on lines 2-4
Now on the last line I get an error with parenting and the very fun likes, so for the sake of me personally being able to get past it, I'll bundle the whole thing into a neat little package in a variable called surpise
local surprise = script.Parent
local function onTouch(hit)
local explode = hit.Parent
local humanoid = explode:FindFirstChild('Humanoid')
if humanoid then
local Wow = Instance.new("Part")
Wow.Parent = game.Workspace
Wow.Position = Vector3.new(33, 0.5, -7)
Wow.CanCollide = false
Wow.Locked = true
Wow.BrickColor = BrickColor.new("New Yeller")
Wow.Shape = ("Ball")
wait(1)
local Ex = Instance.new("Explosion")
Ex.Parent = game.Workspace
Ex.Position = Wow.Position
Ex.BlastPressure = 5000000
Ex.BlastRadius = 10
Wow:Destroy()
local M = Instance.new("Hint")
M.Text = "SOMEONE HAS TOUCHED EPIC FACE'S BLOCK"
wait(5)
M:Destroy()
end
end
surprise.Touched:connect(onTouch)
Now when I touch it I get the yellow ball plopped on top of me that decimates me after a time. The only thing I didn't get was a "Hint" which I have no experience with, but it seems minor with your issue. The yellow ball, however keeps getting copied and copied and copied. So lets add a simple little debounce to the script.
local surprise = script.Parent
local canBoom = true
local cooldown = 7
local function onTouch(hit)
local explode = hit.Parent
local humanoid = explode:FindFirstChild('Humanoid')
if humanoid and canBoom then
canBoom = false
local Wow = Instance.new("Part")
Wow.Parent = game.Workspace
Wow.Position = Vector3.new(33, 0.5, -7)
Wow.CanCollide = false
Wow.Locked = true
Wow.BrickColor = BrickColor.new("New Yeller")
Wow.Shape = ("Ball")
wait(1)
local Ex = Instance.new("Explosion")
Ex.Parent = game.Workspace
Ex.Position = Wow.Position
Ex.BlastPressure = 5000000
Ex.BlastRadius = 10
Wow:Destroy()
local M = Instance.new("Hint")
M.Text = "SOMEONE HAS TOUCHED EPIC FACE'S BLOCK"
wait(5)
M:Destroy()
wait(cooldown)
canBoom = true
end
end
surprise.Touched:connect(onTouch)
the function canBoom is required to be true for the inner script to fire, after the touch is detected it goes false to keep it from firing again, then at the end after a cooldown of whatever time you want (May probably not needed due to your wait right before, but meh whatever) it activates once more allowing the boom to happen.
So now putting everything back to what I presume to apply to your world you get the final beautiful baby
local surprise = script.Parent
local canBoom = true
local cooldown = 7
local function onTouch(hit)
local explode = hit.Parent
local humanoid = explode:FindFirstChild('Humanoid')
if humanoid and canBoom then
canBoom = false
local Wow = Instance.new("Part")
Wow.Parent = game.Workspace
Wow.Position = Vector3.new(-1609, 3473.895, -2417)
Wow.CanCollide = false
Wow.Locked = true
Wow.BrickColor = BrickColor.new("New Yeller")
Wow.Shape = ("Ball")
wait(1)
local Ex = Instance.new("Explosion")
Ex.Parent = game.Workspace
Ex.Position = Wow.Position
Ex.BlastPressure = 5000000
Ex.BlastRadius = 10
Wow:Destroy()
local M = Instance.new("Hint")
M.Text = "SOMEONE HAS TOUCHED EPIC FACE'S BLOCK"
wait(5)
M:Destroy()
wait(cooldown)
canBoom = true
end
end
surprise.Touched:connect(onTouch)
I hope this helps you a ton! As this was my first answer given, because I only have teachable experience with the touched function and all it's fun. Good luck with your game!
~MBacon15
1 comment
Also thanks for having the code all jumbled up like that, gives me extra things to keep me occupied, and allows me to test my beginners script reading skills. The only thing I was unable to get anything with was the Instance.new("Hint")