Natural Disaster Survival Script
NO KEY 32
Natural Disaster Survival

Natural Disaster Survival Script

Этот скрипт опять сделала ИИ

WPUBLISHERWendiUpdated 1 day ago
Script developerWendi @xativiv
Play Game
NO KEYPC
More
ADVERTISEMENT
TOTAL VIEWS32Views recorded for this script page
SCRIPT UPDATED10/28/2026Latest recorded update for this script
REVIEW STATUSSource information reviewedReview information is a version-specific snapshot, not a permanent safety guarantee. Lua Obfuscator Loadstring Generator URL Checker
VERIFICATION PROCESSHow We Review Roblox ScriptsSee the workflow used to examine source links, loadstrings, Lua code, and compatibility information.
Natural Disaster SurvivalExplore more Natural Disaster Survival
OVERVIEW

Description

Этот скрипт сделан ИИ, его я проверил у меня всё работает

мне не чиго писать

Natural Disaster Survival

Features

1

Тролл

2

Авто ферма

Script Preview560 lines · 19838 B
Raw
--=============================================================
--  🌪️ NATURAL DISASTER SURVIVAL — MEGA SCRIPT V3
--  Слайдеры скорости + нормальный полёт + Super Ring
--=============================================================

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local CoreGui = game:GetService("CoreGui")

local player = Players.LocalPlayer

-- Защита от дублирования
if CoreGui:FindFirstChild("NDS_MegaMenu") then
    CoreGui.NDS_MegaMenu:Destroy()
end

--=============================================================
--  СОСТОЯНИЕ
--=============================================================
local State = {
    Noclip = false,
    GodMode = false,
    NoFall = false,
    Fly = false,
    InfiniteJump = false,
    WalkOnWater = false,
    SuperRing = false,
    Speed = 16,
    JumpPower = 50,
    FlySpeed = 60,
}

--=============================================================
--  GUI
--=============================================================
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "NDS_MegaMenu"
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = CoreGui

local MainFrame = Instance.new("Frame")
MainFrame.Size = UDim2.new(0, 360, 0, 460)
MainFrame.Position = UDim2.new(0.5, -180, 0.5, -230)
MainFrame.BackgroundColor3 = Color3.fromRGB(18, 18, 24)
MainFrame.BorderSizePixel = 0
MainFrame.Active = true
MainFrame.Draggable = true
MainFrame.Parent = ScreenGui

local MainCorner = Instance.new("UICorner")
MainCorner.CornerRadius = UDim.new(0, 12)
MainCorner.Parent = MainFrame

local TopBar = Instance.new("Frame")
TopBar.Size = UDim2.new(1, 0, 0, 40)
TopBar.BackgroundColor3 = Color3.fromRGB(24, 24, 32)
TopBar.BorderSizePixel = 0
TopBar.Parent = MainFrame

local TopCorner = Instance.new("UICorner")
TopCorner.CornerRadius = UDim.new(0, 12)
TopCorner.Parent = TopBar

local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, -60, 1, 0)
Title.Position = UDim2.new(0, 16, 0, 0)
Title.BackgroundTransparency = 1
Title.Text = "🌪️ NDS MEGA V3"
Title.TextColor3 = Color3.fromRGB(235, 235, 245)
Title.Font = Enum.Font.GothamBold
Title.TextSize = 14
Title.TextXAlignment = Enum.TextXAlignment.Left
Title.Parent = TopBar

local CloseBtn = Instance.new("TextButton")
CloseBtn.Size = UDim2.new(0, 28, 0, 28)
CloseBtn.Position = UDim2.new(1, -36, 0.5, -14)
CloseBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 52)
CloseBtn.Text = "✕"
CloseBtn.TextColor3 = Color3.fromRGB(235, 235, 245)
CloseBtn.Font = Enum.Font.GothamBold
CloseBtn.TextSize = 14
CloseBtn.Parent = TopBar

CloseBtn.MouseButton1Click:Connect(function()
    ScreenGui.Enabled = false
end)

local ScrollingFrame = Instance.new("ScrollingFrame")
ScrollingFrame.Size = UDim2.new(1, -20, 1, -56)
ScrollingFrame.Position = UDim2.new(0, 10, 0, 48)
ScrollingFrame.BackgroundTransparency = 1
ScrollingFrame.ScrollBarThickness = 4
ScrollingFrame.ScrollBarImageColor3 = Color3.fromRGB(120, 90, 255)
ScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
ScrollingFrame.AutomaticCanvasSize = Enum.AutomaticSize.Y
ScrollingFrame.Parent = MainFrame

local UIList = Instance.new("UIListLayout")
UIList.Padding = UDim.new(0, 8)
UIList.Parent = ScrollingFrame

local UIPadding = Instance.new("UIPadding")
UIPadding.PaddingTop = UDim.new(0, 4)
UIPadding.Parent = ScrollingFrame

--=============================================================
--  ХЕЛПЕРЫ
--=============================================================
local function CreateToggle(text, callback)
    local btn = Instance.new("TextButton")
    btn.Size = UDim2.new(1, 0, 0, 38)
    btn.BackgroundColor3 = Color3.fromRGB(35, 35, 45)
    btn.Text = "  ⬜  " .. text
    btn.TextColor3 = Color3.fromRGB(220, 220, 235)
    btn.Font = Enum.Font.GothamMedium
    btn.TextSize = 13
    btn.TextXAlignment = Enum.TextXAlignment.Left
    btn.Parent = ScrollingFrame

    local c = Instance.new("UICorner")
    c.CornerRadius = UDim.new(0, 8)
    c.Parent = btn

    local toggled = false
    btn.MouseButton1Click:Connect(function()
        toggled = not toggled
        btn.Text = (toggled and "  ✅  " or "  ⬜  ") .. text
        btn.BackgroundColor3 = toggled and Color3.fromRGB(45, 30, 70) or Color3.fromRGB(35, 35, 45)
        if callback then callback(toggled) end
    end)
end

local function CreateButton(text, callback)
    local btn = Instance.new("TextButton")
    btn.Size = UDim2.new(1, 0, 0, 38)
    btn.BackgroundColor3 = Color3.fromRGB(35, 35, 45)
    btn.Text = "  🔹  " .. text
    btn.TextColor3 = Color3.fromRGB(220, 220, 235)
    btn.Font = Enum.Font.GothamMedium
    btn.TextSize = 13
    btn.TextXAlignment = Enum.TextXAlignment.Left
    btn.Parent = ScrollingFrame

    local c = Instance.new("UICorner")
    c.CornerRadius = UDim.new(0, 8)
    c.Parent = btn

    btn.MouseButton1Click:Connect(function()
        pcall(callback)
    end)
end

--=============================================================
--  СЛАЙДЕР (возвращён)
--=============================================================
local function CreateSlider(text, min, max, default, callback)
    local frame = Instance.new("Frame")
    frame.Size = UDim2.new(1, 0, 0, 52)
    frame.BackgroundColor3 = Color3.fromRGB(35, 35, 45)
    frame.BorderSizePixel = 0
    frame.Parent = ScrollingFrame

    local c = Instance.new("UICorner")
    c.CornerRadius = UDim.new(0, 8)
    c.Parent = frame

    local label = Instance.new("TextLabel")
    label.Size = UDim2.new(1, -16, 0, 20)
    label.Position = UDim2.new(0, 12, 0, 4)
    label.BackgroundTransparency = 1
    label.Text = text .. ": " .. default
    label.TextColor3 = Color3.fromRGB(220, 220, 235)
    label.Font = Enum.Font.GothamMedium
    label.TextSize = 12
    label.TextXAlignment = Enum.TextXAlignment.Left
    label.Parent = frame

    local sliderBg = Instance.new("Frame")
    sliderBg.Size = UDim2.new(1, -24, 0, 8)
    sliderBg.Position = UDim2.new(0, 12, 0, 32)
    sliderBg.BackgroundColor3 = Color3.fromRGB(50, 50, 65)
    sliderBg.BorderSizePixel = 0
    sliderBg.Parent = frame

    local sbgCorner = Instance.new("UICorner")
    sbgCorner.CornerRadius = UDim.new(1, 0)
    sbgCorner.Parent = sliderBg

    local fill = Instance.new("Frame")
    fill.Size = UDim2.new((default - min) / (max - min), 0, 1, 0)
    fill.BackgroundColor3 = Color3.fromRGB(120, 90, 255)
    fill.BorderSizePixel = 0
    fill.Parent = sliderBg

    local fillCorner = Instance.new("UICorner")
    fillCorner.CornerRadius = UDim.new(1, 0)
    fillCorner.Parent = fill

    local dragging = false

    local function update(input)
        local pos = math.clamp((input.Position.X - sliderBg.AbsolutePosition.X) / sliderBg.AbsoluteSize.X, 0, 1)
        local value = math.floor(min + (max - min) * pos)
        fill.Size = UDim2.new(pos, 0, 1, 0)
        label.Text = text .. ": " .. value
        if callback then callback(value) end
    end

    sliderBg.InputBegan:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 then
            dragging = true
            update(input)
        end
    end)
    sliderBg.InputEnded:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 then
            dragging = false
        end
    end)
    UserInputService.InputChanged:Connect(function(input)
        if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
            update(input)
        end
    end)
end

--=============================================================
--  ФУНКЦИИ
--=============================================================

-- Noclip
RunService.Stepped:Connect(function()
    if State.Noclip and player.Character then
        for _, part in ipairs(player.Character:GetDescendants()) do
            if part:IsA("BasePart") and part.CanCollide then
                part.CanCollide = false
            end
        end
    end
end)

-- No Fall Damage
RunService.Heartbeat:Connect(function()
    if not State.NoFall then return end
    local char = player.Character
    if not char then return end
    local hrp = char:FindFirstChild("HumanoidRootPart")
    if hrp and hrp.Velocity.Y < -50 then
        hrp.Velocity = Vector3.new(hrp.Velocity.X, -10, hrp.Velocity.Z)
    end
end)

-- God Mode
RunService.Heartbeat:Connect(function()
    if not State.GodMode then return end
    local char = player.Character
    if not char then return end
    local hum = char:FindFirstChildOfClass("Humanoid")
    if hum then hum.Health = hum.MaxHealth end
end)

-- Walk on Water
RunService.Heartbeat:Connect(function()
    if not State.WalkOnWater then return end
    local char = player.Character
    if not char then return end
    local hrp = char:FindFirstChild("HumanoidRootPart")
    if hrp and hrp.Position.Y < 0 then
        hrp.Velocity = Vector3.new(hrp.Velocity.X, 10, hrp.Velocity.Z)
    end
end)

-- Infinite Jump
UserInputService.JumpRequest:Connect(function()
    if State.InfiniteJump and player.Character then
        local hum = player.Character:FindFirstChildOfClass("Humanoid")
        if hum then hum:ChangeState(Enum.HumanoidStateType.Jumping) end
    end
end)

--=============================================================
--  НОРМАЛЬНЫЙ ПОЛЁТ (переработан)
--=============================================================
local flyBV, flyBG, flyAlign

local function StopFly()
    if flyBV then flyBV:Destroy() flyBV = nil end
    if flyBG then flyBG:Destroy() flyBG = nil end
    if flyAlign then flyAlign:Destroy() flyAlign = nil end
    -- Возвращаем гравитацию
    local char = player.Character
    if char then
        local hrp = char:FindFirstChild("HumanoidRootPart")
        if hrp then
            for _, obj in ipairs(hrp:GetChildren()) do
                if obj.Name == "FlyGravity" then obj:Destroy() end
            end
        end
    end
end

local function StartFly()
    local char = player.Character
    if not char then return end
    local hrp = char:FindFirstChild("HumanoidRootPart")
    if not hrp then return end

    -- Основная тяга
    flyBV = Instance.new("BodyVelocity")
    flyBV.Name = "FlyBV"
    flyBV.MaxForce = Vector3.new(1e6, 1e6, 1e6)
    flyBV.Velocity = Vector3.zero
    flyBV.P = 1250
    flyBV.Parent = hrp

    -- Стабилизация поворота
    flyBG = Instance.new("BodyGyro")
    flyBG.Name = "FlyBG"
    flyBG.MaxTorque = Vector3.new(1e6, 1e6, 1e6)
    flyBG.P = 10000
    flyBG.D = 500
    flyBG.CFrame = hrp.CFrame
    flyBG.Parent = hrp

    -- Отключаем гравитацию чтобы не тянуло вниз
    local grav = Instance.new("BodyForce")
    grav.Name = "FlyGravity"
    grav.Force = Vector3.new(0, workspace.Gravity * hrp:GetMass(), 0)
    grav.Parent = hrp
end

local function ToggleFly(on)
    State.Fly = on
    if on then StartFly() else StopFly() end
end

RunService.RenderStepped:Connect(function()
    if not State.Fly or not flyBV or not flyBG then return end
    local char = player.Character
    if not char then return end
    local hrp = char:FindFirstChild("HumanoidRootPart")
    if not hrp then return end

    local cam = workspace.CurrentCamera
    local move = Vector3.zero

    if UserInputService:IsKeyDown(Enum.KeyCode.W) then move = move + cam.CFrame.LookVector end
    if UserInputService:IsKeyDown(Enum.KeyCode.S) then move = move - cam.CFrame.LookVector end
    if UserInputService:IsKeyDown(Enum.KeyCode.A) then move = move - cam.CFrame.RightVector end
    if UserInputService:IsKeyDown(Enum.KeyCode.D) then move = move + cam.CFrame.RightVector end
    if UserInputService:IsKeyDown(Enum.KeyCode.Space) then move = move + Vector3.new(0,1,0) end
    if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then move = move - Vector3.new(0,1,0) end

    if move.Magnitude > 0 then
        flyBV.Velocity = move.Unit * State.FlySpeed
    else
        flyBV.Velocity = Vector3.zero
    end
    flyBG.CFrame = CFrame.new(hrp.Position, hrp.Position + cam.CFrame.LookVector)
end)

-- Speed / Jump Power
RunService.Heartbeat:Connect(function()
    local char = player.Character
    if not char then return end
    local hum = char:FindFirstChildOfClass("Humanoid")
    if hum then
        hum.WalkSpeed = State.Speed
        hum.JumpPower = State.JumpPower
    end
end)

--=============================================================
--  SUPER RING — обломки домов крутятся вокруг персонажа
--=============================================================
local ringParts = {}
local ringAngle = 0

-- Функция: подобрать все обломки рядом и заставить крутиться
local function CollectDebris()
    local char = player.Character
    if not char then return end
    local hrp = char:FindFirstChild("HumanoidRootPart")
    if not hrp then return end

    -- Убираем старые
    for _, p in ipairs(ringParts) do
        if p and p.Parent then
            p.Anchored = false
            if p:FindFirstChild("RingForce") then p.RingForce:Destroy() end
        end
    end
    ringParts = {}

    -- Ищем свободные части вокруг (обломки, кирпичи, мусор)
    for _, obj in ipairs(workspace:GetDescendants()) do
        if #ringParts >= 20 then break end
        if obj:IsA("BasePart")
            and not obj.Anchored
            and obj ~= hrp
            and not obj:FindFirstChildOfClass("Humanoid")
            and not Players:GetPlayerFromCharacter(obj.Parent)
            and obj.Size.Magnitude < 30
            and obj.Size.Magnitude > 0.5
        then
            local dist = (obj.Position - hrp.Position).Magnitude
            if dist < 80 then
                obj.CanCollide = false
                obj.Anchored = true
                table.insert(ringParts, obj)
            end
        end
    end

    print("[NDS] Super Ring: захвачено", #ringParts, "обломков")
end

-- Вращение колец вокруг игрока
RunService.RenderStepped:Connect(function(dt)
    if not State.SuperRing then return end
    local char = player.Character
    if not char then return end
    local hrp = char:FindFirstChild("HumanoidRootPart")
    if not hrp then return end

    ringAngle = ringAngle + dt * 2

    local count = #ringParts
    if count == 0 then return end

    for i, part in ipairs(ringParts) do
        if part and part.Parent then
            local angle = ringAngle + (i / count) * math.pi * 2
            -- 2 кольца по высоте
            local radius = 8 + (i % 3) * 2
            local height = math.sin(ringAngle * 2 + i) * 3

            local offset = Vector3.new(
                math.cos(angle) * radius,
                height,
                math.sin(angle) * radius
            )
            part.CFrame = CFrame.new(hrp.Position + offset) * CFrame.Angles(ringAngle, ringAngle * 1.5, 0)
        end
    end
end)

-- Авто-сбор при включении
local function ToggleSuperRing(on)
    State.SuperRing = on
    if on then
        CollectDebris()
        -- Обновляем коллекцию каждые 5 сек (новые обломки)
        task.spawn(function()
            while State.SuperRing do
                task.wait(5)
                if State.SuperRing then
                    CollectDebris()
                end
            end
        end)
    else
        -- Возвращаем обломки в нормальное состояние
        for _, p in ipairs(ringParts) do
            if p and p.Parent then
                p.Anchored = false
            end
        end
        ringParts = {}
    end
end

--=============================================================
--  КНОПКИ МЕНЮ
--=============================================================

-- РАЗДЕЛ: ВЫЖИВАНИЕ
local section1 = Instance.new("TextLabel")
section1.Size = UDim2.new(1, 0, 0, 20)
section1.BackgroundTransparency = 1
section1.Text = "🛡️ ВЫЖИВАНИЕ"
section1.TextColor3 = Color3.fromRGB(150, 150, 170)
section1.Font = Enum.Font.GothamBold
section1.TextSize = 11
section1.TextXAlignment = Enum.TextXAlignment.Left
section1.Parent = ScrollingFrame

CreateToggle("God Mode", function(v) State.GodMode = v end)
CreateToggle("No Fall Damage", function(v) State.NoFall = v end)
CreateToggle("Noclip", function(v) State.Noclip = v end)
CreateToggle("Walk on Water", function(v) State.WalkOnWater = v end)

-- РАЗДЕЛ: ПЕРЕМЕЩЕНИЕ
local section2 = Instance.new("TextLabel")
section2.Size = UDim2.new(1, 0, 0, 20)
section2.BackgroundTransparency = 1
section2.Text = "🏃 ПЕРЕМЕЩЕНИЕ"
section2.TextColor3 = Color3.fromRGB(150, 150, 170)
section2.Font = Enum.Font.GothamBold
section2.TextSize = 11
section2.TextXAlignment = Enum.TextXAlignment.Left
section2.Parent = ScrollingFrame

CreateToggle("Infinite Jump", function(v) State.InfiniteJump = v end)
CreateToggle("✈️ Fly (нормальный полёт)", function(v) ToggleFly(v) end)

CreateSlider("FlySpeed", 20, 300, 60, function(v) State.FlySpeed = v end)
CreateSlider("WalkSpeed", 16, 300, 16, function(v) State.Speed = v end)
CreateSlider("JumpPower", 50, 500, 50, function(v) State.JumpPower = v end)

-- РАЗДЕЛ: ТЕЛЕПОРТЫ
local section3 = Instance.new("TextLabel")
section3.Size = UDim2.new(1, 0, 0, 20)
section3.BackgroundTransparency = 1
section3.Text = "📍 ТЕЛЕПОРТЫ"
section3.TextColor3 = Color3.fromRGB(150, 150, 170)
section3.Font = Enum.Font.GothamBold
section3.TextSize = 11
section3.TextXAlignment = Enum.TextXAlignment.Left
section3.Parent = ScrollingFrame

CreateButton("🏠 Teleport to Spawn", function()
    local spawn = workspace:FindFirstChild("SpawnLocation")
    if spawn and player.Character then
        local hrp = player.Character:FindFirstChild("HumanoidRootPart")
        if hrp then hrp.CFrame = spawn.CFrame + Vector3.new(0, 5, 0) end
    end
end)

CreateButton("🗺️ Teleport to SafeSpot", function()
    local safePos = CFrame.new(-278, 185, 344)
    local char = player.Character
    if char then
        local hrp = char:FindFirstChild("HumanoidRootPart")
        if hrp then hrp.CFrame = safePos end
    end
end)

CreateButton("⬆️ Подняться вверх (+100)", function()
    local hrp = player.Character and player.Character:FindFirstChild("HumanoidRootPart")
    if hrp then hrp.CFrame = hrp.CFrame + Vector3.new(0, 100, 0) end
end)

-- РАЗДЕЛ: ПРИКОЛЮХИ
local section4 = Instance.new("TextLabel")
section4.Size = UDim2.new(1, 0, 0, 20)
section4.BackgroundTransparency = 1
section4.Text = "🎪 ПРИКОЛЮХИ"
section4.TextColor3 = Color3.fromRGB(150, 150, 170)
section4.Font = Enum.Font.GothamBold
section4.TextSize = 11
section4.TextXAlignment = Enum.TextXAlignment.Left
section4.Parent = ScrollingFrame

CreateToggle("🌀 Super Ring (обломки вокруг)", function(v) ToggleSuperRing(v) end)
CreateButton("🔄 Пересобрать обломки", function() CollectDebris() end)

print("[NDS MEGA V3] Загружено! ✅")
-- Script provided by RobxScript.com
ADVERTISEMENT
MORE SCRIPTS

Related Scripts

COMMUNITY

Comments

Questions, setup notes and feedback from signed-in RobxScript users.

0
Loading comments...
BROWSE MORE

Browse more Natural Disaster Survival

Popular scripts from Natural Disaster Survival.

View category
FRESH POSTS

Browse the latest

Recently published Roblox scripts from across RobxScript.