-- ORBIT v1.1 | orbit_admin.lua
-- Требует админ-код. Правильный → всё разблокировано. Неправильный → оба босса.
-- Отдельный скрипт. Запускается поверх уже работающей ОРБИТЫ (ORBIT должен существовать).
--
-- v1.1: нормализация кириллических букв-двойников (А В С Е Н К М О Р Т У Х …)
-- к латинским — иначе «BAPCUk» на русской раскладке не совпадает с «BAPCUk».
--
-- Как использовать:
-- 1. Запусти основной загрузчик ОРБИТЫ (loadstring от orbit_loader).
-- 2. Дождись полной загрузки и запуска (меню ОРБИТА появилось).
-- 3. Запусти этот скрипт.
-- 4. Введи код в поле (любой раскладкой):
-- - верный код = всё разблокировано (награды, оружие, скины, титулы, монеты);
-- - неверный код = одновременно спавнятся Санс и Гастер, «пробуй сам».
local ADMIN_CODE = "BAPCUk"
local GENV = (type(getgenv) == "function" and getgenv()) or _G
local ORBIT = GENV.ORBIT or shared.ORBIT
if not ORBIT then
warn("[ORBIT admin] ОРБИТА не запущена — сначала загрузи основной скрипт")
return
end
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local LP = Players.LocalPlayer
local C3 = Color3.fromRGB
local function uiParent()
if type(ORBIT.getSafeParent) == "function" then
local ok, p = pcall(ORBIT.getSafeParent)
if ok and typeof(p) == "Instance" then return p end
end
return LP:FindFirstChildOfClass("PlayerGui")
end
local function killOld()
local name = "_OrbitAdminPanel"
local a = uiParent()
if a then local g = a:FindFirstChild(name); if g then g:Destroy() end end
local b = LP:FindFirstChildOfClass("PlayerGui")
if b then local g = b:FindFirstChild(name); if g then g:Destroy() end end
end
-- v1.1: нормализация ввода — кириллица → латиница, верхний регистр, без пробелов
local function normalize(s)
s = tostring(s or ""):upper():gsub("%s+", "")
local rep = {
["А"]="A", ["В"]="B", ["С"]="C", ["Е"]="E", ["Н"]="H", ["К"]="K",
["М"]="M", ["О"]="O", ["Р"]="P", ["Т"]="T", ["У"]="Y", ["Х"]="X",
["І"]="I", ["Ј"]="J", ["Ѕ"]="S",
}
for k, v in pairs(rep) do s = s:gsub(k, v) end
return s
end
-- === Выдача всего ===
local function grantAll()
ORBIT.sansUnlocked = true
ORBIT.gasterUnlocked = true
ORBIT.gasterWeaponUnlocked = true
ORBIT.sansKnifeUnlocked = true
ORBIT.sansBlueEyeUnlocked = true
ORBIT.saveData = ORBIT.saveData or {}
ORBIT.saveData.sansUnlocked = true
ORBIT.saveData.gasterUnlocked = true
ORBIT.saveData.gasterWeaponUnlocked = true
ORBIT.saveData.sansKnifeUnlocked = true
ORBIT.saveData.sansBlueEyeUnlocked = true
ORBIT.saveData.rewards = ORBIT.saveData.rewards or {}
local ids = {
"sans_knife","blue_eye","coins_sans","sans_chat","sans_boss_skin","sans_ghost",
"gaster_weapon","gaster_boss_skin","blue_eye_tick","gaster_skull_helmet",
"gaster_double_blaster","gaster_portal_fx","gaster_blue_particles","coins_gaster",
"gaster_dark_cloak","blade_master","orbit_legend","coins",
}
for _, id in ipairs(ids) do ORBIT.saveData.rewards[id] = true end
ORBIT.COINS = (ORBIT.COINS or 0) + 1000000
if ORBIT.saveSettings then pcall(ORBIT.saveSettings) end
if ORBIT.saveStorage then pcall(ORBIT.saveStorage) end
end
-- === Спавн двух боссов ===
local function spawnBothBosses()
task.spawn(function()
if ORBIT.sans_boss and type(ORBIT.sans_boss.startBoss) == "function" then
pcall(ORBIT.sans_boss.startBoss)
end
task.wait(0.6)
if ORBIT.gaster and type(ORBIT.gaster.startBoss) == "function" then
pcall(ORBIT.gaster.startBoss)
end
end)
end
-- === UI ===
local function buildUI()
killOld()
local pg = uiParent()
if not pg then return end
local sg =
Instance.new("ScreenGui")
sg.Name = "_OrbitAdminPanel"
sg.ResetOnSpawn = false
sg.IgnoreGuiInset = true
sg.DisplayOrder = 66
sg.Parent = pg
-- фон — обычный Frame (не кнопка)
local bg =
Instance.new("Frame")
bg.Size = UDim2.fromScale(1, 1)
bg.BackgroundColor3 = C3(0, 0, 0)
bg.BackgroundTransparency = 0.45