
Key RequiredUniversal

-- Carregar a biblioteca Rayfield
local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))()
-- ===== ServiƧos =====
local UIS = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local HttpService = game:GetService("HttpService")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local rootPart = character:WaitForChild("HumanoidRootPart")
-- ===== ConfiguraƧƵes Globais =====
local settings = {
infiniteJump = false,
flyEnabled = false,
flySpeed = 50,
walkSpeed = 16,
jumpPower = 50,
hitboxEnabled = false,
hitboxSize = 1.5,
hitboxTransparency = 0.5,
invisible = false,
}
-- ===== VariƔveis Internas =====
local flyBodyVelocity = nil
local flyConnection = nil
local floatTime = 0
-- ===== Infinite Jump (UserInputService) =====
UIS.JumpRequest:Connect(function()
if settings.infiniteJump then
local char = player.Character
if char then
local hum = char:FindFirstChildOfClass("Humanoid")
if hum then
hum:ChangeState(Enum.HumanoidStateType.Jumping)
end
end
end
end)
-- ===== Fly (com suavização e animações) =====
local function toggleFly(state)
settings.flyEnabled = state
if state then
if not flyBodyVelocity then
flyBodyVelocity = Instance.new("BodyVelocity")
flyBodyVelocity.MaxForce = Vector3.new(1e9, 1e9, 1e9)
flyBodyVelocity.Velocity = Vector3.new(0, 0, 0)
flyBodyVelocity.Parent = rootPart
end
if not flyConnection then
flyConnection = RunService.Heartbeat:Connect(function(deltaTime)
if not settings.flyEnabled or not flyBodyVelocity then return end
local moveDir = humanoid.MoveDirection
local vertical = Vector3.new(0, 0, 0)
-- Subir (EspaƧo) e descer (Shift/Control)
if UIS:IsKeyDown(Enum.KeyCode.Space) then
vertical = Vector3.new(0, 1, 0)
elseif UIS:IsKeyDown(Enum.KeyCode.LeftControl) or UIS:IsKeyDown(Enum.KeyCode.LeftShift) then
vertical = Vector3.new(0, -1, 0)
end
local velocity = Vector3.new(0, 0, 0)
if moveDir.Magnitude > 0 or vertical.Magnitude > 0 then
local camera = workspace.CurrentCamera
local forward = camera.CFrame.LookVector
local right = camera.CFrame.RightVector
local up = camera.CFrame.UpVector
local horizontal = (forward * -moveDir.Z + right * moveDir.X) * settings.flySpeed
local verticalVelocity = vertical * settings.flySpeed
velocity = horizontal + verticalVelocity
end
-- Suavização (interpolação)
local smoothFactor = 1 - math.exp(-0.2 * deltaTime * 60)
local newVel = flyBodyVelocity.Velocity:Lerp(velocity, smoothFactor)
flyBodyVelocity.Velocity = newVel
-- Efeito de flutuação (apenas quando parado)
if velocity.Magnitude == 0 and vertical.Magnitude == 0 then
floatTime = floatTime + deltaTime * 2
local floatOffset = math.sin(floatTime) * 0.5
flyBodyVelocity.Velocity = flyBodyVelocity.Velocity + Vector3.new(0, floatOffset * deltaTime, 0)
end
end)
end
Rayfield:Notify("Fly", "Ativado! Velocidade: " .. settings.flySpeed, 3)
else
if flyBodyVelocity then
flyBodyVelocity:Destroy()
flyBodyVelocity = nil
end
if flyConnection then
flyConnection:Disconnect()
flyConnection = nil
end
Rayfield:Notify("Fly", "Desativado!", 3)
end
end
-- ===== WalkSpeed e JumpPower =====
local function setWalkSpeed(value)
settings.walkSpeed = value
if humanoid then humanoid.WalkSpeed = value end
end
local function setJumpPower(value)
settings.jumpPower = value
if humanoid then humanoid.JumpPower = value end
end
-- ===== Invisibility =====
local function setInvisible(state)
settings.invisible = state
local char = player.Character
if not char then return end
for _, part in pairs(char:GetDescendants()) do
if part:IsA("BasePart") then
part.Transparency = state and 1 or 0
end
end
-- Acessórios
for _, acc in pairs(char:GetChildren()) do
if acc:IsA("Accessory") and acc:FindFirstChild("Handle") then
acc.Handle.Transparency = state and 1 or 0
end
end
end
-- ===== Hitbox Expander =====
local function toggleHitbox(state)
settings.hitboxEnabled = state
local char = player.Character
if not char then return end
if state then
for _, part in pairs(char:GetDescendants()) do
if part:IsA("BasePart") then
part.Size = part.Size * settings.hitboxSize
part.Transparency = settings.hitboxTransparency
end
end
else
for _, part in pairs(char:GetDescendants()) do
if part:IsA("BasePart") then
part.Size = part.Size / settings.hitboxSize
part.Transparency = 0
end
end
if settings.invisible then setInvisible(true) end
end
end
local function setHitboxSize(value)
settings.hitboxSize = value
if settings.hitboxEnabled then
toggleHitbox(false)
toggleHitbox(true)
end
end
local function setHitboxTransparency(value)
settings.hitboxTransparency = value
if settings.hitboxEnabled then
local char = player.Character
if char then
for _, part in pairs(char:GetDescendants()) do
if part:IsA("BasePart") then
part.Transparency = value
end
end
end
end
end
-- ===== Salvar / Carregar ConfiguraƧƵes =====
local function saveSettings()
local json = HttpService:JSONEncode(settings)
local success, err = pcall(function()
writefile("nitarymenu_settings.json", json)
end)
if success then
Rayfield:Notify("Settings Saved", "ConfiguraƧƵes salvas com sucesso!", 3)
else
Rayfield:Notify("Save Failed", "Erro ao salvar: " .. tostring(err), 3)
end
end
local function loadSettings()
local success, data = pcall(function()
return readfile("nitarymenu_settings.json")
end)
if success then
local decoded = HttpService:JSONDecode(data)
if decoded then
for k, v in pairs(decoded) do
settings[k] = v
end
-- Aplicar configuraƧƵes
setWalkSpeed(settings.walkSpeed)
setJumpPower(settings.jumpPower)
toggleFly(settings.flyEnabled)
toggleHitbox(settings.hitboxEnabled)
setInvisible(settings.invisible)
Rayfield:Notify("Settings Loaded", "ConfiguraƧƵes carregadas!", 3)
else
Rayfield:Notify("Load Failed", "Arquivo invƔlido", 3)
end
else
Rayfield:Notify("Load Failed", "Nenhum arquivo salvo", 3)
end
end
local function resetSettings()
settings = {
infiniteJump = false,
flyEnabled = false,
flySpeed = 50,
walkSpeed = 16,
jumpPower = 50,
hitboxEnabled = false,
hitboxSize = 1.5,
hitboxTransparency = 0.5,
invisible = false,
}
setWalkSpeed(settings.walkSpeed)
setJumpPower(settings.jumpPower)
toggleFly(false)
toggleHitbox(false)
setInvisible(false)
Rayfield:Notify("Settings Reset", "Todas as configuraƧƵes foram resetadas", 3)
end
-- ===== Interface Rayfield =====
local Window = Rayfield:CreateWindow({
Name = "nitary menu",
LoadingTitle = "Carregando...",
Theme = "Default",
ConfigurationSaving = {
Enabled = true,
FolderName = "nitarymenu",
FileName = "Settings"
},
KeySystem = false,
})
-- Abas
local playerTab = Window:CreateTab("Player", 4483362458)
local hitboxTab = Window:CreateTab("Hitbox", 4483362458)
local configTab = Window:CreateTab("ConfiguraƧƵes", 4483362458)
-- ===== Player Tab =====
playerTab:CreateSection("Movement")
playerTab:CreateToggle({
Name = "Infinite Jump",
CurrentValue = false,
Callback = function(value)
settings.infiniteJump = value
end,
})
playerTab:CreateSlider({
Name = "Walk Speed",
Range = {0, 100},
Increment = 1,
Suffix = "Speed",
CurrentValue = settings.walkSpeed,
Callback = function(value)
setWalkSpeed(value)
end,
})
playerTab:CreateSlider({
Name = "Jump Power",
Range = {0, 200},
Increment = 1,
Suffix = "Power",
CurrentValue = settings.jumpPower,
Callback = function(value)
setJumpPower(value)
end,
})
playerTab:CreateSection("Fly System")
playerTab:CreateToggle({
Name = "Enable Fly",
CurrentValue = false,
Callback = function(value)
toggleFly(value)
end,
})
playerTab:CreateSlider({
Name = "Fly Speed",
Range = {10, 200},
Increment = 1,
Suffix = "Speed",
CurrentValue = settings.flySpeed,
Callback = function(value)
settings.flySpeed = value
if settings.flyEnabled then
Rayfield:Notify("Fly Speed", "Velocidade ajustada para " .. value, 2)
end
end,
})
playerTab:CreateSection("Visual")
playerTab:CreateToggle({
Name = "Invisibility",
CurrentValue = false,
Callback = function(value)
setInvisible(value)
end,
})
-- ===== Hitbox Tab =====
hitboxTab:CreateSection("Hitbox Expander")
hitboxTab:CreateToggle({
Name = "Enable Hitbox Expander",
CurrentValue = false,
Callback = function(value)
toggleHitbox(value)
end,
})
hitboxTab:CreateSlider({
Name = "Hitbox Size",
Range = {0.5, 3},
Increment = 0.1,
Suffix = "x",
CurrentValue = settings.hitboxSize,
Callback = function(value)
setHitboxSize(value)
end,
})
hitboxTab:CreateSlider({
Name = "Hitbox Transparency",
Range = {0, 1},
Increment = 0.05,
Suffix = "Alpha",
CurrentValue = settings.hitboxTransparency,
Callback = function(value)
setHitboxTransparency(value)
end,
})
-- ===== ConfiguraƧƵes Tab =====
configTab:CreateSection("Save / Load")
configTab:CreateButton({
Name = "Save Settings",
Callback = function()
saveSettings()
end,
})
configTab:CreateButton({
Name = "Load Settings",
Callback = function()
loadSettings()
end,
})
configTab:CreateButton({
Name = "Reset Settings",
Callback = function()
resetSettings()
end,
})
configTab:CreateButton({
Name = "Test Notification",
Callback = function()
Rayfield:Notify("Notification", "Teste de notificação!", 3)
end,
})
-- ===== Inicialização =====
setWalkSpeed(settings.walkSpeed)
setJumpPower(settings.jumpPower)
-- Reaplicar configuraƧƵes ao renascer
player.CharacterAdded:Connect(function(newChar)
character = newChar
humanoid = character:WaitForChild("Humanoid")
rootPart = character:WaitForChild("HumanoidRootPart")
setWalkSpeed(settings.walkSpeed)
setJumpPower(settings.jumpPower)
if settings.flyEnabled then toggleFly(true) end
if settings.hitboxEnabled then toggleHitbox(true) end
if settings.invisible then setInvisible(true) end
end)
-- Notificação inicial
Rayfield:Notify("nitary menu", "Carregado com sucesso! Use EspaƧo para subir e Shift para descer no Fly.", 5)No comments yet for this script.



