Orbit script problem

I am trying to shows the planet orbit around another part but the script i made isn’t really accurate,
and i use a LineForce with a magnitude of 100 to simulate the gravity and use a trail to show the real part trajectory

I couldn’t really find any solution or help on the dev forum except this post Orbital trajectory problem but didn’t really got any answer to my problem

I currently have this

local Planet = game:GetService("Workspace").Planet
local Sun = game:GetService("Workspace").Sun

Planet.AssemblyLinearVelocity = Planet.CFrame.RightVector*100

local dots = {}

game:GetService("RunService").Stepped:Connect(function(t, dt)
	local velocity = Planet.AssemblyLinearVelocity
	local previousPos = Planet.Position
	local magnitude = velocity.Magnitude

	for i=1, 200 do
		local Gravity = (Sun.Position-previousPos).Unit*100 -- 100 is the force from the line force


		local NextPos = nil

		NextPos = previousPos+velocity*dt+Gravity*dt*dt

		local newP = nil

		if dots[i] then
			newP = dots[i]
		else
			newP = Instance.new("Part")
			newP.Size = Vector3.new(.5, .5, .5)
			newP.Material = Enum.Material.SmoothPlastic
			newP.Color = Color3.fromRGB(85, 170, 255)
			newP.Anchored = true
			newP.CanCollide = false
			newP.Parent = game:GetService("Workspace")

			dots[i] = newP
		end

		newP.Position = NextPos
		
		local dis = (previousPos - Sun.Position).Unit
		local force = 100
		
		velocity = (NextPos-previousPos).Unit*magnitude
		
		previousPos = NextPos


	end
end)

I think it might be related to the gravity but i am not sure

i figured it out by myself by just applying the gravity and multiplying the result by pi

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.