Права администратора (Admin Flags)
Система прав администратора построена на битовых флагах (flags). Каждый флаг открывает определённый набор команд и возможностей. Права могут выдаваться через ранг (rank) или индивидуально, а также могут быть отозваны через отрицательные флаги (negative flags).
Всего флагов: 24 (из 32 возможных битов)
Таблица прав
| Флаг | Название | Описание | Команды (content) | Команды (engine / client) | Verbs / UI-возможности |
|---|---|---|---|---|---|
| ADMIN | Admin | Базовые админ-вербы. Фундаментальное право администратора. | aghost, camera, warp, tp, tpto, showghosts, follow, setoutfit, setmind, forceghost, playerpanel, erase, addreagent, addmechanism, removeentitystorage, removebodypart, removemechanism, addbodypart, addentitystorage, clearbluespacelocker
|
Движок: tp, tpto
|
• Админ-меню • Контекстное меню (Verbs) — категории Admin и Tricks • Freeze/Unfreeze, Erase, Respawn • TeleportTo, TeleportHere • PlayerPanel (панель игрока) • SubtleMessage (скрытое сообщение) • AHelp панель • Clone/Spawn действия • Camera EUI (наблюдение) • AFK статус в AdminWho |
| BAN | Ban | Возможность банить игроков. | ban, banpanel, banlist, banexemption, roleban, roleunban, rolebanlist, pardon, departmentban, jobwhitelist
|
— | • В PlayerPanel отображается количество банов и статус вайтлиста • Bwoink UI показывает кнопки Ban/Notes • PanicBunker учитывает наличие флага BAN |
| DEBUG | Debug | Отладочные команды для программистов. | rejuvenate, stripall, dirty
|
Движок: delete, inrangeunoccluded, lsgrid, lsmap, loc, mem, netaudit, querymappaused, physics, showislands, showtime, showspritebb, cldbglyr, togglefov, togglehardfov, togglelight, togglelightbuf, toggleshadows, lightbb, szr_stats, addview, removeview, hwid, showaudio, showpos, showvel, showrot, showangvel, showray, showchunkbb, showgridnodes, entfo, sggcell, ldrsc, rldrsc, rldshader, rldloc, guidump, uitest, chunkinfo, showanchored, dmetamem, launchauth, lsmonitor, monitorinfo, watch, sendgarbage, setinputcontext, showplayervelocity, tilelookup, net_entityreport, scene, replay_recording_stats, print_pvs_ack, pvs_override_info, merge_gridsКлиент: fuckrules, atvrange, atvmode, atvcbm, debugai, notify, pathfinder, entitymenug, hidemechanisms, showmechanisms, menuvis, resetent, resetallents, showhealthbars, toggledecals, nodevis, nodevisfilter, showbiome, net_draw_interp, showmeleespread, showgunspread, showambient, showemergencyshuttle, zoom, showsubfloor, showmarkers, detachent, localdelete, fullstatereset, dumpentities, showwallmounts, showaccessreaders, quickinspect
|
• Debug-вербы (категория контекстного меню) • Rejuvenate (исцеление), Delete в PlayerPanel • Все клиентские отладочные команды |
| FUN | Fun | Развлекательные команды для проведения ивентов. Не рекомендуется выдавать триал-админам. | tippy, explosion, playglobalsound, playmapsound, set solution temperature, set solution thermal energy, set solution capacity, owoify, controlmob, addpolymorphaction, faxui, linkbluespacelocker, setoutfit
|
Движок: tip
|
• Вербы категории Smite (аннигилировать, взорвать, поджечь, обезьянифицировать, креппи, дезориентировать, ударить, пнуть, загипнотизировать, клувнифицировать, превратить в хлеб/мышь/инструмент, и т.д.) • Вербы категории Antag: сделать трейтором, зомби, ядерным оперативником, драконом, ренегатом, пиратом, главой революции, вампиром, пауком-террором, вором, генокрадом, парадокс-клоном, волшебником,space ninja, блобом и т.д. |
| PERMISSIONS | Permissions | Возможность редактировать права других администраторов. | openpermissions
|
— | • Permissions EUI (интерфейс редактирования прав) |
| SERVER | Server | Управление сервером: рестарт, смена режима раунда и т.д. | panicbunker, persistencesave, osay, setooc (+CHATTOGGLE), setlooc (+CHATTOGGLE)
|
Движок: delete, pausemap, unpausemap, restart, shutdown, tippy
|
• |
| SPAWN | Spawn | Возможность спавнить объекты и тайлы. | deletecomponent, loadgamemap (+ROUND)
|
Движок: spawn, cspawn, delete
|
• Панель спавна (AdminPlace — entity/tile spawn panel) |
| VAREDIT | VarEdit | Возможность использовать VV (View Variables — просмотр и редактирование переменных). | throwscoreboard
|
Движок: addcomp, addcompc, rmcomp, rmcompc, vv, vvread, vvwrite, vvinvoke, spin
|
• VV (View Variables) интерфейс |
| MAPPING | Mapping | Картографические операции. | variantize, removeextracomponents, ertui
|
Движок: addmap, loadgrid, loadmap, pausemap, querymappaused, rmgrid, rmmap, mapinit, savegrid, savemap, setambientlight, tpgrid, gridtc, togglespritenetsyncКлиент: mapping, mappingclientsidesetup, showsubfloor, showsubfloorforever, toggleautosave, toggledecals, showwallmounts, showaccessreaders
|
• Pause/Unpause map вербы |
| LOGS | Logs | Просмотр логов администратора. | adminlogs, openadminlogs
|
— | • Admin Logs (логи) на сущностях (верб) • AdminLogs EUI • PlayerPanel — кнопка "Open Logs" |
| ROUND | Round | Управление раундом: forcemap, loadgamemap и т.д. | shuttle, readyall, loadgamemap (+SPAWN)
|
— | • Bar job slots (обнуление слотов работы) верб |
| QUERY | Query | Использование BQL-запросов (Toolshed). | — | Движок: uploadfile, loadprototype, uploadfolderКлиент: uploadfile, loadprototype, uploadfolder, exec
|
• Toolshed-команды: entities, nearby, map, physics, player, splat, bin, extremes, reduce, sortby, sort, sortdownby, sortdown, sortmapby, sortmapdownby, iota, rep, to
|
| ADMINHELP | AdminHelp | Использование системы помощи (Admin Help / AHelp / Bwoink). | — | — | • BwoinkSystem — отправка и получение сообщений AHelp • PlayerPanel показывает доступность AHelp |
| VIEWNOTES | ViewNotes | Просмотр заметок об игроках. | adminnotes, openadminnotes
|
— | • AdminNotesManager — возможность просмотра • Bwoink UI показывает кнопку Notes |
| EDITNOTES | EditNotes | Создание, редактирование и удаление заметок об игроках. | — | — | • AdminNotesManager — создание, редактирование, удаление заметок |
| MASSBAN | MassBan | Массовый бан через веб-панель SS14.Admin. | — | — | • Веб-панель (не используется в игре) |
| STEALTH | Stealth | Возможность оставаться невидимым в /adminwho для админов без этого флага. | stealthmin
|
— | • Скрытие из списка /adminwho • Объявления о входе/выходе стелс-админа видны только другим стелс-админам |
| ADMINCHAT | AdminChat | Использование админ-чата. | asay
|
Клиент: achatwindow
|
• Вкладка админ-чата в окне чата |
| PII | PII | Просмотр персональной информации (IP, HWID) в игре и на SS14.Admin. | — | Движок: listplayers
|
• BanList EUI показывает IP и HWID |
| MODERATOR | Moderator | Модераторские действия на сервере. | dsay, votecallnew, announceui, playtime
|
Движок: kick, respawn
|
• Silicon law UI (законы ИИ/боргов) верб |
| ADMINWHO | AdminWho | Просмотр онлайн-админов (определён как флаг, но в текущей версии кодом не проверяется). | — | — | • Команда adminwho доступна всем (AnyCommand)• Флаг зарезервирован |
| NAMECOLOR | NameColor | Установка цвета ника в OOC. | setadminooc
|
— | • ChatManager применяет цвет OOC-ника |
| CHATTOGGLE (DS14) |
ChatToggle | Включение/отключение OOC и LOOC чата. | setooc (+SERVER), setlooc (+SERVER)
|
— | • Добавлено в форке DeadSpace |
| HOST | Host | Опасные права хости — C#-скрипты, перезагрузка прототипов и т.д. | playtime, adminlogbulk
|
Движок: gc_mode, gc, saveconfig, testlog, sudo, scsi, csi, lsasm, cvar, gcf, getcomponentregistration, fuck, replay_recording_start, replay_recording_stop, transfer_test
|
• Выполнение C#-скриптов (CanScript) • Перезагрузка прототипов (CanAdminReloadPrototypes) • На клиенте — полный обход всех проверок прав |
Комбинации флагов для некоторых возможностей
Некоторые команды требуют наличия нескольких флагов одновременно:
| Возможность | Требуемые флаги |
|---|---|
loadgamemap — загрузка игровой карты
|
ROUND + SPAWN |
setooc — включение/отключение OOC
|
SERVER + CHATTOGGLE |
setlooc — включение/отключение LOOC
|
SERVER + CHATTOGGLE |
Программная архитектура
Права проверяются тремя способами:
- Атрибут
[AdminCommand(AdminFlags.X)]— применяется к классам команд в Content.Server. Если команда не имеет атрибута, она консольная (недоступна игрокам). - YAML-файлы разрешений — для команд движка и Toolshed:
engineCommandPerms.yml,toolshedEngineCommandPerms.yml,clientCommandPerms.yml. - Прямые проверки в коде — системы вызывают
HasAdminFlag(player, AdminFlags.X)для разблокировки определённых вербов/функций.
Итоговые права администратора вычисляются по формуле: Flags = RankFlags ∪ PositiveFlags ∖ NegativeFlags
То есть: флаги ранга + индивидуально выданные флаги − индивидуально отозванные флаги.
См. также
- Обсуждение участника:WikiHampter/Админ-команды — список всех команд