How do I Create a Realistic Gun Scope System?

The question I have had for so long, and the question that has never been answered.

How do I create a realistic gun scope system?

I do not want to use viewports. (or viewmodels)

My System

My gun system does not consist of viewports, it uses a first person camera. It is in R6, here is the link to the game another gun systm - Roblox

The system already has an FOV decrease when scoping, here is the code:

Mouse.Button2Down:Connect(function()
	if GloballyEnabled == false then
		return
	end
	HoldingMB2 = true
	if HoldingShift == true then
		return
	end
	Humanoid.Parent.WSD.Value = WSD/1.5
	Humanoid.Parent.CameraBobbing.Disabled = true
	local t = game.TweenService:Create(Camera,TweenInfo.new(.5),{FieldOfView = ScopeFOV})
	t:Play()
	t.Completed:Connect(function()
		t:Destroy()
	end)
end)

WSD is the Walk speed subtraction, in which gets lower when aiming since it focuses your camera.

Also, bloodtide, if they don’t use viewpoints ports*, then how did they do it?

Do you mean viewports?

Also, this may help:

what is a viewmodel, also yse a meant viewports

a viewmodel is what i meant, i do not want to use a viewmodel is there any other ways?

It looks like you’re already using a view model though. A view model is just the arms put into 3d space.

I am using the player characters arms theirself and no extra ones

Can’t you move the gun and arms to the middle position? Also, you don’t need to :Destroy a tween. It’s automatically garbage collected when the tween ends.

ohhhhh, also if I moved the gun and arms to the middle position, would it be another animation? It also might not line up well when going up and down