
KeylessUniversal

-- 99 nights gui
-- made this for me and my friends lol
wait(2)
local plr = game.Players.LocalPlayer
local char = plr.Character or plr.CharacterAdded:Wait()
local cam = workspace.CurrentCamera
local runService = game:GetService("RunService")
local uis = game:GetService("UserInputService")
local rs = game:GetService("ReplicatedStorage")
local tweenService = game:GetService("TweenService")
-- ui lib
local ui = loadstring(game:HttpGet("https://github.com/Footagesus/WindUI/releases/latest/download/main.lua"))()
-- settings
local settings = {
autoHunger = false,
autoFarm = false,
autoBreak = false,
noclipActive = false,
playerEsp = false,
itemEsp = false,
hitboxes = {
wolves = false,
rabbits = false,
cultists = false,
size = 15,
visible = false
}
}
-- some helper functions
local function notify(title, msg)
game.StarterGui:SetCore("SendNotification", {
Title = title,
Text = msg,
Duration = 3
})
end
local function getPlayer()
return plr.Character and plr.Character:FindFirstChild("HumanoidRootPart")
end
local function bringItems(itemName)
local root = getPlayer()
if not root then return end
for i,v in pairs(workspace.Items:GetChildren()) do
if string.find(string.lower(v.Name), string.lower(itemName)) then
local part = v:FindFirstChildOfClass("BasePart")
if part then
part.CFrame = root.CFrame * CFrame.new(math.random(-3,3), 2, math.random(-3,3))
end
end
end
end
-- esp stuff
local function makeEsp(obj, color, text)
if not obj then return end
local highlight = Instance.new("Highlight")
highlight.Parent = obj
highlight.FillTransparency = 1
highlight.OutlineTransparency = 0
highlight.OutlineColor = color
highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
local gui = Instance.new("BillboardGui")
gui.Parent = obj
gui.Size = UDim2.new(0, 100, 0, 50)
gui.StudsOffset = Vector3.new(0, 3, 0)
gui.AlwaysOnTop = true
local label = Instance.new("TextLabel")
label.Parent = gui
label.Size = UDim2.new(1, 0, 1, 0)
label.BackgroundTransparency = 1
label.TextColor3 = color
label.TextScaled = true
label.Text = text
label.Font = Enum.Font.SourceSans
end
local function removeEsp(obj)
if obj then
local highlight = obj:FindFirstChild("Highlight")
if highlight then highlight:Destroy() end
local gui = obj:FindFirstChild("BillboardGui")
if gui then gui:Destroy() end
end
end
-- hitbox stuff
local function updateHitboxes()
for i,v in pairs(workspace.Characters:GetChildren()) do
local hrp = v:FindFirstChild("HumanoidRootPart")
if hrp then
local name = string.lower(v.Name)
local shouldExpand = false
if settings.hitboxes.wolves and (name:find("wolf") or name:find("alpha")) then
shouldExpand = true
elseif settings.hitboxes.rabbits and name:find("bunny") then
shouldExpand = true
elseif settings.hitboxes.cultists and name:find("cultist") then
shouldExpand = true
end
if shouldExpand then
hrp.Size = Vector3.new(settings.hitboxes.size, settings.hitboxes.size, settings.hitboxes.size)
hrp.Transparency = settings.hitboxes.visible and 0.7 or 1
hrp.CanCollide = false
hrp.Color = Color3.new(1, 0, 0)
hrp.Material = Enum.Material.ForceField
end
end
end
end
-- make the gui
local window = ui:CreateWindow({
Title = "99 nights helper",
Size = UDim2.fromOffset(600, 450),
Theme = "Dark"
})
-- tabs
local mainTab = window:Tab({Title = "Main", Icon = "home"})
local playerTab = window:Tab({Title = "Player", Icon = "user"})
local farmTab = window:Tab({Title = "Farm", Icon = "zap"})
local itemTab = window:Tab({Title = "Items", Icon = "package"})
local espTab = window:Tab({Title = "ESP", Icon = "eye"})
local hitboxTab = window:Tab({Title = "Hitbox", Icon = "target"})
local miscTab = window:Tab({Title = "Misc", Icon = "settings"})
-- main tab
mainTab:Toggle({
Title = "Auto Feed",
Default = false,
Callback = function(state)
settings.autoHunger = state
if state then
spawn(function()
local remote = rs.RemoteEvents:FindFirstChild("RequestConsumeItem")
while settings.autoHunger and remote do
pcall(function()
remote:InvokeServer(Instance.new("Model"))
end)
wait(1.5)
end
end)
end
end
})
mainTab:Button({
Title = "Cook All Meat",
Callback = function()
local campfire = Vector3.new(1.87, 4.33, -3.67)
for i,v in pairs(workspace.Items:GetChildren()) do
if string.find(string.lower(v.Name), "meat") then
local part = v:FindFirstChildOfClass("BasePart")
if part then
part.CFrame = CFrame.new(campfire + Vector3.new(math.random(-1,1), 1, math.random(-1,1)))
end
end
end
notify("Cooking", "moved meat to campfire")
end
})
-- player tab
playerTab:Slider({
Title = "Speed",
Min = 16,
Max = 200,
Default = 16,
Callback = function(val)
if plr.Character and plr.Character:FindFirstChild("Humanoid") then
plr.Character.Humanoid.WalkSpeed = val
end
end
})
playerTab:Slider({
Title = "Jump",
Min = 50,
Max = 300,
Default = 50,
Callback = function(val)
if plr.Character and plr.Character:FindFirstChild("Humanoid") then
plr.Character.Humanoid.JumpPower = val
end
end
})
playerTab:Toggle({
Title = "Noclip",
Default = false,
Callback = function(state)
settings.noclipActive = state
if state then
spawn(function()
while settings.noclipActive do
if plr.Character then
for i,v in pairs(plr.Character:GetDescendants()) do
if v:IsA("BasePart") then
v.CanCollide = false
end
end
end
runService.Heartbeat:Wait()
end
end)
end
end
})
playerTab:Toggle({
Title = "God Mode",
Default = false,
Callback = function(state)
if plr.Character and plr.Character:FindFirstChild("Humanoid") then
if state then
plr.Character.Humanoid.MaxHealth = math.huge
plr.Character.Humanoid.Health = math.huge
else
plr.Character.Humanoid.MaxHealth = 100
plr.Character.Humanoid.Health = 100
end
end
end
})
-- farm tab
farmTab:Toggle({
Title = "Auto Tree Farm",
Default = false,
Callback = function(state)
settings.autoFarm = state
if state then
spawn(function()
local toolDamage = rs.RemoteEvents:FindFirstChild("ToolDamageObject")
while settings.autoFarm do
local trees = {}
-- find trees
if workspace:FindFirstChild("Map") then
local landmarks = workspace.Map:FindFirstChild("Landmarks") or workspace.Map:FindFirstChild("Foliage")
if landmarks then
for i,v in pairs(landmarks:GetChildren()) do
if v.Name == "Small Tree" and v:FindFirstChild("Trunk") then
table.insert(trees, v)
end
end
end
end
-- farm trees
for i,tree in pairs(trees) do
if not settings.autoFarm then break end
if tree and tree.Parent then
local myChar = plr.Character
local root = myChar and myChar:FindFirstChild("HumanoidRootPart")
if root and tree:FindFirstChild("Trunk") then
root.CFrame = tree.Trunk.CFrame * CFrame.new(3, 0, 0)
wait(0.3)
-- get axe
local axe = nil
if plr:FindFirstChild("Inventory") then
axe = plr.Inventory:FindFirstChild("Old Axe") or plr.Inventory:FindFirstChild("Good Axe")
end
if axe then
if axe.Parent == plr.Backpack then
axe.Parent = myChar
wait(0.2)
end
while tree.Parent and settings.autoFarm do
pcall(function()
axe:Activate()
if toolDamage then
toolDamage:InvokeServer(tree, axe, "1_8264699301", tree.Trunk.CFrame)
end
end)
wait(0.8)
end
end
end
end
wait(0.5)
end
wait(2)
end
end)
end
end
})
farmTab:Toggle({
Title = "Auto Break (look at tree)",
Default = false,
Callback = function(state)
settings.autoBreak = state
if state then
spawn(function()
while settings.autoBreak do
local weapon = nil
if plr:FindFirstChild("Inventory") then
weapon = plr.Inventory:FindFirstChild("Old Axe") or
plr.Inventory:FindFirstChild("Good Axe") or
plr.Inventory:FindFirstChild("Strong Axe")
end
if weapon then
local ray = workspace:Raycast(cam.CFrame.Position, cam.CFrame.LookVector * 20)
if ray and ray.Instance and ray.Instance.Name == "Trunk" then
pcall(function()
rs.RemoteEvents.ToolDamageObject:InvokeServer(
ray.Instance.Parent, weapon, "4_7591937906", CFrame.new(ray.Position)
)
end)
end
end
wait(0.5)
end
end)
end
end
})
-- item tab
local itemList = {
"Log", "Stone", "Rope", "Nails", "Scrap", "Wood", "Cloth", "Bandage", "Meat",
"Spear", "Knife", "Revolver", "Rifle", "Ammo", "Coal", "Oil", "Radio"
}
for i,item in pairs(itemList) do
itemTab:Button({
Title = "Get " .. item,
Callback = function()
bringItems(item)
notify("Items", "brought " .. item)
end
})
end
itemTab:Button({
Title = "Bring Everything",
Callback = function()
local root = getPlayer()
if root then
for i,v in pairs(workspace.Items:GetChildren()) do
local part = v:FindFirstChildOfClass("BasePart")
if part then
part.CFrame = root.CFrame * CFrame.new(math.random(-8,8), 0, math.random(-8,8))
end
end
notify("Items", "brought all items")
end
end
})
-- esp tab
espTab:Toggle({
Title = "Player ESP",
Default = false,
Callback = function(state)
settings.playerEsp = state
if state then
spawn(function()
while settings.playerEsp do
for i,player in pairs(game.Players:GetPlayers()) do
if player ~= plr and player.Character then
if not player.Character:FindFirstChild("Highlight") then
makeEsp(player.Character, Color3.new(0, 1, 0), player.Name)
end
end
end
wait(1)
end
-- cleanup
for i,player in pairs(game.Players:GetPlayers()) do
if player.Character then
removeEsp(player.Character)
end
end
end)
end
end
})
espTab:Toggle({
Title = "Item ESP",
Default = false,
Callback = function(state)
settings.itemEsp = state
if state then
spawn(function()
while settings.itemEsp do
for i,item in pairs(workspace.Items:GetChildren()) do
if item:IsA("Model") and not item:FindFirstChild("Highlight") then
makeEsp(item, Color3.new(1, 1, 0), item.Name)
end
end
wait(2)
end
-- cleanup
for i,item in pairs(workspace.Items:GetChildren()) do
removeEsp(item)
end
end)
end
end
})
-- hitbox tab
hitboxTab:Toggle({
Title = "Wolf Hitbox",
Default = false,
Callback = function(state)
settings.hitboxes.wolves = state
end
})
hitboxTab:Toggle({
Title = "Rabbit Hitbox",
Default = false,
Callback = function(state)
settings.hitboxes.rabbits = state
end
})
hitboxTab:Toggle({
Title = "Cultist Hitbox",
Default = false,
Callback = function(state)
settings.hitboxes.cultists = state
end
})
hitboxTab:Slider({
Title = "Hitbox Size",
Min = 5,
Max = 50,
Default = 15,
Callback = function(val)
settings.hitboxes.size = val
end
})
hitboxTab:Toggle({
Title = "Show Hitboxes",
Default = false,
Callback = function(state)
settings.hitboxes.visible = state
end
})
-- misc tab
miscTab:Toggle({
Title = "Fast Interact",
Default = false,
Callback = function(state)
for i,v in pairs(workspace:GetDescendants()) do
if v:IsA("ProximityPrompt") then
v.HoldDuration = state and 0 or 0.5
end
end
end
})
miscTab:Button({
Title = "Kill Rabbits",
Callback = function()
for i,v in pairs(workspace.Characters:GetChildren()) do
if v.Name == "Bunny" and v:FindFirstChild("Humanoid") then
v.Humanoid.Health = 0
end
end
notify("Combat", "killed all rabbits")
end
})
miscTab:Button({
Title = "Kill Wolves",
Callback = function()
for i,v in pairs(workspace.Characters:GetChildren()) do
if v.Name == "Wolf" and v:FindFirstChild("Humanoid") then
v.Humanoid.Health = 0
end
end
notify("Combat", "killed all wolves")
end
})
miscTab:Button({
Title = "Teleport to Camp",
Callback = function()
if plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then
plr.Character.HumanoidRootPart.CFrame = CFrame.new(13.287, 3.999, 0.362)
end
end
})
-- background stuff
spawn(function()
while true do
updateHitboxes()
wait(1)
end
end)
-- done
notify("Script", "loaded successfully")
print("script loaded - have fun!")
![[KEYLESS] Moondiety Script | 17+ supported Games](https://scriptblox.com/images/sb/0-1753093706828.png)


it doesn't feel like it's written with chat gee pee tee, nice open source script