local/Workspace.CurrentCamera:ClearAllChildren(); local LPlayer = Game:GetService('Players').LocalPlayer; local stepped = Game:GetService('RunService').Stepped; repeat stepped:wait() until LPlayer.Character ~= nil; local char, mouse = LPlayer.Character, LPlayer:GetMouse(); local activated, a1, a2, makeGun = false; local arml, armr, fl, fr = char:FindFirstChild('Left Arm'), char:FindFirstChild('Right Arm'); local oldNeckc1 = char.Torso.Neck.C1; local Gun = nil; local assets = { cursor = 'http://www.roblox.com/asset/?id=51005301'; }; local oc = oc or function(f) return f; end; -- gotta go faste function wait(t) if t == nil or t < .34 then return stepped:wait() else return Wait(t); end; end; function isZoomed() return (Workspace.CurrentCamera.CoordinateFrame.p - char.Head.Position).magnitude <= math.pi; end; function stick(x, y) local weld = Instance.new('Weld', x) weld.Part0 = x; weld.Part1 = y; local C = CFrame.new(x.Position); local C0 = x.CFrame:inverse() * C; local C1 = y.CFrame:inverse() * C; weld.C0 = C0; weld.C1 = C1; end; function createBrickGun() local Gun, x = Instance.new('Model'), { }; local Wedge0521 = Instance.new('Part'); Wedge0521.BrickColor = BrickColor.new('Black'); Wedge0521.FormFactor = Enum.FormFactor.Plate; Wedge0521.Size = Vector3.new(1, 0.400000006, 1); Wedge0521.CanCollide = false; Wedge0521:BreakJoints(); Wedge0521.CFrame = CFrame.new(-0.5, 2.10000014, -0.800000012, -0, 0, -1, -1, 0, -0, -0, 1, -0); table.insert(x, Wedge0521); local mesh = Instance.new('SpecialMesh', Wedge0521) mesh.Scale = Vector3.new(0.214285716, 0.571428537, 0.142857149); mesh.MeshType = Enum.MeshType.Wedge; local Ring04150 = Instance.new('Part'); Ring04150.BrickColor = BrickColor.new('Black'); Ring04150.FormFactor = Enum.FormFactor.Symmetric; Ring04150.Size = Vector3.new(1, 1, 1); Ring04150.CanCollide = false; Ring04150:BreakJoints(); Ring04150.CFrame = CFrame.new(-0.415000021, 2.10000014, -0.829000056, 1, -6.67835502e-006, 5.62989153e-005, -5.62986716e-005, 3.63752079e-005, 1, -6.6804032e-006, -1, 3.63748331e-005); table.insert(x, Ring04150); local mesh = Instance.new('SpecialMesh', Ring04150) mesh.Scale = Vector3.new(0.285714298, 0.214285716, 0.214285716); mesh.MeshType = Enum.MeshType.FileMesh; mesh.MeshId = 'http://www.roblox.com/asset/?id=3270017'; local Part06650 = Instance.new('Part'); Part06650.BrickColor = BrickColor.new('Black'); Part06650.FormFactor = Enum.FormFactor.Symmetric; Part06650.Size = Vector3.new(1, 1, 1); Part06650.CanCollide = false; Part06650:BreakJoints(); Part06650.CFrame = CFrame.new(-0.665000021, 2.10000014, -0.610000014, 0.939709663, 0.341973186, 5.08187513e-005, -6.68523062e-005, 3.50992777e-005, 1, 0.341973156, -0.939709723, 5.58448228e-005); table.insert(x, Part06650); local mesh = Instance.new('BlockMesh', Part06650) mesh.Scale = Vector3.new(0.142857149, 0.5, 0.214285716); local Cylinder01080 = Instance.new('Part'); Cylinder01080.BrickColor = BrickColor.new('Black'); Cylinder01080.FormFactor = Enum.FormFactor.Symmetric; Cylinder01080.Size = Vector3.new(1, 1, 1); Cylinder01080.CanCollide = false; Cylinder01080:BreakJoints(); Cylinder01080.CFrame = CFrame.new(-0.108000003, 2.06400013, -0.914000034, 9.83183709e-005, 1, -3.33383323e-005, 8.47723204e-005, -3.33466669e-005, -1, -1, 9.83155405e-005, -8.47755946e-005); table.insert(x, Cylinder01080); local mesh = Instance.new('CylinderMesh', Cylinder01080) mesh.Scale = Vector3.new(0.142857149, 0.928571403, 0.142857149); local Wedge07220 = Instance.new('Part'); Wedge07220.BrickColor = BrickColor.new('Black'); Wedge07220.FormFactor = Enum.FormFactor.Custom; Wedge07220.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003); Wedge07220.CanCollide = false; Wedge07220:BreakJoints(); Wedge07220.CFrame = CFrame.new(-0.722000062, 2.05000019, -1.1500001, -0.99999994, -3.33462922e-005, -5.42690104e-005, 3.33466633e-005, -1, -6.83806547e-006, -5.42687776e-005, -6.83987537e-006, 1); table.insert(x, Wedge07220); local mesh = Instance.new('SpecialMesh', Wedge07220) mesh.Scale = Vector3.new(0.214285716, 0.142857134, 0.214285716); mesh.MeshType = Enum.MeshType.Wedge; local Cylinder03710 = Instance.new('Part'); Cylinder03710.BrickColor = BrickColor.new('Dark stone grey'); Cylinder03710.FormFactor = Enum.FormFactor.Plate; Cylinder03710.Size = Vector3.new(1, 0.400000006, 1); Cylinder03710.CanCollide = false; Cylinder03710:BreakJoints(); Cylinder03710.CFrame = CFrame.new(0.371000022, 2.10000014, -1.05700004, -2.83043164e-006, 1, -6.7347255e-006, 1, 2.83047802e-006, 6.83882172e-006, 6.83884082e-006, -6.73470549e-006, -1); table.insert(x, Cylinder03710); local mesh = Instance.new('CylinderMesh', Cylinder03710) mesh.Scale = Vector3.new(0.192857131, 0.0714285672, 0.128571421); local Wedge03000 = Instance.new('Part'); Wedge03000.BrickColor = BrickColor.new('Black'); Wedge03000.FormFactor = Enum.FormFactor.Custom; Wedge03000.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003); Wedge03000.CanCollide = false; Wedge03000:BreakJoints(); Wedge03000.CFrame = CFrame.new(0.300000012, 2.10000014, -1.14300001, 2.83043164e-006, 1, 6.7347255e-006, -1, 2.83047802e-006, -6.83882172e-006, -6.83884082e-006, -6.73470549e-006, 1); table.insert(x, Wedge03000); local mesh = Instance.new('SpecialMesh', Wedge03000) mesh.Scale = Vector3.new(0.0714285672, 0.285712689, 0.142857149); mesh.MeshType = Enum.MeshType.Wedge; local Cylinder04000 = Instance.new('Part'); Cylinder04000.BrickColor = BrickColor.new('Really black'); Cylinder04000.FormFactor = Enum.FormFactor.Plate; Cylinder04000.Size = Vector3.new(1, 0.400000006, 1); Cylinder04000.CanCollide = false; Cylinder04000:BreakJoints(); Cylinder04000.CFrame = CFrame.new(0.400000006, 2.10000014, -1.05700004, 2.83120517e-006, 1, -2.58995733e-005, -0.99999994, 2.82991004e-006, -4.99933813e-005, -4.99933049e-005, 2.58997134e-005, 1); table.insert(x, Cylinder04000); local mesh = Instance.new('CylinderMesh', Cylinder04000) mesh.Scale = Vector3.new(0.149999991, 0.0714285672, 0.100000001); local Wedge0252 = Instance.new('Part'); Wedge0252.BrickColor = BrickColor.new('Dark stone grey'); Wedge0252.FormFactor = Enum.FormFactor.Custom; Wedge0252.Size = Vector3.new(0.214285716, 0.200000003, 0.200000003); Wedge0252.CanCollide = false; Wedge0252:BreakJoints(); Wedge0252.CFrame = CFrame.new(-0.25, 2.18600011, -1.09300005, 0.99999994, -2.76857554e-005, 6.73361774e-006, 2.7686212e-005, 0.99999994, -6.79336517e-005, -6.73173781e-006, 6.79338336e-005, 1); table.insert(x, Wedge0252); local mesh = Instance.new('SpecialMesh', Wedge0252) mesh.Scale = Vector3.new(1, 0.214285716, 0.357142866); mesh.MeshType = Enum.MeshType.Wedge; local Cylinder01080 = Instance.new('Part'); Cylinder01080.BrickColor = BrickColor.new('Black'); Cylinder01080.FormFactor = Enum.FormFactor.Symmetric; Cylinder01080.Size = Vector3.new(1, 1, 1); Cylinder01080.CanCollide = false; Cylinder01080:BreakJoints(); Cylinder01080.CFrame = CFrame.new(-0.108000003, 2.13600016, -0.914000034, 9.83183709e-005, 1, -3.33383323e-005, 8.47723204e-005, -3.33466669e-005, -1, -1, 9.83155405e-005, -8.47755946e-005); table.insert(x, Cylinder01080); local mesh = Instance.new('CylinderMesh', Cylinder01080) mesh.Scale = Vector3.new(0.142857149, 0.928571403, 0.142857149); local Wedge02569 = Instance.new('Part'); Wedge02569.BrickColor = BrickColor.new('Black'); Wedge02569.FormFactor = Enum.FormFactor.Custom; Wedge02569.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003); Wedge02569.CanCollide = false; Wedge02569:BreakJoints(); Wedge02569.CFrame = CFrame.new(0.256999999, 2.10000014, -1.14300001, -2.82876908e-006, -0.99999994, -4.68209655e-005, 1, -2.8304687e-006, 3.63005784e-005, -3.63007093e-005, -4.68208564e-005, 1); table.insert(x, Wedge02569); local mesh = Instance.new('SpecialMesh', Wedge02569) mesh.Scale = Vector3.new(0.0714285672, 0.142855555, 0.142857149); mesh.MeshType = Enum.MeshType.Wedge; local Part01070 = Instance.new('Part'); Part01070.BrickColor = BrickColor.new('Dark stone grey'); Part01070.FormFactor = Enum.FormFactor.Symmetric; Part01070.Size = Vector3.new(1, 1, 1); Part01070.CanCollide = false; Part01070:BreakJoints(); Part01070.CFrame = CFrame.new(0.107000008, 2.10000014, -1.09300005, 1, -6.7347637e-006, 2.83038571e-006, -2.83043209e-006, -6.83871076e-006, 1, -6.73474415e-006, -1, -6.83872986e-006); table.insert(x, Part01070); local mesh = Instance.new('BlockMesh', Part01070) mesh.Scale = Vector3.new(0.5, 0.0714285746, 0.214285716); local Part01080 = Instance.new('Part'); Part01080.BrickColor = BrickColor.new('Black'); Part01080.FormFactor = Enum.FormFactor.Symmetric; Part01080.Size = Vector3.new(1, 1, 1); Part01080.CanCollide = false; Part01080:BreakJoints(); Part01080.CFrame = CFrame.new(-0.108000003, 2.10000014, -0.878000021, 1, -6.67835502e-006, 5.62989153e-005, -5.62986716e-005, 3.63752079e-005, 1, -6.6804032e-006, -1, 3.63748331e-005); table.insert(x, Part01080); local mesh = Instance.new('BlockMesh', Part01080) mesh.Scale = Vector3.new(0.928571403, 0.0714285746, 0.0714285746); local Part0252 = Instance.new('Part'); Part0252.BrickColor = BrickColor.new('Dark stone grey'); Part0252.FormFactor = Enum.FormFactor.Symmetric; Part0252.Size = Vector3.new(1, 1, 1); Part0252.CanCollide = false; Part0252:BreakJoints(); Part0252.CFrame = CFrame.new(-0.25, 2.10000014, -0.986000061, 1, -6.7347637e-006, 2.83038571e-006, -2.83043209e-006, -6.83871076e-006, 1, -6.73474415e-006, -1, -6.83872986e-006); table.insert(x, Part0252); local mesh = Instance.new('BlockMesh', Part0252) mesh.Scale = Vector3.new(1.21428573, 0.142857149, 0.214285716); local Part0252 = Instance.new('Part'); Part0252.BrickColor = BrickColor.new('Dark stone grey'); Part0252.FormFactor = Enum.FormFactor.Custom; Part0252.Size = Vector3.new(0.214285716, 0.200000003, 0.200000003); Part0252.CanCollide = false; Part0252:BreakJoints(); Part0252.CFrame = CFrame.new(-0.25, 2.079, -1.09300005, 1, -6.67835502e-006, 5.62989153e-005, -5.62986716e-005, 3.63752079e-005, 1, -6.6804032e-006, -1, 3.63748331e-005); table.insert(x, Part0252); local mesh = Instance.new('BlockMesh', Part0252) mesh.Scale = Vector3.new(1, 0.357142866, 0.857142866); local Handle = Instance.new('Part'); Handle.BrickColor = BrickColor.new('Really black'); Handle.FormFactor = Enum.FormFactor.Custom; Handle.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003); Handle.CanCollide = false; Handle:BreakJoints(); Handle.Name = 'Handle'; Handle.CFrame = CFrame.new(-0.736000061, 2.20100021, -1.05000007, 2.76874107e-005, 2.37825061e-005, 1, 1, -3.73285038e-005, -2.7686523e-005, 3.73278453e-005, 1, -2.37835393e-005); table.insert(x, Handle); local mesh = Instance.new('BlockMesh', Handle) mesh.Scale = Vector3.new(0.0714285672, 0.642857194, 0.0714285672); local Block05930 = Instance.new('Part'); Block05930.BrickColor = BrickColor.new('Really black'); Block05930.FormFactor = Enum.FormFactor.Custom; Block05930.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003); Block05930.CanCollide = false; Block05930:BreakJoints(); Block05930.CFrame = CFrame.new(-0.593000054, 2.20100021, -1.05000007, 2.76874107e-005, 2.37825061e-005, 1, 1, -3.73285038e-005, -2.7686523e-005, 3.73278453e-005, 1, -2.37835393e-005); table.insert(x, Block05930); local mesh = Instance.new('BlockMesh', Block05930) mesh.Scale = Vector3.new(0.0714285672, 0.642857194, 0.0714285672); local Wedge07150 = Instance.new('Part'); Wedge07150.BrickColor = BrickColor.new('Black'); Wedge07150.FormFactor = Enum.FormFactor.Plate; Wedge07150.Size = Vector3.new(1, 0.400000006, 1); Wedge07150.CanCollide = false; Wedge07150:BreakJoints(); Wedge07150.CFrame = CFrame.new(-0.715000033, 2.10000014, -0.807000041, 2.83043164e-006, -1, -6.7347255e-006, -1, -2.83047802e-006, 6.83882172e-006, -6.83884082e-006, 6.73470549e-006, -1); table.insert(x, Wedge07150); local mesh = Instance.new('SpecialMesh', Wedge07150) mesh.Scale = Vector3.new(0.214285716, 0.714285731, 0.214285716); mesh.MeshType = Enum.MeshType.Wedge; local Head06080 = Instance.new('Part'); Head06080.BrickColor = BrickColor.new('Dark stone grey'); Head06080.FormFactor = Enum.FormFactor.Symmetric; Head06080.Size = Vector3.new(1, 1, 1); Head06080.CanCollide = false; Head06080:BreakJoints(); Head06080.CFrame = CFrame.new(-0.60800004, 2.10000014, -1.09300005, 1, -6.7347637e-006, 2.83038571e-006, -2.83043209e-006, -6.83871076e-006, 1, -6.73474415e-006, -1, -6.83872986e-006); table.insert(x, Head06080); local mesh = Instance.new('BlockMesh', Head06080) mesh.Scale = Vector3.new(0.5, 0.0714285746, 0.214285716); local Block07220 = Instance.new('Part'); Block07220.BrickColor = BrickColor.new('Black'); Block07220.FormFactor = Enum.FormFactor.Custom; Block07220.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003); Block07220.CanCollide = false; Block07220:BreakJoints(); Block07220.CFrame = CFrame.new(-0.722000062, 2.079, -1.1500001, -2.83043164e-006, -6.73461409e-006, 1, 1, -6.83885992e-006, 2.83038548e-006, 6.83884082e-006, 1, 6.73463364e-006); table.insert(x, Block07220); local mesh = Instance.new('BlockMesh', Block07220) mesh.Scale = Vector3.new(0.142857134, 0.214285716, 0.214285716); local Block07220 = Instance.new('Part'); Block07220.BrickColor = BrickColor.new('Black'); Block07220.FormFactor = Enum.FormFactor.Custom; Block07220.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003); Block07220.CanCollide = false; Block07220:BreakJoints(); Block07220.CFrame = CFrame.new(-0.722000062, 2.10000014, -1.13600004, 2.76874107e-005, 2.37825061e-005, 1, 1, -3.73285038e-005, -2.7686523e-005, 3.73278453e-005, 1, -2.37835393e-005); table.insert(x, Block07220); local mesh = Instance.new('BlockMesh', Block07220) mesh.Scale = Vector3.new(0.0714285672, 0.142857149, 0.214285716); local Block07220 = Instance.new('Part'); Block07220.BrickColor = BrickColor.new('Black'); Block07220.FormFactor = Enum.FormFactor.Custom; Block07220.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003); Block07220.CanCollide = false; Block07220:BreakJoints(); Block07220.CFrame = CFrame.new(-0.722000062, 2.12100005, -1.1500001, -2.83043164e-006, -6.73461409e-006, 1, 1, -6.83885992e-006, 2.83038548e-006, 6.83884082e-006, 1, 6.73463364e-006); table.insert(x, Block07220); local mesh = Instance.new('BlockMesh', Block07220) mesh.Scale = Vector3.new(0.142857134, 0.214285716, 0.214285716); local Wedge07220 = Instance.new('Part'); Wedge07220.BrickColor = BrickColor.new('Black'); Wedge07220.FormFactor = Enum.FormFactor.Custom; Wedge07220.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003); Wedge07220.CanCollide = false; Wedge07220:BreakJoints(); Wedge07220.CFrame = CFrame.new(-0.722000062, 2.1500001, -1.1500001, 0.99999994, -2.76865776e-005, 6.73023669e-006, 2.7686212e-005, 0.99999994, 5.41535774e-005, -6.73173781e-006, -5.41533846e-005, 1); table.insert(x, Wedge07220); local mesh = Instance.new('SpecialMesh', Wedge07220) mesh.Scale = Vector3.new(0.214285716, 0.142857134, 0.214285716); mesh.MeshType = Enum.MeshType.Wedge; local Block06790 = Instance.new('Part'); Block06790.BrickColor = BrickColor.new('Really black'); Block06790.FormFactor = Enum.FormFactor.Custom; Block06790.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003); Block06790.CanCollide = false; Block06790:BreakJoints(); Block06790.CFrame = CFrame.new(-0.67900002, 2.20100021, -1.05000007, 2.76874107e-005, 2.37825061e-005, 1, 1, -3.73285038e-005, -2.7686523e-005, 3.73278453e-005, 1, -2.37835393e-005); table.insert(x, Block06790); local mesh = Instance.new('BlockMesh', Block06790) mesh.Scale = Vector3.new(0.0714285672, 0.642857194, 0.0714285672); local Block07080 = Instance.new('Part'); Block07080.BrickColor = BrickColor.new('Really black'); Block07080.FormFactor = Enum.FormFactor.Custom; Block07080.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003); Block07080.CanCollide = false; Block07080:BreakJoints(); Block07080.CFrame = CFrame.new(-0.708000004, 2.20100021, -1.05000007, 2.76874107e-005, 2.37825061e-005, 1, 1, -3.73285038e-005, -2.7686523e-005, 3.73278453e-005, 1, -2.37835393e-005); table.insert(x, Block07080); local mesh = Instance.new('BlockMesh', Block07080) mesh.Scale = Vector3.new(0.0714285672, 0.642857194, 0.0714285672); local Block06500 = Instance.new('Part'); Block06500.BrickColor = BrickColor.new('Really black'); Block06500.FormFactor = Enum.FormFactor.Custom; Block06500.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003); Block06500.CanCollide = false; Block06500:BreakJoints(); Block06500.CFrame = CFrame.new(-0.650000036, 2.20100021, -1.05000007, 2.76874107e-005, 2.37825061e-005, 1, 1, -3.73285038e-005, -2.7686523e-005, 3.73278453e-005, 1, -2.37835393e-005); table.insert(x, Block06500); local mesh = Instance.new('BlockMesh', Block06500) mesh.Scale = Vector3.new(0.0714285672, 0.642857194, 0.0714285672); local Block06220 = Instance.new('Part'); Block06220.BrickColor = BrickColor.new('Really black'); Block06220.FormFactor = Enum.FormFactor.Custom; Block06220.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003); Block06220.CanCollide = false; Block06220:BreakJoints(); Block06220.CFrame = CFrame.new(-0.622000039, 2.20100021, -1.05000007, 2.76874107e-005, 2.37825061e-005, 1, 1, -3.73285038e-005, -2.7686523e-005, 3.73278453e-005, 1, -2.37835393e-005); table.insert(x, Block06220); local mesh = Instance.new('BlockMesh', Block06220) mesh.Scale = Vector3.new(0.0714285672, 0.642857194, 0.0714285672); local Block05649 = Instance.new('Part'); Block05649.BrickColor = BrickColor.new('Really black'); Block05649.FormFactor = Enum.FormFactor.Custom; Block05649.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003); Block05649.CanCollide = false; Block05649:BreakJoints(); Block05649.CFrame = CFrame.new(-0.564999998, 2.20100021, -1.05000007, 2.76874107e-005, 2.37825061e-005, 1, 1, -3.73285038e-005, -2.7686523e-005, 3.73278453e-005, 1, -2.37835393e-005); table.insert(x, Block05649); local mesh = Instance.new('BlockMesh', Block05649) mesh.Scale = Vector3.new(0.0714285672, 0.642857194, 0.0714285672); local Part07530 = Instance.new('Part'); Part07530.BrickColor = BrickColor.new('Really black'); Part07530.FormFactor = Enum.FormFactor.Plate; Part07530.Size = Vector3.new(1, 0.400000006, 1); Part07530.CanCollide = false; Part07530:BreakJoints(); Part07530.CFrame = CFrame.new(-0.753000021, 2.10000014, -0.639000058, 3.96668656e-005, 0.939671576, 0.34207806, 0.99999994, -4.21727891e-005, -1.11973527e-007, 1.43211655e-005, 0.34207809, -0.939671516); table.insert(x, Part07530); local mesh = Instance.new('BlockMesh', Part07530) mesh.Scale = Vector3.new(0.220714286, 0.642857194, 0.5); local Block04290 = Instance.new('Part'); Block04290.BrickColor = BrickColor.new('Black'); Block04290.FormFactor = Enum.FormFactor.Plate; Block04290.Size = Vector3.new(1, 0.400000006, 1); Block04290.CanCollide = false; Block04290:BreakJoints(); Block04290.CFrame = CFrame.new(-0.42900002, 2.10000014, -0.793000042, -0.70705235, 0.707147479, -3.02331391e-005, 3.02823937e-005, -1.65218844e-005, -0.999990225, -0.707147419, -0.707061827, -1.65708625e-005); table.insert(x, Block04290); local mesh = Instance.new('BlockMesh', Block04290) mesh.Scale = Vector3.new(0.142857149, 0.0714285672, 0.0714285746); for i, v in next, x do stick(Handle, v); v.Parent = Gun; end; return Gun, x; end; function cloneToCamera(thing) local wrap = function(part) local a = true; local p = Instance.new(part:IsA('BasePart') and part.ClassName or 'Part', Workspace.CurrentCamera); p.Anchored = true; p.CanCollide = false; p.FormFactor = 'Custom'; p.Size = Vector3.new(0, 0, 0); p.BrickColor = part.BrickColor; p:BreakJoints(); Instance.new('BlockMesh', p).Scale = part.Size * 4.5; return coroutine.wrap(function() while a == true and wait() do if isZoomed() then p.CFrame = part.CFrame; p.Transparency = 0; else p.Transparency = 1; end; end; end), function() a = false; end; end; if thing:IsA('BasePart') then wrap(thing)(); elseif thing:IsA('Model') then for i, v in next, thing:GetChildren() do if v:IsA('BasePart') then local a, b = wrap(thing)(); return b; end; end; end; end; function new(i, p) local inst = Instance.new(i, p); return function(t) for i, v in next, t do if type(v) == 'function' then if type(i) == 'string' then inst[i]:connect(v); else v(inst); end; else if i == 'v' then getfenv()[i] = inst; else inst[i] = v; end; end; end; return inst; end; end; function fakeArms(b) local torso = char:FindFirstChild('Torso'); if not torso then return 0; end; local ls, rs = torso:FindFirstChild('Right Shoulder'), torso:FindFirstChild('Left Shoulder'); if not not b == true then ls.Part0, rs.Part0 = nil, nil; fl, x1, fr, x2 = cloneToCamera(arml), cloneToCamera(armr); return new('Weld', torso) { Name = 'ls'; Part0 = torso; Part1 = arml; C1 = CFrame.new(-1.5, 0, 0) * CFrame.Angles(0, math.rad(180), 0); }, new('Weld', torso) { Name = 'rs'; Part0 = torso; Part1 = armr; C1 = CFrame.new(1.5, 0, 0) * CFrame.Angles(0, math.rad(180), 0); }, x1, x2; else torso.ls:Destroy(); torso.rs:Destroy(); pcall(Game.Destroy, fl); pcall(Game.Destroy, fr); ls.Part0, rs.Part0 = torso, torso; torso.Neck.C1 = oldNeckc1; end; end; function getJoints() local x = nil; pcall(function() local torso = char:FindFirstChild('Torso'); local j = { neck = torso.Neck; lh = torso['Left Hip'], rh = torso['Right Hip'], ls = torso:FindFirstChild('ls') or torso['Left Shoulder'], rs = torso:FindFirstChild('rs') or torso['Right Shoulder'], }; x = setmetatable({ }, { __index = function(t, i) return j[i] or (function() local motor = Instance.new('Motor6D'); motor.Name = 'null'; return motor; end)(); end; __call = function() return j; end; }); end); if type(x) == 'table' then return x; end; end; local activate, deactivate = function() LPlayer.CameraMode = 1; Gun = makeGun(); end, function() activated = false; fakeArms(false); Gun:Destroy(); LPlayer.CameraMode = 0; end; function computeDirection(vec) local lenSquared = vec.magnitude * vec.magnitude; local invSqrt = 1 / math.sqrt(lenSquared); return Vector3.new(vec.x * invSqrt, vec.y * invSqrt, vec.z * invSqrt); end function shootPellet(humanoid) if not Gun then return; end; local handle = Gun.Handle; local direction = computeDirection(mouse.Hit.p - handle.Position); local pos = handle.Position + (direction * 10.0); local p = Instance.new('Part'); p.FormFactor = 'Custom'; p.Size = Vector3.new(0, 0, 0); p.Shape = 'Ball'; p.CFrame = CFrame.new(pos, pos + direction) * CFrame.Angles(math.pi / 2, 0, 0) - Vector3.new(0, 4, 0); p:BreakJoints(); local m = Instance.new('SpecialMesh', p); m.Scale = Vector3.new(.75, .75, .75); m.MeshType = 'Sphere'; Instance.new('BodyForce', p).force = Vector3.new(0, p:GetMass() * 196.1, 0); p.Parent = Workspace; p.Velocity = direction * 200; p.Touched:connect(function(part) pcall(Game.Destroy, p); local hum = part.Parent:FindFirstChild('Humanoid'); if hum ~= nil and hum:IsA('Humanoid') then hum:TakeDamage(math.random(15, 25)); else end; end); end; local debounce = false; -- eventzys mouse.Button1Down:connect(oc(function() if activated == true then if debounce == true then return 0; end debounce = true; oc(function() shootPellet(char:FindFirstChild('Humanoid')); end)(); wait(.5); debounce = false; end; end)); mouse.KeyDown:connect(oc(function(key) if (key == 'q') then if activated == false then activate(); else deactivate(); end; end; end)); makeGun = function() activated = true; local a, b, des1, des2 = fakeArms(true); a1, a2 = a, b; local gun, x = createBrickGun(); gun.Parent = char; local handle = gun.Handle; local hweld = Instance.new('Weld', handle); hweld.Part0 = arml; hweld.Part1 = handle hweld.C1 = CFrame.new(0, -1, 0) * CFrame.Angles(math.rad(270), 0, 0) * CFrame.new(0, .75, 1.75); hweld.C1 = hweld.C1 * CFrame.Angles(0, 0, math.rad(-15)); coroutine.wrap(function() while activated == true do stepped:wait(); end; des1(); des2(); end)(); return gun; end; Spawn(function() local loc, sz = .4, .225; local g = Instance.new('ImageLabel', Instance.new('ScreenGui', LPlayer:WaitForChild('PlayerGui'))); g.Size = UDim2.new(sz, 0, sz, 0); g.Position = UDim2.new(loc - 0.006, 0, loc - 0.011, 0); g.Visible = false; g.BackgroundColor3 = Color3.new(0, 0, 0); g.Image = assets.cursor; g.BackgroundTransparency = 1; while stepped:wait() do if (not not isZoomed()) == true and activated then g.Visible = true; else g.Visible = false; end; end; end); Spawn(oc(function() while (char ~= nil) do stepped:wait(); if (activated == true) then local torso, neck = char:FindFirstChild('Torso'), getJoints().neck; if (torso ~= nil) then local r00, r01, r02, r10, r11, r12, r20, r21, r22 = select(4, mouse.Hit:components()); local bCf = CFrame.new(torso.CFrame.X, torso.CFrame.Y, torso.CFrame.Z); local ROTATOES = math.abs(math.rad(90) + (math.deg((torso.Position - mouse.Hit.p).unit.y) / 70)); -- SORCUSSSSSSS -- if math.random(10)==10 then print(mouse.Hit:components()) end; torso.CFrame = bCf * CFrame.new(0, 0, 0, r00, 0, r02, r10, r11, r12, r20, 0, r22); neck.C1 = CFrame.new(neck.C1.X, neck.C1.Y, neck.C1.Z) * CFrame.Angles(ROTATOES, math.rad(180), 0); if a1 ~= nil and a2 ~= nil then for i, v in next, {a1 = a1, a2 = a2} do v.C1 = CFrame.new(v == a1 and -.75 or .75, .375, .5) * CFrame.Angles(ROTATOES, math.rad(v == a1 and 26 or -26), 0) * CFrame.Angles(0, math.rad(180), math.rad(180)); end; end; -- clean up tiem torso, neck, bCf, r00, _, r02, r10, r11, r12, r20, _, r22 = nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil; pcall(collectgarbage, 'step', 1); end; end; end; end));