ADVERTISEMENTREMOVE ADS

Corrupt nature!

Universal script
4 months ago
Script preview thumbnail
Script Preview

Description

click to launch the... Corrupt Nature! and if it touches the ground you gota pick it up( not an tool warning)

ADVERTISEMENTREMOVE ADS
234 Lines • 6.74 KiB
Raw
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
-- Display watermark GUI
local PlayerGui = player:WaitForChild("PlayerGui")
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "WatermarkGui"
screenGui.ResetOnSpawn = false
screenGui.IgnoreGuiInset = true
screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Global
screenGui.Parent = PlayerGui
local label = Instance.new("TextLabel")
label.Size = UDim2.new(0.6, 0, 0.1, 0)
label.Position = UDim2.new(0.2, 0, 0.45, 0)
label.BackgroundTransparency = 1
label.Text = "Made by whatanwaza"
label.Font = Enum.Font.GothamBlack
label.TextScaled = true
label.TextColor3 = Color3.new(1, 1, 1)
label.TextStrokeTransparency = 0.5
label.TextTransparency = 0
label.ZIndex = 999999
label.Parent = screenGui
-- Wait 3 seconds then fade out
task.wait(3)
for i = 0, 1, 0.02 do
label.TextTransparency = i
label.TextStrokeTransparency = 0.5 + (i * 0.5)
task.wait(0.03)
end
screenGui:Destroy()
-- === CORRUPT NATURE SCRIPT STARTS ===
local char = player.Character or player.CharacterAdded:Wait()
local rightArm = char:WaitForChild("Right Arm")
local humanoid = char:WaitForChild("Humanoid")
-- Create the grey projectile
local corruptNature = Instance.new("Part")
corruptNature.Name = "CorruptNature"
corruptNature.Size = Vector3.new(4, 2, 1)
corruptNature.BrickColor = BrickColor.new("Medium stone grey")
corruptNature.Material = Enum.Material.Metal
corruptNature.CanCollide = false
corruptNature.Massless = true
corruptNature.Anchored = false
corruptNature.Parent = workspace
local weld
local function weldToArm()
if weld then weld:Destroy() end
corruptNature.CanCollide = false
corruptNature.Anchored = false
weld = Instance.new("Weld")
weld.Name = "CorruptNatureWeld"
weld.Part0 = rightArm
weld.Part1 = corruptNature
weld.C0 = CFrame.new(0, -0.7, -1.2) * CFrame.Angles(math.rad(-90), math.rad(90), 0)
weld.Parent = rightArm
end
weldToArm()
local launched = false
local launchSpeed = 100
local originalCFrame
local flingConnection
local flingVictimAngularVelocity
local function spinAndFlingInsideTorso(rootPart, victimHumanoidRootPart)
local startTime = tick()
local flingDuration = 15
flingVictimAngularVelocity = Instance.new("BodyAngularVelocity")
flingVictimAngularVelocity.MaxTorque = Vector3.new(1e6, 1e6, 1e6)
flingVictimAngularVelocity.AngularVelocity = Vector3.new(30, 30, 30)
flingVictimAngularVelocity.Parent = victimHumanoidRootPart
flingConnection = RunService.Heartbeat:Connect(function()
if not rootPart or not rootPart.Parent or not victimHumanoidRootPart or not victimHumanoidRootPart.Parent then
flingConnection:Disconnect()
flingVictimAngularVelocity:Destroy()
return
end
if tick() - startTime >= flingDuration then
flingConnection:Disconnect()
flingVictimAngularVelocity:Destroy()
return
end
rootPart.CFrame = victimHumanoidRootPart.CFrame
end)
end
local function stopSpinAndFling()
if flingConnection then
flingConnection:Disconnect()
flingConnection = nil
end
if flingVictimAngularVelocity then
flingVictimAngularVelocity:Destroy()
flingVictimAngularVelocity = nil
end
end
local function detachFromArm()
if weld then weld:Destroy() weld = nil end
corruptNature.Parent = workspace
corruptNature.CanCollide = false
corruptNature.Anchored = false
end
local function corruptNatureAnimation()
local rightShoulder = char:FindFirstChild("Right Shoulder") or char:FindFirstChild("RightShoulder")
if not rightShoulder then return end
local originalC0 = rightShoulder.C0
local steps = 20
for i = 1, steps do
local alpha = i / steps
rightShoulder.C0 = originalC0 * CFrame.Angles(math.rad(-90 * alpha), 0, 0)
RunService.Heartbeat:Wait()
end
for i = 1, steps do
local alpha = 1 - i / steps
rightShoulder.C0 = originalC0 * CFrame.Angles(math.rad(-90 * alpha), 0, 0)
RunService.Heartbeat:Wait()
end
rightShoulder.C0 = originalC0
end
local bodyVelocity
local bodyAngularVelocity
local connection
local function launchCorruptNature()
if launched then return end
launched = true
detachFromArm()
local origin = corruptNature.Position
local targetPos = mouse.Hit.p
local direction = (targetPos - origin).Unit
corruptNature.CFrame = CFrame.new(origin, origin + direction)
corruptNature.CanCollide = true
corruptNature.Anchored = false
originalCFrame = char.PrimaryPart and char.PrimaryPart.CFrame or nil
bodyVelocity = Instance.new("BodyVelocity")
bodyVelocity.MaxForce = Vector3.new(1e5, 1e5, 1e5)
bodyVelocity.Velocity = direction * launchSpeed
bodyVelocity.Parent = corruptNature
bodyAngularVelocity = Instance.new("BodyAngularVelocity")
bodyAngularVelocity.MaxTorque = Vector3.new(1e5, 1e5, 1e5)
bodyAngularVelocity.AngularVelocity = Vector3.new(math.random(-20, 20), math.random(-20, 20), math.random(-20, 20))
bodyAngularVelocity.Parent = corruptNature
connection = corruptNature.Touched:Connect(function(hit)
if not launched then return end
if not hit or not hit.Parent then return end
if hit:IsDescendantOf(char) or hit == corruptNature then return end
if bodyVelocity then bodyVelocity:Destroy() end
if bodyAngularVelocity then bodyAngularVelocity:Destroy() end
corruptNature.Anchored = false
corruptNature.CanCollide = true
connection:Disconnect()
local hitHumanoid = hit.Parent:FindFirstChildOfClass("Humanoid")
local hitTorso = hit.Parent:FindFirstChild("Torso") or hit.Parent:FindFirstChild("UpperTorso")
if hitHumanoid and hitTorso then
corruptNature.Transparency = 1
local rootPart = char:FindFirstChild("HumanoidRootPart")
local victimRoot = hit.Parent:FindFirstChild("HumanoidRootPart")
if rootPart and victimRoot then
rootPart.Anchored = false
spinAndFlingInsideTorso(rootPart, victimRoot)
end
wait(15)
stopSpinAndFling()
if rootPart and originalCFrame then
rootPart.CFrame = originalCFrame
end
corruptNature.Transparency = 0
weldToArm()
launched = false
else
local pickupConnection
pickupConnection = corruptNature.Touched:Connect(function(toucher)
if toucher.Parent == char then
pickupConnection:Disconnect()
corruptNature.CanCollide = false
corruptNature.Anchored = false
weldToArm()
launched = false
end
end)
end
end)
end
mouse.Button1Down:Connect(function()
if not launched then
coroutine.wrap(corruptNatureAnimation)()
launchCorruptNature()
end
end)
player.CharacterAdded:Connect(function(newChar)
char = newChar
rightArm = char:WaitForChild("Right Arm")
humanoid = char:WaitForChild("Humanoid")
weldToArm()
launched = false
end)
ADVERTISEMENTREMOVE ADS

Comments

1 comment
to add a comment
Po

where is it?!? ;-;

0
0
ADVERTISEMENTREMOVE ADS