Issue:
Example of what it should be:
My issue is that when I push my camera down the gun keeps going down too but then when I push my camera upwards then the gun wont go up.
Here is my current code.
local Plrz = game:GetService("Players")
local Rep = game:GetService("ReplicatedStorage")
local UIs = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local RunService = game:GetService("RunService")
local Camera = workspace.CurrentCamera
local Player = Plrz.LocalPlayer
local Char = Player.Character or Player.CharacterAdded:Wait()
local Humanoid = Char:WaitForChild("Humanoid")
local FrameWork_T = {
CurrTool = nil,
V_Model = nil,
Settings = nil,
}
local Aiming = false
local AimCF = CFrame.new()
local AimOffset = Vector2.new()
Char.ChildAdded:Connect(function(Tool)
if Tool:IsA("Tool") then
UIs.MouseIconEnabled = true
Player.CameraMode = Enum.CameraMode.Classic
FrameWork_T.V_Model = Rep.Viewmodels:FindFirstChild("V_"..Tool.Name):Clone()
FrameWork_T.V_Model.Parent = Camera
FrameWork_T.Settings = require(Tool.Settings)
CurrTool = Tool
print("Equipped "..CurrTool.Name)
end
end)
Char.ChildRemoved:Connect(function(Tool)
if Tool:IsA("Tool") then
UIs.MouseIconEnabled = true
Player.CameraMode = Enum.CameraMode.Classic
Camera:FindFirstChild("V_"..Tool.Name):Destroy()
FrameWork_T.V_Model = nil
FrameWork_T.Settings = nil
CurrTool = nil
print("Unequipped "..Tool.Name)
end
end)
RunService.RenderStepped:Connect(function(DT)
if Humanoid.Health > 0 and FrameWork_T.V_Model ~= nil then
local MouseDelta = UIs:GetMouseDelta()
AimOffset = AimOffset + Vector2.new(MouseDelta.X, MouseDelta.Y)
local SwayCF = CFrame.Angles(math.rad(math.clamp(-AimOffset.Y/10, -10, 10)), math.rad(math.clamp(-AimOffset.X/10, -50, 15)), math.rad(0))
if Aiming == true then
local AimPart
if FrameWork_T.V_Model:FindFirstChild("AimAtt") then
AimPart = FrameWork_T.V_Model.AimAtt:FindFirstChild("AimPart")
else
AimPart = FrameWork_T.V_Model:FindFirstChild("AimPart")
end
local Offset = AimPart.CFrame:ToObjectSpace(FrameWork_T.V_Model.PrimaryPart.CFrame)
AimCF = AimCF:Lerp(Offset, 1-FrameWork_T.Settings.AimSmooth^DT)
TweenFOV(0.3, 90)
else
local Offset = CFrame.new()
AimCF = AimCF:Lerp(Offset, 1-FrameWork_T.Settings.AimSmooth^DT)
TweenFOV(0.3, 70)
end
FrameWork_T.V_Model:SetPrimaryPartCFrame(Camera.CFrame * AimCF * SwayCF)
end
end)
I used this for a better understanding on how to make it.