I have a script inside of an invisible part that detects when a player is inside of it and sets a BodyForce in the Torso of the player from (0, 0, 0) to (0, -200, 0). This script works alongside another that sets the NumberValues named "Heat" and "Oxygen" inside of the player to 65 and 100. When you enter the part the Touched event fires as normal but after doing so much as jumping, the TouchEnded event fires and resets the values. I have tested the scripts inside of a very large part that will always be touching the player at any given time and the problem still occurs.
Here are the two scripts:
The Heat script
local part = script.Parent local debounce = false part.Touched:Connect(function(hit) if debounce == false then debounce = true local hum = hit.Parent:FindFirstChild('Humanoid') if hum and hit.Name == "UpperTorso" then if hum.Health > 0 then local Oxygen = game.Players:GetPlayerFromCharacter(hit.Parent):WaitForChild("Oxygen") local Heat = game.Players:GetPlayerFromCharacter(hit.Parent):WaitForChild("Heat") if Heat and Oxygen then Heat.Value = 65 Oxygen.Value = 100 end end end debounce = false end end) part.TouchEnded:Connect(function(hit) if debounce == false then debounce = true local hum = hit.Parent:FindFirstChild('Humanoid') if hum and hit.Name == "UpperTorso" then if hum.Health > 0 then local Oxygen = game.Players:GetPlayerFromCharacter(hit.Parent):WaitForChild("Oxygen") local Heat = game.Players:GetPlayerFromCharacter(hit.Parent):WaitForChild("Heat") if Heat and Oxygen then Heat.Value = -455 Oxygen.Value = 0 end end end debounce = false end end)
and the Gravity script
local part = script.Parent local debounce = false part.Touched:Connect(function(hit) if debounce == false then debounce = true local hum = hit.Parent:FindFirstChild('Humanoid') if hum and hit.Name == "UpperTorso" then if hum.Health > 0 then local Gravity = hit.Parent.UpperTorso:FindFirstChild("GravityForce").Force if Gravity then if Gravity ~= Vector3.new(0, -200, 0) then Gravity = Vector3.new(0, -200, 0) end end end end debounce = false end end) part.TouchEnded:Connect(function(hit) if debounce == false then debounce = true local hum = hit.Parent:FindFirstChild('Humanoid') if hum and hit.Name == "UpperTorso" then if hum.Health > 0 then local Gravity = hit.Parent.UpperTorso:FindFirstChild("GravityForce").Force if Gravity then if Gravity ~= Vector3.new(0, 0, 0) then Gravity = Vector3.new(0, 0, 0) end end end end debounce = false end end)