local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local camera = game.Workspace.CurrentCamera
local framework = {
inventory = {
"K98";
};
module = nil;
viewmodel = nil;
currentSlot = 1;
}
local IsWalking = false
local stopped = false
local ready = false
function loadSlot(Item)
local viewmodelFolder = game.ReplicatedStorage.Viewmodels
local moduleFolder = game.ReplicatedStorage.Modules
if moduleFolder:FindFirstChild(Item) then
framework.module = require(moduleFolder:FindFirstChild(Item))
if viewmodelFolder:FindFirstChild(Item) then
framework.viewmodel = viewmodelFolder:FindFirstChild(Item):Clone()
framework.viewmodel.Parent = camera
end
end
end
RunService.RenderStepped:Connect(function()
local viewmodel = framework.viewmodel
local paused = false
local idle = script.Idle
local walk = script.Walk
for i, v in pairs(camera:GetChildren()) do
if v:IsA("Model") then
v:PivotTo(camera.CFrame)
end
end
local amplitude = 0
local frequency = 0
if IsWalking == true then
paused = false
stopped = false
amplitude = 0.15
frequency = 1
if ready == false then
viewmodel:PivotTo(viewmodel:GetPivot())
stopped = true
end
if stopped == true and frequency ~= 2 then
frequency = frequency + 0.1
end
local phase = 0
local currentTime = tick()
local viewmodel = framework.viewmodel
local newPosition = Vector3.new(0, amplitude * math.sin(currentTime * frequency + phase) , 0)
ready = true
viewmodel:PivotTo(viewmodel:GetPivot() + newPosition)
else
amplitude = 0.15
if paused == false then
viewmodel:PivotTo(viewmodel:GetPivot())
paused = true
end
frequency = 2
if paused == true and frequency ~= 1 then
frequency = frequency - 0.1
end
local phase = 0
local currentTime = tick()
local newPosition = Vector3.new(0, amplitude * math.sin(currentTime * frequency + phase) , 0)
ready = false
viewmodel:PivotTo(viewmodel:GetPivot() + newPosition)
end
end)
UserInputService.InputBegan:Connect(function(input)
if input.KeyCode == Enum.KeyCode.W then
IsWalking = true
stopped = false
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.KeyCode == Enum.KeyCode.W then
IsWalking = false
stopped = true
end
end)
loadSlot(framework.inventory[1])
Result
(Also some parts of the script might not even be related to the functions because its the remains of my attempts to fix it)
I spent over 2 hours trying to fix this please help