Trying to Set a Position to a Part But Its not Working

Im Trying to Make a Story Game Type of Thing, But Theres One Piece that I need.

There is a Script Which Makes a Part Move.
I cant find Any Errors to This Script But its Not Working.

while wait() do
	workspace.Bus.MainPart.Position = workspace.Bus.MainPart.Position + 
Vector3.new(1, 0, 0)
end

Assuming the bus is a model, I believe you mean workspace.Bus.PrimaryPart?

Using workspace.Bus.PrimaryPart would not move the entire model. It would only move the PrimaryPart.

You can use this instead to move the entire model:

local PrimaryPart = workspace.Bus.PrimaryPart

while true do
	local PrimaryPartPosition = CFrame.new(
		PrimaryPart.Position.X,
		PrimaryPart.Position.Y,
		PrimaryPart.Position.Z
	)
	
	local TargetPosition = PrimaryPartPosition + Vector3.new(1, 0, 0)
	
	workspace.Bus:SetPrimaryPartCFrame(TargetPosition)

	wait()
end

This script would would cast a CFrame of the position of the X, Y, Z positions of the actual model’s primary part relative to the model itself. We can call SetPrimaryPartCFrame and continuously update the position through the loop, allowing for the model to move.

This method might be too antagonistic for the original poster’s liking. Their post was not descriptive enough to really determine what they needed.

Yes I Fixed it Myself Yesterday…
I Used

local Primary = script.Parent.PrimaryPart
local model = script.Parent
for i = 1,100 do
		wait()
		model:SetPrimaryPartCFrame(CFrame.new(Primary.Position + Vector3.new(1,0,0)))
	end

so It would set the PrimaryCFrame to a Different Position on a way That it Almost Looks like its Tweening