Rust (old) script | source code | keyless
Key Required

Rust (old) script | source code | keyless

#ржавчина (старый)ilyxagaydovilyxagaydov 4.2K views 1.3K executesUpdated Feb 23, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•609 lines (18517 chars)
getgenv().Config = {
    Invite = "informant.wtf",
    Version = "0.1",
}

getgenv().luaguardvars = {
    DiscordName = "shutka1",
}

-- Load RayField
local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))()

-- Services
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local ProximityPromptService = game:GetService("ProximityPromptService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local player = Players.LocalPlayer
local camera = workspace.CurrentCamera

-- Variables for functions
local espEnabled = false
local espFolder = Instance.new("Folder", player.PlayerGui)
espFolder.Name = "ESPFolder"

local aiming = false
local aimbotEnabled = false
local aimbotActive = false
local aimbotFOV = 30
local aimbotSmoothness = 3
local aimbotToggleMode = false

local instantInteractEnabled = false
local godModeActive = false
local nightVisionEnabled = false

-- FOV Circle
local FOVCircle = Drawing.new("Circle")
FOVCircle.Thickness = 2
FOVCircle.Color = Color3.fromRGB(255, 0, 0)
FOVCircle.Filled = false
FOVCircle.Visible = false
FOVCircle.Radius = aimbotFOV
FOVCircle.NumSides = 60
FOVCircle.Position = Vector2.new(camera.ViewportSize.X / 2, camera.ViewportSize.Y / 2)

-- Settings table
local Settings = {
    Aimbot = false,
    AimbotFOV = 30,
    ShowFOV = false,
    AimbotSmoothness = 3,
    ToggleMode = false,
    ESP = false,
    NightVision = false,
    InstantInteract = false,
    GodMode = false
}

-- Helper functions
local function getClosestPlayerToCrosshair(fov)
    local closestPlayer = nil
    local closestAngle = math.huge
    local mousePos = Vector2.new(camera.ViewportSize.X/2, camera.ViewportSize.Y/2)
    
    for _, plr in pairs(Players:GetPlayers()) do
        if plr ~= player and plr.Character and plr.Character:FindFirstChild("Head") then
            local head = plr.Character.Head
            local headPos, onScreen = camera:WorldToViewportPoint(head.Position)
            
            if onScreen then
                local distance = (Vector2.new(headPos.X, headPos.Y) - mousePos).Magnitude
                local angle = math.deg(math.atan(distance / camera.ViewportSize.X * 2))
                
                if angle < fov and angle < closestAngle then
                    closestAngle = angle
                    closestPlayer = plr
                end
            end
        end
    end
    
    return closestPlayer
end

local function smoothAim(targetPosition, smoothness)
    local currentCFrame = camera.CFrame
    local targetDirection = (targetPosition - currentCFrame.Position).Unit
    local currentLookVector = currentCFrame.LookVector
    
    local dotProduct = currentLookVector:Dot(targetDirection)
    local angle = math.acos(math.clamp(dotProduct, -1, 1))
    
    if angle > math.rad(0.1) then
        local maxAngle = math.rad(smoothness or 5)
        local t = math.min(maxAngle / angle, 1)
        local newLookVector = currentLookVector:Lerp(targetDirection, t)
        return CFrame.new(currentCFrame.Position, currentCFrame.Position + newLookVector)
    end
    
    return currentCFrame
end

-- Create RayField Window
local Window = Rayfield:CreateWindow({
    Name = "Rust Cheats - Discord: shutka1 | Roblox: rustpro_1",
    LoadingTitle = "Loading Cheats...",
    ConfigurationSaving = {
        Enabled = true,
        FolderName = "RustCheats",
        FileName = "Config"
    },
    Discord = {
        Enabled = true,
        Invite = "informant.wtf",
        RememberJoins = true
    },
    KeySystem = false
})

--- MAIN TAB ---
local MainTab = Window:CreateTab("Main", 4483345998)
local MainSection = MainTab:CreateSection("Combat")

MainTab:CreateButton({
    Name = "Infinity Ammo (9999999 ammo)",
    Callback = function()
        local TARGET_AMMO = 9999999
        
        local function setAmmoOnTool(tool)
            local acs = tool:FindFirstChild("ACS_Modulo", true)
            if not acs then return false end
            local vars = acs:FindFirstChild("Variaveis", true)
            if not vars then return false end
            local ammo = vars:FindFirstChild("Ammo")
            if not ammo then return false end

            if ammo:IsA("IntValue") or ammo:IsA("NumberValue") then
                if ammo.Value ~= TARGET_AMMO then
                    ammo.Value = TARGET_AMMO
                end
                return true
            end
            return false
        end

        local function processContainer(container)
            if not container then return end
            for _, child in ipairs(container:GetChildren()) do
                pcall(setAmmoOnTool, child)
            end
        end

        task.spawn(function()
            local backpack = player:WaitForChild("Backpack")
            processContainer(backpack)
        end)
        
        Rayfield:Notify({
            Title = "Success",
            Content = "Infinity Ammo Activated!",
            Duration = 3
        })
    end,
})

MainTab:CreateButton({
    Name = "God Mode (Safe Zone)",
    Callback = function()
        local targetRotation = Vector3.new(0.0020000000949949026, 57.36399841308594, 89.99700164794922)
        local targetCFrame = CFrame.new(
            -302.364044, 22.5427284, -1095.56982,
            2.8199549e-05, -0.539300025, 0.842113733,
            1, 2.28938497e-05, -1.88251233e-05,
            -9.12683754e-06, 0.842113733, 0.539300025
        )

        local epsilon = 0.001

        for _, obj in ipairs(workspace:GetChildren()) do
            if obj:IsA("BasePart") then
                local rot = obj.Rotation
                local cfr = obj.CFrame

                local rotMatch = (rot - targetRotation).Magnitude < epsilon
                local cfrMatch = (cfr.Position - targetCFrame.Position).Magnitude < epsilon 
                    and (cfr.LookVector - targetCFrame.LookVector).Magnitude < epsilon

                if rotMatch and cfrMatch then
                    obj.Size = obj.Size * 100000000
                    Rayfield:Notify({
                        Title = "Success",
                        Content = "God Mode Activated!",
                        Duration = 3
                    })
                    break
                end
            end
        end
    end,
})

MainTab:CreateButton({
    Name = "Admin Gun",
    Callback = function()
        local toolTemplate = ReplicatedStorage:WaitForChild("Tools"):WaitForChild("AK47")
        local eokaSettings = ReplicatedStorage:WaitForChild("Tools"):WaitForChild("EOKA"):WaitForChild("ACS_Modulo"):WaitForChild("Variaveis"):WaitForChild("Settings")

        local clonedTool = toolTemplate:Clone()
        clonedTool.Parent = player:WaitForChild("Backpack")

        local playerTool = player.Backpack:WaitForChild("AK47")
        local acsModulo = playerTool:WaitForChild("ACS_Modulo")
        local variaveis = acsModulo:WaitForChild("Variaveis")

        if variaveis:FindFirstChild("Settings") then
            variaveis.Settings:Destroy()
        end

        local newSettings = eokaSettings:Clone()
        newSettings.Parent = variaveis

        local targetPlayer = Players:FindFirstChild(player.Name)
        if targetPlayer then
            local targetTool = targetPlayer.Backpack:FindFirstChild("AK47")
            if targetTool then
                local targetVariaveis = targetTool:FindFirstChild("ACS_Modulo") and targetTool.ACS_Modulo:FindFirstChild("Variaveis")
                if targetVariaveis then
                    local ammo = targetVariaveis:FindFirstChild("Ammo")
                    if ammo and ammo:IsA("IntValue") then
                        ammo.Value = 9999
                    end
                end
            end
        end
        
        Rayfield:Notify({
            Title = "Success",
            Content = "Admin Gun Created!",
            Duration = 3
        })
    end,
})

MainTab:CreateToggle({
    Name = "Aimbot",
    CurrentValue = false,
    Callback = function(Value)
        Settings.Aimbot = Value
        aimbotEnabled = Value
    end,
})

MainTab:CreateToggle({
    Name = "Toggle Mode (Hold/Switch)",
    CurrentValue = false,
    Callback = function(Value)
        Settings.ToggleMode = Value
        aimbotToggleMode = Value
        if not Value then
            aimbotActive = false
        end
    end,
})

MainTab:CreateToggle({
    Name = "Show FOV Circle",
    CurrentValue = false,
    Callback = function(Value)
        Settings.ShowFOV = Value
        FOVCircle.Visible = Value
    end,
})

MainTab:CreateSlider({
    Name = "Aimbot FOV",
    Range = {10, 180},
    Increment = 5,
    CurrentValue = 30,
    Callback = function(Value)
        Settings.AimbotFOV = Value
        aimbotFOV = Value
        FOVCircle.Radius = Value
    end,
})

MainTab:CreateSlider({
    Name = "Aimbot Smoothness",
    Range = {1, 10},
    Increment = 1,
    CurrentValue = 3,
    Callback = function(Value)
        Settings.AimbotSmoothness = Value
        aimbotSmoothness = Value
    end,
})

MainTab:CreateToggle({
    Name = "Instant Interact",
    CurrentValue = false,
    Callback = function(Value)
        Settings.InstantInteract = Value
        instantInteractEnabled = Value
    end,
})

local BuildingSection = MainTab:CreateSection("Building")

MainTab:CreateButton({
    Name = "Delete Every Building Permission",
    Callback = function()
        local myName = player.Name
        local builds = workspace:WaitForChild("Builds")
        for _, obj in ipairs(builds:GetChildren()) do
            local playerTag = obj:FindFirstChild("PlayerWhoPlaced")
            if playerTag and (playerTag:IsA("ObjectValue") or playerTag:IsA("StringValue")) then
                playerTag.Value = myName
            end
        end
        Rayfield:Notify({
            Title = "Success",
            Content = "Building Permissions Changed!",
            Duration = 3
        })
    end,
})

MainTab:CreateButton({
    Name = "Multi Tool",
    Callback = function()
        local backpack = player:WaitForChild("Backpack")
        local toolsFolder = ReplicatedStorage:WaitForChild("Tools")
        local hammerTool = toolsFolder:WaitForChild("Hammer")
        local buildingPlanTool = toolsFolder:WaitForChild("Building Plan")

        local hammerClone = hammerTool:Clone()
        hammerClone.Parent = backpack
        hammerClone:WaitForChild("ToolScript")

        local buildingPlanScript = buildingPlanTool:WaitForChild("ToolScript")
        local scriptClone = buildingPlanScript:Clone()
        scriptClone.Parent = hammerClone
        
        Rayfield:Notify({
            Title = "Success",
            Content = "Multi Tool Created!",
            Duration = 3
        })
    end,
})

--- VISUALS TAB ---
local VisualsTab = Window:CreateTab("Visuals", 4483345998)
local ESPSection = VisualsTab:CreateSection("ESP")

VisualsTab:CreateToggle({
    Name = "Enable ESP",
    CurrentValue = false,
    Callback = function(Value)
        Settings.ESP = Value
        espEnabled = Value
    end,
})

local OtherVisualsSection = VisualsTab:CreateSection("Other Visuals")

VisualsTab:CreateToggle({
    Name = "Night Vision",
    CurrentValue = false,
    Callback = function(Value)
        Settings.NightVision = Value
        nightVisionEnabled = Value
        if Value then
            camera.Brightness = 2
            camera.Contrast = 1.5
            camera.ExposureCompensation = 0.5
        else
            camera.Brightness = 1
            camera.Contrast = 1
            camera.ExposureCompensation = 0
        end
    end,
})

--- TELEPORT TAB ---
local TeleportTab = Window:CreateTab("Teleport", 4483345998)
local LocationsSection = TeleportTab:CreateSection("Locations")

TeleportTab:CreateButton({
    Name = "Teleport to Admin Crate",
    Callback = function()
        local char = player.Character
        if char and char:FindFirstChild("HumanoidRootPart") then
            char.HumanoidRootPart.CFrame = CFrame.new(Vector3.new(923.024841, -37.889999, -29.086742))
            Rayfield:Notify({
                Title = "Teleported",
                Content = "You are at Admin Crate",
                Duration = 3
            })
        end
    end,
})

TeleportTab:CreateButton({
    Name = "Teleport to Admin Coin (800k)",
    Callback = function()
        local char = player.Character
        if char and char:FindFirstChild("HumanoidRootPart") then
            char.HumanoidRootPart.CFrame = CFrame.new(Vector3.new(558.857, 1404.85, -549.329))
            Rayfield:Notify({
                Title = "Teleported",
                Content = "You are at Admin Coin",
                Duration = 3
            })
        end
    end,
})

--- ITEMS TAB ---
local ItemsTab = Window:CreateTab("Items", 4483345998)
local ItemsSection = ItemsTab:CreateSection("Item Spawner")

-- Item paths
local itemPaths = {
    ["AK47"] = "ReplicatedStorage.Tools.AK47",
    ["AWM"] = "ReplicatedStorage.Tools.AWM", 
    ["BOLT"] = "ReplicatedStorage.Tools.BOLT",
    ["CROSSBOW"] = "ReplicatedStorage.Tools.CROSSBOW",
    ["EOKA"] = "ReplicatedStorage.Tools.EOKA",
    ["Hammer"] = "ReplicatedStorage.Tools.Hammer",
    ["Key"] = "ReplicatedStorage.Tools.Key",
    ["MP5"] = "ReplicatedStorage.Tools.MP5",
    ["P229"] = "ReplicatedStorage.Tools.P229",
    ["REVOLVER"] = "ReplicatedStorage.Tools.REVOLVER",
    ["RIFLE"] = "ReplicatedStorage.Tools.RIFLE",
    ["SKS"] = "ReplicatedStorage.Tools.SKS",
    ["THOMPSON"] = "ReplicatedStorage.Tools.THOMPSON",
    ["card"] = "ReplicatedStorage.Tools.card",
    ["M249"] = "ReplicatedStorage.ShopItems.M249",
    ["M39"] = "ReplicatedStorage.ShopItems.M39"
}

-- Create dropdown for items
local itemOptions = {}
for itemName, _ in pairs(itemPaths) do
    table.insert(itemOptions, itemName)
end

ItemsTab:CreateDropdown({
    Name = "Select Item to Spawn",
    Options = itemOptions,
    CurrentOption = "AK47",
    MultipleOptions = false,
    Callback = function(Option)
        selectedItem = Option[1]
    end,
})

ItemsTab:CreateButton({
    Name = "Spawn Selected Item",
    Callback = function()
        if not selectedItem then 
            Rayfield:Notify({
                Title = "Error",
                Content = "Select an item first!",
                Duration = 3
            })
            return 
        end
        
        local path = itemPaths[selectedItem]
        local parts = string.split(path, ".")
        local current = game
        
        for _, part in ipairs(parts) do
            current = current:FindFirstChild(part)
            if not current then 
                Rayfield:Notify({
                    Title = "Error",
                    Content = "Item not found!",
                    Duration = 3
                })
                return 
            end
        end
        
        if current and current:IsA("Tool") then
            local backpack = player:WaitForChild("Backpack")
            local toolClone = current:Clone()
            toolClone.Parent = backpack
            
            Rayfield:Notify({
                Title = "Success",
                Content = selectedItem .. " spawned!",
                Duration = 3
            })
        end
    end,
})

--- SETTINGS TAB ---
local SettingsTab = Window:CreateTab("Settings", 4483345998)
local SettingsSection = SettingsTab:CreateSection("Configuration")

SettingsTab:CreateButton({
    Name = "Toggle Menu (RightCtrl)",
    Callback = function()
        Rayfield:Notify({
            Title = "Info",
            Content = "Press Right Control to toggle menu",
            Duration = 3
        })
    end,
})

SettingsTab:CreateButton({
    Name = "Destroy GUI",
    Callback = function()
        Rayfield:Destroy()
    end,
})

-- Input handling for aimbot
UserInputService.InputBegan:Connect(function(input, processed)
    if not processed then
        if input.UserInputType == Enum.UserInputType.MouseButton2 then
            aiming = true
            if Settings.Aimbot and not Settings.ToggleMode then
                aimbotActive = true
            end
        end
    end
end)

UserInputService.InputEnded:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton2 then
        aiming = false
        if not Settings.ToggleMode then
            aimbotActive = false
        end
    end
end)

-- Toggle menu with RightCtrl
UserInputService.InputBegan:Connect(function(input, processed)
    if not processed and input.KeyCode == Enum.KeyCode.RightControl then
        Rayfield:Toggle()
    end
end)

-- Update FOV circle position
RunService.RenderStepped:Connect(function()
    FOVCircle.Position = Vector2.new(camera.ViewportSize.X / 2, camera.ViewportSize.Y / 2)
    FOVCircle.Visible = Settings.ShowFOV
    
    -- Update FOV radius
    if FOVCircle.Radius ~= Settings.AimbotFOV then
        FOVCircle.Radius = Settings.AimbotFOV
    end
end)

-- Main loops
RunService.RenderStepped:Connect(function()
    -- ESP
    if Settings.ESP then
        espFolder:ClearAllChildren()
        for _, plr in pairs(Players:GetPlayers()) do
            if plr ~= player and plr.Character and plr.Character:FindFirstChild("Head") then
                local highlight = Instance.new("Highlight")
                highlight.Adornee = plr.Character
                highlight.FillTransparency = 1
                highlight.OutlineColor = Color3.fromRGB(0, 255, 0)
                highlight.Parent = espFolder
            end
        end
    else
        espFolder:ClearAllChildren()
    end
    
    -- Aimbot
    if Settings.Aimbot and aimbotActive and aiming then
        local targetPlayer = getClosestPlayerToCrosshair(Settings.AimbotFOV)
        
        if targetPlayer and targetPlayer.Character and targetPlayer.Character:FindFirstChild("Head") then
            local head = targetPlayer.Character.Head
            camera.CFrame = smoothAim(head.Position, Settings.AimbotSmoothness)
        end
    end
    
    -- Instant Interact
    if Settings.InstantInteract then
        for _, prompt in pairs(workspace:GetDescendants()) do
            if prompt:IsA("ProximityPrompt") then
                prompt.HoldDuration = 0
            end
        end
    end
end)

-- Instant Interact handler
if Settings.InstantInteract then
    ProximityPromptService.PromptAdded:Connect(function(prompt)
        prompt.HoldDuration = 0
    end)
end

print("Rust Cheats loaded successfully with RayField GUI!")
print("Press RightControl to show/hide menu")

Features & Information

THIS IS FOR OLD RUST/RUSTED, IT CANT WORK ON NEW RUSTED VERSION I made ehis script in 2025 lol, It worked until the game was updated... 1. Main: 1. Infinity Ammo 2. God Mode 3. Give Admin Gun 4. Aimbot 5. Toggle Aimbot Mode 6. Show FOV Circle 7. Aimbot FOV Slider 8. Aimbot Smoothness 9. Instant Interact 10. Delete Every Building Permission 11. Multi Tool (Hammer + Building Plan) 2. Visuals 1. ESP: 2. Night Vision 3. Teleport: 1. Teleport To Admin Crate 2. Teleport To Admin Coin (It Gives 800k Scrap) 4. Items Giver: 1. Select Item To Spawn In Inventory 2. Spawn Selected Item 5. Settings: 1. Destroy GUI
#rust old#keyless#op#op script

Community Comments (3)

bogdankrutoy228bogdankrutoy228Mar 30, 2026

жеский ии скрипт

Replying to @bogdankrutoy228
ilyxagaydovilyxagaydovApr 3, 2026

@bogdankrutoy228 говорит тип который все свои скрипты сделал нейронкой + нейронка тут только меню переписала так как старое перестало работать а самому лень переписывать

Replying to @bogdankrutoy228
ilyxagaydovilyxagaydovApr 3, 2026

@bogdankrutoy228 это если что не на растед а на раст олд (старый растед)