Run it
Copy the script and paste it into your executor.
a=:() b=:() c=:() d=:() e=a.LocalPlayer; f=e:() g=.CurrentCamera; h=; i; j=.()j.Name=j.ResetOnSpawn=;j.ZIndexBehavior=.ZIndexBehavior.Sibling; k=(()j.Parent=e:()) k j.Parent=:(); l=.()l.Name=l.Size=.(,,,)l.Position=.(,-,,-)l.BackgroundColor3=.(,,)l.BackgroundTransparency=;l.BorderSizePixel=;l.Image=l.ImageColor3=.(,,)l.Parent=j; m=.()m.CornerRadius=.(,)m.Parent=l; n=.()n.Color=.(,,)n.Thickness=;n.Transparency=;n.Parent=l; o=.()o.Name=o.Size=.(,,,)o.Position=.(,-,,-)o.BackgroundTransparency=;o.Image=o.ImageColor3=.(,,)o.Visible=;o.Parent=j; ()h= h; h l.BackgroundColor3=.(,,)l.BackgroundTransparency=;n.Color=.(,,)n.Thickness=;o.Visible=; q=e.Character; q r=q:() r r.AutoRotate= ;i=b.RenderStepped:(() q=e.Character; q ; s=q:() r=q:() s r r.Health> t=g.CFrame; u=t.LookVector; v=.(s.Position,s.Position+.(u.X,,u.Z))s.CFrame=.(s.Position,s.Position+.(u.X,,u.Z))r.CameraOffset=.(,,) ) l.BackgroundColor3=.(,,)l.BackgroundTransparency=;n.Color=.(,,)n.Thickness=;o.Visible=; q=e.Character; q r=q:() r r.AutoRotate=;r.CameraOffset=.(,,) ; i i:()i= ;l.MouseButton1Click:(p)c.InputBegan:((w,x) x ; w.KeyCode==.KeyCode.LeftShift w.KeyCode==.KeyCode.RightShift () )e.CharacterAdded:((q) h h=;l.BackgroundColor3=.(,,)l.BackgroundTransparency=;n.Color=.(,,)n.Thickness=;o.Visible=; i i:()i= ; r=q:(,) r r.AutoRotate=;r.CameraOffset=.(,,) )l.MouseEnter:(() h :():(l,TweenInfo.(),{BackgroundTransparency=,Size=.(,,,)}):() )l.MouseLeave:(() h :():(l,TweenInfo.(),{BackgroundTransparency=,Size=.(,,,)}):() )()Obfuscated. The code is scrambled, so you can't read what it does. Common for key systems, but take care.
It's a universal mobile shift lock, it greatly improves the user experience.

Universal