It works but it dissapears after 1 second.
local Players = game:GetService("Players")
local LavaBiome = script.Parent
local LavaBiomeTouchEvent = ReplicatedStorage:FindFirstChild("LavaBiomeTouch")
local touchingPlayers = {}
local function getPlayerFromPart(part)
local character = part.Parent
if character then
local humanoid = character:FindFirstChild("Humanoid")
if humanoid then
return Players:GetPlayerFromCharacter(character)
end
end
return nil
end
LavaBiome.Touched:Connect(function(hit)
local player = getPlayerFromPart(hit)
if player and not touchingPlayers[player] then
touchingPlayers[player] = true
LavaBiomeTouchEvent:FireClient(player, true)
end
end)
LavaBiome.TouchEnded:Connect(function(hit)
local player = getPlayerFromPart(hit)
if player and touchingPlayers[player] then
touchingPlayers[player] = nil
LavaBiomeTouchEvent:FireClient(player, false)
end
end)
-- Clean up on character respawn
Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function()
touchingPlayers[player] = nil
LavaBiomeTouchEvent:FireClient(player, false)
end)
end)