всё засунь внутрь toggle
засунь всё в toggle только самое важное оставь снаружи по типо переменных ну короче давай
repeat task.wait() until game:IsLoaded()

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

local Window = Rayfield:CreateWindow({
Name = "Prime Hub JJI Investigate (Fixed)",
Icon = "home",
LoadingTitle = "Prime Hub",
LoadingSubtitle = "Loading...",
Theme = "Default",
DisableRayfieldPrompts = false,
DisableBuildWarnings = false,
ConfigurationSaving = {
Enabled = true,
FolderName = "Prime Hub",
FileName = "JJI Investigate"
},
Discord = {
Enabled = true,
Invite = "primeh",
RememberJoins = true
},
})

local MainTab = Window:CreateTab("Main", "activity")

getgenv().AutoAll = false

local autoAllTask, flipLoopTask, autoReplayTask, sosaltask

local SAFE_PLACE = Vector3.new(0,300,0)
local RETURN_POSITION = Vector3.new(-2866.146, 135.067902, 4350.21533)

-- Настройки для небольших задержек.
local PRESS_BS_DURATION = 0.07 -- Задержка для BackSlash
local PRESS_RETURN_DURATION = 0.05
local TELEPORT_DELAY = 0.2
local FLIP_SPAM = 5
local FLIP_LOOP_WAIT = 0.1

-- Создаём неоновую платформу для "безопасной" точки
local safePlatform = Instance.new("Part")
safePlatform.Name = "SafePlatform"
safePlatform.Anchored = true
safePlatform.Size = Vector3.new(100, 1, 100)
safePlatform.Position = SAFE_PLACE
safePlatform.Material = Enum.Material.Neon
safePlatform.BrickColor = BrickColor.new("Bright green")
safePlatform.CanCollide = true
safePlatform.Parent = workspace

local function teleportTo(pos)
local plr = game:GetService("Players").LocalPlayer
if not plr then return end
local char = plr.Character or plr.CharacterAdded:Wait()
local hrp = char:WaitForChild("HumanoidRootPart", 5)
if hrp then
hrp.CFrame = CFrame.new(pos)
task.wait(TELEPORT_DELAY)
end
end

-- Эта функция ищет подходящую BasePart (PrimaryPart, HumanoidRootPart и т.д.)
local function findBasePart(x)
if x:IsA("Model") then
if x.PrimaryPart then
return x.PrimaryPart
end
local a = x:FindFirstChild("HumanoidRootPart")
if a and a:IsA("BasePart") then
return a
end
local b = x:FindFirstChildWhichIsA("BasePart")
if b then
return b
end
elseif x:IsA("BasePart") then
return x
end
return nil
end

-- Вместо нажатия E используем fireproximityprompt
local function firePrompt(obj)
if not obj then return end
local prompt = obj:FindFirstChildOfClass("ProximityPrompt")
if prompt then
-- Вызов FireProximityPrompt. Вторым аргументом можно указать время удержания (по умолчанию 1).
-- Третий аргумент (true/false) – имитация нажатия кнопки "Hold" или нет.
fireproximityprompt(prompt, 1)
end
end

-- Спавм флип-лук для лута (анимация Flip)
local function spamFlipLoop()
local plr = game:GetService("Players").LocalPlayer
local lootGui = plr and plr:WaitForChild("PlayerGui"):WaitForChild("Loot", 10)
if not lootGui or not lootGui:IsA("ScreenGui") then return end
while getgenv().AutoAll do
if lootGui.Enabled then
-- "Открываем" GUI через BackSlash (имитация)
game:GetService("VirtualInputManager"):SendKeyEvent(true, Enum.KeyCode.BackSlash, false, game)
task.wait(0.05)
local frame = lootGui:FindFirstChild("Frame")
if frame then
local flip = frame:FindFirstChild("Flip")
if flip and flip:IsA("GuiObject") then
game:GetService("GuiService").SelectedObject = flip
task.wait(0.05)
for i = 1, FLIP_SPAM do
game:GetService("VirtualInputManager"):SendKeyEvent(true, Enum.KeyCode.Return, false, game)
task.wait(PRESS_RETURN_DURATION)
game:GetService("VirtualInputManager"):SendKeyEvent(false, Enum.KeyCode.Return, false, game)
task.wait(0.02)
end
end
end
-- "Закрываем" GUI
game:GetService("VirtualInputManager"):SendKeyEvent(false, Enum.KeyCode.BackSlash, false, game)
task.wait(0.1)
else
task.wait(FLIP_LOOP_WAIT)
end
end
end

-- Когда появляется Finger Bearer, телепортируемся на платформу и потом к нему
local function handleFingerBearerSpawned(c)
if not getgenv().AutoAll then return end
if c.Name == "Finger Bearer" and c:IsA("Model") then
-- Телепорт на зелёную платформу
teleportTo(safePlatform.Position + Vector3.new(0, 5, 0))
task.wait(10) -- небольшая пауза
local bp = findBasePart(c)
if bp then
teleportTo(bp.Position + Vector3.new(0, 2, 0))
end
end
end

-- Следим, когда появится Finger Bearer
local function monitorFingerBearer()
local mf = workspace:FindFirstChild("Objects") and workspace.Objects:FindFirstChild("Mobs")
if not mf or not mf:IsA("Folder") then return end
for _, x in ipairs(mf:GetChildren()) do
handleFingerBearerSpawned(x)
end
mf.ChildAdded:Connect(handleFingerBearerSpawned)
end

-- Обработка цивилов (Civilian)
local function processCivilian(c)
if not getgenv().AutoAll then return end
local bp = findBasePart(c)
if bp then
teleportTo(bp.Position + Vector3.new(0,1.5,0))
firePrompt(c)
task.wait(0.2)
teleportTo(RETURN_POSITION)
task.wait(0.2)
end
end

-- Обработка проклятых объектов (CursedObject)
local function processCursedObject(o)
if not getgenv().AutoAll then return end
local bp = findBasePart(o)
if bp then
teleportTo(bp.Position + Vector3.new(0,1.5,0))
firePrompt(o)
task.wait(0.2)
teleportTo(RETURN_POSITION)
task.wait(0.2)
end
end

-- Обработка сундуков
local function processChest(ch)
if not getgenv().AutoAll then return end
local bp = findBasePart(ch)
if bp then
teleportTo(bp.Position + Vector3.new(0,1.5,0))
firePrompt(ch)
-- Делаем небольшую задержку, чтобы сундук успел открыться и не все открывались разом
task.wait(0.5)
teleportTo(RETURN_POSITION)
task.wait(0.2)
end
end

-- Обработка мобов (включая Finger Bearer — убрали return)
local function processMob(m)
if not getgenv().AutoAll then return end
if m.Name == "Finger Bearer" then
wait(10)
end
local bp = findBasePart(m)
if bp then
teleportTo(bp.Position + Vector3.new(0,2,0))
-- Если у моба есть проксимити-промпт (редко, но пусть будет)
firePrompt(m)
task.wait(0.2)
teleportTo(RETURN_POSITION)
task.wait(0.2)
end
end

-- Главный цикл "всё в одном"
local function autoAllLoop()
monitorFingerBearer()
while getgenv().AutoAll do
local obj = workspace:FindFirstChild("Objects")
if not obj then
task.wait(0.5)
continue
end


    local mis = obj:FindFirstChild("MissionItems")
    local drp = obj:FindFirstChild("Drops")
    local mob = obj:FindFirstChild("Mobs")
    
    local foundSomething = false
    
    -- Civilian / CursedObject
    if mis and mis:IsA("Folder") then
        for _, i in ipairs(mis:GetChildren()) do
            if not getgenv().AutoAll then break end
            if i.Name=="Civilian" then
                foundSomething = true
                processCivilian(i)
            elseif i.Name=="CursedObject" then
                foundSomething = true
                processCursedObject(i)
            end
        end
    end

    -- Сундуки (Drops)
    if drp and drp:IsA("Folder") then
        for _, d in ipairs(drp:GetDescendants()) do
            if not getgenv().AutoAll then break end
            -- Ищем слово "chest" в названии
            if d:IsA("Model") and string.find(d.Name:lower(), "chest") then
                foundSomething = true
                processChest(d)
            end
        end
    end

    -- Мобы (Mobs)
    if mob and mob:IsA("Folder") then
        for _, mm in ipairs(mob:GetChildren()) do
            if not getgenv().AutoAll then break end
            if mm:IsA("Model") then
                foundSomething = true
                processMob(mm)
            end
        end
    end
    
    if not foundSomething then
        task.wait(0.5)
    end
end
end

getgenv().InstaKill = true

task.spawn(function()
while getgenv().InstaKill do
pcall(function()
local mobs = workspace.Objects.Mobs
if mobs and mobs:IsA("Folder") then
for _, mob in ipairs(mobs:GetChildren()) do
if mob:IsA("Model") and mob:FindFirstChildOfClass("Humanoid") then
local humanoid = mob:FindFirstChildOfClass("Humanoid")
if humanoid and humanoid.Health > 0 then
humanoid:ChangeState(15) -- Деактивирует Humanoid
humanoid.Health = 0 -- Устанавливает здоровье в 0
end
end
end
else
warn("Mobs folder not found or is not a folder.")
end
end)
task.wait(0.01) -- Быстрая обработка
end
end)

local hrp = game.Players.LocalPlayer.Character:WaitForChild("HumanoidRootPart")

local bp = Instance.new("BodyPosition", hrp)
bp.MaxForce = Vector3.new(1e5, 1e5, 1e5)
bp.Position = hrp.Position

game:GetService("RunService").Stepped:Connect(function()
bp.Position = hrp.Position
end)

local function sosal()
while getgenv().AutoAll do
game:GetService("ReplicatedStorage").Remotes.Client.StorylineDialogueSkip:FireServer(true)
task.wait()
end
end

-- Автоповтор (Replay) без 20-секундного ожидания, ставим короткую задержку
local function autoReplayLoop()
local plr = game:GetService("Players").LocalPlayer
local pg = plr and plr:FindFirstChild("PlayerGui")
if not pg then return end
while getgenv().AutoAll do
local rs = pg:FindFirstChild("ReadyScreen")
if rs and rs:IsA("ScreenGui") and rs.Enabled then
-- Короткая задержка вместо 20 секунд
task.wait(2)
if getgenv().AutoAll and rs.Enabled then
local frm = rs:FindFirstChild("Frame")
if frm then
local rply = frm:FindFirstChild("Replay")
if rply and rply:IsA("GuiButton") then
local vim = game:GetService("VirtualInputManager")
local gs = game:GetService("GuiService")
-- Открываем GUI
vim:SendKeyEvent(true,Enum.KeyCode.BackSlash,false,game)
task.wait(0.2)
gs.SelectedObject = rply
task.wait(0.2)
-- Нажимаем Enter
vim:SendKeyEvent(true,Enum.KeyCode.Return,false,game)
task.wait(0.1)
vim:SendKeyEvent(false,Enum.KeyCode.Return,false,game)
task.wait(0.1)
-- Закрываем GUI
vim:SendKeyEvent(true,Enum.KeyCode.BackSlash,false,game)
vim:SendKeyEvent(false,Enum.KeyCode.BackSlash,false,game)
end
end
end
end
task.wait(1)
end
end

MainTab:CreateToggle({
Name = "All in one Toggle + AutoReplay",
CurrentValue = false,
Flag = "AutoAll",
Callback = function(state)
getgenv().AutoAll = state
if state then
autoAllTask = task.spawn(autoAllLoop)
flipLoopTask = task.spawn(spamFlipLoop)
autoReplayTask = task.spawn(autoReplayLoop)
sosaltask = task.spawn(sosal)
else
getgenv().AutoAll = false
autoAllTask = nil
flipLoopTask = nil
autoReplayTask = nil
end
end,
})

MainTab:CreateLabel("All logic + AutoReplay in 1 Toggle", "rewind")

Rayfield:LoadConfiguration()