Does anyone know how to do this to the player?

Is it possible to make the gravity change for only one player specifically and everyone else stays the same gravity? If it can how can it be done?

Changing the gravity in a Localscript will mean that it’ll only happen for that player.

game.Workspace.Gravity = 50

1 Like

You can do this to a player via a local script, which renders changes only for the player

local newgravity = 100
local originalgravity = 196.2
wait(2)
workspace.Gravity = newgravity

1 Like

You can use a VectorForce to apply an upward force to simulate low gravity. This is how gravity coil scripts are typically made.

local function applyLowGravity(player)
	-- make sure the rootpart exists
	local rootPart = player.Character and player.Character:FindFirstChild("HumanoidRootPart")
	if not rootPart then
		return
	end
	
	-- create an attachment for VectorForce to be applied
	local attachment = rootPart:FindFirstChild("AntiGravityAttachment")
	if not attachment then
		attachment = Instance.new("Attachment")
		attachment.Name = "AntiGravityAttachment"
		attachment.Parent = rootPart
	end
	
	-- create a force that will be used to counteract gravity
	-- attach force to the attachment, and make sure it is relative to the world
	-- instead of the character
	local antiGravityForce = rootPart:FindFirstChild("AntiGravityForce")
	if not antiGravityForce then
		antiGravityForce = Instance.new("VectorForce")
		antiGravityForce.Name = "AntiGravityForce"
		antiGravityForce.Attachment0 = attachment
		antiGravityForce.RelativeTo = Enum.ActuatorRelativeTo.World
		antiGravityForce.Parent = rootPart
	end
	
	-- calculate the force the character experiences from gravity
	-- force = mass * gravity
	local forceOnCharacter = rootPart.AssemblyMass * workspace.Gravity
	
	-- the percent of gravity we want the player to experience
	-- 0.2 = 20% gravity. make sure this value is between [0, 1]
	local gravityPercent = 0.2
	
	-- calculate the counteracting force on the character
	-- if we want the character to experience 20% gravity, we will counteract 80%
	-- of the force of gravity
	local antiGravityMagnitude = (1 - gravityPercent) * forceOnCharacter
	
	antiGravityForce.Force = Vector3.new(0, antiGravityMagnitude, 0)
end

local function disableLowGravity(player)
	local rootPart = player.Character and player.Character:FindFirstChild("HumanoidRootPart")
	if not rootPart then
		return
	end
	
	-- cleanup the instances we made for the anti gravity force
	local attachment = rootPart:FindFirstChild("AntiGravityAttachment")
	if attachment then
		attachment:Destroy()
	end

	local antiGravityForce = rootPart:FindFirstChild("AntiGravityForce")
	if antiGravityForce then
		antiGravityForce:Destroy()
	end
end
1 Like