Need Help, Fan Air Resistance Force

I’m using an BodyForce to cause air resistance when infront of an fan, but it does a lot more force whilst in the air, are there any fixes or alternatives to doing this?

local Fan = {}
Fan.__index = Fan

function Fan.new(f)
	local self = setmetatable({}, Fan)
	self.fan = f
	self.Region = f:WaitForChild("Region")
	return self
end

function Fan:Activate()
	local overlapParams = OverlapParams.new()
	overlapParams.FilterDescendantsInstances = {self.fan}
	
	local playersAffected = {}

	game:GetService("RunService").Heartbeat:Connect(function()
		local parts = workspace:GetPartsInPart(self.Region, overlapParams)
		
		for i, p in ipairs(parts) do
			local player = game.Players:GetPlayerFromCharacter(p.Parent)

			if player then
				if not playersAffected[player] then
					playersAffected[player] = true
					local character = p.Parent
					local characterRoot = character:FindFirstChild("HumanoidRootPart")
					local humanoid = character:WaitForChild("Humanoid")

					local direction = self.fan.PrimaryPart.CFrame.RightVector
					local windStrength = self.fan:GetAttribute("WindStrength")

					local direciton = characterRoot.CFrame.LookVector
					local resistanceForce = direction * windStrength

					local bodyForce = Instance.new("BodyForce", characterRoot)
					bodyForce.Force = resistanceForce
				end
			end
		end
	end)
end

return Fan
1 Like

I’ve also experimented with an VectorForce, but I’m still facing the issue of significantly increased force when the character is in the air, I do believe is related to an inherent downward force in the Roblox character, but I can’t be to sure. Any insight, alternatives, and help would be appreciated.

Experiencing the same issues here. Hope there’s a fix