You can write your topic however you want, but you need to answer these questions:
- What do you want to achieve? Keep it simple and clear!
I want crosshair to get actually centered on firstperson.
- What is the issue? Include screenshots / videos if possible!
Crosshair is placed on slightly bottom instead of center, But not in thirdperson or shift locked.
This issue is not happening on non-viewmodel version of FE Gun Kit.
Issue only happens on actual game, Not Roblox Studio.
I’m suspecting this as conflict between new roblox HUD and kit, Since it was not happening before new HUD in i remember.
- What solutions have you tried so far? Did you look for solutions on the Developer Hub?
I looked for solution on forum, Checking and adjusting the GUI and Crosshair’s property, Trying other viewmodel FE Gun Kit version.
I’m using Al’s FE Gun Kit.
Video:
renderMouse function in GunScript_Local, Which is causing the issue.
function renderMouse()
local delta = UserInputService:GetMouseDelta() / Module.ScopeSensitive
if Scoping and UserInputService.MouseEnabled and UserInputService.KeyboardEnabled then --For pc version
GUI.Scope.Position = UDim2.new(0, scope.p.x + (knockback.p.y * 1000), 0, scope.p.y + (knockback.p.x * 200))
local offset = GUI.Scope.AbsoluteSize.x * 0.5
scope.t = Vector3.new(Mouse.x - offset - delta.x, Mouse.y - offset - delta.y, 0)
oldPosition = Vector2.new(Mouse.x, Mouse.y)
elseif Scoping and UserInputService.TouchEnabled and not UserInputService.MouseEnabled and not UserInputService.KeyboardEnabled then --For mobile version, but in first-person view
GUI.Scope.Position = UDim2.new(0, scope.p.x + (knockback.p.y * 1000), 0, scope.p.y + (knockback.p.x * 200))
local offset = GUI.Scope.AbsoluteSize.x * 0.5
scope.t = Vector3.new(GUI.Crosshair.AbsolutePosition.X - offset - delta.x, GUI.Crosshair.AbsolutePosition.Y - offset - delta.y, 0)
oldPosition = Vector2.new(GUI.Crosshair.AbsolutePosition.X, GUI.Crosshair.AbsolutePosition.Y)
end
GUI.Scope.Visible = Scoping
if not Scoping then
GUI.Crosshair.Main.Visible = true
scope.t = Vector3.new(600, 200, 0)
else
GUI.Crosshair.Main.Visible = false
end
if UserInputService.MouseEnabled and UserInputService.KeyboardEnabled then --For pc version
if Fake:FindFirstChild("FakeCamera") then
if (Camera.Focus.p-Camera.CoordinateFrame.p).magnitude <= 1 then
if CFAngles then
local v = WorldToScreen((Camera.CFrame * CFAngles:Inverse() * CFrame.new(0, 0, -4)).Position)
local v2 = Camera.ViewportSize / 2
GUI.Crosshair.Position = (v - v2).Magnitude > 0.08 and UDim2.new(0, v.X, 0, v.Y - 36) or UDim2.new(0, v2.X, 0, v2.Y - 36)
else
GUI.Crosshair.Position = UDim2.new(0, Mouse.X, 0, Mouse.Y)
end
else
GUI.Crosshair.Position = UDim2.new(0, Mouse.X, 0, Mouse.Y)
end
else
GUI.Crosshair.Position = UDim2.new(0, Mouse.X, 0, Mouse.Y)
end
elseif UserInputService.TouchEnabled and not UserInputService.MouseEnabled and not UserInputService.KeyboardEnabled and (Camera.Focus.p-Camera.CoordinateFrame.p).magnitude > 2 then --For mobile version, but in third-person view
GUI.Crosshair.Position = UDim2.new(0.5, 0, 0.4, -50)
elseif UserInputService.TouchEnabled and not UserInputService.MouseEnabled and not UserInputService.KeyboardEnabled and (Camera.Focus.p-Camera.CoordinateFrame.p).magnitude <= 2 then --For mobile version, but in first-person view
if Fake:FindFirstChild("FakeCamera") then
if (Camera.Focus.p-Camera.CoordinateFrame.p).magnitude <= 1 then
if CFAngles then
local v = WorldToScreen((Camera.CFrame * CFAngles:Inverse() * CFrame.new(0, 0, -4)).Position)
local v2 = Camera.ViewportSize / 2
GUI.Crosshair.Position = (v - v2).Magnitude > 0.08 and UDim2.new(0, v.X, 0, v.Y - 36) or UDim2.new(0, v2.X, 0, v2.Y - 36)
else
GUI.Crosshair.Position = UDim2.new(0.5, 0, 0.5, -19)
end
else
GUI.Crosshair.Position = UDim2.new(0.5, 0, 0.5, -19)
end
else
GUI.Crosshair.Position = UDim2.new(0.5, 0, 0.5, -19)
end
end
end
Please do not ask people to write entire scripts or design entire systems for you. If you can’t answer the three questions above, you should probably pick a different category.