Crosshair code expands incorrectly

So I am making a FPS framework and I want a dynamic crosshair like in the FE gun kit, when you shoot it expands (ironically the kit I am completely plagiarizing of off because I have no idea how to code that…).

But the thing is, when I aim into the ironsights, the crosshair goes invisible, which is what i want, but when I un-aim, it expands incorrectly, shown in the video below.

This is my code, hopefully it’s self explanatory without showing all of it:

-- Functions:

-- Adjusts the general scale of the crosshair
local function SetCrossCcale(Scale)
	CrossScale.t = Scale

-- Adjusts the position and transparency (to look good when aiming primarily)
local function RenderCrosshair()
	local Size = CrossSpring.p * 4 * CrossScale.p
	for i = 1, 4 do
		CrossParts[i].BackgroundTransparency = 1 - Size / 20
	CrossParts[1].Position =, Size, 0, 0)
	CrossParts[2].Position =, -Size - 7, 0, 0)
	CrossParts[3].Position =, 0, 0, Size)
	CrossParts[4].Position =, 0, 0, -Size - 7)

-- Setting some spring settings
local function SetCrossSettings(Size, Speed, Damper)
	CrossSpring.t = Size
	CrossSpring.s = Speed
	CrossSpring.d = Damper

-- What runs when the mouse.Button2Down signal is fired:

-- What runs when the mouse.Button2Up signal is fired:

-- What runs when you shoot the gun:
if aiming == false then

-- What runs when the gun is equipped:
SetCrossSettings(gunset.crosshairdefaultsize, 15, 0.8)

-- What runs on RunService.RenderStepped:

-- And finally, basically all the springs and the CrossParts table:
local CrossSpring = require(game.ReplicatedStorage:WaitForChild('Modules'):WaitForChild('Spring'))
CrossSpring.s = 12
CrossSpring.d = 0.65

local CrossScale = require(game.ReplicatedStorage:WaitForChild('Modules'):WaitForChild('Spring'))	
CrossScale.s = 10	
CrossScale.d = 0.8
CrossScale.t = 1

local CrossParts = {


What happens (the missing horizontal arrows are not the problem, thats a OBS issue I think):

My crosshair GUI:

This is the spring module I used:

No errors, no warnings, no nothing. I’m completely stuck on this one.
Considering my format and my explanation, you will probably get stuck with this question too…


Whatever this module variable stores/is a reference to is causing the issue.

The value is just 7. When the gun is equips, it works fine.

I wonder if I made it half when you aim out, because it seems like its multiplying, maybe that would fix it?

Edit: I think the spring module would be multiplying it for sure, when I set it to one it fixed. That is… slightly annoying.