-- {} -- FE Soldier AI -- Join my discord server for early scripts :) -- https://discord.gg/SWt5Uzpd --[[ {} https://web.roblox.com/catalog/6133544919/Retro-SWAT-Helmet https://web.roblox.com/catalog/7806887000/CR-L-4-Back https://www.roblox.com/catalog/48474313/Red-Roblox-Cap https://www.roblox.com/catalog/4391384843/International-Fedora-Russia https://www.roblox.com/catalog/48474294/ROBLOX-Girl-Hair https://www.roblox.com/catalog/62724852/Chestnut-Bun https://www.roblox.com/catalog/451220849/Lavender-Updo https://www.roblox.com/catalog/63690008/Pal-Hair https://www.roblox.com/catalog/62234425/Brown-Hair ]] FakeLimbs = {["Head"] = nil,["Torso1"] = nil,["Torso2"] = nil,["Right Arm"] = nil,["Left Arm"] = nil,["Right Leg"] = nil,["Left Leg"] = nil} Accessorys = {} local ModelsRequire = game:GetObjects("rbxassetid://8005457125") local MFolder = ModelsRequire[1] local HumanRoot = game.Players.LocalPlayer.Character.HumanoidRootPart function StickAcc(Part0,Part1,Angle,Position) Part0:FindFirstChildWhichIsA("Weld"):Destroy() local AlignPos = Instance.new('AlignPosition', Part1) AlignPos.ApplyAtCenterOfMass = true; AlignPos.MaxForce = 67752; AlignPos.MaxVelocity = math.huge/9e110; AlignPos.ReactionForceEnabled = false; AlignPos.Responsiveness = 200; AlignPos.RigidityEnabled = false; local AlignOri = Instance.new('AlignOrientation', Part1) AlignOri.MaxAngularVelocity = math.huge/9e110; AlignOri.MaxTorque = 67752; AlignOri.PrimaryAxisOnly = false; AlignOri.ReactionTorqueEnabled = false; AlignOri.Responsiveness = 200; AlignOri.RigidityEnabled = false; local AttachmentA=Instance.new('Attachment',Part1) local AttachmentB=Instance.new('Attachment',Part0) local AttachmentC=Instance.new('Attachment',Part1) local AttachmentD=Instance.new('Attachment',Part0) AlignPos.Attachment1 = AttachmentA; AlignPos.Attachment0 = AttachmentB; AlignOri.Attachment1 = AttachmentC; AlignOri.Attachment0 = AttachmentD; AttachmentC.Orientation = Angle Part0.Parent = FakeCharacter if Position then AttachmentA.Position = Position end game:GetService("RunService").Heartbeat:connect(function() Part0.Velocity = Vector3.new(0,35,0) end) end function StickParts(Part0,Part1,Angle,Position) Part0:FindFirstChildWhichIsA("Weld"):Destroy() Part0:FindFirstChildWhichIsA("SpecialMesh"):Destroy() local AlignPos = Instance.new('AlignPosition', Part1) AlignPos.ApplyAtCenterOfMass = true; AlignPos.MaxForce = 67752; AlignPos.MaxVelocity = math.huge/9e110; AlignPos.ReactionForceEnabled = false; AlignPos.Responsiveness = 200; AlignPos.RigidityEnabled = false; local AlignOri = Instance.new('AlignOrientation', Part1) AlignOri.MaxAngularVelocity = math.huge/9e110; AlignOri.MaxTorque = 67752; AlignOri.PrimaryAxisOnly = false; AlignOri.ReactionTorqueEnabled = false; AlignOri.Responsiveness = 200; AlignOri.RigidityEnabled = false; local AttachmentA=Instance.new('Attachment',Part1) local AttachmentB=Instance.new('Attachment',Part0) local AttachmentC=Instance.new('Attachment',Part1) local AttachmentD=Instance.new('Attachment',Part0) AlignPos.Attachment1 = AttachmentA; AlignPos.Attachment0 = AttachmentB; AlignOri.Attachment1 = AttachmentC; AlignOri.Attachment0 = AttachmentD; AttachmentC.Orientation = Angle AttachmentC.Name = "Orientation" Part0.Parent = FakeCharacter if Position then AttachmentA.Position = Position end s = game:GetService("RunService").Heartbeat:connect(function() Part0.Velocity = Vector3.new(0,50,0) end) spawn(function() while true do wait() if HumanDied then s:Disconnect() break end end end) end for i, part in pairs(game.Players.LocalPlayer.Character:GetDescendants()) do if part:IsA("Accessory") then if part.Handle.Size == Vector3.new(1, 1, 2) then if FakeLimbs["Right Arm"] == nil then FakeLimbs["Right Arm"] = part.Handle elseif FakeLimbs["Left Arm"] == nil then FakeLimbs["Left Arm"] = part.Handle elseif FakeLimbs["Right Leg"] == nil then FakeLimbs["Right Leg"] = part.Handle elseif FakeLimbs["Left Leg"] == nil then FakeLimbs["Left Leg"] = part.Handle elseif FakeLimbs["Torso1"] == nil then FakeLimbs["Torso1"] = part.Handle elseif FakeLimbs["Torso2"] == nil then FakeLimbs["Torso2"] = part.Handle end elseif part.Handle.Size == Vector3.new(1,1,1) then FakeLimbs["Head"] = part.Handle end end end game.Players.LocalPlayer.Character.Archivable = true -- Kill Player FakeCharacter = MFolder FakeCharacter.Parent = workspace local m4 = FakeCharacter.M4 do Bypass = "death" if not Bypass then Bypass = "limbs" end HumanDied = false CountSCIFIMOVIELOL = 1 function SCIFIMOVIELOL(Part0,Part1,Position,Angle) local AlignPos = Instance.new('AlignPosition', Part1); AlignPos.Name = "AliP_"..CountSCIFIMOVIELOL AlignPos.ApplyAtCenterOfMass = true; AlignPos.MaxForce = 67752; AlignPos.MaxVelocity = math.huge/9e110; AlignPos.ReactionForceEnabled = false; AlignPos.Responsiveness = 200; AlignPos.RigidityEnabled = false; local AlignOri = Instance.new('AlignOrientation', Part1); AlignOri.Name = "AliO_"..CountSCIFIMOVIELOL AlignOri.MaxAngularVelocity = math.huge/9e110; AlignOri.MaxTorque = 67752; AlignOri.PrimaryAxisOnly = false; AlignOri.ReactionTorqueEnabled = false; AlignOri.Responsiveness = 200; AlignOri.RigidityEnabled = false; local AttachmentA=Instance.new('Attachment',Part1); AttachmentA.Name = "AthP_"..CountSCIFIMOVIELOL local AttachmentB=Instance.new('Attachment',Part0); AttachmentB.Name = "AthP_"..CountSCIFIMOVIELOL local AttachmentC=Instance.new('Attachment',Part1); AttachmentC.Name = "AthO_"..CountSCIFIMOVIELOL local AttachmentD=Instance.new('Attachment',Part0); AttachmentD.Name = "AthO_"..CountSCIFIMOVIELOL AttachmentC.Orientation = Angle AttachmentA.Position = Position AttachmentC.Name = "Orientation" AlignPos.Attachment1 = AttachmentA; AlignPos.Attachment0 = AttachmentB; AlignOri.Attachment1 = AttachmentC; AlignOri.Attachment0 = AttachmentD; CountSCIFIMOVIELOL = CountSCIFIMOVIELOL + 1 game:GetService("RunService").Heartbeat:connect(function() Part0.Velocity = Vector3.new(0,35,0) end) end coroutine.wrap(function() local player = game.Players.LocalPlayer local char = player.Character or player.CharacterAdded:wait() if sethiddenproperty then while true do game:GetService("RunService").RenderStepped:Wait() settings().Physics.AllowSleep = false local TBL = game:GetService("Players"):GetChildren() for _ = 1,#TBL do local Players = TBL[_] if Players ~= game:GetService("Players").LocalPlayer then Players.MaximumSimulationRadius = 0 sethiddenproperty(Players,"SimulationRadius",0) end end game:GetService("Players").LocalPlayer.MaximumSimulationRadius = math.pow(math.huge,math.huge) sethiddenproperty(game:GetService("Players").LocalPlayer,"SimulationRadius",math.pow(math.huge,math.huge)*math.huge) if HumanDied then break end end else while true do game:GetService("RunService").RenderStepped:Wait() settings().Physics.AllowSleep = false local TBL = game:GetService("Players"):GetChildren() for _ = 1,#TBL do local Players = TBL[_] if Players ~= game:GetService("Players").LocalPlayer then Players.MaximumSimulationRadius = 0 end end game:GetService("Players").LocalPlayer.MaximumSimulationRadius = math.pow(math.huge,math.huge) if HumanDied then break end end end end)() if game:GetService("Players").LocalPlayer.Character.Humanoid.RigType == Enum.HumanoidRigType.R6 then if Bypass == "limbs" then -------------------------------------------------------------------------------------------------------------------- game:GetService("Players").LocalPlayer["Character"].Archivable = true local CloneChar = game:GetService("Players").LocalPlayer["Character"]:Clone() CloneChar.Parent = workspace CloneChar.HumanoidRootPart.CFrame = game:GetService("Players").LocalPlayer["Character"].HumanoidRootPart.CFrame * CFrame.new(0,2,0) wait() CloneChar.Humanoid.BreakJointsOnDeath = false workspace.Camera.CameraSubject = CloneChar.Humanoid CloneChar.Name = "non" CloneChar.Humanoid.DisplayDistanceType = "None" if CloneChar.Head:FindFirstChild("face") then CloneChar.Head:FindFirstChild("face"):Destroy() end if workspace[game:GetService("Players").LocalPlayer.Name].Head:FindFirstChild("face") then workspace[game:GetService("Players").LocalPlayer.Name].Head:FindFirstChild("face").Parent = CloneChar.Head end local DeadChar = workspace[game:GetService("Players").LocalPlayer.Name] DeadChar.HumanoidRootPart:Destroy() local LVecPart = Instance.new("Part", workspace) LVecPart.CanCollide = false LVecPart.Transparency = 1 local CONVEC local function VECTORUNIT() if HumanDied then CONVEC:Disconnect(); return end local lookVec = workspace.Camera.CFrame.lookVector local Root = CloneChar["HumanoidRootPart"] LVecPart.Position = Root.Position LVecPart.CFrame = CFrame.new(LVecPart.Position, Vector3.new(lookVec.X * 9999, lookVec.Y, lookVec.Z * 9999)) end CONVEC = game:GetService("RunService").Heartbeat:Connect(VECTORUNIT) local CONDOWN local WDown, ADown, SDown, DDown, SpaceDown = false, false, false, false, false local function KEYDOWN(_,Processed) if HumanDied then CONDOWN:Disconnect(); return end if Processed ~= true then local Key = _.KeyCode if Key == Enum.KeyCode.W then WDown = true end if Key == Enum.KeyCode.A then ADown = true end if Key == Enum.KeyCode.S then SDown = true end if Key == Enum.KeyCode.D then DDown = true end if Key == Enum.KeyCode.Space then SpaceDown = true end end end CONDOWN = game:GetService("UserInputService").InputBegan:Connect(KEYDOWN) local CONUP local function KEYUP(_) if HumanDied then CONUP:Disconnect(); return end local Key = _.KeyCode if Key == Enum.KeyCode.W then WDown = false end if Key == Enum.KeyCode.A then ADown = false end if Key == Enum.KeyCode.S then SDown = false end if Key == Enum.KeyCode.D then DDown = false end if Key == Enum.KeyCode.Space then SpaceDown = false end end CONUP = game:GetService("UserInputService").InputEnded:Connect(KEYUP) local function MoveClone(X,Y,Z) VEL = 1 LVecPart.CFrame = LVecPart.CFrame * CFrame.new(-X,Y,-Z) workspace["non"].Humanoid.WalkToPoint = LVecPart.Position wait() VEL = 0 end coroutine.wrap(function() while true do game:GetService("RunService").RenderStepped:Wait() if HumanDied then break end if WDown then MoveClone(0,0,1e4) end if ADown then MoveClone(1e4,0,0) end if SDown then MoveClone(0,0,-1e4) end if DDown then MoveClone(-1e4,0,0) end if SpaceDown then CloneChar["Humanoid"].Jump = true end if WDown ~= true and ADown ~= true and SDown ~= true and DDown ~= true then workspace["non"].Humanoid.WalkToPoint = workspace["non"].HumanoidRootPart.Position end end end)() local con function UnCollide() if HumanDied then con:Disconnect(); return end for _,Parts in next, CloneChar:GetDescendants() do if Parts:IsA("BasePart") then Parts.CanCollide = false end end for _,Parts in next, DeadChar:GetDescendants() do if Parts:IsA("BasePart") then Parts.CanCollide = false end end end con = game:GetService("RunService").Stepped:Connect(UnCollide) local resetBindable = Instance.new("BindableEvent") resetBindable.Event:connect(function() game:GetService("StarterGui"):SetCore("ResetButtonCallback", true) resetBindable:Destroy() pcall(function() CloneChar.Humanoid.Health = 0 DeadChar.Humanoid.Health = 0 end) end) game:GetService("StarterGui"):SetCore("ResetButtonCallback", resetBindable) coroutine.wrap(function() while true do game:GetService("RunService").RenderStepped:wait() if not CloneChar or not CloneChar:FindFirstChild("Head") or not CloneChar:FindFirstChild("Humanoid") or CloneChar:FindFirstChild("Humanoid").Health <= 0 or not DeadChar or not DeadChar:FindFirstChild("Head") or not DeadChar:FindFirstChild("Humanoid") or DeadChar:FindFirstChild("Humanoid").Health <= 0 then HumanDied = true FakeCharacter:Destroy() script:Destroy() pcall(function() game.Players.LocalPlayer.Character = CloneChar CloneChar:Destroy() game.Players.LocalPlayer.Character = DeadChar if resetBindable then game:GetService("StarterGui"):SetCore("ResetButtonCallback", true) resetBindable:Destroy() end DeadChar.Humanoid.Health = 0 end) break end end end)() SCIFIMOVIELOL(DeadChar["Head"],CloneChar["Head"],Vector3.new(0,0,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["Torso"],CloneChar["Torso"],Vector3.new(0,0,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["Left Arm"],CloneChar["Left Arm"],Vector3.new(0,0,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["Right Arm"],CloneChar["Right Arm"],Vector3.new(0,0,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["Left Leg"],CloneChar["Left Leg"],Vector3.new(0,0,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["Right Leg"],CloneChar["Right Leg"],Vector3.new(0,0,0),Vector3.new(0,0,0)) coroutine.wrap(function() while true do game:GetService("RunService").RenderStepped:wait() if HumanDied then break end DeadChar["Torso"].CFrame = CloneChar["Torso"].CFrame end end)() for _,BodyParts in next, CloneChar:GetDescendants() do if BodyParts:IsA("BasePart") or BodyParts:IsA("Part") then BodyParts.Transparency = 1 end end DeadChar.Torso["Left Shoulder"]:Destroy() DeadChar.Torso["Right Shoulder"]:Destroy() DeadChar.Torso["Left Hip"]:Destroy() DeadChar.Torso["Right Hip"]:Destroy() elseif Bypass == "death" then -------------------------------------------------------------------------------------------------------------------- game:GetService("Players").LocalPlayer["Character"].Archivable = true local CloneChar = game:GetService("Players").LocalPlayer["Character"]:Clone() game:GetService("Players").LocalPlayer["Character"].Humanoid.WalkSpeed = 0 game:GetService("Players").LocalPlayer["Character"].Humanoid.JumpPower = 0 game:GetService("Players").LocalPlayer["Character"].Humanoid.AutoRotate = false local FalseChar = Instance.new("Model", workspace); FalseChar.Name = "" Instance.new("Part",FalseChar).Name = "Head" Instance.new("Part",FalseChar).Name = "Torso" Instance.new("Humanoid",FalseChar).Name = "Humanoid" game:GetService("Players").LocalPlayer["Character"] = FalseChar game:GetService("Players").LocalPlayer["Character"].Humanoid.Name = "FalseHumanoid" local Clone = game:GetService("Players").LocalPlayer["Character"]:FindFirstChild("FalseHumanoid"):Clone() Clone.Parent = game:GetService("Players").LocalPlayer["Character"] Clone.Name = "Humanoid" game:GetService("Players").LocalPlayer["Character"]:FindFirstChild("FalseHumanoid"):Destroy() game:GetService("Players").LocalPlayer["Character"].Humanoid.Health = 0 game:GetService("Players").LocalPlayer["Character"] = workspace[game:GetService("Players").LocalPlayer.Name] StickParts(FakeLimbs["Head"],FakeCharacter.Head,Vector3.new(0,0,0)) StickParts(FakeLimbs["Right Arm"],FakeCharacter["Right Arm"],Vector3.new(90,0,0)) StickParts(FakeLimbs["Left Arm"],FakeCharacter["Left Arm"],Vector3.new(90,0,0)) StickParts(FakeLimbs["Right Leg"],FakeCharacter["Right Leg"],Vector3.new(90,0,0)) StickParts(FakeLimbs["Left Leg"],FakeCharacter["Left Leg"],Vector3.new(90,0,0)) StickParts(FakeLimbs["Torso1"],FakeCharacter.Torso,Vector3.new(90,0,0),Vector3.new(0.5,0,0)) StickParts(FakeLimbs["Torso2"],FakeCharacter.Torso,Vector3.new(90,0,0),Vector3.new(-0.5,0,0)) FakeCharacter.HumanoidRootPart.CFrame = game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame wait(5.65) game:GetService("Players").LocalPlayer["Character"].Humanoid.Health = 0 CloneChar.Parent = workspace CloneChar.HumanoidRootPart.CFrame = game:GetService("Players").LocalPlayer["Character"].HumanoidRootPart.CFrame * CFrame.new(0,2,0) wait() CloneChar.Humanoid.BreakJointsOnDeath = false workspace.Camera.CameraSubject = CloneChar.Humanoid CloneChar.Name = "non" CloneChar.Humanoid.DisplayDistanceType = "None" if CloneChar.Head:FindFirstChild("face") then CloneChar.Head:FindFirstChild("face"):Destroy() end if workspace[game:GetService("Players").LocalPlayer.Name].Head:FindFirstChild("face") then workspace[game:GetService("Players").LocalPlayer.Name].Head:FindFirstChild("face").Parent = CloneChar.Head end FalseChar:Destroy() local DeadChar = workspace[game:GetService("Players").LocalPlayer.Name] local LVecPart = Instance.new("Part", workspace) LVecPart.CanCollide = false LVecPart.Transparency = 1 local CONVEC local function VECTORUNIT() if HumanDied then CONVEC:Disconnect(); return end local lookVec = workspace.Camera.CFrame.lookVector local Root = CloneChar["HumanoidRootPart"] LVecPart.Position = Root.Position LVecPart.CFrame = CFrame.new(LVecPart.Position, Vector3.new(lookVec.X * 9999, lookVec.Y, lookVec.Z * 9999)) end CONVEC = game:GetService("RunService").Heartbeat:Connect(VECTORUNIT) local CONDOWN local WDown, ADown, SDown, DDown, SpaceDown = false, false, false, false, false local function KEYDOWN(_,Processed) if HumanDied then CONDOWN:Disconnect(); return end if Processed ~= true then local Key = _.KeyCode if Key == Enum.KeyCode.W then WDown = true end if Key == Enum.KeyCode.A then ADown = true end if Key == Enum.KeyCode.S then SDown = true end if Key == Enum.KeyCode.D then DDown = true end if Key == Enum.KeyCode.Space then SpaceDown = true end end end CONDOWN = game:GetService("UserInputService").InputBegan:Connect(KEYDOWN) local CONUP local function KEYUP(_) if HumanDied then CONUP:Disconnect(); return end local Key = _.KeyCode if Key == Enum.KeyCode.W then WDown = false end if Key == Enum.KeyCode.A then ADown = false end if Key == Enum.KeyCode.S then SDown = false end if Key == Enum.KeyCode.D then DDown = false end if Key == Enum.KeyCode.Space then SpaceDown = false end end CONUP = game:GetService("UserInputService").InputEnded:Connect(KEYUP) local function MoveClone(X,Y,Z) LVecPart.CFrame = LVecPart.CFrame * CFrame.new(-X,Y,-Z) workspace["non"].Humanoid.WalkToPoint = LVecPart.Position end coroutine.wrap(function() while true do game:GetService("RunService").RenderStepped:Wait() if HumanDied then break end if WDown then MoveClone(0,0,1e4) end if ADown then MoveClone(1e4,0,0) end if SDown then MoveClone(0,0,-1e4) end if DDown then MoveClone(-1e4,0,0) end if SpaceDown then CloneChar["Humanoid"].Jump = true end if WDown ~= true and ADown ~= true and SDown ~= true and DDown ~= true then CloneChar.Humanoid.WalkToPoint = CloneChar.HumanoidRootPart.Position end end end)() local con function UnCollide() if HumanDied then con:Disconnect(); return end for _,Parts in next, CloneChar:GetDescendants() do if Parts:IsA("BasePart") then HumanRoot.CanCollide = false Parts.CanCollide = false end end for _,Parts in next, DeadChar:GetDescendants() do if Parts:IsA("BasePart") then Parts.CanCollide = false HumanRoot.CanCollide = false end end end con = game:GetService("RunService").Stepped:Connect(UnCollide) local resetBindable = Instance.new("BindableEvent") resetBindable.Event:connect(function() game:GetService("StarterGui"):SetCore("ResetButtonCallback", true) resetBindable:Destroy() CloneChar.Humanoid.Health = 0 end) game:GetService("StarterGui"):SetCore("ResetButtonCallback", resetBindable) coroutine.wrap(function() while true do game:GetService("RunService").RenderStepped:wait() if not CloneChar or not CloneChar:FindFirstChild("Head") or not CloneChar:FindFirstChild("Humanoid") or CloneChar:FindFirstChild("Humanoid").Health <= 0 then HumanDied = true pcall(function() game.Players.LocalPlayer.Character = CloneChar CloneChar:Destroy() game.Players.LocalPlayer.Character = DeadChar if resetBindable then game:GetService("StarterGui"):SetCore("ResetButtonCallback", true) resetBindable:Destroy() end DeadChar.Humanoid.Health = 0 end) break end end end)() SCIFIMOVIELOL(DeadChar["Head"],CloneChar["Head"],Vector3.new(0,0,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["Torso"],CloneChar["Torso"],Vector3.new(0,0,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["Left Arm"],CloneChar["Left Arm"],Vector3.new(0,0,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["Right Arm"],CloneChar["Right Arm"],Vector3.new(0,0,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["Left Leg"],CloneChar["Left Leg"],Vector3.new(0,0,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["Right Leg"],CloneChar["Right Leg"],Vector3.new(0,0,0),Vector3.new(0,0,0)) for _,v in next, DeadChar:GetChildren() do if v:IsA("Accessory") then if v.Name == "Meshes/CRL4Accessory" then GunHat = v.Handle SCIFIMOVIELOL(GunHat,m4,Vector3.new(0,0,0),Vector3.new(0,-90,-90)) elseif v.Name == "AridBadlanderMkII" then SoldierHelm = v.Handle SCIFIMOVIELOL(SoldierHelm,FakeCharacter.Head,Vector3.new(0, 0.44308090209961, -0.0026588439941406),Vector3.new(0,0,0)) print("lol") end end end for _,BodyParts in next, CloneChar:GetDescendants() do if BodyParts:IsA("BasePart") or BodyParts:IsA("Part") then BodyParts.Transparency = 1 end end elseif Bypass == "hats" then game:GetService("Players").LocalPlayer["Character"].Archivable = true local DeadChar = game.Players.LocalPlayer.Character DeadChar.Name = "non" local HatPosition = Vector3.new(0,0,0) local HatName = "MediHood" local HatsLimb = { Rarm = DeadChar:FindFirstChild("Hat1"), Larm = DeadChar:FindFirstChild("Pink Hair"), Rleg = DeadChar:FindFirstChild("Robloxclassicred"), Lleg = DeadChar:FindFirstChild("Kate Hair"), Torso1 = DeadChar:FindFirstChild("Pal Hair"), Torso2 = DeadChar:FindFirstChild("LavanderHair") } HatName = DeadChar:FindFirstChild(HatName) coroutine.wrap(function() while true do game:GetService("RunService").RenderStepped:wait() if not DeadChar or not DeadChar:FindFirstChild("Head") or not DeadChar:FindFirstChild("Humanoid") or DeadChar:FindFirstChild("Humanoid").Health <= 0 then HumanDied = true pcall(function() if resetBindable then game:GetService("StarterGui"):SetCore("ResetButtonCallback", true) resetBindable:Destroy() end DeadChar.Humanoid.Health = 0 end) break end end end)() local con function UnCollide() if HumanDied then con:Disconnect(); return end for _,Parts in next, DeadChar:GetDescendants() do if Parts:IsA("BasePart") then Parts.CanCollide = false end end end local con2 function UnCollide2() if HumanDied then con:Disconnect(); return end for _,Parts in next, FakeCharacter:GetDescendants() do if Parts:IsA("BasePart") then Parts.CanCollide = false end end end con = game:GetService("RunService").Stepped:Connect(UnCollide) con2 = game:GetService("RunService").Stepped:Connect(UnCollide2) SCIFIMOVIELOL(HatName.Handle,DeadChar["Head"],Vector3.new(0,0,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(HatsLimb.Torso1.Handle,DeadChar["Torso"],Vector3.new(0.5,0,0),Vector3.new(90,0,0)) SCIFIMOVIELOL(HatsLimb.Torso2.Handle,DeadChar["Torso"],Vector3.new(-0.5,0,0),Vector3.new(90,0,0)) SCIFIMOVIELOL(HatsLimb.Larm.Handle,DeadChar["Left Arm"],Vector3.new(0,0,0),Vector3.new(90,0,0)) SCIFIMOVIELOL(HatsLimb.Rarm.Handle,DeadChar["Right Arm"],Vector3.new(0,0,0),Vector3.new(90,0,0)) SCIFIMOVIELOL(HatsLimb.Lleg.Handle,DeadChar["Left Leg"],Vector3.new(0,0,0),Vector3.new(90,0,0)) SCIFIMOVIELOL(HatsLimb.Rleg.Handle,DeadChar["Right Leg"],Vector3.new(0,0,0),Vector3.new(90,0,0)) for i,v in pairs(HatsLimb) do v.Handle:FindFirstChild("AccessoryWeld"):Destroy() if v.Handle:FindFirstChild("Mesh") then v.Handle:FindFirstChild("Mesh"):Destroy() end if v.Handle:FindFirstChild("SpecialMesh") then v.Handle:FindFirstChild("SpecialMesh"):Destroy() end end HatName.Handle:FindFirstChild("AccessoryWeld"):Destroy() end else if Bypass == "limbs" then -------------------------------------------------------------------------------------------------------------------- game:GetService("Players").LocalPlayer["Character"].Archivable = true local CloneChar = game:GetObjects("rbxassetid://5227463276")[1] CloneChar.Parent = workspace CloneChar.HumanoidRootPart.CFrame = game:GetService("Players").LocalPlayer["Character"].HumanoidRootPart.CFrame * CFrame.new(0,0.5,0.1) CloneChar.Humanoid.BreakJointsOnDeath = false workspace.Camera.CameraSubject = CloneChar.Humanoid CloneChar.Name = "non" CloneChar.Humanoid.DisplayDistanceType = "None" if CloneChar.Head:FindFirstChild("face") then CloneChar.Head:FindFirstChild("face"):Destroy() end if workspace[game:GetService("Players").LocalPlayer.Name].Head:FindFirstChild("face") then workspace[game:GetService("Players").LocalPlayer.Name].Head:FindFirstChild("face").Parent = CloneChar.Head end local DeadChar = workspace[game:GetService("Players").LocalPlayer.Name] DeadChar.HumanoidRootPart:Destroy() local LVecPart = Instance.new("Part", workspace) LVecPart.CanCollide = false LVecPart.Transparency = 1 local CONVEC local function VECTORUNIT() if HumanDied then CONVEC:Disconnect(); return end local lookVec = workspace.Camera.CFrame.lookVector local Root = CloneChar["HumanoidRootPart"] LVecPart.Position = Root.Position LVecPart.CFrame = CFrame.new(LVecPart.Position, Vector3.new(lookVec.X * 9999, lookVec.Y, lookVec.Z * 9999)) end CONVEC = game:GetService("RunService").Heartbeat:Connect(VECTORUNIT) local CONDOWN local WDown, ADown, SDown, DDown, SpaceDown = false, false, false, false, false local function KEYDOWN(_,Processed) if HumanDied then CONDOWN:Disconnect(); return end if Processed ~= true then local Key = _.KeyCode if Key == Enum.KeyCode.W then WDown = true end if Key == Enum.KeyCode.A then ADown = true end if Key == Enum.KeyCode.S then SDown = true end if Key == Enum.KeyCode.D then DDown = true end if Key == Enum.KeyCode.Space then SpaceDown = true end end end CONDOWN = game:GetService("UserInputService").InputBegan:Connect(KEYDOWN) local CONUP local function KEYUP(_) if HumanDied then CONUP:Disconnect(); return end local Key = _.KeyCode if Key == Enum.KeyCode.W then WDown = false end if Key == Enum.KeyCode.A then ADown = false end if Key == Enum.KeyCode.S then SDown = false end if Key == Enum.KeyCode.D then DDown = false end if Key == Enum.KeyCode.Space then SpaceDown = false end end CONUP = game:GetService("UserInputService").InputEnded:Connect(KEYUP) local function MoveClone(X,Y,Z) LVecPart.CFrame = LVecPart.CFrame * CFrame.new(-X,Y,-Z) workspace["non"].Humanoid.WalkToPoint = LVecPart.Position end coroutine.wrap(function() while true do game:GetService("RunService").RenderStepped:Wait() if HumanDied then break end if WDown then MoveClone(0,0,1e4) end if ADown then MoveClone(1e4,0,0) end if SDown then MoveClone(0,0,-1e4) end if DDown then MoveClone(-1e4,0,0) end if SpaceDown then CloneChar["Humanoid"].Jump = true end if WDown ~= true and ADown ~= true and SDown ~= true and DDown ~= true then workspace["non"].Humanoid.WalkToPoint = workspace["non"].HumanoidRootPart.Position end end end)() local con function UnCollide() if HumanDied then con:Disconnect(); return end for _,Parts in next, CloneChar:GetDescendants() do if Parts:IsA("BasePart") then Parts.CanCollide = false end end for _,Parts in next, DeadChar:GetDescendants() do if Parts:IsA("BasePart") then Parts.CanCollide = false end end end con = game:GetService("RunService").Stepped:Connect(UnCollide) local resetBindable = Instance.new("BindableEvent") resetBindable.Event:connect(function() game:GetService("StarterGui"):SetCore("ResetButtonCallback", true) resetBindable:Destroy() CloneChar.Humanoid.Health = 0 end) game:GetService("StarterGui"):SetCore("ResetButtonCallback", resetBindable) coroutine.wrap(function() while true do game:GetService("RunService").RenderStepped:wait() if not CloneChar or not CloneChar:FindFirstChild("Head") or not CloneChar:FindFirstChild("Humanoid") or CloneChar:FindFirstChild("Humanoid").Health <= 0 or not DeadChar or not DeadChar:FindFirstChild("Head") or not DeadChar:FindFirstChild("Humanoid") or DeadChar:FindFirstChild("Humanoid").Health <= 0 then HumanDied = true pcall(function() game.Players.LocalPlayer.Character = CloneChar CloneChar:Destroy() game.Players.LocalPlayer.Character = DeadChar if resetBindable then game:GetService("StarterGui"):SetCore("ResetButtonCallback", true) resetBindable:Destroy() end DeadChar.Humanoid.Health = 0 end) break end end end)() for _,v in next, DeadChar:GetChildren() do if v:IsA("Accessory") then v:Clone().Parent = CloneChar end end for _,v in next, DeadChar:GetDescendants() do if v:IsA("Motor6D") and v.Name ~= "Neck" then v:Destroy() end end SCIFIMOVIELOL(DeadChar["Head"],CloneChar["Head"],Vector3.new(0,0,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["UpperTorso"],CloneChar["Torso"],Vector3.new(0,0.2,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["LowerTorso"],CloneChar["Torso"],Vector3.new(0,-0.78,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["LeftUpperArm"],CloneChar["Left Arm"],Vector3.new(0,0.375,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["LeftLowerArm"],CloneChar["Left Arm"],Vector3.new(0,-0.215,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["LeftHand"],CloneChar["Left Arm"],Vector3.new(0,-0.825,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["RightUpperArm"],CloneChar["Right Arm"],Vector3.new(0,0.375,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["RightLowerArm"],CloneChar["Right Arm"],Vector3.new(0,-0.215,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["RightHand"],CloneChar["Right Arm"],Vector3.new(0,-0.825,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["LeftUpperLeg"],CloneChar["Left Leg"],Vector3.new(0,0.575,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["LeftLowerLeg"],CloneChar["Left Leg"],Vector3.new(0,-0.137,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["LeftFoot"],CloneChar["Left Leg"],Vector3.new(0,-0.787,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["RightUpperLeg"],CloneChar["Right Leg"],Vector3.new(0,0.575,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["RightLowerLeg"],CloneChar["Right Leg"],Vector3.new(0,-0.137,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["RightFoot"],CloneChar["Right Leg"],Vector3.new(0,-0.787,0),Vector3.new(0,0,0)) coroutine.wrap(function() while true do game:GetService("RunService").RenderStepped:wait() if HumanDied then break end DeadChar["UpperTorso"].CFrame = CloneChar["Torso"].CFrame * CFrame.new(0,0.2,0) end end)() for _,v in next, DeadChar:GetChildren() do if v:IsA("Accessory") then SCIFIMOVIELOL(v.Handle,CloneChar[v.Name].Handle,Vector3.new(0,0,0),Vector3.new(0,0,0)) end end for _,BodyParts in next, CloneChar:GetDescendants() do if BodyParts:IsA("BasePart") or BodyParts:IsA("Part") then BodyParts.Transparency = 1 end end elseif Bypass == "death" then -------------------------------------------------------------------------------------------------------------------- game:GetService("Players").LocalPlayer["Character"].Archivable = true local CloneChar = game:GetObjects("rbxassetid://5227463276")[1] game:GetService("Players").LocalPlayer["Character"].Humanoid.WalkSpeed = 0 game:GetService("Players").LocalPlayer["Character"].Humanoid.JumpPower = 0 game:GetService("Players").LocalPlayer["Character"].Humanoid.AutoRotate = false local FalseChar = Instance.new("Model", workspace); FalseChar.Name = "" Instance.new("Part",FalseChar).Name = "Head" Instance.new("Part",FalseChar).Name = "UpperTorso" Instance.new("Humanoid",FalseChar).Name = "Humanoid" game:GetService("Players").LocalPlayer["Character"] = FalseChar game:GetService("Players").LocalPlayer["Character"].Humanoid.Name = "FalseHumanoid" local Clone = game:GetService("Players").LocalPlayer["Character"]:FindFirstChild("FalseHumanoid"):Clone() Clone.Parent = game:GetService("Players").LocalPlayer["Character"] Clone.Name = "Humanoid" game:GetService("Players").LocalPlayer["Character"]:FindFirstChild("FalseHumanoid"):Destroy() game:GetService("Players").LocalPlayer["Character"].Humanoid.Health = 0 game:GetService("Players").LocalPlayer["Character"] = workspace[game:GetService("Players").LocalPlayer.Name] wait(5.65) game:GetService("Players").LocalPlayer["Character"].Humanoid.Health = 0 CloneChar.Parent = workspace CloneChar.HumanoidRootPart.CFrame = game:GetService("Players").LocalPlayer["Character"].HumanoidRootPart.CFrame * CFrame.new(0,0.5,0.1) wait() CloneChar.Humanoid.BreakJointsOnDeath = false workspace.Camera.CameraSubject = CloneChar.Humanoid CloneChar.Name = "non" CloneChar.Humanoid.DisplayDistanceType = "None" if CloneChar.Head:FindFirstChild("face") then CloneChar.Head:FindFirstChild("face"):Destroy() end if workspace[game:GetService("Players").LocalPlayer.Name].Head:FindFirstChild("face") then workspace[game:GetService("Players").LocalPlayer.Name].Head:FindFirstChild("face").Parent = CloneChar.Head end FalseChar:Destroy() local DeadChar = workspace[game:GetService("Players").LocalPlayer.Name] local LVecPart = Instance.new("Part", workspace) LVecPart.CanCollide = false LVecPart.Transparency = 1 local CONVEC local function VECTORUNIT() if HumanDied then CONVEC:Disconnect(); return end local lookVec = workspace.Camera.CFrame.lookVector local Root = CloneChar["HumanoidRootPart"] LVecPart.Position = Root.Position LVecPart.CFrame = CFrame.new(LVecPart.Position, Vector3.new(lookVec.X * 9999, lookVec.Y, lookVec.Z * 9999)) end CONVEC = game:GetService("RunService").Heartbeat:Connect(VECTORUNIT) local CONDOWN local WDown, ADown, SDown, DDown, SpaceDown = false, false, false, false, false local function KEYDOWN(_,Processed) if HumanDied then CONDOWN:Disconnect(); return end if Processed ~= true then local Key = _.KeyCode if Key == Enum.KeyCode.W then WDown = true end if Key == Enum.KeyCode.A then ADown = true end if Key == Enum.KeyCode.S then SDown = true end if Key == Enum.KeyCode.D then DDown = true end if Key == Enum.KeyCode.Space then SpaceDown = true end end end CONDOWN = game:GetService("UserInputService").InputBegan:Connect(KEYDOWN) local CONUP local function KEYUP(_) if HumanDied then CONUP:Disconnect(); return end local Key = _.KeyCode if Key == Enum.KeyCode.W then WDown = false end if Key == Enum.KeyCode.A then ADown = false end if Key == Enum.KeyCode.S then SDown = false end if Key == Enum.KeyCode.D then DDown = false end if Key == Enum.KeyCode.Space then SpaceDown = false end end CONUP = game:GetService("UserInputService").InputEnded:Connect(KEYUP) local function MoveClone(X,Y,Z) LVecPart.CFrame = LVecPart.CFrame * CFrame.new(-X,Y,-Z) workspace["non"].Humanoid.WalkToPoint = LVecPart.Position end coroutine.wrap(function() while true do game:GetService("RunService").RenderStepped:Wait() if HumanDied then break end if WDown then MoveClone(0,0,1e4) end if ADown then MoveClone(1e4,0,0) end if SDown then MoveClone(0,0,-1e4) end if DDown then MoveClone(-1e4,0,0) end if SpaceDown then CloneChar["Humanoid"].Jump = true end if WDown ~= true and ADown ~= true and SDown ~= true and DDown ~= true then workspace["non"].Humanoid.WalkToPoint = workspace["non"].HumanoidRootPart.Position end end end)() local con function UnCollide() if HumanDied then con:Disconnect(); return end for _,Parts in next, CloneChar:GetDescendants() do if Parts:IsA("BasePart") then Parts.CanCollide = false end end for _,Parts in next, DeadChar:GetDescendants() do if Parts:IsA("BasePart") then Parts.CanCollide = false end end end con = game:GetService("RunService").Stepped:Connect(UnCollide) local resetBindable = Instance.new("BindableEvent") resetBindable.Event:connect(function() game:GetService("StarterGui"):SetCore("ResetButtonCallback", true) resetBindable:Destroy() CloneChar.Humanoid.Health = 0 end) game:GetService("StarterGui"):SetCore("ResetButtonCallback", resetBindable) coroutine.wrap(function() while true do game:GetService("RunService").RenderStepped:wait() if not CloneChar or not CloneChar:FindFirstChild("Head") or not CloneChar:FindFirstChild("Humanoid") or CloneChar:FindFirstChild("Humanoid").Health <= 0 then HumanDied = true pcall(function() game.Players.LocalPlayer.Character = CloneChar CloneChar:Destroy() game.Players.LocalPlayer.Character = DeadChar if resetBindable then game:GetService("StarterGui"):SetCore("ResetButtonCallback", true) resetBindable:Destroy() end DeadChar.Humanoid.Health = 0 end) break end end end)() for _,v in next, DeadChar:GetChildren() do if v:IsA("Accessory") then v:Clone().Parent = CloneChar end end SCIFIMOVIELOL(DeadChar["Head"],CloneChar["Head"],Vector3.new(0,0,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["UpperTorso"],CloneChar["Torso"],Vector3.new(0,0.2,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["LowerTorso"],CloneChar["Torso"],Vector3.new(0,-0.78,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["LeftUpperArm"],CloneChar["Left Arm"],Vector3.new(0,0.375,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["LeftLowerArm"],CloneChar["Left Arm"],Vector3.new(0,-0.215,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["LeftHand"],CloneChar["Left Arm"],Vector3.new(0,-0.825,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["RightUpperArm"],CloneChar["Right Arm"],Vector3.new(0,0.375,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["RightLowerArm"],CloneChar["Right Arm"],Vector3.new(0,-0.215,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["RightHand"],CloneChar["Right Arm"],Vector3.new(0,-0.825,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["LeftUpperLeg"],CloneChar["Left Leg"],Vector3.new(0,0.575,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["LeftLowerLeg"],CloneChar["Left Leg"],Vector3.new(0,-0.137,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["LeftFoot"],CloneChar["Left Leg"],Vector3.new(0,-0.787,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["RightUpperLeg"],CloneChar["Right Leg"],Vector3.new(0,0.575,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["RightLowerLeg"],CloneChar["Right Leg"],Vector3.new(0,-0.137,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["RightFoot"],CloneChar["Right Leg"],Vector3.new(0,-0.787,0),Vector3.new(0,0,0)) SCIFIMOVIELOL(DeadChar["HumanoidRootPart"],CloneChar["HumanoidRootPart"],Vector3.new(0,0,0),Vector3.new(0,0,0)) for _,v in next, DeadChar:GetChildren() do if v:IsA("Accessory") then SCIFIMOVIELOL(v.Handle,CloneChar[v.Name].Handle,Vector3.new(0,0,0),Vector3.new(0,0,0)) end end for _,BodyParts in next, CloneChar:GetDescendants() do if BodyParts:IsA("BasePart") or BodyParts:IsA("Part") then BodyParts.Transparency = 1 end end if DeadChar.Head:FindFirstChild("Neck") then game.Players.LocalPlayer.Character:BreakJoints() end end end end local CloneChar = workspace.non game.Players.LocalPlayer.Character.Parent = CloneChar local MakeNewAnim = function(id) local NewAnim = Instance.new("Animation") NewAnim.AnimationId = id return {NewAnim,id} end function CreoFEFakeAnimations(Character) spawn(function() local Humanoid = Character:FindFirstChildWhichIsA("Humanoid") local HRP = Character:WaitForChild("HumanoidRootPart") local Walk = MakeNewAnim("http://www.roblox.com/asset/?id=180426354") local Idle = MakeNewAnim("http://www.roblox.com/asset/?id=180435571") local Jump = MakeNewAnim("http://www.roblox.com/asset/?id=125750702") local Fall = MakeNewAnim("http://www.roblox.com/asset/?id=180436148") local anim = Idle[1] local AnimId = Idle[2] local Anim = Humanoid:LoadAnimation(anim) Anim.Priority = Enum.AnimationPriority.Core local rayCast = function(Pos, Dir, Max, Ignore) return game:service("Workspace"):FindPartOnRay(Ray.new(Pos, Dir.unit * (Max or 999.999)), (Ignore)) end spawn(function() while HumanDied ~= true do wait() local hitfloor = rayCast(HRP.Position, CFrame.new(HRP.Position, HRP.Position - Vector3.new(0, 1, 0)).lookVector, 4, Character) local oldAnim = Anim local oldAnimId = AnimId if HRP.Velocity.Y > 0 and hitfloor == nil then Anim = Humanoid:LoadAnimation(Jump[1]) AnimId = Jump[2] elseif HRP.Velocity.Y < 0 and hitfloor == nil then Anim = Humanoid:LoadAnimation(Fall[1]) AnimId = Fall[2] elseif (HRP.Velocity.X + HRP.Velocity.Z)/2 > 0.1 or (HRP.Velocity.X + HRP.Velocity.Z)/2 < -0.1 then Anim = Humanoid:LoadAnimation(Walk[1]) AnimId = Walk[2] else Anim = Humanoid:LoadAnimation(Idle[1]) AnimId = Idle[2] end if AnimId ~= oldAnimId then oldAnim:Stop() Anim:Play() end end end) end) end CreoFEFakeAnimations(CloneChar) CreoFEFakeAnimations(FakeCharacter) s = game:GetService("RunService").Heartbeat:connect(function() game.Players.LocalPlayer.Character.HumanoidRootPart.Velocity = Vector3.new(0,35,0) end) task.spawn(function() while true do wait() if HumanDied == true then s:Disconnect() break end end end) local SHOW = Instance.new("SelectionBox",workspace) SHOW.Adornee = game.Players.LocalPlayer.Character.HumanoidRootPart --- <> -- bambam = Instance.new("BodyThrust") bambam.Parent = HumanRoot bambam.Force = Vector3.new(0,0,0) ------Body Variables------ local myHuman = FakeCharacter.Humanoid local myTorso = FakeCharacter.Torso local myHead = FakeCharacter.Head local myFace = myHead.face local neck = myTorso.Neck local headWeld = myTorso["Head Weld"] local rArm = FakeCharacter["Right Arm"] local lArm = FakeCharacter["Left Arm"] local lShoulder = myTorso["Left Shoulder"] local rShoulder = myTorso["Right Shoulder"] local lArmWeld = myTorso["Left Arm Weld"] local rArmWeld = myTorso["Right Arm Weld"] local gyro = FakeCharacter.HumanoidRootPart.BodyGyro ------M4 Variables------ local m4 = FakeCharacter.M4 if GunHat then GunHat.Parent = FakeCharacter end if SoldierHelm then SoldierHelm.Parent = FakeCharacter FakeCharacter.Mask.Transparency = 1 FakeLimbs["Head"].Transparency = 1 FakeCharacter.fasthelmet.Transparency = 1 end local m4Weld = m4["M4 Weld"] local barrel = FakeCharacter.Barrel local aimer = FakeCharacter.Aimer local aimerWeld = aimer["Aimer Weld"] local fullMag = 30 local mag = fullMag local flash = barrel.Attachment.Flash ------Knife variables------ local knife = FakeCharacter.Knife local knifeWeld = knife["Knife Weld"] ------Grenade variables------ local grenade = FakeCharacter.Grenade ------Sounds------ local equipSound = m4.Equip local fireSound = m4.Fire local reloadSound = m4.Reload local knifeEquipSound = knife.EquipSound local knifeAttackSound = knife.AttackSound local knifeStabSound = knife.StabSound local hurtSound = myHead.Hurt local pinSound = grenade.Pin ------Animations------ local stabAnimation = myHuman:LoadAnimation(FakeCharacter.Stab) stabAnimation.Priority = Enum.AnimationPriority.Action local throwAnimation = myHuman:LoadAnimation(FakeCharacter.ThrowAnimation) throwAnimation.Priority = Enum.AnimationPriority.Action throwAnimation.Looped = false local reloadAnimation = myHuman:LoadAnimation(FakeCharacter.Reload) reloadAnimation.Priority = Enum.AnimationPriority.Action ------Status------ local reloading = false local weaponAimed = false local weaponCool = true local m4Equipped = false local knifeEquipped = false local grenadeCool = true local currentTarget = nil local status = "Idle" spawn(function() while true do wait() if currentTarget == nil or weaponCool == false then HumanRoot.Position = FakeCharacter.Torso.Position bambam.Force = Vector3.new(0,0,0) end end end) local faces = {Idle = "http://www.roblox.com/asset/?id=23219775", Attacking = "http://www.roblox.com/asset/?id=286688505", Hunting = "http://www.roblox.com/asset/?id=209715003 ", Hurt = "http://www.roblox.com/asset/?id=258192246", Dead = "http://www.roblox.com/asset/?id=15426038"} local gunPointedAt = nil ------Target/Ally Tracking------ local allies = {"Civilian"} local potentialTargets = {} local activeAllies = {} local team = FakeCharacter.Settings.Team.Value local attackPlayers = FakeCharacter.Settings.AttackPlayers.Value function spawner(func,...) local co = coroutine.wrap(func) co(...) end function checkDist(part1,part2) return (part1.Position - part2.Position).Magnitude end function checkSight(target) local ray = Ray.new(barrel.Position, (target.Position - barrel.Position).Unit * 75) local part,position = workspace:FindPartOnRayWithIgnoreList(ray, {FakeCharacter}) local ray2 = Ray.new(myTorso.Position, (target.Position - myTorso.Position).Unit * 75) local part2,position2 = workspace:FindPartOnRayWithIgnoreList(ray2, {FakeCharacter}) if part and part2 then if part:IsDescendantOf(target.Parent) and part2:IsDescendantOf(target.Parent) then return true end end return false end function updateFace() if myFace.Texture ~= faces.Dead and myFace.Texture ~= faces.Hurt then myFace.Texture = faces[status] end end function findTarget() local dist = FakeCharacter.Settings.DetectionRange.Value local target = nil potentialTargets = {} local seeTargets = {} for _,v in ipairs(workspace:GetChildren()) do local human = v:FindFirstChild("Humanoid") local torso = v:FindFirstChild("HumanoidRootPart") or v:FindFirstChild("Torso") if human and torso and v ~= FakeCharacter and v ~= CloneChar then --Check and see if they are on our team, if they are break the loop. local targetTeam local teammate = false if v:FindFirstChild("Team") then targetTeam = v.Team.Value elseif v:FindFirstChild("Settings") and v.Settings:FindFirstChild("Team") then targetTeam = v.Settings.Team.Value end if (targetTeam and targetTeam == team) or (not attackPlayers and game.Players:GetPlayerFromCharacter(v)) then teammate = true end if (myTorso.Position - torso.Position).magnitude < dist and human.Health > 0 then for i,x in ipairs(allies) do if x == v.Name or teammate then table.insert(activeAllies,torso) break elseif i == #allies then table.insert(potentialTargets,torso) end end end end end if #potentialTargets > 0 then for i,v in ipairs(potentialTargets) do if checkSight(v) then table.insert(seeTargets,v) end end if #seeTargets > 0 then for i,v in ipairs(seeTargets) do if (myTorso.Position - v.Position).magnitude < dist then target = v dist = (myTorso.Position - v.Position).magnitude end end else for i,v in ipairs(potentialTargets) do if (myTorso.Position - v.Position).magnitude < dist then target = v dist = (myTorso.Position - v.Position).magnitude end end end end currentTarget = target end function pathToLocation(target) local path = game:GetService("PathfindingService"):CreatePath() path:ComputeAsync(myTorso.Position, target.Position) local waypoints = path:GetWaypoints() for _,waypoint in ipairs(waypoints) do if waypoint.Action == Enum.PathWaypointAction.Jump then myHuman.Jump = true end myHuman:MoveTo(waypoint.Position) spawner(function() wait(0.5) if myHuman.WalkToPoint.Y > myTorso.Position.Y then myHuman.Jump = true end end) local moveSuccess = myHuman.MoveToFinished:Wait() if not moveSuccess or not target.Parent or (checkDist(myTorso,target) < 30 and checkSight(target)) or currentTarget ~= target then break end if checkDist(target,waypoints[#waypoints]) > 30 then pathToLocation(target) end end end function walkRandom() local randX = math.random(-100,100) local randZ = math.random(-100,100) local goal = myTorso.Position + Vector3.new(randX, 0, randZ) local path = game:GetService("PathfindingService"):CreatePath() path:ComputeAsync(myTorso.Position, goal) local waypoints = path:GetWaypoints() if path.Status == Enum.PathStatus.Success then for i,waypoint in ipairs(waypoints) do if waypoint.Action == Enum.PathWaypointAction.Jump then myHuman.Jump = true end myHuman:MoveTo(waypoint.Position) spawner(function() wait(0.5) if myHuman.WalkToPoint.Y > myTorso.Position.Y then myHuman.Jump = true end end) local moveSuccess = myHuman.MoveToFinished:Wait() if not moveSuccess or currentTarget then break end end else wait(2) end end function drawM4() yieldKnife() if m4Equipped == false then m4Equipped = true equipSound:Play() --Right Arm Setup rShoulder.Part1 = nil rArm.CFrame = aimer.CFrame * CFrame.new(1.25,0.05,-0.65) * CFrame.Angles(math.rad(80),math.rad(0),math.rad(-10)) rArmWeld.Part1 = rArm --Left Arm Setup lShoulder.Part1 = nil lArm.CFrame = aimer.CFrame * CFrame.new(-0.35,0.05,-1.48) * CFrame.Angles(math.rad(84),math.rad(-3),math.rad(28)) lArmWeld.Part1 = lArm --M4 Setup m4Weld.Part0 = nil m4.CFrame = aimer.CFrame * CFrame.new(0.65,0.37,-2.22) * CFrame.Angles(math.rad(-90),math.rad(0),math.rad(0)) m4Weld.Part0 = aimer end end function yieldM4() myHuman.AutoRotate = true gyro.MaxTorque = Vector3.new(0,0,0) if weaponAimed == true then weaponAimed = false resetHead() end if m4Equipped == true then m4Equipped = false equipSound:Play() --Right Arm setup rArmWeld.Part1 = nil rShoulder.Part1 = rArm --Left Arm Setup lArmWeld.Part1 = nil lShoulder.Part1 = lArm --M4 Setup m4Weld.Part0 = nil m4.CFrame = myTorso.CFrame * CFrame.new(0,0,0.6) * CFrame.Angles(math.rad(-90),math.rad(-60),math.rad(90)) m4Weld.Part0 = myTorso end end function drawKnife() if knifeEquipped == false then yieldM4() knifeEquipSound:Play() knifeEquipped = true knifeWeld.Part0 = nil knife.CFrame = rArm.CFrame * CFrame.new(0,-1,-1) * CFrame.Angles(math.rad(90),math.rad(180),math.rad(180)) knifeWeld.Part0 = rArm end end function yieldKnife() if knifeEquipped == true then knifeEquipped = false knifeWeld.Part0 = nil knife.CFrame = myTorso.CFrame * CFrame.new(-1,-1,0.5) * CFrame.Angles(math.rad(-65),0,math.rad(180)) knifeWeld.Part0 = myTorso end end function aim(target) if weaponAimed == false then game:GetService("TweenService"):Create(neck,TweenInfo.new(0.5),{C0 = neck.C0 * CFrame.Angles(0,math.rad(-15),0)}):Play() end myHuman.AutoRotate = false weaponAimed = true gyro.CFrame = CFrame.new(myTorso.Position,target.Position) gyro.MaxTorque = Vector3.new(0,math.huge,0) if not reloading then local aimCFrame = CFrame.new(aimer.Position,target.Position) aimCFrame = aimCFrame - aimCFrame.Position local negateCFrame = myTorso.CFrame - myTorso.Position local newC0 = CFrame.new(0,0.5,0) * negateCFrame:Inverse() * aimCFrame local x,y,z = newC0:ToEulerAnglesXYZ() x = math.clamp(x,-0.8,0.8) --So his aiming isn't crazy backwards newC0 = CFrame.new(0,0.5,0) * CFrame.fromEulerAnglesXYZ(x,0,0) local lookDiff = (newC0.LookVector - aimerWeld.C0.LookVector).Magnitude game:GetService("TweenService"):Create(aimerWeld,TweenInfo.new(lookDiff * 0.2),{C0 = newC0}):Play() local newC0 = CFrame.new(0,1,0) * CFrame.Angles(-1.5 + math.rad(aimer.Orientation.X),math.rad(15),math.rad(180)) ---1.5 - game:GetService("TweenService"):Create(neck,TweenInfo.new(lookDiff * 0.2),{C0 = newC0}):Play() wait(lookDiff*0.2) end end function resetHead() game:GetService("TweenService"):Create(neck,TweenInfo.new(0.5),{C0 = CFrame.new(0,1,0) * CFrame.Angles(math.rad(-90),0,math.rad(180))}):Play() end function shoot(target) if weaponCool == true and reloading == false then weaponCool = false local shot if checkDist(target,myTorso) > 60 then shot = 1 else shot = 3 end for i = 1, shot do wait(0.1) mag = mag - 1 flash:Emit(1) local flash = Instance.new("PointLight",barrel) flash.Brightness = 3 game:GetService("Debris"):AddItem(flash,0.1) local bullet = Instance.new("Part") bullet.Size = Vector3.new(0.1,0.1,0.3) bullet.BrickColor = BrickColor.new("Gold") bullet.Material = Enum.Material.Neon bullet.CFrame = barrel.CFrame bullet.CanCollide = false bullet.Touched:Connect(function(obj) if not obj:IsDescendantOf(FakeCharacter) then local human = obj.Parent:FindFirstChild("Humanoid") if human then for i = 1,30 do wait() HumanRoot.Position = obj.Parent:WaitForChild("HumanoidRootPart").Position bambam.Location = obj.Parent:WaitForChild("HumanoidRootPart").Position bambam.Force = Vector3.new(1000,0,1000) findTarget() end end bullet:Destroy() end end) bullet.Parent = workspace fireSound:Play() local spread = Vector3.new(math.random(-shot,shot)/100,math.random(-shot,shot)/100,math.random(-shot,shot)/100) local bv = Instance.new("BodyVelocity",bullet) bv.MaxForce = Vector3.new(math.huge,math.huge,math.huge) bv.Velocity = (aimer.CFrame.LookVector + spread) * 300 local s = Instance.new("Sound",bullet) s.Volume = 0.7 s.PlaybackSpeed = 7 s.Looped = true s.SoundId = "rbxasset://sounds/Rocket whoosh 01.wav" s:Play() local a1 = Instance.new("Attachment",bullet) a1.Position = Vector3.new(0,0.05,0) local a2 = Instance.new("Attachment",bullet) a2.Position = Vector3.new(0,-0.05,0) local t = Instance.new("Trail",bullet) t.Attachment0 = a1 t.Attachment1 = a2 t.Color = ColorSequence.new(bullet.Color) t.WidthScale = NumberSequence.new(0.1,0.01) t.Lifetime = 0.3 --TODO ADD KICK game:GetService("Debris"):AddItem(bullet, 5) end if mag <= 0 then reload() end spawner(function() wait(1) weaponCool = true end) end end function reload() if weaponAimed == true then resetHead() weaponAimed = false end reloadSound:Play() reloading = true yieldM4() m4Weld.Part0 = nil m4.CFrame = lArm.CFrame * CFrame.new(0.6,-1.3,0.2) * CFrame.Angles(math.rad(180),0,0) m4Weld.Part0 = lArm reloadAnimation:Play() reloadAnimation:AdjustSpeed(3) reloadAnimation.Stopped:Wait() reloading = false mag = fullMag drawM4() end function stab(target) if weaponCool == true then weaponCool = false knifeStabSound:Play() knifeAttackSound:Play() stabAnimation:Play() local human = target.Parent.Humanoid HumanRoot.Position = target.Parent:WaitForChild("HumanoidRootPart").Position bambam.Location = target.Parent:WaitForChild("HumanoidRootPart").Position bambam.Force = Vector3.new(500,0,500) spawner(function() wait(0.5) weaponCool = true end) end end function yieldWeapons() yieldKnife() yieldM4() if weaponAimed == true then weaponAimed = false resetHead() end end function checkCluster(target) --Check for nearby allies for i,v in ipairs(activeAllies) do if checkDist(target,v) < 30 then return false end end --Check if enemies are paired close together for i,v in ipairs(potentialTargets) do if v ~= target then if checkDist(target,v) < 15 then return true end end end return false end function throwGrenade(target) if weaponCool == true and grenadeCool == true then weaponCool = false grenadeCool = false yieldWeapons() local g = grenade:Clone() g.Boom.PlayOnRemove = true g.Parent = workspace g.CanCollide = true g.CFrame = rArm.CFrame * CFrame.new(0,-1.3,0) * CFrame.Angles(0,0,math.rad(90)) game:GetService("Debris"):AddItem(g,5) grenade.Transparency = 1 local w = Instance.new("WeldConstraint",g) w.Part0 = rArm w.Part1 = g throwAnimation:Play() pinSound:Play() aim(target) wait(0.4) if myHuman.Health <= 0 then return end aim(target) throwAnimation:Stop() w.Part1 = nil local dist = checkDist(myTorso,target) g.Velocity = (myTorso.CFrame.LookVector + Vector3.new(0,1,0)) * Vector3.new(dist,dist*1.5,dist) --Wait until grenade is thrown before it can be primed touched = g.Touched:Connect(function(obj) if not obj:IsDescendantOf(FakeCharacter) then touched:Disconnect() g.Pin:Play() wait(0.5) local x = Instance.new("Explosion",workspace) x.Position = g.Position x.Hit:Connect(function(obj,dist) local human = obj.Parent:FindFirstChild("Humanoid") if human then human:TakeDamage(20 - dist) human:ChangeState(Enum.HumanoidStateType.Ragdoll) end end) g:Destroy() game:GetService("Debris"):AddItem(x,2) end end) local attach0 = g.Attach0 local attach1 = g.Attach1 local t = Instance.new("Trail",g) t.Attachment0 = attach0 t.Attachment1 = attach1 t.Lifetime = 0.5 t.Color = ColorSequence.new(Color3.fromRGB(150,150,150)) t.WidthScale = NumberSequence.new(1,0) spawner(function() wait(1) weaponCool = true wait(5) grenadeCool = true grenade.Transparency = 0 end) end end function movementLoop() while myHuman.Health>0 do if currentTarget then if checkDist(currentTarget,myTorso) > 30 or not checkSight(currentTarget) then pathToLocation(currentTarget) elseif checkDist(currentTarget,myTorso) > 8 then if math.random(0,1) == 1 then myHuman:Move(myTorso.CFrame.RightVector) else myHuman:Move(-myTorso.CFrame.RightVector) end wait(0.5) end else local randomAction = math.random(4) if randomAction == 3 then walkRandom() elseif randomAction == 2 then --print("Look randomly") end wait(3) end wait(0.1) end end function searchTargetLoop() while myHuman.Health>0 do findTarget() wait(3) end end function aimingLoop() while myHuman.Health>0 do if currentTarget then if checkSight(currentTarget) then aim(currentTarget) gunPointedAt = currentTarget else wait(0.5) end else wait(2) end wait() end end function attackLoop() while myHuman.Health>0 do if currentTarget then status = "Hunting" updateFace() if checkSight(currentTarget) then status = "Attacking" updateFace() local distance = checkDist(myTorso,currentTarget) if distance > 15 then if checkCluster(currentTarget) == true and distance < 100 and distance > 30 and grenadeCool then throwGrenade(currentTarget) else drawM4() repeat wait() until gunPointedAt == currentTarget shoot(currentTarget) end else drawKnife() myHuman:MoveTo(currentTarget.Position) local canStab = false for i,v in pairs(currentTarget.Parent:GetChildren()) do if v:IsA("BasePart") and checkDist(v,myTorso) < 7 then canStab = true end end if canStab then stab(currentTarget) end end else if weaponAimed == true then weaponAimed = false myHuman.AutoRotate = true gyro.MaxTorque = Vector3.new(0,0,0) resetHead() local newC0 = CFrame.new(0,0.5,0) * CFrame.Angles(-0.5,0,0) local lookDiff = (newC0.LookVector - aimerWeld.C0.LookVector).Magnitude game:GetService("TweenService"):Create(aimerWeld,TweenInfo.new(lookDiff * 0.2),{C0 = newC0}):Play() end end else status = "Idle" updateFace() yieldWeapons() wait(2) end wait(0.1) end end function Died() FakeCharacter:Destroy() CloneChar:Destroy() game.Players.LocalPlayer.Character:Destroy() end myHuman.Died:Connect(Died) local oldHealth = myHuman.Health local soundSpeeds = {0.9,0.95,1,1.05,1.1} myHuman.HealthChanged:Connect(function(health) if health < oldHealth and hurtSound.IsPlaying == false then hurtSound.PlaybackSpeed = soundSpeeds[math.random(#soundSpeeds)] hurtSound:Play() spawner(function() myFace.Texture = faces.Hurt wait(1) if myFace.Texture == faces.Hurt then myFace.Texture = faces[status] end end) end oldHealth = health end) spawner(searchTargetLoop) spawner(attackLoop) spawner(movementLoop) spawner(aimingLoop) -- {} -- FE Soldier AI -- Join my discord server for early scripts :) -- https://discord.gg/SWt5Uzpd --[[ {} https://web.roblox.com/catalog/6133544919/Retro-SWAT-Helmet https://web.roblox.com/catalog/7806887000/CR-L-4-Back https://www.roblox.com/catalog/48474313/Red-Roblox-Cap https://www.roblox.com/catalog/4391384843/International-Fedora-Russia https://www.roblox.com/catalog/48474294/ROBLOX-Girl-Hair https://www.roblox.com/catalog/62724852/Chestnut-Bun https://www.roblox.com/catalog/451220849/Lavender-Updo https://www.roblox.com/catalog/63690008/Pal-Hair https://www.roblox.com/catalog/62234425/Brown-Hair ]]