[go: up one dir, main page]

0% found this document useful (0 votes)
3 views36 pages

JujutsuInfinite

Download as txt, pdf, or txt
Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1/ 36

local Luna = loadstring(game:HttpGet("https://paste.

ee/r/WSCKThwW", true))()
local HttpService = game:GetService("HttpService")
local configFile = "SterlingHubConfig.json"
local http = game:GetService("HttpService")
local userId = game.Players.LocalPlayer.UserId
--local blacklist = {1131586622, 1225643250, 1918988070}
--for _, id in pairs(blacklist) do
-- if userId == id then
-- game.Players.LocalPlayer:Kick("Access revoked from using Sterling Hub.")
-- end
--end
-- Default configuration
local config = {
instaKillEnabled = false,
range = 0,
tweenToMobEnabled = false,
tweenSpeed = 0,
tweenRange = 0,
tweenPosition = "On Top",
positionOffset = 1,
autopromoteEnabled = false,
autoCollectEnabled = false,
cooldownToggle = false,
lastFired = 0,
collectdelayTime = 0,
flipDelayTime = 0,
autoBossEnabled = false,
autoreplayEnabled = false,
autocollectToolsEnabled = false,
autofreezeEnabled = false,
autofreezeRange = 0,
itemESPEnabled = false
}

-- Load configuration function


local function loadConfig()
if isfile(configFile) then
local data = readfile(configFile)
local success, result = pcall(function()
return game:GetService("HttpService"):JSONDecode(data)
end)
if success then
for k, v in pairs(result) do
config[k] = v -- Update config fields directly
end
end
end
end

local function saveConfig()


local data = game:GetService("HttpService"):JSONEncode(config) -- Encode the
config directly
writefile(configFile, data)
end

-- Save configuration function


local function saveConfig()
local data = game:GetService("HttpService"):JSONEncode(config) -- Encode the
config directly
writefile(configFile, data)
end

-- Auto-load configuration on script start


loadConfig()

local Window = Luna:CreateWindow({


Name = "Sterling Hub",
Subtitle = nil,
LogoID = "90804827107744",
LoadingEnabled = true,
LoadingTitle = "patiu was here",
LoadingSubtitle = "by DAN",

ConfigSettings = {
RootFolder = nil,
ConfigFolder = "Sterling Hub"
},
})

Window:CreateHomeTab({
SupportedExecutors = {}, -- A Table Of Executors Your Script Supports. Add
strings of the executor names for each executor.
DiscordInvite = "25ms",
Icon = 1, -- By Default, The Icon Is The Home Icon. If You would like to
change it to dashboard, replace the interger with 2
})

local Tab = Window:CreateTab({


Name = "Main",
Icon = "settings_input_antenna",
ImageSource = "Material",
ShowTitle = true
})

local Button = Tab:CreateButton({


Name = "Data Rollback",
Description = "Click this this after u done spinnin and rejoin and dont use
too much spins",
Callback = function()

local ohString1 = "\255"

game:GetService("ReplicatedStorage").Remotes.Server.Data.ChangeSetting:InvokeServer
(ohString1)
end
})

Tab:CreateSection("Instakill")

local instaKillEnabled = false


local range = 0
local tweenToMobEnabled = false
local tweenSpeed = 0
local tweenRange = 0
Tab:CreateToggle({
Name = "Enable Insta-Kill",
CurrentValue = config.instaKillEnabled,
Callback = function(State)
instaKillEnabled = State
config.instaKillEnabled = State
saveConfig()
end
})

Tab:CreateSlider({
Name = "Kill Range",
Range = {10, 1000},
Increment = 1,
CurrentValue = config.range,
Callback = function(Value)
range = Value
config.range = Value
saveConfig()
end
})

Tab:CreateSection("Tweening")

Tab:CreateToggle({
Name = "Tween to Near Mobs",
CurrentValue = config.tweenToMobEnabled,
Callback = function(State)
tweenToMobEnabled = State
config.tweenToMobEnabled = State
saveConfig()
end
})

Tab:CreateSlider({
Name = "Tweening Range",
Range = {5, 5000},
Increment = 5,
CurrentValue = config.tweenRange,
Callback = function(Value)
tweenRange = Value
config.tweenRange = Value
saveConfig()
end
})

Tab:CreateSlider({
Name = "Tween Speed",
Range = {0.5, 5000},
Increment = 1,
CurrentValue = config.tweenSpeed,
Callback = function(Value)
tweenSpeed = Value
config.tweenSpeed = Value
saveConfig()
end
})
local tweenPosition = "On Top"
Tab:CreateDropdown({
Name = "Tween Position",
Options = {"On Top", "Under", "Behind"},
CurrentOption = tweenPosition,
Callback = function(Selected)
tweenPosition = Selected
end
})

local positionOffset = 1
Tab:CreateSlider({
Name = "Position Offset",
Range = {1, 50},
Increment = 1,
CurrentValue = positionOffset,
Callback = function(Value)
positionOffset = Value
end
})

local TweenService = game:GetService("TweenService")


local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Player = Players.LocalPlayer

local Mag = function(Pos1, Pos2)


return (Pos1.Position - Pos2.Position).Magnitude
end

local Tween = function(Object1, Object2, Speed, Offset, Wait)


if Object1 and Object2 then
local Timing = Mag(Object1, Object2) / Speed
local TweenInfo = TweenInfo.new(Timing, Enum.EasingStyle.Linear)
local TweenSystem = TweenService:Create(Object1, TweenInfo, {CFrame =
CFrame.new(Object2.Position + Offset)})
TweenSystem:Play()
if Wait then
TweenSystem.Completed:Wait()
end
end
end

local function performInstaKill()


if not instaKillEnabled then return end

local player = game.Players.LocalPlayer


local character = player.Character or player.CharacterAdded:Wait()
local origin = character.PrimaryPart.Position

for _, mob in pairs(workspace.Objects.Mobs:GetChildren()) do


if mob:IsA("Model") and mob.PrimaryPart then
local distance = (mob.PrimaryPart.Position - origin).Magnitude
if distance <= range then
local humanoid = mob:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
end
end
end

local function NoClip()


for _, v in next, Player.Character:GetChildren() do
if v:IsA("BasePart") and v.CanCollide then
v.CanCollide = false
end
end
end

local function performTweenToMobs()


if not tweenToMobEnabled then return end

local player = game.Players.LocalPlayer


local character = player.Character or player.CharacterAdded:Wait()

NoClip()

for _, mob in pairs(workspace.Objects.Mobs:GetChildren()) do


if mob:IsA("Model") and mob.PrimaryPart then
local distance = (mob.PrimaryPart.Position -
character.PrimaryPart.Position).Magnitude
if distance <= tweenRange then
local offset = Vector3.new(0, 0, 0)

if tweenPosition == "On Top" then


offset = Vector3.new(0, positionOffset, 0)
elseif tweenPosition == "Under" then
offset = Vector3.new(0, -positionOffset, 0)
elseif tweenPosition == "Behind" then
offset = Vector3.new(0, 0, -positionOffset)
end

Tween(character.PrimaryPart, mob.PrimaryPart, tweenSpeed, offset,


true)
end
end
end
end

game:GetService("RunService").Stepped:Connect(function()
if instaKillEnabled then
performInstaKill()
end
if tweenToMobEnabled then
performTweenToMobs()
end
end)

Tab:CreateSection("Auto Boss")
local autoreplayEnabled = false
local ProximityPromptService = game:GetService("ProximityPromptService")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local lootUI = game:GetService("Players").LocalPlayer.PlayerGui.Loot
local flipButton = game:GetService("Players").LocalPlayer.PlayerGui.Loot.Frame.Flip
local replayButton =
game:GetService("Players").LocalPlayer.PlayerGui.ReadyScreen.Frame.Replay
local GuiService = game:GetService("GuiService")
local VirtualInputManager = game:GetService("VirtualInputManager")
local player = game.Players.LocalPlayer
local flipDelayTime = 0.4

-- Auto Replay Function with a 35-second delay


local function autoReplay()
while autoreplayEnabled do
-- Check if replayButton is visible and enabled
if replayButton.Visible then
task.wait(45) -- Wait for an additional 4 seconds before triggering
the replay

-- Trigger the replay if the replay button is visible


GuiService.SelectedObject = replayButton
VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.Return, false,
game)
task.wait(0.1)
VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.Return, false,
game)
task.wait(0.1)
VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.BackSlash, false,
game)
task.wait(0.1)
VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.BackSlash, false,
game)
end
task.wait(1) -- Check every second
end
end

-- Toggle for Auto Replay


Tab:CreateToggle({
Name = "Auto Replay",
CurrentValue = config.autoreplayEnabled, -- Default off state
Callback = function(State)
autoreplayEnabled = State -- Toggle variable to track the state
config.autoreplayEnabled = State
saveConfig()

-- Start or stop the autoReplay function based on the toggle state


if State then
-- Enable auto replay
task.spawn(autoReplay) -- Run autoReplay in a separate thread
else
-- Disable auto replay
autoreplayEnabled = false
end
end
})

Tab:CreateToggle({
Name = "Auto Boss",
CurrentValue = config.autoBossEnabled, -- Default off state
Callback = function(State)
autoBossEnabled = State -- Toggle variable to track the state
config.autoBossEnabled = State
saveConfig()

-- Start countdown if Auto Boss is enabled


if State then
for i = 30, 1, -1 do
task.delay(30 - i, function()
Luna:Notification({
Title = "Auto Boss",
Icon = "notifications_active",
ImageSource = "Material",
Content = "Time remaining: " .. i .. " seconds",
Time = 1 -- Display each notification for 1 second
})
end)
end

-- Final notification when the countdown ends


task.delay(30, function()
Luna:Notification({
Title = "Countdown Complete!",
Icon = "check_circle",
ImageSource = "Material",
Content = "The countdown is complete!",
Time = 5
})
end)
end
end
})

-- Tween to Boss function


local function tweenToBoss()
local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local bossSpawn = workspace.Objects.Spawns.BossSpawn

if character and character.PrimaryPart and bossSpawn then


local offset = Vector3.new(0, 20, 0) -- Optional offset if needed
local speed = 1000 -- Speed for tweening
Tween(character.PrimaryPart, bossSpawn, speed, offset, true)
end
end

-- Insta-Kill and Tween to Mobs function


local function performInstaKillAndTween()
if not autoBossEnabled then return end

local player = game.Players.LocalPlayer


local character = player.Character or player.CharacterAdded:Wait()
local origin = character.PrimaryPart.Position

-- Tween to the boss spawn point if not already there


if (workspace.Objects.Spawns.BossSpawn.Position - origin).Magnitude > 50 then
tweenToBoss() -- This will move the player to the BossSpawn
end
-- Insta-Kill and Tween to nearby mobs
for _, mob in pairs(workspace.Objects.Mobs:GetChildren()) do
if mob:IsA("Model") and mob.PrimaryPart then
local distance = (mob.PrimaryPart.Position - origin).Magnitude
if distance <= 1000 then -- Range of 1000 units
-- Insta-Kill logic
local humanoid = mob:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid.Health = 0
end

-- Tween to the mob with "On Top" offset


local offset = Vector3.new(0, 10, 0) -- Offset on top of the mob
Tween(character.PrimaryPart, mob.PrimaryPart, 500, offset, true)
end
end
end
end

-- Run the Insta-Kill and Tween logic when the Auto Boss toggle is enabled
game:GetService("RunService").Stepped:Connect(function()
if autoBossEnabled then
wait(30)
performInstaKillAndTween() -- Perform the action when the toggle is
enabled
end
end)

local Quests = Window:CreateTab({


Name = "Auto Daily Quest (Turn On Insta Kill)",
Icon = "looks",
ImageSource = "Material",
ShowTitle = true -- This will determine whether the big header text in the
tab will show
})

local snow = Quests:CreateButton({


Name = "Mr Snow",
Description = nil, -- Creates A Description For Users to know what the button
does (looks bad if you use it all the time),
Callback = function()
local TweenService = game:GetService("TweenService")
local Players = game:GetService("Players")
local VirtualInputManager = game:GetService("VirtualInputManager")
local RunService = game:GetService("RunService")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")

local npcName = "Mr. Snow"


local objectsFolder = workspace:FindFirstChild("Objects")
local npcFolder = objectsFolder and objectsFolder:FindFirstChild("NPCs")
local npc = npcFolder and npcFolder:FindFirstChild(npcName)

if not npc or not npc.PrimaryPart then


warn("NPC not found or has no PrimaryPart!")
return
end
local noclipActive = false

-- Function to toggle noclip


local function toggleNoclip(state)
noclipActive = state
if noclipActive then
RunService.Stepped:Connect(function()
for _, part in ipairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = false
end
end
end)
else
for _, part in ipairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = true
end
end
end
end

local function simulateKeyPress(keyCode, duration)


VirtualInputManager:SendKeyEvent(true, keyCode, false, game)
wait(duration)
VirtualInputManager:SendKeyEvent(false, keyCode, false, game)
end

local function pressProximityPrompt(prompt, duration)


if prompt and prompt:IsA("ProximityPrompt") and prompt.Enabled then
prompt:InputHoldBegin()
wait(duration)
prompt:InputHoldEnd()
end
end

local function tweenToPosition(position, callback, shouldFloat)


local distance = (humanoidRootPart.Position - position).Magnitude
local speed = 3000
local tweenTime = distance / speed
local currentOrientation = humanoidRootPart.CFrame -
humanoidRootPart.CFrame.Position
local floatHeight = shouldFloat and 3 or 0 -- Float height if shouldFloat is
true
local adjustedPosition = position + Vector3.new(0, floatHeight, 0)
local tweenInfo = TweenInfo.new(tweenTime, Enum.EasingStyle.Quad,
Enum.EasingDirection.Out)
local tweenGoal = { CFrame = CFrame.new(adjustedPosition) *
currentOrientation }
local tween = TweenService:Create(humanoidRootPart, tweenInfo, tweenGoal)

toggleNoclip(true) -- Enable noclip before tweening


tween:Play()
tween.Completed:Connect(function()
toggleNoclip(false) -- Disable noclip after tweening

if callback then
callback()
end
end)
end

local function findAndTweenToSnowPiles()


local map = workspace:FindFirstChild("Map")
if not map then
warn("Map not found!")
return
end

local questObject = map:FindFirstChild("QuestObject")


if not questObject then
warn("QuestObject not found under Map!")
return
end

local snowPiles = questObject:FindFirstChild("SnowPiles")


if not snowPiles then
warn("SnowPiles folder not found under QuestObject!")
return
end

local usedFolder = snowPiles:FindFirstChild("Used")


if not usedFolder then
warn("Used folder not found under SnowPiles!")
return
end

local foundSnowPiles = false


for _, child in ipairs(usedFolder:GetChildren()) do
if child.Name == "SnowPile" and child:IsA("BasePart") then
foundSnowPiles = true
tweenToPosition(child.Position, function()
local prompt = child:FindFirstChildOfClass("ProximityPrompt")
if prompt then
pressProximityPrompt(prompt, 4.5) -- Updated to 4.5 seconds
end
end, true) -- Enable floating while tweening to snowpile
wait(4.5) -- Updated to match interaction time
end
end

if not foundSnowPiles then


print("No SnowPiles found under Used.")
else
print("All SnowPiles have been successfully located and interacted with.")
end
end

local function tweenToNPC()


local targetPosition = npc.PrimaryPart.Position + Vector3.new(0, 0, -5)
tweenToPosition(targetPosition, function()
local prompt = npc:FindFirstChildOfClass("ProximityPrompt")
if prompt then
pressProximityPrompt(prompt, 0.5)
simulateKeyPress(Enum.KeyCode.BackSlash, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.S, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.Return, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.S, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.Return, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.Return, 0.1)
wait(1)
findAndTweenToSnowPiles()
end
end)
end

wait(1)
tweenToNPC()
end
})

local cabbage = Quests:CreateButton({


Name = "Cabbage Merchant",
Description = nil, -- Creates A Description For Users to know what the button
does (looks bad if you use it all the time),
Callback = function()
local TweenService = game:GetService("TweenService")
local Players = game:GetService("Players")
local VirtualInputManager = game:GetService("VirtualInputManager")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")

local npcName = "Cabbage Merchant"


local objectsFolder = workspace:FindFirstChild("Objects")
local npcFolder = objectsFolder and objectsFolder:FindFirstChild("NPCs")
local npc = npcFolder and npcFolder:FindFirstChild(npcName)

if not npc or not npc.PrimaryPart then


return
end

local function simulateKeyPress(keyCode, duration)


VirtualInputManager:SendKeyEvent(true, keyCode, false, game)
wait(duration)
VirtualInputManager:SendKeyEvent(false, keyCode, false, game)
end

local function pressProximityPrompt(prompt)


while prompt and prompt:IsA("ProximityPrompt") and prompt.Enabled do
fireproximityprompt(prompt)
wait(0.1)
end
end

local function tweenToNPC()


local targetPosition = npc.PrimaryPart.Position + Vector3.new(0, 0, -5)
local distance = (humanoidRootPart.Position - targetPosition).Magnitude
local speed = 3000
local tweenTime = distance / speed
local currentOrientation = humanoidRootPart.CFrame -
humanoidRootPart.CFrame.Position
local tweenInfo = TweenInfo.new(tweenTime, Enum.EasingStyle.Quad,
Enum.EasingDirection.Out)
local tweenGoal = { CFrame = CFrame.new(targetPosition) * currentOrientation }
local tween = TweenService:Create(humanoidRootPart, tweenInfo, tweenGoal)

for _, part in ipairs(character:GetDescendants()) do


if part:IsA("BasePart") then
part.CanCollide = false
end
end

tween:Play()

tween.Completed:Connect(function()
for _, part in ipairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = true
end
end

local prompt = npc:FindFirstChildOfClass("ProximityPrompt")


if prompt then
pressProximityPrompt(prompt)
simulateKeyPress(Enum.KeyCode.BackSlash, 0.1)
wait(0.1)
simulateKeyPress(Enum.KeyCode.S, 0.1)
wait(0.1)
simulateKeyPress(Enum.KeyCode.Return, 0.1)
wait(0.1)
simulateKeyPress(Enum.KeyCode.S, 0.1)
wait(0.1)
simulateKeyPress(Enum.KeyCode.Return, 0.1)
wait(0.1)
simulateKeyPress(Enum.KeyCode.Return, 0.1)

local firstTargetPosition = Vector3.new(2731.888916015625,


663.6421508789062, 287.21820068359375)
while (humanoidRootPart.Position - firstTargetPosition).Magnitude > 1
do
humanoidRootPart.CFrame = humanoidRootPart.CFrame:Lerp(
CFrame.new(firstTargetPosition, humanoidRootPart.Position +
humanoidRootPart.CFrame.LookVector),
0.1
)
wait(0.1)
end

wait(0.1)
simulateKeyPress(Enum.KeyCode.E, 4)

local secondTargetPosition = Vector3.new(3444.66015625,


636.7777099609375, 183.07412719726562)
while (humanoidRootPart.Position - secondTargetPosition).Magnitude > 1
do
humanoidRootPart.CFrame = humanoidRootPart.CFrame:Lerp(
CFrame.new(secondTargetPosition, humanoidRootPart.Position +
humanoidRootPart.CFrame.LookVector),
0.1
)
wait(0.1)
end
end
end)
end

wait(0.1)
tweenToNPC()
end
})

local guts = Quests:CreateButton({


Name = "Curse Slayer",
Description = nil, -- Creates A Description For Users to know what the button
does (looks bad if you use it all the time),
Callback = function()
local TweenService = game:GetService("TweenService")
local Players = game:GetService("Players")
local VirtualInputManager = game:GetService("VirtualInputManager")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")

local npcName = "Curse Slayer"


local objectsFolder = workspace:FindFirstChild("Objects")
local npcFolder = objectsFolder and objectsFolder:FindFirstChild("NPCs")
local npc = npcFolder and npcFolder:FindFirstChild(npcName)

if not npc or not npc.PrimaryPart then


return
end

local function simulateKeyPress(keyCode, duration)


VirtualInputManager:SendKeyEvent(true, keyCode, false, game)
wait(duration)
VirtualInputManager:SendKeyEvent(false, keyCode, false, game)
end

local function pressProximityPrompt(prompt)


while prompt and prompt:IsA("ProximityPrompt") and prompt.Enabled do
fireproximityprompt(prompt)
wait(0.2)
end
end

local function tweenToNPC()


local targetPosition = npc.PrimaryPart.Position + Vector3.new(0, 0, -5)
local distance = (humanoidRootPart.Position - targetPosition).Magnitude
local speed = 3000
local tweenTime = distance / speed
local currentOrientation = humanoidRootPart.CFrame -
humanoidRootPart.CFrame.Position
local tweenInfo = TweenInfo.new(tweenTime, Enum.EasingStyle.Quad,
Enum.EasingDirection.Out)
local tweenGoal = { CFrame = CFrame.new(targetPosition) * currentOrientation }
local tween = TweenService:Create(humanoidRootPart, tweenInfo, tweenGoal)

for _, part in ipairs(character:GetDescendants()) do


if part:IsA("BasePart") then
part.CanCollide = false
end
end

tween:Play()

tween.Completed:Connect(function()
for _, part in ipairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = true
end
end

local prompt = npc:FindFirstChildOfClass("ProximityPrompt")


if prompt then
pressProximityPrompt(prompt)
simulateKeyPress(Enum.KeyCode.BackSlash, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.S, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.Return, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.S, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.Return, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.Return, 0.1)
end
end)
end

wait(1)
tweenToNPC()
end
})

local lazy = Quests:CreateButton({


Name = "Lazy Sorcerer",
Description = nil, -- Creates A Description For Users to know what the button
does (looks bad if you use it all the time),
Callback = function()
local TweenService = game:GetService("TweenService")
local Players = game:GetService("Players")
local VirtualInputManager = game:GetService("VirtualInputManager")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")

local npcName = "Lazy Sorcerer"


local objectsFolder = workspace:FindFirstChild("Objects")
local npcFolder = objectsFolder and objectsFolder:FindFirstChild("NPCs")
local npc = npcFolder and npcFolder:FindFirstChild(npcName)

if not npc or not npc.PrimaryPart then


return
end

local function simulateKeyPress(keyCode, duration)


VirtualInputManager:SendKeyEvent(true, keyCode, false, game)
wait(duration)
VirtualInputManager:SendKeyEvent(false, keyCode, false, game)
end

local function pressProximityPrompt(prompt)


while prompt and prompt:IsA("ProximityPrompt") and prompt.Enabled do
fireproximityprompt(prompt)
wait(0.2)
end
end

local function tweenToNPC()


local targetPosition = npc.PrimaryPart.Position + Vector3.new(0, 0, -5)
local distance = (humanoidRootPart.Position - targetPosition).Magnitude
local speed = 3000
local tweenTime = distance / speed
local currentOrientation = humanoidRootPart.CFrame -
humanoidRootPart.CFrame.Position
local tweenInfo = TweenInfo.new(tweenTime, Enum.EasingStyle.Quad,
Enum.EasingDirection.Out)
local tweenGoal = { CFrame = CFrame.new(targetPosition) * currentOrientation }
local tween = TweenService:Create(humanoidRootPart, tweenInfo, tweenGoal)

for _, part in ipairs(character:GetDescendants()) do


if part:IsA("BasePart") then
part.CanCollide = false
end
end

tween:Play()

tween.Completed:Connect(function()
for _, part in ipairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = true
end
end

local prompt = npc:FindFirstChildOfClass("ProximityPrompt")


if prompt then
pressProximityPrompt(prompt)
simulateKeyPress(Enum.KeyCode.BackSlash, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.S, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.Return, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.S, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.Return, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.Return, 0.1)
end
end)
end

wait(1)
tweenToNPC()
end
})

local fort = Quests:CreateButton({


Name = "Fort Alchemist",
Description = nil, -- Creates A Description For Users to know what the button
does (looks bad if you use it all the time),
Callback = function()
local TweenService = game:GetService("TweenService")
local Players = game:GetService("Players")
local VirtualInputManager = game:GetService("VirtualInputManager")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")

local npcName = "Fort Alchemist"


local objectsFolder = workspace:FindFirstChild("Objects")
local npcFolder = objectsFolder and objectsFolder:FindFirstChild("NPCs")
local npc = npcFolder and npcFolder:FindFirstChild(npcName)

if not npc or not npc.PrimaryPart then


warn("NPC not found or has no PrimaryPart!")
return
end

local function simulateKeyPress(keyCode, duration)


VirtualInputManager:SendKeyEvent(true, keyCode, false, game)
wait(duration)
VirtualInputManager:SendKeyEvent(false, keyCode, false, game)
end

local function pressProximityPrompt(prompt, duration)


if prompt and prompt:IsA("ProximityPrompt") and prompt.Enabled then
prompt:InputHoldBegin()
wait(duration)
prompt:InputHoldEnd()
end
end

local function tweenToPosition(position, callback)


local distance = (humanoidRootPart.Position - position).Magnitude
local speed = 3000
local tweenTime = distance / speed
local currentOrientation = humanoidRootPart.CFrame -
humanoidRootPart.CFrame.Position
local tweenInfo = TweenInfo.new(tweenTime, Enum.EasingStyle.Quad,
Enum.EasingDirection.Out)
local tweenGoal = { CFrame = CFrame.new(position) * currentOrientation }
local tween = TweenService:Create(humanoidRootPart, tweenInfo, tweenGoal)

for _, part in ipairs(character:GetDescendants()) do


if part:IsA("BasePart") then
part.CanCollide = false
end
end

tween:Play()
tween.Completed:Connect(function()
for _, part in ipairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = true
end
end

if callback then
callback()
end
end)
end

local function collectFrostPetal()


local map = workspace:FindFirstChild("Map")
if not map then
warn("Map not found!")
return
end

local forageSpots = map:FindFirstChild("ForageSpots")


if not forageSpots then
warn("ForageSpots not found under Map!")
return
end

local frostPetals = {}
for _, spot in ipairs(forageSpots:GetChildren()) do
for _, frostPetalModel in ipairs(spot:GetChildren()) do
if frostPetalModel.Name == "Frost Petal" and
frostPetalModel:IsA("Model") then
for _, part in ipairs(frostPetalModel:GetChildren()) do
if part:IsA("BasePart") then
table.insert(frostPetals, part)
end
end
end
end
end

if #frostPetals == 0 then
warn("No Frost Petal found!")
else
print("Frost Petals found:", #frostPetals)
end

return frostPetals
end

local function tweenToFrostPetal()


local frostPetals = collectFrostPetal()
if not frostPetals or #frostPetals == 0 then
return
end

local collected = 0
for _, petal in ipairs(frostPetals) do
if collected >= 9 then
break
end

tweenToPosition(petal.Position, function()
local prompt = petal:FindFirstChildOfClass("ProximityPrompt")
if prompt then
pressProximityPrompt(prompt, 1)
collected = collected + 1
print("Collected Frost Petal:", collected)
end
end)

wait(2) -- Wait before moving to the next petal


end

if collected < 9 then


print("Only", collected, "Frost Petals were collected.")
else
print("Successfully collected 9 Frost Petals.")
end
end

local function tweenToNPC()


local targetPosition = npc.PrimaryPart.Position + Vector3.new(0, 0, -5)
tweenToPosition(targetPosition, function()
local prompt = npc:FindFirstChildOfClass("ProximityPrompt")
if prompt then
pressProximityPrompt(prompt, 0.5)
simulateKeyPress(Enum.KeyCode.BackSlash, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.S, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.Return, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.S, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.Return, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.Return, 0.1)
wait(1)
tweenToFrostPetal()
wait(1)
simulateKeyPress(Enum.KeyCode.BackSlash, 0.1) -- Final action
print("Final BackSlash action triggered!")
end
end)
end

wait(1)
tweenToNPC()
end
})

local digger = Quests:CreateButton({


Name = "Grave Digger",
Description = nil, -- Creates A Description For Users to know what the button
does (looks bad if you use it all the time),
Callback = function()
local TweenService = game:GetService("TweenService")
local Players = game:GetService("Players")
local VirtualInputManager = game:GetService("VirtualInputManager")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")

local npcName = "Grave Digger"


local objectsFolder = workspace:FindFirstChild("Objects")
local npcFolder = objectsFolder and objectsFolder:FindFirstChild("NPCs")
local npc = npcFolder and npcFolder:FindFirstChild(npcName)

if not npc or not npc.PrimaryPart then


return
end

local savedCoordinates = Vector3.new(7282.884765625, 990.78515625, -


1070.3953857421875)

local function simulateKeyPress(keyCode, duration)


VirtualInputManager:SendKeyEvent(true, keyCode, false, game)
wait(duration)
VirtualInputManager:SendKeyEvent(false, keyCode, false, game)
end

local function pressProximityPrompt(prompt)


while prompt and prompt:IsA("ProximityPrompt") and prompt.Enabled do
fireproximityprompt(prompt)
wait(0.2)
end
end

local function tweenToPosition(targetPosition, callback)


local distance = (humanoidRootPart.Position - targetPosition).Magnitude
local speed = 3000
local tweenTime = distance / speed
local currentOrientation = humanoidRootPart.CFrame -
humanoidRootPart.CFrame.Position
local tweenInfo = TweenInfo.new(tweenTime, Enum.EasingStyle.Quad,
Enum.EasingDirection.Out)
local tweenGoal = { CFrame = CFrame.new(targetPosition) * currentOrientation }
local tween = TweenService:Create(humanoidRootPart, tweenInfo, tweenGoal)

for _, part in ipairs(character:GetDescendants()) do


if part:IsA("BasePart") then
part.CanCollide = false
end
end

tween:Play()

tween.Completed:Connect(function()
for _, part in ipairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = true
end
end
if callback then
callback()
end
end)
end

local function interactWithNPC()


local prompt = npc:FindFirstChildOfClass("ProximityPrompt")
if prompt then
pressProximityPrompt(prompt)
simulateKeyPress(Enum.KeyCode.BackSlash, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.S, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.Return, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.S, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.Return, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.Return, 0.1)

-- Tween to saved coordinates after interacting


tweenToPosition(savedCoordinates)
wait(0.5)
simulateKeyPress(Enum.KeyCode.BackSlash, 0.1)
end
end

local function tweenToNPC()


local targetPosition = npc.PrimaryPart.Position + Vector3.new(0, 0, -5)
tweenToPosition(targetPosition, interactWithNPC)
end

wait(1)
tweenToNPC()
end
})

local temple = Quests:CreateButton({


Name = "Temple Master",
Description = nil, -- Creates A Description For Users to know what the button
does (looks bad if you use it all the time),
Callback = function()
local TweenService = game:GetService("TweenService")
local Players = game:GetService("Players")
local VirtualInputManager = game:GetService("VirtualInputManager")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")

local npcName = "Temple Master" -- Changed NPC Name


local objectsFolder = workspace:FindFirstChild("Objects")
local npcFolder = objectsFolder and objectsFolder:FindFirstChild("NPCs")
local npc = npcFolder and npcFolder:FindFirstChild(npcName)

if not npc or not npc.PrimaryPart then


return
end

-- Coordinates provided
local targetCoordinates = Vector3.new(6328.4580078125, 982.6458740234375, -
409.1114196777344)

local function simulateKeyPress(keyCode, duration)


VirtualInputManager:SendKeyEvent(true, keyCode, false, game)
wait(duration)
VirtualInputManager:SendKeyEvent(false, keyCode, false, game)
end

local function pressProximityPrompt(prompt)


while prompt and prompt:IsA("ProximityPrompt") and prompt.Enabled do
fireproximityprompt(prompt)
wait(0.2)
end
end

local function tweenToPosition(targetPosition, callback)


local distance = (humanoidRootPart.Position - targetPosition).Magnitude
local speed = 3000
local tweenTime = distance / speed
local currentOrientation = humanoidRootPart.CFrame -
humanoidRootPart.CFrame.Position
local tweenInfo = TweenInfo.new(tweenTime, Enum.EasingStyle.Quad,
Enum.EasingDirection.Out)
local tweenGoal = { CFrame = CFrame.new(targetPosition) * currentOrientation }
local tween = TweenService:Create(humanoidRootPart, tweenInfo, tweenGoal)

for _, part in ipairs(character:GetDescendants()) do


if part:IsA("BasePart") then
part.CanCollide = false
end
end

tween:Play()

tween.Completed:Connect(function()
for _, part in ipairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = true
end
end
if callback then
callback()
end
end)
end

local function interactWithNPC()


local prompt = npc:FindFirstChildOfClass("ProximityPrompt")
if prompt then
pressProximityPrompt(prompt)
simulateKeyPress(Enum.KeyCode.BackSlash, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.S, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.Return, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.S, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.Return, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.Return, 0.1)

-- Tween to provided coordinates


tweenToPosition(targetCoordinates, function()
-- Simulate holding 'E' for 4 seconds
wait(2)
simulateKeyPress(Enum.KeyCode.E, 4)

-- Simulate pressing backslash


simulateKeyPress(Enum.KeyCode.BackSlash, 0.1)
end)
end
end

local function tweenToNPC()


local targetPosition = npc.PrimaryPart.Position + Vector3.new(0, 0, -5)
tweenToPosition(targetPosition, interactWithNPC)
end

wait(1)
tweenToNPC()
end
})

local camp = Quests:CreateButton({


Name = "Camp Sorcerer",
Description = nil, -- Creates A Description For Users to know what the button
does (looks bad if you use it all the time),
Callback = function()
local TweenService = game:GetService("TweenService")
local Players = game:GetService("Players")
local VirtualInputManager = game:GetService("VirtualInputManager")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")

local npcName = "Camp Sorcerer" -- Updated NPC name


local objectsFolder = workspace:FindFirstChild("Objects")
local npcFolder = objectsFolder and objectsFolder:FindFirstChild("NPCs")
local npc = npcFolder and npcFolder:FindFirstChild(npcName)

if not npc or not npc.PrimaryPart then


return
end

local targetCoordinates = Vector3.new(8747.899, 772.301, 1569.553) -- New


coordinates

local function simulateKeyPress(keyCode, duration)


VirtualInputManager:SendKeyEvent(true, keyCode, false, game)
wait(duration)
VirtualInputManager:SendKeyEvent(false, keyCode, false, game)
end

local function pressProximityPrompt(prompt)


while prompt and prompt:IsA("ProximityPrompt") and prompt.Enabled do
fireproximityprompt(prompt)
wait(0.2) -- Hold prompt for a short interval
end
end

local function tweenToPosition(targetPosition, callback)


local distance = (humanoidRootPart.Position - targetPosition).Magnitude
local speed = 500
local tweenTime = distance / speed
local currentOrientation = humanoidRootPart.CFrame -
humanoidRootPart.CFrame.Position
local tweenInfo = TweenInfo.new(tweenTime, Enum.EasingStyle.Quad,
Enum.EasingDirection.Out)
local tweenGoal = { CFrame = CFrame.new(targetPosition) * currentOrientation }
local tween = TweenService:Create(humanoidRootPart, tweenInfo, tweenGoal)

for _, part in ipairs(character:GetDescendants()) do


if part:IsA("BasePart") then
part.CanCollide = false
end
end

tween:Play()

tween.Completed:Connect(function()
for _, part in ipairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = true
end
end
if callback then
callback()
end
end)
end

local function interactWithNearbyPrompt()


local prompt = workspace:FindFirstChildOfClass("ProximityPrompt")
if prompt then
pressProximityPrompt(prompt)
end
end

local function interactWithNPC()


local prompt = npc:FindFirstChildOfClass("ProximityPrompt")
if prompt then
-- Proximity prompt interaction with the NPC
pressProximityPrompt(prompt)
simulateKeyPress(Enum.KeyCode.BackSlash, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.S, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.Return, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.S, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.Return, 0.1)
wait(0.5)
simulateKeyPress(Enum.KeyCode.Return, 0.1)

-- Tween to new coordinates after sequence


tweenToPosition(targetCoordinates, function()
wait(2)
-- Wait and press E for 2 secondssw
simulateKeyPress(Enum.KeyCode.E, 2)
wait(1)
tweenToPosition(Vector3.new(7538.853516625, 747.5322265625,
987.73436035162))
simulateKeyPress(Enum.keyCode.BackSlash, 0.1)
end)
end
end

local function tweenToNPC()


local targetPosition = npc.PrimaryPart.Position + Vector3.new(0, 0, -5)
tweenToPosition(targetPosition, interactWithNPC)
end

wait(1)
tweenToNPC()
end
})

local Misc = Window:CreateTab({


Name = "Misc",
Icon = "priority_high",
ImageSource = "Material",
ShowTitle = true
})

-- ESP Settings
local ESPEnabled = false
local blacklistedItems = {"Chest"} -- Blacklist
local ESPFolder = Instance.new("Folder", game.CoreGui) -- Store ESP drawings

-- Utility Functions
local function createESP(model)
-- Get the Root part of the model
local rootPart = model:FindFirstChild("Root")
if not rootPart then return end

-- Create BillboardGui
local billboard = Instance.new("BillboardGui", ESPFolder)
billboard.Adornee = rootPart
billboard.Size = UDim2.new(0, 200, 0, 50)
billboard.AlwaysOnTop = true

local textLabel = Instance.new("TextLabel", billboard)


textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.TextScaled = true
textLabel.BackgroundTransparency = 1
textLabel.TextColor3 = Color3.new(1, 1, 1)
textLabel.Font = Enum.Font.GothamBold

-- Update Text and Distance


spawn(function()
while ESPEnabled and model.Parent do
local playerRoot = game.Players.LocalPlayer.Character and
game.Players.LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
if playerRoot then
local distance = math.floor((playerRoot.Position -
rootPart.Position).Magnitude)
textLabel.Text = string.format("%s\n(%d studs)", model.Name,
distance)
end
task.wait(0.1)
end
billboard:Destroy()
end)
end

local function toggleESP(enabled)


ESPEnabled = enabled
if ESPEnabled then
for _, model in pairs(workspace.Objects.Drops:GetChildren()) do
if not table.find(blacklistedItems, model.Name) and model:IsA("Model")
then
createESP(model)
end
end
-- Notify
Luna:Notification({
Title = "ESP Enabled",
Icon = "notifications_active",
ImageSource = "Material",
Content = "Item ESP has been enabled."
})
else
-- Clear ESP
ESPFolder:ClearAllChildren()
-- Notify
Luna:Notification({
Title = "ESP Disabled",
Icon = "notifications_off",
ImageSource = "Material",
Content = "Item ESP has been disabled."
})
end
end

-- Watch for New Items


workspace.Objects.Drops.ChildAdded:Connect(function(child)
if ESPEnabled and not table.find(blacklistedItems, child.Name) and
child:IsA("Model") then
createESP(child)
end
end)

-- Create Toggle
local Toggle = Misc:CreateToggle({
Name = "Enable Item ESP",
Description = "Toggle the item ESP feature to display item distances and
names.",
CurrentValue = config.itemESPEnabled,
Callback = function(Value)
config.itemESPEnabled = Value
toggleESP(Value)
saveConfig()
end
})
Tab:CreateSection("Auto Freeze")

local autofreezeRange = config.autofreezeRange


local autoFreezeEnabled = config.autoFreezeEnabled

-- Create the Toggle for enabling/disabling auto-freeze


local Toggle = Tab:CreateToggle({
Name = "Enable Auto-Freeze",
Description = "Enable or disable the auto-freeze feature for nearby
humanoids.",
CurrentValue = config.autoFreezeEnabled, -- Use saved value
Callback = function(Value)
autoFreezeEnabled = Value
config.autoFreezeEnabled = Value
saveConfig()

if Value then
print("Auto-Freeze enabled")

-- Auto-freeze logic
local replicatedStorage = game:GetService("ReplicatedStorage")
local freezeRemote = replicatedStorage.Remotes.Server.Combat.Rush

local player = game.Players.LocalPlayer


local playerCharacter = player.Character or
player.CharacterAdded:Wait()

local function getDistance(pos1, pos2)


return (pos1 - pos2).Magnitude
end

local allowedFolders = {"Mobs", "Characters"}

while autoFreezeEnabled do
for _, folderName in ipairs(allowedFolders) do
local folder = workspace.Objects:FindFirstChild(folderName)
if folder then
for _, model in ipairs(folder:GetDescendants()) do
local humanoid =
model:FindFirstChildOfClass("Humanoid")
if humanoid and humanoid.Parent ~= playerCharacter then
local humanoidRootPart =
model:FindFirstChild("HumanoidRootPart")
local playerRootPart =
playerCharacter:FindFirstChild("HumanoidRootPart")

if humanoidRootPart and playerRootPart then


local distance =
getDistance(playerRootPart.Position, humanoidRootPart.Position)
if distance <= autofreezeRange then
freezeRemote:FireServer(humanoid, false) --
Fire the server with updated parameters
end
end
end
end
end
end
wait(0.5) -- Adjust the wait time for checking frequency
end
else
print("Auto-Freeze disabled")
end
end
})

-- Create the Slider for Range Selection


local Slider = Tab:CreateSlider({
Name = "Select Range for Freezing",
Range = {1, 1000}, -- Minimum and Maximum Range for the Slider
Increment = 1, -- The value change per step
CurrentValue = config.autofreezeRange,
Callback = function(Value)
autofreezeRange = Value
config.autofreezeRange = Value
saveConfig()
print("Selected range for auto-freeze:", autofreezeRange)
end
})

local TweenService = game:GetService("TweenService")


local autocollectToolsEnabled = false
local ProximityPromptService = game:GetService("ProximityPromptService")
local RunService = game:GetService("RunService")

local function Tween(Object1, Object2, Speed, Offset, Wait)


if Object1 and Object2 then
local Timing = (Object1.Position - Object2.Position).Magnitude / Speed
local TweenInfo = TweenInfo.new(Timing, Enum.EasingStyle.Linear)
local TweenSystem = TweenService:Create(Object1, TweenInfo, {CFrame =
Object2.CFrame + Offset})
TweenSystem:Play()
if Wait then
TweenSystem.Completed:Wait()
end
end
end

local function TweenAndFireProximityPrompt(character, targetModel, speed, offset)


local rootPart = targetModel:FindFirstChild("Root")
local proximityPrompt = targetModel:FindFirstChild("Collect")

if rootPart and proximityPrompt then


-- Tween to the root part
Tween(character.PrimaryPart, rootPart, speed, offset, true)

-- Simulate proximity prompt activation


task.wait(0.5) -- Slight delay to ensure proximity
fireproximityprompt(proximityPrompt) -- Trigger the proximity prompt
print("Proximity Prompt 'Collect' triggered for:", targetModel.Name)
else
print("No 'Collect' Proximity Prompt or 'Root' part found for:",
targetModel.Name)
end
end

local function tweenToLoot()


local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()

if autocollectToolsEnabled and character and character.PrimaryPart then


for _, model in pairs(workspace.Objects.Drops:GetChildren()) do
if model:IsA("Model") then
local offset = Vector3.new(0, 0, 0)
local speed = 5000
TweenAndFireProximityPrompt(character, model, speed, offset)

-- Wait for 0.5 seconds after processing each item


task.wait(0.5)
end
end
end
end

ProximityPromptService.PromptShown:Connect(function(prompt)
if autocollectToolsEnabled then
fireproximityprompt(prompt)

end
end)

-- Toggle button for Auto Collect Loots


Misc:CreateToggle({
Name = "Auto Collect Loots(Don't Turn Auto Quest On)",
CurrentValue = config.autocollectToolsEnabled,
Callback = function(State)
autocollectToolsEnabled = State
config.autocollectToolsEnabled = State
saveConfig()
if autocollectToolsEnabled then
tweenToLoot()
task.wait(1) -- Adjust delay to prevent performance issues
end
end
})

local autopromoteEnabled = false

Misc:CreateToggle({
Name = "Auto Promote",
CurrentValue = config.autopromoteEnabled,
Callback = function(Value)
autopromoteEnabled = Value
config.autopromoteEnabled = Value
saveConfig()
end
})

local function performautopromote()


if autopromoteEnabled then
local ohString1 = "Clan Head Jujutsu High"
local ohString2 = "Promote"

game:GetService("ReplicatedStorage").Remotes.Server.Dialogue.GetResponse:InvokeServ
er(ohString1, ohString2)
end
end

game:GetService("RunService").Heartbeat:Connect(function()
performautopromote()
end)

-- Setup necessary services and variables


local autoCollectEnabled = false
local ProximityPromptService = game:GetService("ProximityPromptService")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local lootUI = game:GetService("Players").LocalPlayer.PlayerGui.Loot
local flipButton = game:GetService("Players").LocalPlayer.PlayerGui.Loot.Frame.Flip
local replayButton =
game:GetService("Players").LocalPlayer.PlayerGui.ReadyScreen.Frame.Replay
local GuiService = game:GetService("GuiService")
local VirtualInputManager = game:GetService("VirtualInputManager")
local player = game.Players.LocalPlayer
local flipDelayTime = 0.4

local chestTable = {}
local chestCount = 0
local endFunctions = false -- Used to track if coroutines are already running

-- Function to update the chest list


local function updateChests()
local dropsFolder = game.Workspace.Objects.Drops:GetChildren()
chestTable = {}
chestCount = 0
for _, chest in pairs(dropsFolder) do
if chest:IsA("Model") and chest.Name == "Chest" then
table.insert(chestTable, chest)
chestCount = chestCount + 1
end
end
end

-- Function to collect a chest


local function collectChest(chest)
if chest:IsA("Model") and chest.Name == "Chest" then
local dropsFolder = game.Workspace.Objects.Drops
local initialChestCount = #dropsFolder:GetChildren() -- Get the initial
chest count
for _, prompt in pairs(chest:GetChildren()) do
if prompt:IsA("ProximityPrompt") then
prompt:InputHoldBegin()
task.wait(0.06)
prompt:InputHoldEnd()
task.wait(1)
end
end
local finalChestCount = #dropsFolder:GetChildren() -- Get the final chest
count
if finalChestCount < initialChestCount then
chestCount = finalChestCount
end
end
end
-- Function to auto-flip (automate flip button interaction)
local function autoFlip()
while autoCollectEnabled do
task.wait()
if lootUI.Enabled then
task.wait(flipDelayTime)
GuiService.SelectedObject = flipButton
VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.Return, false,
game)
task.wait(0.1)
VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.Return, false,
game)
task.wait(0.1)
VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.BackSlash, false,
game)
task.wait(0.1)
VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.BackSlash, false,
game)
else
task.wait(1)
end
end
end

-- Function to auto-collect chests


local function autoCollectChests()
while autoCollectEnabled do
task.wait()
updateChests()
if chestCount > 0 then
for _, chest in pairs(chestTable) do
collectChest(chest)
break
end
end
end
end

-- Debug function for chest count


local function debugChestCount()
while true do
local dropsFolder = game.Workspace.Objects.Drops
local finalChestCount = #dropsFolder:GetChildren()
print("Chests:", finalChestCount)
task.wait(1)
end
end

-- Start the debug function in the background


coroutine.wrap(debugChestCount)()

-- Toggle button to enable/disable auto collection


local Toggle = Misc:CreateToggle({
Name = "Auto Collect Chest",
CurrentValue = config.autoCollectEnabled,
Callback = function(Value)
autoCollectEnabled = Value
config.autoCollectEnabled = Value
saveConfig()
if autoCollectEnabled then
if not endFunctions then
-- Start the coroutines only when the toggle is enabled for the
first time
endFunctions = true
coroutine.wrap(autoFlip)()
coroutine.wrap(autoCollectChests)()
end
else
endFunctions = false -- Stop the coroutines when the toggle is
disabled
print("Auto collect disabled.")
end
end
})

Misc:CreateSection("Free Innate Slots, Skip Spins")

local Button = Misc:CreateButton({


Name = "Grant Gamepasses",
Callback = function()
Luna:Notification({
Title = "Success",
Content = "Granted Gamepasses",
ImageSource = "Material",
Icon = "notifications_active",
Time = 5
})
local gamepassIds = {"77102528", "77102481", "77103458", "259500454",
"77102969"}
local player = game:GetService("Players").LocalPlayer
local replicatedData = player:WaitForChild("ReplicatedData")
local gamepassesFolder = replicatedData:WaitForChild("gamepasses")

for _, gamepassId in ipairs(gamepassIds) do


local gamepassValue = gamepassesFolder:FindFirstChild(gamepassId)

if not gamepassValue then

gamepassValue = Instance.new("BoolValue")
gamepassValue.Name = gamepassId
gamepassValue.Value = true
gamepassValue.Parent = gamepassesFolder
print("Inserted BoolValue for game pass with ID:", gamepassId)
else
print("BoolValue for game pass with ID already exists:",
gamepassId)
end
end
end
})
Misc:CreateSection("Skill Giver(Not Perm)")

local modeSelected = "Innates"


local DropDown = Misc:CreateDropdown({
Name = "Select Mode",
Options = {"Innates", "Skills"},
CurrentOption = {"Innates"},
Callback = function(value)
modeSelected = value
end
})

local skillName
local Input = Misc:CreateInput({
Name = "Enter Skill/Innate Skill",
CurrentValue = "",
TextDisappear = false,
Callback = function(value)
print("Entered skill: " .. value)
skillName = value
end
})

local keybindSelected = "B"


local DropDown = Misc:CreateDropdown({
Name = "Select Keybind",
Options = {"B", "C", "G", "T", "V", "X", "Y", "Z"},
CurrentOption = {"B"},
Callback = function(value)
keybindSelected = value
end
})

local Button = Misc:CreateButton({


Name = "Assign Skill/Innate Skill",
Callback = function()
if not skillName or skillName == "" then
Luna:Notification({
Title = "Error",
Content = "Please enter a skill name.",
ImageSource = "Material",
Icon = "notifications_active",
Time = 5
})
return
end

local player = game:GetService("Players").LocalPlayer


local techniques =
player:WaitForChild("ReplicatedData"):WaitForChild("techniques")
local selectedFolder
if modeSelected == "Innates" then
selectedFolder = techniques:WaitForChild("innates")
elseif modeSelected == "Skills" then
selectedFolder = techniques:WaitForChild("skills")
end

if selectedFolder then
local stringValue = selectedFolder:FindFirstChild(keybindSelected)
if stringValue and stringValue:IsA("StringValue") then
stringValue.Value = skillName
print("Skill assigned: " .. skillName)
Luna:Notification({
Title = "Skill Assigned",
Content = "The skill '" .. skillName .. "' has been assigned to
" .. keybindSelected,
Image = "Material", -- Custom icon (use your own if needed)
Icon = "notifications_active",
Time = 5
})
else
Luna:MakeNotification({
Title = "Error",
Content = "No StringValue found for " .. keybindSelected .. "
in " .. modeSelected,
Icon = "notifications_active",
ImageSource = "Material", -- Custom icon (use your own if
needed)
Time = 5
})
end
else
Luna:Notification({
Title = "Error",
Content = "Selected folder (" .. modeSelected .. ") does not
exist.",
ImageSource = "Material",
Icon = "notifications_active",
Time = 5
})
end
end
})

Misc:CreateSection("Weapon Giver")

local toolName = ""

-- Create an input box for typing the Tool name


local Input = Misc:CreateInput({
Name = "Enter Weapon Name",
PlaceholderText = "Type weapon name here",
CurrentValue = "",
Numeric = false,
Callback = function(Text)
toolName = Text
end,
})

-- Button to create and add the Tool to the Backpack


local Button = Misc:CreateButton({
Name = "Give Weapon (Not Permanent)",
Callback = function()
if not toolName or toolName == "" then
print("Error: Please enter a tool name.")
return
end

local player = game:GetService("Players").LocalPlayer


local backpack = player.Backpack
-- Check if the tool already exists
if backpack:FindFirstChild(toolName) then
print("Cursed Tool Already Exists: A tool with this name is already in
your Backpack.")
return
end

-- Create the tool and add it to the backpack


local tool = Instance.new("Tool")
tool.Name = toolName
tool.Parent = backpack
print("Tool '" .. toolName .. "' added to the Backpack.")
end,
})

local Tab = Window:CreateTab({


Name = "Move Redeemer",
Icon = "redeem",
ImageSource = "Material",
ShowTitle = true,
})

local moveName = ""

local Input = Tab:CreateInput({


Name = "Move Redeemer(Perm needs money and mastery)",
Description = nil,
PlaceholderText = "Input Placeholder",
CurrentValue = "", -- the current text
Numeric = false, -- When true, the user may only type numbers in the box
(Example walkspeed)
MaxCharacters = nil, -- if a number, the textbox length cannot exceed the
number
Enter = false, -- When true, the callback will only be executed when the user
presses enter.
Callback = function(Text)
moveName = Text
end
}, "Input")

local Button = Tab:CreateButton({


Name = "Redeem Move",
Callback = function()
if moveName and moveName ~= "" then

game:GetService("ReplicatedStorage").Remotes.Server.Data.UnlockStatNode:InvokeServe
r(moveName)
print("Redeemed move:", moveName)
else
warn("Please enter a move name!")
end
end,
})

local Settings = Window:CreateTab({


Name = "Settings",
Icon = "settings",
ImageSource = "Material",
ShowTitle = true
})

local HttpService = game:GetService("HttpService")


local url = ""

local inputURL = Settings:CreateInput({


Name = "Enter Discord Webhook URL",
PlaceholderText = "Paste your Discord Webhook URL here",
CurrentValue = "",
Numeric = false,
Callback = function(Text)
url = Text
end,
})

-- Create confirm button


local ConfirmButton = Settings:CreateButton({
Name = "Confirm Webhook URL",
Callback = function()
if url == "" then
-- Show error if URL is empty
Luna:Notification({
Title = "Error",
Icon = "error_outline",
ImageSource = "Material",
Content = "Please enter a valid Discord Webhook URL.",
})
else
-- URL is valid, proceed with using the webhook
print("Webhook URL confirmed:", url)
Luna:Notification({
Title = "Webhook Confirmed",
Icon = "check_circle",
ImageSource = "Material",
Content = "Discord Webhook URL has been confirmed.",
})
end
end,
})

-- Send embed message function


function SendMessageEMBED(url, embed)
local headers = {
["Content-Type"] = "application/json"
}
local data = {
["username"] = "Sterling Hub",
["avatar_url"] = "https://imgur.com/5EKp1dm.png",
["embeds"] = {
{
["title"] = embed.title,
["url"] = "https://discord.gg/25ms",
["description"] = embed.description,
["color"] = embed.color,
["fields"] = embed.fields,
["footer"] = {
["text"] = embed.footer.text
}
}
}
}
local body = HttpService:JSONEncode(data)
local response = request({
Url = url,
Method = "POST",
Headers = headers,
Body = body
})
print("Sent")
end

-- Webhook logic for item collection (same as your original)


for _, item in pairs(workspace.Objects.Drops:GetChildren()) do
local proximityPrompt = item:FindFirstChild("Collect")
if proximityPrompt then
proximityPrompt.Triggered:Connect(function(player)
local parentName = item.Name
local embed = {
["title"] = parentName .. " Collected!",
["description"] = player.Name .. " has collected " .. parentName,
["color"] = 65280, -- Green color
["fields"] = {
{
["name"] = "Player",
["value"] = player.Name
},
{
["name"] = "Item",
["value"] = parentName
}
},
["footer"] = {
["text"] = "https://discord.gg/25ms"
}
}
SendMessageEMBED(url, embed)
end)
end
end

You might also like