-- mediafire local last_cam_pos, c_torso, c_head, rServ; local me = Game:GetService('Players').LocalPlayer; local mouse = me:GetMouse(); local move, done, enabled, fade = 0, false, false, false; local oc = oc or function(f) return f; end; --[[ Options ]]-- local no_char = true; local no_play = false; --[[---------]]-- if script ~= nil then script.Parent = l_l; end; local function raycast(spos, vec, currentdist) local hit2, pos2 = game.Workspace:FindPartOnRay(Ray.new(spos + (vec * .01), vec * currentdist), c_head); if hit2 ~= nil and pos2 then if hit2.Transparency >= .5 or hit2.Name == 'cBase' then local currentdist = currentdist - (pos2 - spos).magnitude; return raycast(pos2, vec, currentdist); end; end; return hit2, pos2; end; function shootp3n(mouse) -- This is from an old gun I made, thought you'd like it in here ;) local function NewPart(Parent, Name, Size, Color, CanCollide) local p = Instance.new('Part'); p.FormFactor = 'Custom'; p.Name = Name; p.Size = Size; p.CanCollide = CanCollide or true p.BrickColor = BrickColor.new(Color); p.Parent = Parent; p.TopSurface = 'Smooth'; p.BottomSurface = 'Smooth'; p:BreakJoints(); return p; end; local function Weld(Part0, Part1, C1, Parent) local w = Instance.new('Weld'); w.C1 = C1 or CFrame.new(0, 0, 0); w.Part0 = Part0; w.Name = 'weldz'; w.Part1 = Part1; w.Parent = Parent or Part0; return w; end; local b = NewPart(Workspace, 'sz', Vector3.new(1.25, 3, 1.25), 226); b.CanCollide = false; local b1 = NewPart(Workspace, 'bz', Vector3.new(1.75, 1.75, 1.75), 226); b1.CanCollide = false; Weld(b, b1, CFrame.new(.7, 1.8, 0)); Instance.new('SpecialMesh', b1).MeshType = 'Sphere'; local b2 = NewPart(Workspace, 'bz', Vector3.new(1.75, 1.75, 1.75), 226); b2.CanCollide = false; Weld(b, b2, CFrame.new(-.7, 1.8, 0)); Instance.new('SpecialMesh', b2).MeshType = 'Sphere'; local t = NewPart(Workspace, 'bz', Vector3.new(1.35, 1.35, 1.35), 'Hot pink'); t.CanCollide = false; Weld(b, t, CFrame.new(0, -1.8, 0)); Instance.new('SpecialMesh', t); Instance.new('CylinderMesh', b); b.CFrame = c_head.CFrame * CFrame.Angles(math.rad(180), 0, 0); local LVector = mouse.Hit.lookVector; local bg = Instance.new('BodyGyro', b); local bv = Instance.new('BodyVelocity', b); bg.maxTorque = Vector3.new(math.huge, math.huge, math.huge); bg.cframe = CFrame.new(c_head.Position, mouse.hit.p) * CFrame.Angles(math.rad(-60), 0, 0); bv.velocity = CFrame.new(c_head.Position, mouse.hit.p).lookVector * 150; end; function zap(targetpos) local con = math.random(750, 999); local segmentlength = 5; local varience = 1.5; local timetofade = .5; if targetpos ~= nil and c_head and c_head:IsA('Part') then local m = Instance.new('Model'); m.Name = 'Lightning'; local lastpos = c_head.Position; local totalsegments = math.ceil(con / segmentlength); local direction = (targetpos - c_head.Position).unit; local struck = false; for i = 1, totalsegments do if not struck then local entropy = Vector3.new(varience * ((math.random() * 2) - 1), varience * ((math.random() * 2) - 1), varience * ((math.random() * 2) - 1)); local newpos = c_head.Position + (direction * (con * (i / totalsegments))) + entropy; local hit, endpos = raycast(lastpos, (newpos - lastpos).unit, (lastpos - newpos).magnitude); local l = Instance.new('Part'); l.CanCollide = false; l.Anchored = true; l.BrickColor = BrickColor.new('New Yeller'); l.FormFactor = 'Custom'; l.Size = Vector3.new(.2, .2, .2); l.CFrame = CFrame.new(lastpos, endpos) * CFrame.Angles(math.pi / 2, 0, 0) * CFrame.new(0, - (lastpos - endpos).magnitude / 2, 0); local mesh = Instance.new('CylinderMesh', l); mesh.Scale = Vector3.new(.35, (lastpos - endpos).magnitude, .35) * 5; delay(0, function() for i = 1, timetofade / (.1) do wait(.1); l.Transparency = i / (timetofade / (.1)); end; end); l.Parent = m; lastpos = endpos; end; end; m.Parent = Workspace; game:GetService('Debris'):AddItem(m, 1.5); end; end; local function _main_update() if done == true then pcall(function() c_torso:Destroy(); c_head:Destroy(); end); rServ:disconnect(); return 0; end; if last_cam_pos ~= Workspace.CurrentCamera.CoordinateFrame then if not c_torso or c_torso.Parent ~= Workspace then pcall(Game.Destroy, c_torso); c_torso = Instance.new('Part'); c_torso.FormFactor = 'Custom'; c_torso.TopSurface = 'Smooth'; c_torso.Anchored = true; c_torso.CanCollide = false; c_torso.BottomSurface = 'Smooth'; c_torso.Color = Color3.new('Really black'); c_torso.Size = Vector3.new(3, 27, .95); c_torso.Parent = Workspace; end; if not c_head or c_head.Parent ~= Workspace then pcall(Game.Destroy, c_head); c_head = Instance.new('Part'); c_head.Name = 'cBase'; c_head.FormFactor = 'Custom'; c_head.TopSurface = 'Smooth'; c_head.Anchored = true; c_head.CanCollide = false; c_head.BottomSurface = 'Smooth'; c_head.Color = Color3.new('Really black'); c_head.Size = Vector3.new(15, 3, 1); c_head.Parent = Workspace; end; c_torso.CFrame = Workspace.CurrentCamera.CoordinateFrame * CFrame.new(0, 15, 0); c_head.CFrame = c_torso.CFrame * CFrame.new(0, -7.25, 0); last_cam_pos = Workspace.CurrentCamera.CoordinateFrame; if fade == true then local ct = c_torso:Clone(); ct.Parent = Workspace ct.CFrame = c_torso.CFrame; local ch = c_head:Clone(); ch.Parent = ct; ch.CFrame = c_head.CFrame; coroutine.wrap(function() for i = 1, 10 do ct.Transparency = i / 10; ch.Transparency = i / 10; wait(); end; ct:Destroy(); ch:Destroy(); end)(); end; end; end; local function exec(move, m) local tar = m.Target; if move == 0 then if tar ~= nil and tar:IsA('Part') and tar.Parent:IsA('Model') then for i, v in pairs(tar.Parent:GetChildren()) do if v:IsA('Humanoid') then zap(m.Hit.p); v.Health = 0; end; end; end; elseif move == 1 then local grass = Instance.new('Part'); grass.Size = Vector3.new(5, 5, 5); grass.Anchored = true; grass.Locked = true; grass.Name = 'GRASSYSZ'; -- Don't ask, just nostalgic grass.Position = m.Hit.p; grass.Material = 'Grass'; grass.BrickColor = BrickColor.new((function() local c = {'Camo', 'Earth green', 'Bright green'}; return c[math.random(1,3)]; end)()); grass.Parent = Workspace; elseif move == 2 then if tar ~= nil and tar:IsA('Part') and tar.Name ~= 'Base' then tar:Destroy(); end; elseif move == 3 then shootp3n(m); elseif move == 4 then pcall(function() local x = tar.Parent; local play = Game:GetService('Players'):playerFromCharacter(x); if play ~= nil then play:Destroy(); end; end); end; end; me.Chatted:connect(function(c) if c == 'get/reset' or c == 'exit' then done = true; else for i, v in pairs(Game:GetService('Players'):GetPlayers()) do if v.Character ~= nil then coroutine.resume(coroutine.create(function() Game:GetService('Chat'):Chat(v.Character, 'CROSS: ' .. (c ~= nil and c) or 'NULL'); wait(); end)) end; end; end; end); mouse.Button1Down:connect(oc(function() enabled = true; exec(move, mouse); end)); mouse.Button1Up:connect(oc(function() enabled = false; end)); mouse.KeyDown:connect(oc(function(k) local key = string.lower(k); if key == ';' then if no_char == true and me.Character ~= nil then me.Character = nil; end; if no_play == true and me.Parent ~= nil then me.Parent = nil; end; rServ = Game:GetService('RunService').Stepped:connect(_main_update); elseif key == 'q' then print'q'; move = 0; elseif key == 'e' then move = 1; elseif key == 'x' then move = 2; elseif key == 'l' then fade = not fade; elseif key == 'p' then move = 3; elseif key == 'r' then move = 4; end; end));