game
Точка входа в Roblox DataModel плюс несколько cheat-side хелперов (FFlag-доступ, silent aim, player whitelist). 5 канонических функций плюс маленький набор pre-resolved полей.
| Функций | 5 (15 с алиасами) |
| Проверено вживую | 3 из 5 (SetFFlag и SilentAim частично: задокументированы из dump, не выполнены ради безопасности) |
| Требуемый event | нет |
| Сайд-эффекты | SetFFlag мутирует client FFlag, SilentAim целится (и может выстрелить), PlayerWhitelist добавляет имя в friendly-список |
Алиасы. Три формы у каждой:
game.GetService/getService/get_service. См. Обзор / Конвенция именования.
Dot syntax, не двоеточие.
game.GetService("Players")работает,game:GetService("Players")падает потому чтоgameэто Lua-table proxy, а не Roblox Instance userdata.
Краткий справочник
| Функция | Сигнатура | Заметка | Статус |
|---|---|---|---|
GetService | (name: string) → userdata | nil | получить Roblox-сервис по ClassName, возвращает nil для unknown / не-string args (кроме nil который raise'ит) | проверено |
GetFFlag | (name: string, type: string) → value | nil | прочитать Roblox FFlag, type должен быть 'int', 'bool', 'float' или 'double' | проверено |
SetFFlag | (name: string, value, type: string) | записать Roblox FFlag, тот же список типов что у GetFFlag | частично |
SilentAim | (x: number, y: number) | прицелиться в screen-позицию, способна вызвать выстрел | частично |
PlayerWhitelist | (name: string) | добавить player username в friendly-список чита | проверено |
Поля game.*
Проверено вживую:
| Поле | Тип | Заметка |
|---|---|---|
game.Workspace | userdata (Roblox Workspace) | всегда доступен, ClassName=Workspace |
game.Players | userdata (Roblox Players) | всегда доступен, ClassName=Players |
game.LocalPlayer | userdata (Roblox Player) | всегда доступен, ClassName=Player |
game.CameraPosition | Vector3 | живая позиция камеры, например (1884.64, 211.28, 3625.01) |
game.Lighting | nil | прямой game.Lighting равен nil в этом билде, используй game.GetService("Lighting") |
⚠️ Другие Roblox-сервисы вроде
Stats,MarketplaceService,RunServiceи т.д. не pre-resolved какgame.<Name>. Всегда используйgame.GetService(name).
GetService
game.GetService(name: string) → userdata | nil
Возвращает Roblox-сервис Instance чей ClassName равен name. Возвращает nil для unknown service-имён, пустой строки или не-string аргументов. Передача nil raise'ит ошибку.
Проверено вживую, сервисы которые вернули userdata:
Players, Lighting, Workspace, HttpService, RunService, TeleportService, TextService, GamepadService, UserInputService, ReplicatedStorage, StarterGui, StarterPack, Stats, MarketplaceService.
Проверено вживую, вернули nil:
ServerStorage (только server-side, не экспортирован клиенту).
Error-кейсы:
GetService('NotARealService123')→nilGetService('')→nilGetService(123)→nilGetService(nil)raise'ит"bad argument #1 to '?' (string expected, got no value)"
local players = game.GetService("Players")
local lighting = game.GetService("Lighting")
local http = game.GetService("HttpService")
GetFFlag
game.GetFFlag(name: string, type: string) → value | nil
Читает Roblox FFlag (FastFlag) по имени. Аргумент type говорит функции как декодировать underlying value.
Проверенные валидные type-строки: 'int', 'bool', 'float', 'double'.
Любой другой type raise'ит "Invalid FFlag type specified: '<type>'. Use 'int', 'bool', 'float', or 'double'.". Отсутствующий name или type raise'ит стандартный "bad argument #N (string expected, got no value)".
Если FFlag с указанным именем отсутствует в этом Roblox-клиенте, вызов возвращает nil (без ошибки). В нашем verify-прогоне популярные имена вроде DebugDisplayFPS, TaskSchedulerTargetFps, EnableQuickGameLaunch все вернули nil. Roblox держит внутреннюю flag-таблицу и экспортирует только subset имён в cheat-sandbox.
local fps_cap = game.GetFFlag("TaskSchedulerTargetFps", "int")
if fps_cap then
print(string.format("Roblox FPS cap = %d", fps_cap))
else
print("flag не экспортирован в этом билде")
end