✓ Accepted answer
Events cannot be used as conditions, nor do they act like conditions.
Use a separate function for Touched, such as:
game.Players.PlayerAdded:Connect(function()
script.Parent.Touched:Connect(function(hit)
if game.Players:GetPlayerFromCharacter(hit.Parent) then
if workspace:FindFirstChild("Wall4", true) then
local wall = workspace:FindFirstChild("Wall4", true)
wall.CanCollide = true
wall.BrickColor = BrickColor.new("Really red")
end
end
end)
end)
Let me explain why you can't use events in conditional statements.
Events are RBXScriptSignals. RBXScriptSignals are signals that act like triggers for given functions; when they fire, a function is usually associated with it (unless you use Wait()). However, the main reason why they can't be used as conditions is because RBXScriptSignals don't return any values, they simply pass them. The difference is that passing a value means giving it to a function, and returning a value means that a function passes its own value to wherever it is called.