Публичный JSON-API для сторонних лоадеров и GUI. Полностью бесплатный — без платных тарифов и лимитов по подписке. Ты делаешь свой интерфейс — авторизация, ключи, платежи и хранение скриптов остаются на GrieferHub.
Все эндпоинты отвечают JSON (кроме /script — он отдаёт код). GET-запросы работают отовсюду, включая game:HttpGet в Roblox. POST принимает JSON или form-body с теми же параметрами.
Твой GUI — это просто «оболочка»: он спрашивает у сервера GrieferHub, может ли игрок запустить скрипт, показывает ссылку на ключ, затем скачивает и запускает скрипт. Вся схема: твой GUI → /checkkey → /script → скрипт работает. Ключи и код нигде не хранятся у тебя — всё остаётся на GrieferHub.
| Что | Описание |
|---|---|
pid | ID скрипта из ссылки его страницы: /script?pid=ab12cd34 → pid = ab12cd34. |
hwid | Roblox UserId игрока: tostring(Players.LocalPlayer.UserId). Один аккаунт = один hwid. |
key | Строка KEY-..., которую игрок получил после прохождения чекпоинтов твоей key system. |
token | Необязательно. Создаётся в профиле (вкладка ⚙ API): выше лимит + лог обращений. |
Запроси /api/v1/getkey?pid=... — вернётся ссылка на key system. Покажи её в GUI или скопируй в буфер.
После прохождения чекпоинтов игрок получает строку KEY-... и вводит её в твой GUI.
Статус "valid" → грузи скрипт через /script. Любая ошибка → просто покажи поле message — там уже человекочитаемый текст.
Раз в несколько минут. Кормит счётчики онлайна и блокирует использование одного ключа на двух устройствах сразу.
Полный минимальный лоадер на нашей библиотеке окон GHUI + API. Замени DOMAIN и PID — это всё.
-- 1) наша библиотека окон local HttpService = game:GetService("HttpService") local API = "https://secret.griefer.world/api/v1" local PID = "ab12cd34" -- pid вашего скрипта local HWID = tostring(game.Players.LocalPlayer.UserId) local function getJSON(url) local ok, res = pcall(function() return game:HttpGet(url) end) if not ok then return nil end local ok2, data = pcall(function() return HttpService:JSONDecode(res) end) return ok2 and data or nil end local UI = loadstring(game:HttpGet("https://secret.griefer.world/library/raw/ghui"))() local Window = UI:CreateWindow({ Title = "My Loader" }) local Tab = Window:CreateTab("Key") local KeyInput = Tab:CreateInput({ Title = "Your key", Placeholder = "KEY-..." }) -- 2) ссылка key system — в буфер обмена Tab:CreateButton({ Title = "Get Key (copy link)", Callback = function() local info = getJSON(API .. "/getkey?pid=" .. PID) if info and info.key_link and setclipboard then setclipboard(info.key_link) end end, }) -- 3) проверяем ключ и грузим скрипт Tab:CreateButton({ Title = "Check & Load", Callback = function() local q = "?pid=" .. PID .. "&hwid=" .. HWID .. "&key=" .. KeyInput:Get() local data = getJSON(API .. "/checkkey" .. q) if data and data.success and data.status == "valid" then local code = game:HttpGet(API .. "/script" .. q) loadstring(code)() end end, }) -- heartbeat каждые 3 минуты, пока скрипт работает task.spawn(function() while true do task.wait(180) getJSON(API .. "/heartbeat?pid=" .. PID .. "&hwid=" .. HWID .. "&key=" .. KeyInput:Get()) end end)
Чтобы получить pid, не нужно сначала выкладывать скрипт. Создайте проект в профиле — pid и ключ-система работают сразу. Интегрируйте свой GUI с API, а Lua-код загрузите, когда будете готовы: он хранится на GrieferHub, и /script выдаёт его после проверки ключа, как и у обычных загрузок.
Профиль → «Создать проект». Укажите название, добавьте свои Linkvertise-ссылки (необязательно) — pid появится сразу.
Как и для загруженных скриптов: /getkey → игрок проходит чекпоинты → /checkkey → /heartbeat.
Редактировать → вставьте Lua-код. Он хранится на GrieferHub; до этого /script отвечает no_code. Публичные проекты проходят одобрение администратора.
После одобрения скрипт появляется в каталоге, а /script выдаёт код после проверки ключа. Сторонние хостинги не участвуют ни на одном шаге.
Создаётся в профиле (вкладка ⚙ API). Передавайте его заголовком X-API-Token: gh_live_... или параметром &token=gh_live_.... Без токена — 60 запросов/мин с одного IP, с токеном — 300/мин, плюс каждый вызов виден в вашем профиле. Отозванный/несуществующий токен → 401.
| Параметр | Описание |
|---|---|
key_required | У скрипта включена key system — игроку нужен ключ. Покажи ссылку из /getkey. |
invalid_key | Неверный ключ или он выдан другому Roblox-аккаунту |
expired_key | Ключ истёк — игроку нужен новый |
not_whitelisted | Приватный скрипт: этого игрока нет в вайтлисте |
pending | Скрипт ещё не одобрен админом |
no_code | Проект существует, но автор ещё не загрузил код. Загрузите его через «Редактировать» в профиле. |
rate_limited | Слишком много запросов — подожди минуту |
api_disabled | API отключён администрацией |
Публичные метаданные скрипта (без авторизации): имя, автор, нужен ли ключ, цена, онлайн.
| Параметр | Обязателен | Описание |
|---|---|---|
pid | да | ID скрипта |
{
"success": true, "status": "ok",
"script": { "pid": "ab12cd34", "name": "My Script", "use_key": true,
"price": 0, "visibility": "public", "online": 3,
"updated_at": 1725000000.0, "author_id": "123..." }
}
Ссылка на прохождение key system — для кнопки «Get Key» в вашем GUI.
| Параметр | Обязателен | Описание |
|---|---|---|
pid | да | ID скрипта |
{
"success": true, "status": "ok",
"key_link": "https://link-center.net/...",
"key_url": "https://secret.griefer.world/get-key?pid=ab12cd34"
}
Возможные статусы: no_key_system (ключи выключены для этого скрипта).
Главная проверка: разрешён ли запуск этому hwid с этим key. Учитывает приватные скрипты (вайтлист). Ответ подписан HMAC.
| Параметр | Обязателен | Описание |
|---|---|---|
pid | да | ID скрипта |
hwid | да | Roblox UserId игрока |
key | если включена key system | Ключ игрока |
{
"success": true, "status": "valid", "message": "Key is valid",
"expires_at": 1725086400.0, -- unix time окончания ключа (или null)
"expires_in": 86400, -- секунд до окончания
"online": 3, -- сейчас в игре (по heartbeat)
"script_version": 1725000000, -- unix time последнего обновления скрипта
"sig": "0af31c..." -- HMAC-SHA256(secret, "pid:hwid:expires_at"), первые 32 символа
}
Код скрипта (тот же обфусцированный payload, что получает встроенный лоадер). Успех — text/plain с Lua-кодом, ошибка — JSON. Каждый уникальный hwid раз в 24 часа засчитывается в загрузки скрипта.
| Параметр | Обязателен | Описание |
|---|---|---|
pid / hwid / key | как в /checkkey | Полная авторизация обязательна |
Пинг «скрипт жив» каждые несколько минут во время работы. Защита от шаринга ключей: один ключ может быть активен только на одном устройстве — второе получит key_in_use (403), пока первое молчит дольше 30 минут. Возвращает число онлайн-игроков.
| Параметр | Обязателен | Описание |
|---|---|---|
pid / hwid / key | как в /checkkey | Полная авторизация обязательна |
{
"success": true, "status": "ok",
"session": "same", -- new | same | took_over
"online": 3,
"expires_in": 86400,
"sig": "0af31c..."
}
Краш-репорт из вашего GUI — попадает в админ-панель GrieferHub.
| Параметр | Обязателен | Описание |
|---|---|---|
pid | да | ID скрипта |
message | да | Текст ошибки (до 2000 символов) |
hwid | опционально | Кто отправил репорт |
kind | опционально | Тип: crash / error / feedback |
Ответы /checkkey и /heartbeat содержат sig = первые 32 символа HMAC-SHA256 от строки "pid:hwid:expires_at" секретом проекта. Секрет показывается автору на странице редактирования скрипта (блок «Developer API secret»). Так ваш GUI может убедиться, что ответ пришёл действительно от сервера GrieferHub, а не подменён.
-- Lua (экзекьюторы с crypt): local expected = crypt.hmac.crypt(crypt.base64encode("pid:hwid:" .. tostring(expires_at)), secret) -- сравните первые 32 символа с полем data.sig
Где взять мой pid?
Открой страницу своего скрипта в каталоге. Ссылка вида /script?pid=ab12cd34 — ab12cd34 и есть pid.
Обязательно ли использовать key system?
Если key system у скрипта выключена, /checkkey работает без параметра key — передавай только hwid.
Зачем нужен токен?
Он необязателен. Без токена — 60 запросов/мин на IP; с ним — 300/мин и лог обращений в профиле. Создаётся во вкладке ⚙ API профиля.
checkkey пишет invalid_key, но ключ вроде верный
Ключ привязан к Roblox-аккаунту (hwid), который его получил. Чужой аккаунт = invalid_key — именно так работает защита от шаринга ключей.
Можно начать использовать API до выкладки скрипта?
Да — используйте «Создать проект» в профиле. pid выдаётся мгновенно, весь ключевой поток /api/v1 работает. Lua-код загружается на GrieferHub потом (на странице редактирования) и раздаётся через /script, как у обычного скрипта.
• API полностью бесплатный: платных тарифов и платных токенов не существует.
• Без токена — 60 запросов/мин на IP, с токеном — 300/мин на токен (429 при превышении).
• Ключи, покупки и доступ полностью повторяют правила встроенного лоадера — отдельной логики у API нет.
• Токен — не секретный ключ от аккаунта: он только идентифицирует ваши запросы. Не публикуйте его.
• Для своего GUI берите готовую библиотеку из GUI Library — наш GHUI SDK даёт CreateWindow/табы/кнопки одной строкой.
• Администрация может временно отключить API целиком — тогда все эндпоинты отвечают 503 api_disabled.
• Вопросы и расширенные лимиты — Discord-сообщество GrieferHub.