FIZOR DOCUMENTATION
Lua SDK
Lua SDKは、Key確認、公開releaseの取得、HeartbeatをLuaから利用するための入口です。
どの入口を選ぶか
Key確認と実行だけならFizor library、公開releaseを固定URLで配信するならStable Loaderを使います。独自の画面やsession処理を実装する場合はcheck_keyとload_scriptを手動制御します。管理者がMANUAL_LURAPHのreleaseを準備、検証、公開する手順は手動Luraph保護リリースを参照してください。
Fizor library
local api = loadstring(game:HttpGet("https://fizor.example.com/api/library.lua"))()
api.script_id = "SCRIPT_ID"
local status = api.check_key(script_key)
if status.code == "KEY_VALID" then
return api.load_script()
end
warn(status.code .. ": " .. status.message)check_key成功時だけ短寿命sessionがcacheされ、load_scriptで一度だけ消費されます。shared secretはLuaへ配布されません。本体実行前にLRM_UserNote、LRM_ExpireDate、LRM_TotalExecutions、getgenv().FizorLicenseが設定されます。
Stable Loaderは、Script releaseを更新しても同じURLを使い続けるためのLua SDKです。
script_key = "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX"
loadstring(game:HttpGet("https://example.com/loader/<script-id>.lua"))()<script-id>にはScript IDを指定します。Script slugはProject間で重複し得るため、Stable Loader URLには使いません。
既存のキーGUIを使う場合は、GUI側でgetgenv().script_key、_G.script_key、shared.script_key、またはglobal script_keyにキーを入れてからStable Loader URLを実行します。script_keyがある場合だけ、Loaderは自動でkey認証してpublished releaseを実行します。
SDKを手動制御したい場合、script_keyを設定せずに読み込むか、読み込み前に自動実行を無効化できます。
_G.FIZOR_NO_AUTO_LOAD = true
local Fizor = loadstring(game:HttpGet("https://example.com/loader/<script-id>.lua"))()移行用としてLuarmor = Fizor aliasも公開されます。そのため、既存GUIからは次の形も使えます。
getgenv().script_key = "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX"
local Luarmor = loadstring(game:HttpGet("https://example.com/loader/<script-id>.lua"))()
Luarmor.check_key(getgenv().script_key)
Luarmor.load_script()check_key
local result = Fizor.check_key("XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX", "client-hwid-1", {
executor = "manual-test"
})check_keyはkey、Project、Script、identifierを検証し、成功時に短命sessionとruntime contextを返します。sourceは返しません。
成功時:
{
"ok": true,
"code": "KEY_VALID",
"session": "fizor_session_v1...",
"runtime": {
"projectId": "...",
"projectSlug": "main",
"scriptId": "...",
"scriptSlug": "hub",
"licenseId": "...",
"issuedAt": "2026-06-21T00:00:00.000Z",
"expiresAt": "2026-06-21T00:01:00.000Z"
}
}load_script
local loaded = Fizor.load_script("XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX", "client-hwid-1", {
execution_id = "run-0001"
})load_scriptは必要に応じてcheck_keyを実行し、成功したsessionで最新版のpublished releaseを取得して実行します。sessionは一回限りかつ短命で、改変、期限切れ、nonce再利用はsource配信前に拒否されます。sessionはload開始時にcacheから破棄されるため、次回のload_scriptは自動的に新しいcheckを実行します。
purge_cache
Fizor.purge_cache()purge_cacheはLua側のcheck結果、session、source、checksumのcacheを破棄します。次回のcheck_keyまたはload_scriptはサーバーへ再問い合わせします。
Status
Lua SDKはAPIのerror codeを標準statusへ正規化します。
KEY_VALIDKEY_INCORRECTKEY_EXPIREDKEY_BANNEDKEY_HWID_LOCKEDPROJECT_STOPPEDSCRIPT_INACTIVERATE_LIMITEDSESSION_INVALIDSESSION_EXPIREDSESSION_NOT_ACTIVESESSION_REPLAYEDUNKNOWN_ERROR
Heartbeatと停止通知
Script側でHeartbeatを有効にした場合だけ、load_scriptがバックグラウンドheartbeatを開始します。一時的な429、503、network errorは指数backoffで再試行され、graceを超えるとfail-closedになります。失効時は、Scriptの戻り値が関数ならcleanupとして実行し、次にoptions.on_revokedを呼びます。どちらもない場合は既定動作としてLocalPlayer:Kickします。長時間処理はcleanup関数またはcallbackでMaid等の接続・taskを確実に停止してください。
Fizor.load_script(key, hwid, {
on_revoked = function(response)
maid:DoCleaning()
end,
})次に読む
- APIのsession動作を確認する: Loader API
- 拒否Codeを確認する: エラーコード