CameraOffset is a property of the humanoid.
Besides, there’s nothing wrong with using SmoothShiftLock, or any module in general, as why should you go out of your way to recreate what already exists?
Anyways, this is quite unnecessary for something that’s already included in the module. All you have to do is add your desired inputs into the keybind configs inside of the SmoothShiftLock module.
--// Configuration
local Config = {
MOBILE_SUPPORT = false, --// Adds a button to toggle the shift lock for touchscreen devices
SMOOTH_CHARACTER_ROTATION = true, --// If your character should rotate smoothly or not
CHARACTER_ROTATION_SPEED = 3, --// How quickly character rotates smoothly
TRANSITION_SPRING_DAMPER = 0.75, --// Camera transition spring damper, test it out to see what works for you
CAMERA_TRANSITION_IN_SPEED = 15, --// How quickly locked camera moves to offset position
CAMERA_TRANSITION_OUT_SPEED = 25, --// How quickly locked camera moves back from offset position
LOCKED_CAMERA_OFFSET = Vector3.new(1.75, 0.5, 0), --// Locked camera offset
LOCKED_MOUSE_ICON = --// Locked mouse icon
"rbxassetid://14393179816",
SHIFT_LOCK_KEYBINDS = --// Shift lock keybinds
{ Enum.KeyCode.LeftShift, Enum.KeyCode.LeftControl } -- simply add your desired inputs here
};