I was messing around with the CFrames for my ViewModels and found that the aim CFrame effected the normal CFrame. For instance, if I included in my aim CFrame that Y Axis was 1.45, the main CFrame Y Axis would be moved as well.
Framework script (localscript):
--wait until game is loaded
repeat wait() until game:IsLoaded()
--local variables
local plr = game.Players.LocalPlayer
local char = plr.Character
local cam = workspace.CurrentCamera
local mouse = plr:GetMouse()
--service variables
local runs = game:GetService("RunService")
local tweens = game:GetService("TweenService")
local uis = game:GetService("UserInputService")
local rs = game:GetService("ReplicatedStorage")
--misc variables
local modules = rs:WaitForChild("Modules")
local models = rs:WaitForChild("Models")
local running
local aiming
--CFrame variables
local maincf = CFrame.new()
local aimcf = CFrame.new()
--gun variables
local currentEquipt
local primary = "test"
local secondary
local currentData
--functions
plr.CameraMode = Enum.CameraMode.LockFirstPerson
function setup(gun)
currentEquipt = models:WaitForChild(gun)
currentEquipt.PrimaryPart = currentEquipt:WaitForChild("Handle")
currentEquipt.Parent = cam
currentData = require(modules:FindFirstChild(gun))
maincf = currentData.maincf
aimcf = currentData.aimcf
for _,v in pairs(currentEquipt:GetChildren())do
if v:IsA("BasePart") or v:IsA("MeshPart") or v:IsA("UnionOperation") then
if v.Anchored and not v.CanCollide then
else
v.Anchored = true
v.CanCollide = false
print("Fixed "..v.name..".")
end
if v:FindFirstChild("Weld") then
v.Weld:Destroy()
end
end
end
end
runs.RenderStepped:Connect(function()
if currentEquipt then
currentEquipt:SetPrimaryPartCFrame(cam.CFrame
*maincf
*aimcf
)
end
end)
mouse.Button2Down:Connect(function()
aiming = true
end)
mouse.Button2Up:Connect(function()
aiming = false
end)
setup(primary)
Module:
local test = {}
test.maincf = CFrame.new(0.67,-.45,-2.55)
test.aimcf = CFrame.new(0,-.56,0)
return test
Please try and help, I'll be answering questions if you have any.
