local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local PhysicsService = game:GetService("PhysicsService") local player = Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local humanoidRootPart = character:WaitForChild("HumanoidRootPart") local humanoid = character:WaitForChild("Humanoid") -- Configuration local FLICK_KEY = Enum.KeyCode.RightBracket local FLICK_ANGLE = -30 -- Turns RIGHT local TIME_HELD = 0.15 -- Setup Collision Groups once so they don't lag pcall(function() PhysicsService:RegisterCollisionGroup("FlickPlayer") PhysicsService:RegisterCollisionGroup("FlickWalls") PhysicsService:CollisionGroupSetCollidable("FlickPlayer", "FlickWalls", false) end) -- Track character respawns player.CharacterAdded:Connect(function(newCharacter) character = newCharacter humanoidRootPart = character:WaitForChild("HumanoidRootPart") humanoid = character:WaitForChild("Humanoid") end) local function performFlick() -- Prevent errors if flicking exactly while dying if not humanoid or humanoid.Health <= 0 or not humanoidRootPart then return end -- 1. Kill Shift Lock's force rotation temporarily humanoid.AutoRotate = false -- 2. Dynamically tag your character and any nearby parts named "Wall" for _, part in ipairs(character:GetChildren()) do if part:IsA("BasePart") then part.CollisionGroup = "FlickPlayer" end end for _, part in ipairs(workspace:GetPartBoundsInRadius(humanoidRootPart.Position, 4)) do if part.Name == "Wall" or part.Name == "Part" then part.CollisionGroup = "FlickWalls" end end -- 3. Save original rotation and calculate the 90-degree RIGHT turn local originalRotation = humanoidRootPart.CFrame local flickRotation = originalRotation * CFrame.Angles(0, math.rad(FLICK_ANGLE), 0) -- 4. Physically rotate the entire hitbox 90 degrees right humanoidRootPart.CFrame = flickRotation -- 5. Hold the position for your manual jump timing task.wait(TIME_HELD) -- Safety check in case you died during the wait if not humanoidRootPart or humanoid.Health <= 0 then return end -- 6. Snap the physical body back to the original facing direction local currentPos = humanoidRootPart.Position local originalRotationOnly = originalRotation - originalRotation.Position humanoidRootPart.CFrame = CFrame.new(currentPos) * originalRotationOnly -- 7. Instantly restore original default collision groups for _, part in ipairs(character:GetChildren()) do if part:IsA("BasePart") then part.CollisionGroup = "Default" end end -- 8. Give control back to Shift Lock instantly humanoid.AutoRotate = true end UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == FLICK_KEY then task.spawn(performFlick) end end)