I think its possible its just I don't understand how it works.
What I'm trying to do is make a game where the player can fly and I want the player to float when doing nothing but I dunno how to do this.
Thanks, KiHeros
We can't make a script for you so I'll teach you how to make a part float: Roblox has gravity, the Gravitational pull is 96.2 studs per second squared. Which means you can set the gravity by 0 by making a body force push up 96.2 on the y axis per part.
--Inside a part: local bf = Instance.new("BodyForce", script.Parent) bf.force = Vector3.new(0,96.2,0) * script.Parent:GetMass() --Part floats
Using this knowledge we can make the part slowly fall to the ground by changing 96.2 to a smaller number like 48.1 which would make you get affected by half of ROBLOX's gravity:
--Inside a part: local bf = Instance.new("BodyForce", script.Parent) bf.force = Vector3.new(0,48.1,0) * script.Parent:GetMass() --Part floats
The problem with no gravity is if a player is using this and they jump, they will always go up until there is a force that acts upon it, like another player or a part. So make sure they don't go flying everywhere and end up in space.
GetMass only works on one part, but the player's character has multiple parts, well according to my calculations the character without hats has a mass of 14. But we need to see how much the hat weights:
local character = script.Parent --Find the character groups = {["Model"] = true, ["Hat"] = true} --Dictionary; add more here. local mass = 0 function search(instance) for _,obj in pairs(instance:GetChildren()) do if groups[obj.ClassName] then search(obj) elseif obj:IsA("BasePart") then mass = mass+obj:GetMass() end end end search(character)
Hope it helps!