Skip to content
This repository was archived by the owner on May 17, 2026. It is now read-only.

New roles - #51

Draft
ESphagnum wants to merge 67 commits into
ss14-art:masterfrom
ESphagnum:new-roles
Draft

New roles#51
ESphagnum wants to merge 67 commits into
ss14-art:masterfrom
ESphagnum:new-roles

Conversation

@ESphagnum

Copy link
Copy Markdown
Contributor

Краткое описание

Куча всяких ролей. Rabbit, с тебя описание :)
А так, пока что этот пр не доделан и его надо править, ведь здесь куча всякого фаршированного кала, которого надо разгребать.

Связанные задачи

Почему мы должны добавить это?

Медиа (Видео/Скриншоты)

Проверочный пункт

  • Перед публикацией/запросом на проверку PR, я убедился что изменения работают.
  • Я добавил скриншоты/видео изменений, если только этот PR не изменит внутриигровую механику.
  • Я подтверждаю, что мои изменения лицензированы в соответствии с лицензией Open Space Лицензия и предоставляю разрешение на их использование в этом репозитории в соответствии с его условиями.

Changelog

Rinary1 and others added 30 commits April 24, 2026 17:57
# Conflicts:
#	Resources/Locale/en-US/_Starlight/job/job-desc.ftl
#	Resources/Prototypes/Catalog/Fills/Crates/fun.yml
#	Resources/Prototypes/Entities/Structures/Machines/Computers/arcades.yml
#	Resources/Prototypes/_StarLight/Entities/Clothing/Uniforms/jumpsuits.yml
#	Resources/Prototypes/_StarLight/Entities/Markers/Spawners/jobs.yml
#	Resources/Prototypes/_StarLight/Entities/Objects/Devices/pda.yml
#	Resources/Prototypes/_StarLight/Entities/Objects/Misc/identification_cards.yml
#	Resources/Prototypes/_StarLight/Loadouts/role_loadouts.yml
#	Resources/Prototypes/_StarLight/Roles/play_time_trackers.yml
#	Resources/Prototypes/_StarLight/Roles/salaries.yml
#	Resources/Textures/Interface/Misc/job_icons.rsi/meta.json
# Conflicts:
#	Resources/Locale/en-US/_Starlight/preferences/loadout-groups.ftl
#	Resources/Prototypes/Access/command.yml
#	Resources/Prototypes/Access/misc.yml
#	Resources/Prototypes/Entities/Objects/Tools/access_configurator.yml
#	Resources/Prototypes/_StarLight/Entities/Clothing/Eyes/glasses.yml
#	Resources/Prototypes/_StarLight/Loadouts/loadout_groups.yml
# Conflicts:
#	Resources/Prototypes/_StarLight/Entities/Clothing/Eyes/glasses.yml
#	Resources/Prototypes/_StarLight/Entities/Clothing/Uniforms/jumpsuits.yml
#	Resources/Prototypes/_StarLight/Entities/Objects/Misc/identification_cards.yml
#	Resources/Prototypes/_StarLight/Roles/play_time_trackers.yml
# Conflicts:
#	Resources/Prototypes/_StarLight/Catalog/Fills/Items/belt.yml
#	Resources/Prototypes/_StarLight/Entities/Clothing/Back/backpacks.yml
#	Resources/Prototypes/_StarLight/Entities/Clothing/Back/duffel.yml
# Conflicts:
#	Resources/Prototypes/_StarLight/Catalog/Fills/Paper/documents.yml
# Conflicts:
#	Resources/Prototypes/_StarLight/Entities/Structures/Storage/Closets/Lockers/lockers.yml
# Conflicts:
#	Resources/Prototypes/_StarLight/Catalog/Fills/Lockers/representatives.yml
# Conflicts:
#	Resources/Textures/Structures/floor_web.rsi/meta.json
#	Resources/Textures/_Starlight/Clothing/Neck/Cloaks/bso_formal.rsi/equipped-NECK-cyclorite.png
#	Resources/Textures/_Starlight/Clothing/Neck/Cloaks/bso_formal.rsi/equipped-NECK-resomi.png
#	Resources/Textures/_Starlight/Clothing/Neck/Cloaks/bso_formal.rsi/equipped-NECK-vox.png
#	Resources/Textures/_Starlight/Clothing/Neck/Cloaks/bso_formal.rsi/equipped-NECK-vulpakin.png
#	Resources/Textures/_Starlight/Clothing/Neck/Cloaks/bso_formal.rsi/equipped-NECK.png
# Conflicts:
#	Resources/Prototypes/_StarLight/Loadouts/loadout_groups.yml
#	Resources/Prototypes/_StarLight/Loadouts/role_loadouts.yml
# Conflicts:
#	Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/blueshield_coat.rsi/equipped-OUTERCLOTHING-cyclorite.png
#	Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/blueshield_coat.rsi/equipped-OUTERCLOTHING-felionoid.png
#	Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/blueshield_coat.rsi/equipped-OUTERCLOTHING-resomi.png
#	Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/blueshield_coat.rsi/equipped-OUTERCLOTHING-vox.png
#	Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/blueshield_coat.rsi/equipped-OUTERCLOTHING-vulpakin.png
#	Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/blueshield_coat.rsi/equipped-OUTERCLOTHING.png
…eshield_coat.rsi directory

# Conflicts:
#	Resources/Textures/Clothing/OuterClothing/Vests/pressvest.rsi/meta.json
@coderabbitai

coderabbitai Bot commented Apr 25, 2026

Copy link
Copy Markdown
Contributor

Главное изменение

  • Добавлена игровая механика «Gavel»: новые серверные компоненты и система:
    • Content.Server._Starlight.Gavel: GavelBlockComponent, GavelHammerComponent, GavelSystem — серверный EntitySystem, привязанный к AfterInteractEvent; логика: воспроизведение звука по таймауту, инкремент счётчика ударов, при превышении MaxCounter — показ попапов, префикс имени и удаление компонентов.
  • Большое количество ресурсных файлов RSI meta.json и аудиофайлов (radio effects) добавлено в набор _Starlight (множество meta.json для оружейных спрайтов, звук/attributions.yml).

Prediction / networking

  • GavelSystem полностью server-side; состояние ограничено серверными компонентами (Counter, PrevSound и т.д.). Нет переноса состояния в Shared.
  • Риск mispredict / десериализации: прототипы/примеры в репозитории используют id/type без суффикса Component — в найденных YAML прототипах объекты перечислены как id: GavelBlock / GavelHammer и type: GavelBlock / GavelHammer. C# классы — GavelBlockComponent / GavelHammerComponent. В зависимости от механизма регистрации/mapper в engine это может привести к ошибкам при загрузке прототипов (engine ожидает точное совпадение имени типа или наличие алиасов).

Resources / localization

  • Ресурсы:
    • Добавлены многочисленные RSI meta.json файлы (проекты оружия, магазинов, кассетов, speedloaders и т.д.) и аудиофайлы для radio-эффектов; attributions.yml для эффектов добавлен (CC-BY-4.0 — JustAdler).
    • В прототипах множество ссылок на sprite: Objects/Weapons/.../*.rsi (стандартный путь для спрайтов).
  • Критическая структура: в PR-описании и в наборах изменений RSI meta.json лежат в папке Resources/Audio/_Starlight/... (вместо ожидаемой Resources/Textures/_Starlight/...). Если meta.json (и/или соответствующие .rsi/текстуры) действительно находятся в Resources/Audio, движок, скорее всего, не найдёт спрайты — это breaking change для загрузки спрайтов.
  • Локализация:
    • Добавлены FTL-строки для gavel: gavel-broken и gavel-broken-entityname-prefix.
    • Отсутствуют или не включены FTL-строки для множества новых radio-role имён (radio-effects/role labels) — добавлены аудиофайлы, но нет соответствующих player-facing локалей для всех ролей, перечисленных в PR.

Validation / risk

  • Обнаруженные/подтверждённые риски:
    1. Несоответствие имён компонентов между прототипами и C# (GavelBlock / GavelHammer vs GavelBlockComponent / GavelHammerComponent) — возможно, потребуется регистрация алиасов или переименование в YAML/C#.
    2. RSI meta.json файлов размещение в Audio вместо Textures (PR содержит много meta.json в Resources/Audio/_Starlight) — приведёт к тому, что клиенты/движок не увидят спрайты; это критическая ошибка пути/структуры.
    3. Отсутствие локализаций для большинства добавленных radio-role аудио/эффектов — player-facing тексты/FTL нужны перед использованием.
    4. PR помечен WIP, чеклист невыполнен — изменения крупные, содержат итеративные rsi-fix коммиты; есть заметная необходимость очистки и реорганизации.
    5. Нет автоматических тестов/проверок прототипов/ресурсов в PR — при большом количестве изменений шанс регрессии высок.
  • Breaking / migration:
    • Возможное breaking: если движок/загрузчик ожидает meta.json под Resources/Textures, текущее расположение ломает пути к sprite-прототипам.
    • Нет явных переездов или изменения ID существующих прототипов, кроме добавления новых Gavel id/type; однако добавленные id (GavelBlock / GavelHammer) должны соответствовать ожидаемым типам в C#.
  • Отсутствует:
    • доказательная часть: нет скриншотов, геймдизайна, баланс-рационала;
    • проверки целостности прототипов и сборочных/ресурсных пайплайнов.

Рекомендации (для автора/мейнтейнеров)

  • Переместить все RSI meta.json (и связанные графические ресурсы) в корректный каталог Resources/Textures/_Starlight/... чтобы соответствовать остальным sprite-ссылкам в прототипах.
  • Привести имена типов в прототипах в соответствие с регистрацией компонентов на стороне движка (либо добавить алиасы/корректную регистрацию компонентов), чтобы избежать ошибок десериализации (GavelBlock <-> GavelBlockComponent).
  • Добавить недостающие FTL-строки для всех player-facing radio-role имён, которые используются вместе с новыми аудиоэффектами.
  • Прогнать проверку прототипов/валидацию ресурсов (prototype validation, asset pipeline) и запустить сервер/клиент в dev для проверки загрузки спрайтов и аудио.
  • Завершить чеклист PR (удалить WIP, удалить/отрефакторить временные правки rsi-fix), убрать автоматические suggestion-коммиты в случае конфликтов, затем пометить PR готовым к ревью.

Walkthrough

Добавлены компоненты GavelBlockComponent и GavelHammerComponent и новая серверная система GavelSystem, обрабатывающая AfterInteractEvent: воспроизведение ударного звука с кулдауном, инкремент счётчика и разрушение при превышении MaxCounter. Также добавлены многочисленные RSI meta.json и аудио-атрибуции.

Changes

Cohort / File(s) Summary
Gavel System (Core Logic)
Content.Server/_Starlight/Gavel/GavelBlockComponent.cs, Content.Server/_Starlight/Gavel/GavelHammerComponent.cs, Content.Server/_Starlight/Gavel/GavelSystem.cs
Новая система и компоненты: GavelBlockComponent (HitSound?, Cooldown 0.5s, Counter, MaxCounter=60, PrevSound) и пустой GavelHammerComponent. GavelSystem подписывается на AfterInteractEvent, проверяет цель/доступность/кулдаун, воспроизводит звук, увеличивает Counter и при превышении MaxCounter показывает popup, префиксит DisplayName и удаляет компоненты.
Audio Attributions
Resources/Audio/_Starlight/Effects/Radio/attributions.yml
Добавлена запись атрибуции CC-BY-4.0 для набора эффектов (автор JustAdler).
Weapon & Ammo RSI metadata
Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/.../*.rsi/meta.json, Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/.../*.rsi/meta.json, Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/*.rsi/meta.json
Добавлено ~28+ новых meta.json для RSI-ассетов (размеры 32×32, лицензии CC-BY-SA/CC-BY-4.0, перечислены states, некоторые с directions и delays). Повторяющаяся структура метаданных для множества оружейных/боеприпасных спрайтов.

Sequence Diagram

sequenceDiagram
    participant Player as Игрок
    participant System as GavelSystem
    participant Hammer as GavelHammerComponent
    participant Block as GavelBlockComponent
    participant Entity as TargetEntity

    Player->>System: AfterInteractEvent (удар)
    System->>System: Проверка: args.Handled / reachable / target exists
    System->>Block: Есть ли GavelBlockComponent на цели?
    alt Нет блока
        System-->>Player: Игнор
    else Есть блок
        System->>Block: Проверка PrevSound / Cooldown
        alt Кулдаун прошёл
            System->>System: Воспроизвести HitSound (если указан)
            System->>Block: Counter++
            System->>System: Counter > MaxCounter?
            alt Счётчик превышен
                System->>Entity: Получить метаданные и показать popup (gavel-broken)
                System->>Entity: Обновить DisplayName (префикс gavel-broken-entityname-prefix)
                System->>Block: Удалить GavelBlockComponent
                System->>Hammer: Удалить GavelHammerComponent
            end
        else
            System-->>Player: Только обновлён PrevSound (без звука/счётчика)
        end
    end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested reviewers

  • ReWAFFlution
🚥 Pre-merge checks | ✅ 2 | ❌ 2

❌ Failed checks (2 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive Заголовок 'New roles' слишком расплывчатый и не описывает суть изменений. PR содержит компоненты Gavel, спрайты оружия и метаданные RSI, но заголовок не отражает эти деталь. Уточните заголовок, чтобы отразить основной функционал: например, 'Add Gavel components and weapon sprite resources' или 'Add new roles and gavel interaction system'.
Description check ❓ Inconclusive Описание на русском языке, содержит признание неполноты ('не доделан'), просьбу другому юзеру написать описание и ссылку на 'фаршированный кал', но не раскрывает конкретные цели изменений. Переформулируйте описание: конкретизируйте, какие роли добавляются, какие компоненты реализованы (Gavel), какие спрайты включены, и завершите PR перед публикацией.
✅ Passed checks (2 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
Review rate limit: 0/1 reviews remaining, refill in 60 minutes.

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 118

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (4)
Resources/Prototypes/_StarLight/Entities/Objects/Weapons/Melee/cane_nt.yml (1)

1-72: ⚠️ Potential issue | 🟡 Minor

Файл целиком закомментирован — мёртвый код.

Прототип CaneNT не существует в рантайме и не используется. Загрузка NanoTrasenRepresentative ссылается на OffsetCaneNT (из offset_cane.yml), который работает корректно. Удалите файл перед мерджем, чтобы не тащить неиспользуемый код.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Prototypes/_StarLight/Entities/Objects/Weapons/Melee/cane_nt.yml`
around lines 1 - 72, This file contains a fully commented-out unused prototype
(CaneNT) and should be removed; delete
Resources/Prototypes/_StarLight/Entities/Objects/Weapons/Melee/cane_nt.yml from
the branch so the dead CaneNT prototype is not carried into the merge—ensure no
other code references CaneNT (the runtime uses OffsetCaneNT from
offset_cane.yml) before removing.
Resources/Textures/_Starlight/Clothing/Neck/Cloaks/bso_formal.rsi/meta.json (1)

1-46: ⚠️ Potential issue | 🟡 Minor

Indent: 2 пробела вместо 4.

As per coding guidelines: "Keep RSI meta.json ordered as version, license, copyright, size, states with 4-space indentation".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Textures/_Starlight/Clothing/Neck/Cloaks/bso_formal.rsi/meta.json`
around lines 1 - 46, The meta.json uses 2-space indentation instead of the
required 4-space formatting; reformat the JSON to use 4-space indentation
throughout while preserving the existing key order (version, license, copyright,
size, states) and the existing state entries (e.g., "states", "size", individual
state names like "equipped-NECK" etc.).
Resources/Prototypes/_StarLight/Roles/play_time_trackers.yml (1)

1-21: ⚠️ Potential issue | 🟡 Minor

Trailing whitespace и непоследовательные пустые строки.

Строки 3, 6, 9, 12, 18 содержат хвостовые пробелы, а строка 15 — пустая. YAML-линтер, скорее всего, ругнётся. Уберите пробелы и приведите разделители к одному пустому ряду.

As per coding guidelines: "Separate prototype blocks with one blank line".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Prototypes/_StarLight/Roles/play_time_trackers.yml` around lines 1
- 21, Remove trailing whitespace from the playTimeTracker prototype entries
(e.g., the blocks with id values JobBrigmedic, JobRoboticist, JobMagistrate,
JobNanoTrasenRepresentative, JobIAA, JobCentralCommandOperator, JobBlueShield)
and normalize separators so each prototype block is separated by exactly one
blank line; ensure no extra blank lines remain (remove the stray empty line near
JobIAA) and that each "- type: playTimeTracker" block has no trailing spaces at
the end of its line.
Resources/Prototypes/_StarLight/Catalog/Fills/Items/belt.yml (1)

1-213: 🛠️ Refactor suggestion | 🟠 Major

Порядок полей entity-прототипа.

Везде type, id, parent, suffix. Гайдлайн требует type, parent, id, ... (suffix после name). Привести в соответствие за один проход.

As per coding guidelines: «Keep entity prototype field order as type, abstract, parent, id, categories, name, suffix, description, components».

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Prototypes/_StarLight/Catalog/Fills/Items/belt.yml` around lines 1
- 213, The entity prototypes in this file (e.g., ClothingAbductorBeltFilled,
ClothingBeltBrigmedicFilled, ClothingBeltCorpsmanFilled,
ClothingOuterVestWebEliteFilledMAA, ClothingBeltMilitaryWebbingFilledNavigator,
ClothingBeltMilitaryWebbingFilledGunner, etc.) have their YAML keys ordered as
type, id, parent, suffix; reorder each prototype to match the project guideline
key order: type, abstract (if present), parent, id, categories (if present),
name (if present), suffix, description (if present), components — then leave
components as-is; apply this change across every entity block in the file so all
prototypes follow the same canonical ordering.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 24714049-2b6f-4192-9608-c01ced725c7f

📥 Commits

Reviewing files that changed from the base of the PR and between f9ce7ca and 0a5866a.

⛔ Files ignored due to path filters (157)
  • Resources/Audio/_Starlight/Items/gavelhammer.ogg is excluded by !**/*.ogg
  • Resources/Textures/Interface/Misc/job_icons.rsi/BlueShield.png is excluded by !**/*.png
  • Resources/Textures/Interface/Misc/job_icons.rsi/IAA.png is excluded by !**/*.png
  • Resources/Textures/Interface/Misc/job_icons.rsi/Magistrate.png is excluded by !**/*.png
  • Resources/Textures/Objects/Misc/bureaucracy.rsi/paper_stamp-magistrate.png is excluded by !**/*.png
  • Resources/Textures/Objects/Misc/bureaucracy.rsi/paper_stamp-ntrep.png is excluded by !**/*.png
  • Resources/Textures/Objects/Misc/id_cards.rsi/ert_commander.png is excluded by !**/*.png
  • Resources/Textures/_StarLight/Clothing/Eyes/Hud/blueshieldpatch.rsi/equipped-EYES-dog.png is excluded by !**/*.png
  • Resources/Textures/_StarLight/Clothing/Eyes/Hud/blueshieldpatch.rsi/equipped-EYES-moth.png is excluded by !**/*.png
  • Resources/Textures/_StarLight/Clothing/Eyes/Hud/blueshieldpatch.rsi/equipped-EYES-resomi.png is excluded by !**/*.png
  • Resources/Textures/_StarLight/Clothing/Eyes/Hud/blueshieldpatch.rsi/equipped-EYES.png is excluded by !**/*.png
  • Resources/Textures/_StarLight/Clothing/Eyes/Hud/blueshieldpatch.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/_StarLight/Markers/jobs.rsi/iaa.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Back/Backpacks/blueshield.rsi/equipped-BACKPACK.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Back/Backpacks/blueshield.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Back/Backpacks/blueshield.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Back/Backpacks/blueshield.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Back/Duffels/blueshield.rsi/equipped-BACKPACK.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Back/Duffels/blueshield.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Back/Duffels/blueshield.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Back/Duffels/blueshield.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Belt/blueshieldmedicalbelt.rsi/equipped-BELT.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Belt/blueshieldmedicalbelt.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Belt/blueshieldmedicalbelt.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Belt/blueshieldmedicalbelt.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Eyes/Glasses/blueshield.rsi/equipped-EYES.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Eyes/Glasses/blueshield.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Eyes/Glasses/blueshield.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Eyes/Glasses/blueshield.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Eyes/Glasses/sunhudskill.rsi/equipped-EYES-vox.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Eyes/Glasses/sunhudskill.rsi/equipped-EYES.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Eyes/Glasses/sunhudskill.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Eyes/Glasses/sunhudskill.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Eyes/Glasses/sunhudskill.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Head/Hats/BSO_Bounty_Hunter_hat.rsi/equipped-HELMET-hamster.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Head/Hats/BSO_Bounty_Hunter_hat.rsi/equipped-HELMET.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Head/Hats/BSO_Bounty_Hunter_hat.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Head/Hats/BSO_Bounty_Hunter_hat.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Head/Hats/BSO_Bounty_Hunter_hat.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Head/Hats/blueshield.rsi/equipped-HELMET-hamster.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Head/Hats/blueshield.rsi/equipped-HELMET.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Head/Hats/blueshield.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Head/Hats/ntrep.rsi/equipped-HELMET-vox.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Head/Hats/ntrep.rsi/equipped-HELMET.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Head/Hats/ntrep.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Head/Hats/ntrep.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Head/Hats/ntrep.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Neck/Cloaks/bso_formal.rsi/equipped-NECK-cyclorite.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Neck/Cloaks/bso_formal.rsi/equipped-NECK-felionoid.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Neck/Cloaks/bso_formal.rsi/equipped-NECK-resomi.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Neck/Cloaks/bso_formal.rsi/equipped-NECK-vox.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Neck/Cloaks/bso_formal.rsi/equipped-NECK-vulpakin.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Neck/Cloaks/bso_formal.rsi/equipped-NECK.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Neck/Cloaks/bso_formal.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Neck/Cloaks/bso_formal.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Neck/Cloaks/bso_formal.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Neck/Cloaks/bso_poncho/equipped-NECK.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Neck/Cloaks/bso_poncho/icon.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Neck/Cloaks/bso_poncho/inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Neck/Cloaks/bso_poncho/inhand-right.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/OuterClothing/Armor/blueshield.rsi/equipped-OUTERCLOTHING.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/OuterClothing/Armor/blueshield.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/OuterClothing/Armor/blueshield.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/OuterClothing/Armor/blueshield.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/blueshield_coat.rsi/equipped-OUTERCLOTHING-cyclorite.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/blueshield_coat.rsi/equipped-OUTERCLOTHING-felionoid.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/blueshield_coat.rsi/equipped-OUTERCLOTHING-resomi.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/blueshield_coat.rsi/equipped-OUTERCLOTHING-vox.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/blueshield_coat.rsi/equipped-OUTERCLOTHING-vulpakin.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/blueshield_coat.rsi/equipped-OUTERCLOTHING.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/blueshield_coat.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/blueshield_coat.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/blueshield_coat.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/ntrep.rsi/equipped-OUTERCLOTHING-vox.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/ntrep.rsi/equipped-OUTERCLOTHING.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/ntrep.rsi/icon-open.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/ntrep.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/ntrep.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/ntrep.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/ntrep.rsi/open-equipped-OUTERCLOTHING-vox.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/ntrep.rsi/open-equipped-OUTERCLOTHING.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/ntrep.rsi/open-inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/ntrep.rsi/open-inhand-right.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpskirt/blueshield.rsi/equipped-INNERCLOTHING-monkey.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpskirt/blueshield.rsi/equipped-INNERCLOTHING.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpskirt/blueshield.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpskirt/blueshield.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpskirt/blueshield.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpskirt/blueshieldskirt.rsi/equipped-INNERCLOTHING.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpskirt/blueshieldskirt.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpskirt/blueshieldskirt.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpskirt/blueshieldskirt.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpskirt/ntrep.rsi/equipped-INNERCLOTHING-vox.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpskirt/ntrep.rsi/equipped-INNERCLOTHING.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpskirt/ntrep.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpskirt/ntrep.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpskirt/ntrep.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/blueshield.rsi/equipped-INNERCLOTHING-monkey.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/blueshield.rsi/equipped-INNERCLOTHING.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/blueshield.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/blueshield.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/blueshield.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/blueshieldshirt.rsi/equipped-INNERCLOTHING.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/blueshieldshirt.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/blueshieldshirt.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/blueshieldshirt.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/magistrate.rsi/equipped-INNERCLOTHING.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/magistrate.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/magistrate.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/magistrate.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/ntrep.rsi/equipped-INNERCLOTHING-vox.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/ntrep.rsi/equipped-INNERCLOTHING.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/ntrep.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/ntrep.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/ntrep.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/ntrepformal.rsi/equipped-INNERCLOTHING-vox.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/ntrepformal.rsi/equipped-INNERCLOTHING.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/ntrepformal.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/ntrepformal.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/ntrepformal.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Markers/jobs.rsi/green.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Markers/jobs.rsi/jobicon.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Markers/jobs.rsi/magistrate.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Markers/jobs.rsi/ntrep.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Objects/Devices/pda.rsi/equipped-BELT.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Objects/Devices/pda.rsi/equipped-IDCARD.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Objects/Devices/pda.rsi/id_overlay.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Objects/Devices/pda.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Objects/Devices/pda.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Objects/Devices/pda.rsi/insert_overlay.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Objects/Devices/pda.rsi/light_overlay.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Objects/Devices/pda.rsi/pda-blueshield.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Objects/Devices/pda.rsi/pda-veteranblueshield.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Objects/Misc/id_cards.rsi/default.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Objects/Misc/id_cards.rsi/gold.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Objects/Misc/id_cards.rsi/idblueshield.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Objects/Misc/id_cards.rsi/idiaa.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Objects/Misc/id_cards.rsi/idmagistrate.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Objects/Misc/id_cards.rsi/silver.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Objects/Misc/stamps.rsi/stamp-iaa.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Objects/Misc/stamps.rsi/stamp-magistrate.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Objects/Misc/stamps.rsi/stamp-ntrep.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Objects/Tools/gavelhammer.rsi/gavelblock.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Objects/Tools/gavelhammer.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Objects/Weapons/Melee/cane_nt.rsi/cane-nt-active.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Objects/Weapons/Melee/cane_nt.rsi/cane-nt.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Objects/Weapons/Melee/cane_nt.rsi/off-inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Objects/Weapons/Melee/cane_nt.rsi/off-inhand-right.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Objects/Weapons/Melee/cane_nt.rsi/on-inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Objects/Weapons/Melee/cane_nt.rsi/on-inhand-right.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Structures/Storage/closet.rsi/bssecure.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Structures/Storage/closet.rsi/bssecure_door.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Structures/Storage/closet.rsi/bssecure_open.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Structures/Storage/closet.rsi/locked.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Structures/Storage/closet.rsi/sparking.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Structures/Storage/closet.rsi/unlocked.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Structures/Storage/closet.rsi/welded.png is excluded by !**/*.png
📒 Files selected for processing (90)
  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs
  • Content.Server/_Starlight/Gavel/GavelHammerComponent.cs
  • Content.Server/_Starlight/Gavel/GavelSystem.cs
  • Resources/Locale/en-US/_Starlight/gavel/gavel.ftl
  • Resources/Locale/en-US/_Starlight/headset/headset-component.ftl
  • Resources/Locale/en-US/_Starlight/job/department-desc.ftl
  • Resources/Locale/en-US/_Starlight/job/department.ftl
  • Resources/Locale/en-US/_Starlight/job/job-desc.ftl
  • Resources/Locale/en-US/_Starlight/job/job.ftl
  • Resources/Locale/en-US/_Starlight/loadout/loadouts.ftl
  • Resources/Locale/en-US/_Starlight/preferences/loadout-groups.ftl
  • Resources/Locale/en-US/_Starlight/prototypes/access/accesses.ftl
  • Resources/Prototypes/Access/command.yml
  • Resources/Prototypes/Access/misc.yml
  • Resources/Prototypes/Entities/Objects/Tools/access_configurator.yml
  • Resources/Prototypes/Recipes/Lathes/Packs/clothing.yml
  • Resources/Prototypes/Recipes/Lathes/clothing.yml
  • Resources/Prototypes/Roles/Jobs/departments.yml
  • Resources/Prototypes/_StarLight/Access/command.yml
  • Resources/Prototypes/_StarLight/Catalog/Fills/Items/belt.yml
  • Resources/Prototypes/_StarLight/Catalog/Fills/Items/briefcases.yml
  • Resources/Prototypes/_StarLight/Catalog/Fills/Lockers/representatives.yml
  • Resources/Prototypes/_StarLight/Catalog/Fills/Paper/documents.yml
  • Resources/Prototypes/_StarLight/Entities/Clothing/Back/backpacks.yml
  • Resources/Prototypes/_StarLight/Entities/Clothing/Back/duffel.yml
  • Resources/Prototypes/_StarLight/Entities/Clothing/Belt/belts.yml
  • Resources/Prototypes/_StarLight/Entities/Clothing/Ears/headsets.yml
  • Resources/Prototypes/_StarLight/Entities/Clothing/Eyes/glasses.yml
  • Resources/Prototypes/_StarLight/Entities/Clothing/Head/hats.yml
  • Resources/Prototypes/_StarLight/Entities/Clothing/Neck/cloaks.yml
  • Resources/Prototypes/_StarLight/Entities/Clothing/OuterClothing/armor.yml
  • Resources/Prototypes/_StarLight/Entities/Clothing/OuterClothing/coats.yml
  • Resources/Prototypes/_StarLight/Entities/Clothing/Uniforms/jumpskirts.yml
  • Resources/Prototypes/_StarLight/Entities/Clothing/Uniforms/jumpsuits.yml
  • Resources/Prototypes/_StarLight/Entities/Markers/Spawners/jobs.yml
  • Resources/Prototypes/_StarLight/Entities/Objects/Devices/Electronics/door_access.yml
  • Resources/Prototypes/_StarLight/Entities/Objects/Devices/encryption_keys.yml
  • Resources/Prototypes/_StarLight/Entities/Objects/Devices/pda.yml
  • Resources/Prototypes/_StarLight/Entities/Objects/Misc/identification_cards.yml
  • Resources/Prototypes/_StarLight/Entities/Objects/Misc/rubber_stamp.yml
  • Resources/Prototypes/_StarLight/Entities/Objects/Tools/gavelblock.yml
  • Resources/Prototypes/_StarLight/Entities/Objects/Tools/gavelhammer.yml
  • Resources/Prototypes/_StarLight/Entities/Objects/Weapons/Melee/cane_nt.yml
  • Resources/Prototypes/_StarLight/Entities/Structures/Doors/Airlocks/access.yml
  • Resources/Prototypes/_StarLight/Entities/Structures/Storage/Closets/Lockers/lockers.yml
  • Resources/Prototypes/_StarLight/Loadouts/Jobs/Command/nanotrasenrepresentative.yml
  • Resources/Prototypes/_StarLight/Loadouts/Jobs/blueshield.yml
  • Resources/Prototypes/_StarLight/Loadouts/loadout_groups.yml
  • Resources/Prototypes/_StarLight/Loadouts/role_loadouts.yml
  • Resources/Prototypes/_StarLight/Recipes/Lathes/clothing.yml
  • Resources/Prototypes/_StarLight/Roles/Jobs/Law/Magistrate.yml
  • Resources/Prototypes/_StarLight/Roles/Jobs/Law/iaa.yml
  • Resources/Prototypes/_StarLight/Roles/Jobs/Representives/blueshield.yml
  • Resources/Prototypes/_StarLight/Roles/Jobs/Representives/nanotrasenrepresentative.yml
  • Resources/Prototypes/_StarLight/Roles/Jobs/departments.yml
  • Resources/Prototypes/_StarLight/Roles/play_time_trackers.yml
  • Resources/Prototypes/_StarLight/StatusIcon/job.yml
  • Resources/Prototypes/_StarLight/radio_channels.yml
  • Resources/Textures/Interface/Misc/job_icons.rsi/meta.json
  • Resources/Textures/Objects/Misc/bureaucracy.rsi/meta.json
  • Resources/Textures/Objects/Misc/id_cards.rsi/meta.json
  • Resources/Textures/_StarLight/Clothing/Eyes/Hud/blueshieldpatch.rsi/meta.json
  • Resources/Textures/_Starlight/Clothing/Back/Backpacks/blueshield.rsi/meta.json
  • Resources/Textures/_Starlight/Clothing/Back/Duffels/blueshield.rsi/meta.json
  • Resources/Textures/_Starlight/Clothing/Belt/blueshieldmedicalbelt.rsi/meta.json
  • Resources/Textures/_Starlight/Clothing/Eyes/Glasses/blueshield.rsi/meta.json
  • Resources/Textures/_Starlight/Clothing/Eyes/Glasses/sunhudskill.rsi/meta.json
  • Resources/Textures/_Starlight/Clothing/Head/Hats/BSO_Bounty_Hunter_hat.rsi/meta.json
  • Resources/Textures/_Starlight/Clothing/Head/Hats/blueshield.rsi/meta.json
  • Resources/Textures/_Starlight/Clothing/Head/Hats/ntrep.rsi/meta.json
  • Resources/Textures/_Starlight/Clothing/Neck/Cloaks/bso_formal.rsi/meta.json
  • Resources/Textures/_Starlight/Clothing/Neck/Cloaks/bso_poncho/meta.json
  • Resources/Textures/_Starlight/Clothing/OuterClothing/Armor/blueshield.rsi/meta.json
  • Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/blueshield_coat.rsi/meta.json
  • Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/ntrep.rsi/meta.json
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpskirt/blueshield.rsi/meta.json
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpskirt/blueshieldskirt.rsi/meta.json
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpskirt/ntrep.rsi/meta.json
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/blueshield.rsi/meta.json
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/blueshieldshirt.rsi/meta.json
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/magistrate.rsi/meta.json
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/ntrep.rsi/meta.json
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/ntrepformal.rsi/meta.json
  • Resources/Textures/_Starlight/Markers/jobs.rsi/meta.json
  • Resources/Textures/_Starlight/Objects/Devices/pda.rsi/meta.json
  • Resources/Textures/_Starlight/Objects/Misc/id_cards.rsi/meta.json
  • Resources/Textures/_Starlight/Objects/Misc/stamps.rsi/meta.json
  • Resources/Textures/_Starlight/Objects/Tools/gavelhammer.rsi/meta.json
  • Resources/Textures/_Starlight/Objects/Weapons/Melee/cane_nt.rsi/meta.json
  • Resources/Textures/_Starlight/Structures/Storage/closet.rsi/meta.json

@@ -0,0 +1,21 @@
using Robust.Shared.Audio;

namespace Content.Server.Starlight.Gavel;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
fd -e cs . Content.Server/_Starlight | head -50 | xargs -I{} rg -nH '^namespace ' {}

Repository: ss14-art/open-space

Length of output: 353


🏁 Script executed:

fd -type d '^_[A-Z]' Content.Server | head -20

Repository: ss14-art/open-space

Length of output: 234


🏁 Script executed:

rg 'namespace Content\.Server\._' Content.Server --max-count=5

Repository: ss14-art/open-space

Length of output: 886


🏁 Script executed:

find .cursor/rules -name '*.md' -o -name '*.mdc' | xargs grep -l "_Starlight\|_OpenSpace\|fork.*namespace" 2>/dev/null | head -5

Repository: ss14-art/open-space

Length of output: 45


🏁 Script executed:

fd -e cs . Content.Server/_Starlight/Gavel | xargs rg -nH '^namespace '

Repository: ss14-art/open-space

Length of output: 353


Namespace должен содержать префикс _Starlight согласно конвенции форка.

Все файлы в Content.Server/_Starlight/Gavel/ используют Content.Server.Starlight.Gavel, но согласно стилю _OpenSpace и другому коду _Starlight (например, EdgeConnectionSystem), форк-директории сохраняют underscore в namespace: Content.Server._Starlight.Gavel.

Затронуты 3 файла: GavelBlockComponent.cs, GavelHammerComponent.cs, GavelSystem.cs.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Content.Server/_Starlight/Gavel/GavelBlockComponent.cs` at line 3, The
namespace declarations in GavelBlockComponent, GavelHammerComponent, and
GavelSystem use Content.Server.Starlight.Gavel but must use the fork convention
with an underscore: Content.Server._Starlight.Gavel; update the namespace line
in each file (e.g., the namespace declaration that contains class
GavelBlockComponent, class GavelHammerComponent, and class GavelSystem) to
include the underscore, and then fix any affected using/import references or
fully-qualified type references to match the new namespace.

Comment thread Content.Server/_Starlight/Gavel/GavelBlockComponent.cs Outdated
Comment on lines +14 to +18
[DataField(readOnly: true)]
public int Counter;

[DataField(readOnly: true)]
public int MaxCounter = 60;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion | 🟠 Major

readOnly: true на рантайм-состоянии и конфиге — пересмотрите.

Counter — мутабельное состояние времени выполнения, ему readOnly: true концептуально не подходит; систему оно не блокирует (readOnly влияет только на YAML-сериализацию), но смущает читателя и мешает map-сейвам отражать прогресс. Для MaxCounter это конфиг — readOnly здесь избыточен, хватит обычного [DataField].

Предлагаемая правка
-    [DataField(readOnly: true)]
-    public int Counter;
-
-    [DataField(readOnly: true)]
-    public int MaxCounter = 60;
+    public int Counter;
+
+    [DataField]
+    public int MaxCounter = 60;
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
[DataField(readOnly: true)]
public int Counter;
[DataField(readOnly: true)]
public int MaxCounter = 60;
public int Counter;
[DataField]
public int MaxCounter = 60;
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Content.Server/_Starlight/Gavel/GavelBlockComponent.cs` around lines 14 - 18,
Remove the misleading readOnly flags from the component fields: make Counter
mutable at runtime by removing readOnly: true on the Counter DataField and allow
MaxCounter to be a normal config field by replacing [DataField(readOnly: true)]
on MaxCounter with a plain [DataField]; update the GavelBlockComponent field
annotations so Counter is not marked readOnly and MaxCounter uses the standard
[DataField] attribute.

@@ -0,0 +1,6 @@
namespace Content.Server.Starlight.Gavel;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
rg -nP '^namespace\s+Content\.(Server|Shared|Client)\._?Starlight' --type=cs -g '!**/obj/**'
fd -t f -e cs . Content.Server/_Starlight | head -50

Repository: ss14-art/open-space

Length of output: 872


Namespace не соответствует пути папки.

Все файлы в Content.Server/_Starlight/Gavel/ используют Content.Server.Starlight.Gavel (без подчёркивания), но должны использовать Content.Server._Starlight.Gavel. Соседний модуль EdgeConnection в той же иерархии корректно использует подчёркивание в namespace. Исправьте во всех трёх файлах: GavelHammerComponent, GavelBlockComponent и GavelSystem.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Content.Server/_Starlight/Gavel/GavelHammerComponent.cs` at line 1, В трёх
файлах GavelHammerComponent, GavelBlockComponent и GavelSystem текущий namespace
объявлен как Content.Server.Starlight.Gavel, но по структуре папок должен быть
Content.Server._Starlight.Gavel; исправьте декларации namespace в этих трёх
файлах на Content.Server._Starlight.Gavel и убедитесь, что внутри файлов имена
классов (GavelHammerComponent, GavelBlockComponent, GavelSystem) остаются без
изменений и что любые локальные using/qualified references по необходимости
обновлены чтобы соответствовать новому namespace.

Comment on lines +1 to +2
department-Law-description = Protect, prosecute or punish criminals.
department-Representives-description = High-ranking people whose goal is to protect the station in one way or another. No newline at end of file

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Описания слабоваты для player-facing текста.

«Protect, prosecute or punish criminals» и «High-ranking people whose goal is to protect the station…» — пресновато и противоречиво (Law-департамент описан только как Sec-функция, без юридической составляющей; Representives — слишком общо). Не блокер, но стоит расширить под реальные обязанности магистрата/IAA/NTrep до релиза.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Locale/en-US/_Starlight/job/department-desc.ftl` around lines 1 -
2, Update the two player-facing description strings to be more specific and
informative: replace department-Law-description with a line that reflects both
security and legal/magistrate duties (investigations, arrests, evidence
handling, trials/sentencing and oversight) and replace
department-Representives-description (department-Representives-description) with
a line that clearly identifies the faction role (e.g., magistrate/IAA/NT
representative duties like diplomacy, policy enforcement, legal appeals, and
liaison work) — keep each string concise, active-voice, and aimed at players
(what the role actually does in-game), preserving the existing key names so
callers still find department-Law-description and
department-Representives-description.

{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Taked from ParadiseStation",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Опечатка в copyright.

"Taked from ParadiseStation""Taken from Paradise Station". Поле атрибуции, в идентичных RSI по PR этот же артефакт встречается несколько раз — стоит выровнять разом.

Diff
-    "copyright": "Taked from ParadiseStation",
+    "copyright": "Taken from Paradise Station",
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"copyright": "Taked from ParadiseStation",
"copyright": "Taken from Paradise Station",
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Textures/_Starlight/Objects/Tools/gavelhammer.rsi/meta.json` at
line 4, The "copyright" JSON field currently contains a typo "Taked from
ParadiseStation"; update the value to "Taken from Paradise Station" (fix
spelling and spacing), and sweep other RSI metadata entries that contain the
same incorrect string to normalize them to the corrected value; target the JSON
key "copyright" where the value equals "Taked from ParadiseStation".

Comment on lines +13 to +23
{
"name": "cane-nt-active",
"delays": [
[
0.1,
0.1,
0.1,
0.1
]
]
},

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Табы вместо пробелов.

Строки 13-23 используют табы. По стандарту RSI meta.json должен использовать 4 пробела для отступов. Based on learnings: Keep RSI meta.json ordered as version, license, copyright, size, states with 4-space indentation.

🔧 Исправление отступов
     },
-	{
-      "name": "cane-nt-active",
-      "delays": [
-        [
-          0.1,
-          0.1,
-          0.1,
-          0.1
-        ]
-      ]
-    },
+    {
+      "name": "cane-nt-active",
+      "delays": [
+        [
+          0.1,
+          0.1,
+          0.1,
+          0.1
+        ]
+      ]
+    },
     {
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
{
"name": "cane-nt-active",
"delays": [
[
0.1,
0.1,
0.1,
0.1
]
]
},
{
"name": "cane-nt-active",
"delays": [
[
0.1,
0.1,
0.1,
0.1
]
]
},
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Textures/_Starlight/Objects/Weapons/Melee/cane_nt.rsi/meta.json`
around lines 13 - 23, The JSON fragment uses tabs for indentation and the
project requires 4-space indentation and a specific key order for RSI meta.json;
replace all tabs with 4-space indents in this file and ensure the top-level keys
follow the required order (version, license, copyright, size, states), placing
the "cane-nt-active" state object inside the states array with consistent
4-space indentation and preserved array values.

]
}
]
} No newline at end of file

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Отсутствует финальный перенос строки.

Файл должен заканчиваться переносом строки после закрывающей скобки.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Textures/_Starlight/Objects/Weapons/Melee/cane_nt.rsi/meta.json` at
line 85, Файл meta.json заканчивается закрывающей скобкой '}' без финального
перевода строки; откройте файл
Resources/Textures/_Starlight/Objects/Weapons/Melee/cane_nt.rsi/meta.json и
добавьте один конечный перенос строки сразу после последнего символа '}'
(обеспечьте LF/UNIX EOL) so the file ends with a newline.

Comment on lines +3 to +8
"size": {
"x": 32,
"y": 32
},
"copyright": "Taken from tgstation. Resprite BlueShield Closet by CatBG (Discord:catbg)",
"license": "CC-BY-SA-3.0",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Неверный порядок полей в RSI meta.json.

На Line 3-8 size стоит раньше license/copyright. Для этого файла нужен порядок: version, license, copyright, size, states.

Предложенный фикс
-    "size": {
-      "x": 32,
-      "y": 32
-    },
-    "copyright": "Taken from tgstation. Resprite BlueShield Closet by CatBG (Discord:catbg)",
-    "license": "CC-BY-SA-3.0",
+    "license": "CC-BY-SA-3.0",
+    "copyright": "Taken from tgstation. Resprite BlueShield Closet by CatBG (Discord:catbg)",
+    "size": {
+      "x": 32,
+      "y": 32
+    },
Based on learnings: Applies to Resources/**/**/meta.json : Keep RSI `meta.json` ordered as `version`, `license`, `copyright`, `size`, `states` with 4-space indentation.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"size": {
"x": 32,
"y": 32
},
"copyright": "Taken from tgstation. Resprite BlueShield Closet by CatBG (Discord:catbg)",
"license": "CC-BY-SA-3.0",
"license": "CC-BY-SA-3.0",
"copyright": "Taken from tgstation. Resprite BlueShield Closet by CatBG (Discord:catbg)",
"size": {
"x": 32,
"y": 32
},
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Textures/_Starlight/Structures/Storage/closet.rsi/meta.json` around
lines 3 - 8, The meta.json for this RSI has fields in the wrong order; open
meta.json and reorder the top-level keys so they appear as: "version",
"license", "copyright", "size", "states" (replace the current order where "size"
appears before "license"/"copyright"), ensure 4-space indentation and preserve
existing values (e.g. the "size" object and strings), and apply the same
ordering rule for other Resources/**/**/meta.json files if needed.

Comment on lines +46 to +48
{
"name": "ert_commander"
},

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
fd -t f 'ert_commander' Resources/Textures/Objects/Misc/id_cards.rsi

Repository: ss14-art/open-space

Length of output: 126


🏁 Script executed:

cat -n Resources/Textures/Objects/Misc/id_cards.rsi/meta.json | sed -n '40,55p'

Repository: ss14-art/open-space

Length of output: 497


🏁 Script executed:

cat Resources/Textures/Objects/Misc/id_cards.rsi/meta.json | head -15

Repository: ss14-art/open-space

Length of output: 836


Исправить отступ для ert_commander.

В строке 47 у поля "name": "ert_commander" 8 пробелов вместо 12. Все соседние состояния используют 12 пробелов. Файл ert_commander.png присутствует в папке RSI.

♻️ Diff
         {
-        "name": "ert_commander"
+            "name": "ert_commander"
         },
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
{
"name": "ert_commander"
},
{
"name": "ert_commander"
},
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Textures/Objects/Misc/id_cards.rsi/meta.json` around lines 46 - 48,
Включение свойства "name": "ert_commander" в объекте имеет 8 пробелов отступа,
тогда как соседние элементы используют 12; откройте объект содержащий
"ert_commander" в meta.json и поправьте отступ перед строкой "name":
"ert_commander" до 12 пробелов, сохранив синтаксис JSON и существующее
запятые/фигурные скобки (имя файла ресурса — ert_commander.png).

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review continued from previous batch...

job-description-roboticist = A scientist whose purpose is to repair and create mechanoids, cyborgs, and other mechanical creations.
job-description-magistrate = You are the very justice of the station, your job is to try all major troublemakers.
job-description-ntrep = You are an auditor sent by Central Command to make sure that all personnel are working efficiently and in the best interest of the corporation.
job-description-iaa = You are a servant of the people, defend, condemn the citizens of your station! No newline at end of file

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Уточни формулировку job-description-iaa

Текст на Line 4 звучит противоречиво (defend, condemn) и неочевиден для игрока. Нужна более однозначная формулировка обязанностей роли.

As per coding guidelines: "Treat localization as mandatory: Every player-facing string should be localized... Check consistency when prototype names, descriptions, markings, or UI text changed."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Locale/en-US/_Starlight/job/job-desc.ftl` at line 4, The
job-description-iaa string is ambiguous and contradictory ("defend, condemn");
update the FTL entry for job-description-iaa to a clear, unambiguous
player-facing duty summary (e.g., state core responsibilities like protecting
citizens and enforcing station law), keep it concise, maintain FTL key
job-description-iaa, add matching translations for other locales if present, and
run the localization consistency/lint checks to ensure the new wording aligns
with prototype names and UI text.

Comment on lines +25 to +32
loadout-group-blueshield-head = Blueshield head
loadout-group-blueshield-backpack = Blueshield backpack
loadout-group-blueshield-jumpsuit = Blueshield jumpsuit
loadout-group-blueshield-eyewear = Blueshield eyewear
loadout-group-blueshield-outerclothing = Blueshield Outer Clothing
loadout-group-blueshield-belt = Blueshield Belt
loadout-group-blueshield-neck = Blueshield Neck
loadout-group-blueshield-id = Blueshield ID

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Несогласованный регистр слов в значениях.

Выше: Blueshield head/backpack/jumpsuit/eyewear (строчные). Ниже: Blueshield Outer Clothing/Belt/Neck/ID (с заглавных). Приведите к одному стилю — иначе в preferences UI это бросается в глаза.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Locale/en-US/_Starlight/preferences/loadout-groups.ftl` around
lines 25 - 32, The values for the Blueshield loadout group are using
inconsistent title casing; normalize them to a single style (prefer sentence or
title case per project standard) so UI reads consistently. Update the string
values for loadout-group-blueshield-head, -backpack, -jumpsuit, -eyewear,
-outerclothing, -belt, -neck, and -id to use the same capitalization (e.g.,
"Blueshield head", "Blueshield backpack", "Blueshield outer clothing",
"Blueshield belt", "Blueshield neck", "Blueshield ID" or all Title Case if
that’s the convention) so all entries match.

Comment on lines +42 to +46
loadout-group-magistrate-shoes = Magistrate shoes
loadout-group-iia-shoes = Lawyer shoes

# Civilian
loadout-group-civilian-shoes = Shoes

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
rg -nP '\b(IAA|iaa|iia)Shoes\b' --type yaml
rg -nP '\bid:\s*(IAA|Iaa|Iia)\w*Shoes' --type yaml
rg -nP 'loadout-group-(iaa|iia)-shoes'

Repository: ss14-art/open-space

Length of output: 266


🏁 Script executed:

cat -n Resources/Prototypes/_StarLight/Loadouts/loadout_groups.yml | sed -n '375,390p'

Repository: ss14-art/open-space

Length of output: 411


🏁 Script executed:

rg -i 'iaa|iia' --type yaml -B 2 -A 2 | head -60

Repository: ss14-art/open-space

Length of output: 29189


🏁 Script executed:

rg -i 'internal affairs|lawyer' --type yaml -B 1 -A 1 | head -40

Repository: ss14-art/open-space

Length of output: 1982


Исправить семантическую рассинхрон id и name в loadout группе.

В Resources/Prototypes/_StarLight/Loadouts/loadout_groups.yml строка 381: id: LawyerShoes, но строка 382: name: loadout-group-iia-shoes. Аббревиатура iia не существует в кодовой базе — используется либо lawyer (основная терминология), либо iaa для Internal Affairs Agent. Нужно привести name в соответствие с id:

- type: loadoutGroup
  id: LawyerShoes
- name: loadout-group-lawyer-shoes
+ name: loadout-group-iaa-shoes

И обновить FTL соответственно (строка 43):

- loadout-group-iia-shoes = Lawyer shoes
+ loadout-group-iaa-shoes = Internal Affairs Agent shoes
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Locale/en-US/_Starlight/preferences/loadout-groups.ftl` around
lines 42 - 46, The loadout group has a semantic mismatch: the prototype uses id
"LawyerShoes" while the name key is "loadout-group-iia-shoes" (typo/incorrect
abbreviation "iia"); update the prototype entry where id: LawyerShoes to set
name: loadout-group-lawyer-shoes (or if intended for Internal Affairs Agent,
change id to IaaShoes and name to loadout-group-iaa-shoes) so id and name match,
and then update the FTL entry (replace loadout-group-iia-shoes with the
corrected key and change the English text to "Lawyer shoes" or "Internal Affairs
Agent shoes" to match the chosen id/name.

Comment on lines +17 to +60
- type: entity
id: ClothingBeltBrigmedicFilled
parent: ClothingBeltBrigmedic
suffix: Filled
components:
- type: EntityTableContainerFill
containers:
storagebase: !type:AllSelector
children:
- id: Stunbaton
- id: Handcuffs
- id: Brutepack
- id: Ointment
- id: Gauze

- type: entity
id: ClothingBeltBrigmedicWebFilled
parent: ClothingBeltBrigmedicWeb
suffix: Filled
components:
- type: EntityTableContainerFill
containers:
storagebase: !type:AllSelector
children:
- id: Stunbaton
- id: Handcuffs
- id: Brutepack
- id: Ointment
- id: Gauze

- type: entity
id: ClothingBeltCorpsmanFilled
parent: ClothingBeltCorpsman
suffix: Filled
components:
- type: EntityTableContainerFill
containers:
storagebase: !type:AllSelector
children:
- id: Stunbaton
- id: Handcuffs
- id: Brutepack
- id: Ointment
- id: Gauze

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick | 🔵 Trivial

DRY: одинаковое наполнение Brigmedic/BrigmedicWeb/Corpsman.

ClothingBeltBrigmedicFilled, ClothingBeltBrigmedicWebFilled, ClothingBeltCorpsmanFilled имеют идентичный набор Stunbaton/Handcuffs/Brutepack/Ointment/Gauze. При балансе это три места правок. Можно вынести абстрактный родитель с этим EntityTableContainerFill и наследоваться, либо использовать YAML-якорь.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Prototypes/_StarLight/Catalog/Fills/Items/belt.yml` around lines 17
- 60, Вынеси общий блок заполнения в переиспользуемый родитель или YAML-якорь и
унаследуйся от него: создай абстрактный сущность/шаблон (например
ClothingBeltMedBase или YAML-анккор для EntityTableContainerFill) содержащую
компонент EntityTableContainerFill с контейнером storagebase и детьми Stunbaton,
Handcuffs, Brutepack, Ointment, Gauze, затем в сущностях
ClothingBeltBrigmedicFilled, ClothingBeltBrigmedicWebFilled и
ClothingBeltCorpsmanFilled убери повторяющийся компонент и замените
наследованием/анкором на этот общий блок (сохрани существующие id и parent
ссылки).

Comment thread Resources/Prototypes/_StarLight/Catalog/Fills/Items/belt.yml Outdated
Comment on lines +1 to +49
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Taken from Paradise build, inhand sprited by Rinary1 (Github)",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "icon"
},
{
"name": "icon-open"
},
{
"name": "equipped-OUTERCLOTHING",
"directions": 4
},
{
"name": "equipped-OUTERCLOTHING-vox",
"directions": 4
},
{
"name": "open-equipped-OUTERCLOTHING",
"directions": 4
},
{
"name": "open-equipped-OUTERCLOTHING-vox",
"directions": 4
},
{
"name": "inhand-left",
"directions": 4
},
{
"name": "inhand-right",
"directions": 4
},
{
"name": "open-inhand-left",
"directions": 4
},
{
"name": "open-inhand-right",
"directions": 4
}
]
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

meta.json нужно привести к 4-пробельным отступам

Структура корректная, но формат не соответствует требованию по отступам (сейчас 2 пробела).

Based on learnings: "Applies to Resources///meta.json : Keep RSI meta.json ordered as version, license, copyright, size, states with 4-space indentation"

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/ntrep.rsi/meta.json`
around lines 1 - 49, The meta.json uses 2-space indentation and must be
reformatted to 4-space indentation and keep the key order as: "version",
"license", "copyright", "size", "states"; update the JSON in
Resources/Textures/_Starlight/Clothing/OuterClothing/Coats/ntrep.rsi/meta.json
so all nested objects (including "size" and each entry in "states") use 4 spaces
per indent, preserving the existing content and ordering exactly as listed;
validate the file is still valid JSON after reformatting.

Comment on lines +1 to +30
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "State based copyrights",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "icon",
"copyright": "Made by SapphicHaymaker for Starlight"
},
{
"name": "equipped-INNERCLOTHING",
"copyright": "Made by SapphicHaymaker for Starlight",
"directions": 4
},
{
"name": "inhand-left",
"copyright": "Made by SapphicHaymaker for Starlight",
"directions": 4
},
{
"name": "inhand-right",
"copyright": "Made by SapphicHaymaker for Starlight",
"directions": 4
}
]
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Отступы 2 пробела вместо 4.

Порядок ключей корректный, но indent — 2 пробела. По правилам RSI meta.json должен быть 4-space.

As per coding guidelines: "Keep RSI meta.json ordered as version, license, copyright, size, states with 4-space indentation".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@Resources/Textures/_Starlight/Clothing/Uniforms/Jumpskirt/blueshieldskirt.rsi/meta.json`
around lines 1 - 30, The meta.json uses 2-space indentation instead of the
required 4-space indentation; update the entire JSON to use 4-space indents
while preserving the existing key order (version, license, copyright, size,
states) and the state objects (icon, equipped-INNERCLOTHING, inhand-left,
inhand-right) and their properties so the file conforms to RSI meta.json
formatting rules.

{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Taked from Paradise station, inhand sprited by Rinary1 (Github)",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Опечатка в copyright: "Taked" → "Taken".

Мелочь, но это атрибуция автору, лучше починить сразу.

Details
-  "copyright": "Taked from Paradise station, inhand sprited by Rinary1 (Github)",
+  "copyright": "Taken from Paradise station, inhand sprited by Rinary1 (Github)",
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"copyright": "Taked from Paradise station, inhand sprited by Rinary1 (Github)",
"copyright": "Taken from Paradise station, inhand sprited by Rinary1 (Github)",
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@Resources/Textures/_Starlight/Clothing/Uniforms/Jumpskirt/ntrep.rsi/meta.json`
at line 4, Fix the typo in the meta.json attribute: update the "copyright" value
in meta.json (the "copyright" field shown in the diff) by replacing "Taked from
Paradise station, inhand sprited by Rinary1 (Github)" with "Taken from Paradise
station, inhand sprited by Rinary1 (Github)" so the attribution reads correctly.

Comment on lines +1 to +145
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Taken from ParadiseStation | Salvage/Mining PDAs by mikeysaurus, Veteran Salvage/Mining PDAs by PeterPoley for Starlight | Senior Chemist/Corpsman+Vet Corpsman PDA by wonderfulnewworld (github) for Starlight | Paramedic and Senior Paramedic by TacoLlama (github)",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "pda"
},
{
"name": "id_overlay"
},
{
"name": "equipped-BELT",
"directions": 4
},
{
"name": "inhand-left",
"directions": 4
},
{
"name": "inhand-right",
"directions": 4
},
{
"name": "insert_overlay"
},
{
"name": "light_overlay"
},
{
"name": "equipped-IDCARD",
"directions": 4
},
{
"name": "pda-blueshield",
"copyright": "Made by SapphicHaymaker for Starlight",
"delays": [
[
0.3,
0.3,
0.3,
0.3
]
]
},
{
"name": "pda-veteranblueshield",
"copyright": "Made by SapphicHaymaker for Starlight",
"delays": [
[
0.3,
0.3,
0.3,
0.3
]
]
},
{
"name": "pda-mining"
},
{
"name": "pda-mailtech"
},
{
"name": "pda-ntnc-cs"
},
{
"name": "pda-commander"
},
{
"name": "pda-salvagelead"
},
{
"name": "pda-veteransalvagelead"
},
{
"name": "pda-veteransalvage"
},
{
"name": "pda-veteranmining"
},
{
"name": "pda-paramedic",
"delays": [
[
0.3,
0.3,
0.3,
0.3
]
]
},
{
"name": "pda-seniorparamedic",
"delays": [
[
0.3,
0.3,
0.3,
0.3
]
]
},
{
"name": "pda-seniorchemist"
},
{
"name": "pda-veteranbrigmedic",
"delays": [
[
0.3,
0.3,
0.3,
0.3
]
]
},
{
"name": "pda-corpsman",
"delays": [
[
0.3,
0.3,
0.3,
0.3
]
]
},
{
"name": "pda-veterancorpsman",
"delays": [
[
0.3,
0.3,
0.3,
0.3
]
]
}
]
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Приведи формат JSON к единому стилю (4 пробела, без табов)

Сейчас в файле смешаны табы и разные отступы. Для RSI meta.json здесь ожидается 4-пробельная индентация.

Based on learnings: "Applies to Resources///meta.json : Keep RSI meta.json ordered as version, license, copyright, size, states with 4-space indentation"

🧰 Tools
🪛 GitHub Actions: RSI Validator

[error] 1-1: validate_rsis failed: pda: failed to open state pda.png


[error] 1-1: validate_rsis failed: pda-mining: failed to open state pda-mining.png


[error] 1-1: validate_rsis failed: pda-mailtech: failed to open state pda-mailtech.png


[error] 1-1: validate_rsis failed: pda-ntnc-cs: failed to open state pda-ntnc-cs.png


[error] 1-1: validate_rsis failed: pda-commander: failed to open state pda-commander.png


[error] 1-1: validate_rsis failed: pda-salvagelead: failed to open state pda-salvagelead.png


[error] 1-1: validate_rsis failed: pda-veteransalvagelead: failed to open state pda-veteransalvagelead.png


[error] 1-1: validate_rsis failed: pda-veteranmining: failed to open state pda-veteranmining.png


[error] 1-1: validate_rsis failed: pda-paramedic: failed to open state pda-paramedic.png


[error] 1-1: validate_rsis failed: pda-seniorparamedic: failed to open state pda-seniorparamedic.png


[error] 1-1: validate_rsis failed: pda-seniorchemist: failed to open state pda-seniorchemist.png


[error] 1-1: validate_rsis failed: pda-veteranbrigmedic: failed to open state pda-veteranbrigmedic.png


[error] 1-1: validate_rsis failed: pda-corpsman: failed to open state pda-corpsman.png


[error] 1-1: validate_rsis failed: pda-veterancorpsman: failed to open state pda-veterancorpsman.png

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Textures/_Starlight/Objects/Devices/pda.rsi/meta.json` around lines
1 - 145, The meta.json mixes tabs and inconsistent indentation and the top-level
keys/order must follow RSI style; open
Resources/Textures/_Starlight/Objects/Devices/pda.rsi/meta.json and reformat the
entire file to use 4-space indentation (no tabs), ensure the top-level keys are
ordered as: version, license, copyright, size, states, and make each state
object (e.g., entries with "name": "pda", "pda-blueshield", "pda-corpsman",
etc.) consistently indented with their nested arrays (like "delays") aligned to
4-space levels; preserve all existing property names/values but normalize
spacing and alignment throughout.

Comment on lines +9 to +144
"states": [
{
"name": "pda"
},
{
"name": "id_overlay"
},
{
"name": "equipped-BELT",
"directions": 4
},
{
"name": "inhand-left",
"directions": 4
},
{
"name": "inhand-right",
"directions": 4
},
{
"name": "insert_overlay"
},
{
"name": "light_overlay"
},
{
"name": "equipped-IDCARD",
"directions": 4
},
{
"name": "pda-blueshield",
"copyright": "Made by SapphicHaymaker for Starlight",
"delays": [
[
0.3,
0.3,
0.3,
0.3
]
]
},
{
"name": "pda-veteranblueshield",
"copyright": "Made by SapphicHaymaker for Starlight",
"delays": [
[
0.3,
0.3,
0.3,
0.3
]
]
},
{
"name": "pda-mining"
},
{
"name": "pda-mailtech"
},
{
"name": "pda-ntnc-cs"
},
{
"name": "pda-commander"
},
{
"name": "pda-salvagelead"
},
{
"name": "pda-veteransalvagelead"
},
{
"name": "pda-veteransalvage"
},
{
"name": "pda-veteranmining"
},
{
"name": "pda-paramedic",
"delays": [
[
0.3,
0.3,
0.3,
0.3
]
]
},
{
"name": "pda-seniorparamedic",
"delays": [
[
0.3,
0.3,
0.3,
0.3
]
]
},
{
"name": "pda-seniorchemist"
},
{
"name": "pda-veteranbrigmedic",
"delays": [
[
0.3,
0.3,
0.3,
0.3
]
]
},
{
"name": "pda-corpsman",
"delays": [
[
0.3,
0.3,
0.3,
0.3
]
]
},
{
"name": "pda-veterancorpsman",
"delays": [
[
0.3,
0.3,
0.3,
0.3
]
]
}
]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Блокер: states ссылаются на отсутствующие PNG (падает RSI Validator)

По логам пайплайна не открываются pda.png, pda-mining.png, pda-mailtech.png и ряд других состояний из этого списка. Нужно либо добавить соответствующие файлы в pda.rsi, либо удалить/переименовать состояния в meta.json до фактических имен ассетов.

As per coding guidelines: "Run RSI validation for RSI metadata changes"

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Textures/_Starlight/Objects/Devices/pda.rsi/meta.json` around lines
9 - 144, meta.json's "states" include entries that reference missing sprite
files (e.g., "pda", "pda-mining", "pda-mailtech", "pda-ntnc-cs",
"pda-commander", etc.), causing the RSI Validator to fail; fix by either adding
the corresponding PNG assets into the PDA RSI bundle with matching filenames or
remove/rename the offending state entries in meta.json to the actual asset
names, then re-run the RSI validator to confirm; check and update the specific
state entries like "pda", "pda-mining", "pda-mailtech", "pda-ntnc-cs",
"pda-commander", "pda-salvagelead", "pda-paramedic", "pda-seniorparamedic",
"pda-veteranbrigmedic", "pda-corpsman", and "pda-veterancorpsman" to ensure they
map to real PNGs.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review continued from previous batch...

Comment on lines +10 to +15
public sealed class GavelSystem : EntitySystem
{
[Dependency] private readonly SharedAudioSystem _audio = default!;
[Dependency] private readonly IGameTiming _timing = default!;
[Dependency] private readonly PopupSystem _popup = default!;
[Dependency] private readonly MetaDataSystem _metaData = default!;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick | 🔵 Trivial

Server-only поведение без shared/prediction.

Удар Gavel — действие игрока, для него ожидается мгновенный фидбек. Сейчас вся логика серверная: при лагах попап и звук появятся с задержкой. Если хочется UX без рывков — вынесите общую часть (cooldown gate, увеличение Counter, popup) в Content.Shared/_Starlight/Gavel/SharedGavelSystem.cs и оставьте authority-операции (RemComp, переименование) на сервере. Если намеренно server-only — оставьте, это допустимо для администраторских/редких событий.

Based on learnings: «If a shared system needs client/server special cases, keep a shared base plus both server and client concrete systems» и «For player-facing actions in Content.Server, verify the shared prediction path».

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Content.Server/_Starlight/Gavel/GavelSystem.cs` around lines 10 - 15, Сейчас
вся логика удара Gavel живёт в серверной GavelSystem, из‑за чего клиентский
фидбек (звук, попап, увеличение счётчика, cooldown) задерживается при лаге;
вынесите общую предсказуемую часть в новый SharedGavelSystem
(Content.Shared/_Starlight/Gavel/SharedGavelSystem.cs) — туда поместите cooldown
gate, увеличение Counter, показ popup и воспроизведение локального
звука/эффекта, чтобы клиент мог предсказать действие; оставьте в GavelSystem
только авторитетные операции (удаление компонентов через RemComp,
переименование/синхронизация метаданных и любые серверные side‑effects) и вызовы
SharedGavelSystem для общей логики; при реализации убедитесь, что
подписки/вызовы в GavelSystem используют и делегируют в SharedGavelSystem, а
SharedGavelSystem не выполняет серверных-only операций вроде RemComp или
_metaData изменения.

Comment on lines +22 to +51
private void OnHit(EntityUid uid, GavelHammerComponent component, AfterInteractEvent args)
{
if (args.Target == null ||
args.CanReach == false ||
args.Handled ||
!TryComp<GavelBlockComponent>(args.Target, out var comp))
return;

if ((comp.PrevSound != null && _timing.CurTime - comp.PrevSound > comp.Cooldown) || comp.PrevSound == null)
{
comp.Counter += 1;
_audio.PlayPvs(comp.HitSound, args.Target.Value);
comp.PrevSound = _timing.CurTime;
}

if (comp.Counter > comp.MaxCounter)
{
var blockMeta = MetaData(args.Target.Value);
var hammerMeta = MetaData(uid);

_popup.PopupEntity(Loc.GetString("gavel-broken", ("ent", blockMeta.EntityName)), args.Target.Value, PopupType.MediumCaution);
_popup.PopupEntity(Loc.GetString("gavel-broken", ("ent", hammerMeta.EntityName)), uid, PopupType.MediumCaution);

_metaData.SetEntityName(args.Target.Value, $"{Loc.GetString("gavel-broken-entityname-prefix")} {blockMeta.EntityName}");
_metaData.SetEntityName(uid, $"{Loc.GetString("gavel-broken-entityname-prefix")} {hammerMeta.EntityName}");

RemComp<GavelBlockComponent>(args.Target.Value);
RemComp<GavelHammerComponent>(uid);
}
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

args.Handled не выставляется при пробитии.

После того как блок «сломан» (L48-49), args.Handled остаётся false. Другие подписчики AfterInteractEvent (как на молотке-Hammer, так и на стороне цели) продолжат отрабатывать тот же удар — потенциально с уже снятыми компонентами, но с побочными эффектами на target/uid. На срабатывании cooldown тоже стоит сигнализировать «обработано», иначе двойные popup-ы и звуки от других систем на тот же клик.

Предлагаемый фикс
-        if (args.Target == null ||
-            args.CanReach == false ||
-            args.Handled ||
-            !TryComp<GavelBlockComponent>(args.Target, out var comp))
+        if (args.Target == null ||
+            !args.CanReach ||
+            args.Handled ||
+            !TryComp<GavelBlockComponent>(args.Target, out var comp))
             return;

-        if ((comp.PrevSound != null && _timing.CurTime - comp.PrevSound > comp.Cooldown) || comp.PrevSound == null)
+        if (comp.PrevSound is null || _timing.CurTime - comp.PrevSound.Value > comp.Cooldown)
         {
             comp.Counter += 1;
             _audio.PlayPvs(comp.HitSound, args.Target.Value);
             comp.PrevSound = _timing.CurTime;
+            args.Handled = true;
         }

         if (comp.Counter > comp.MaxCounter)
         {
             ...
             RemComp<GavelBlockComponent>(args.Target.Value);
             RemComp<GavelHammerComponent>(uid);
+            args.Handled = true;
         }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Content.Server/_Starlight/Gavel/GavelSystem.cs` around lines 22 - 51, The
AfterInteractEvent's Handled flag isn't set, so other handlers run after the
gavel logic; update OnHit to set args.Handled = true whenever you consume the
interaction: set args.Handled = true after playing the hit sound/cooldown branch
(where comp.Counter is incremented/comp.PrevSound updated) and also set
args.Handled = true in the block-broken branch (where you show popups, rename
entities, remove GavelBlockComponent and GavelHammerComponent) so the event is
not processed further by other subscribers.

Comment on lines +45 to +46
_metaData.SetEntityName(args.Target.Value, $"{Loc.GetString("gavel-broken-entityname-prefix")} {blockMeta.EntityName}");
_metaData.SetEntityName(uid, $"{Loc.GetString("gavel-broken-entityname-prefix")} {hammerMeta.EntityName}");

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Конкатенация локализованных строк через $"..." обходит локализацию.

SetEntityName в виде "{префикс} {EntityName}" жёстко хардкодит порядок и пробел между токенами. Для языков с другим порядком слов это сломается. Используйте Fluent-плейсхолдер с аргументом, как в gavel-broken:

Предлагаемый фикс (FTL + код)
-            _metaData.SetEntityName(args.Target.Value, $"{Loc.GetString("gavel-broken-entityname-prefix")} {blockMeta.EntityName}");
-            _metaData.SetEntityName(uid, $"{Loc.GetString("gavel-broken-entityname-prefix")} {hammerMeta.EntityName}");
+            _metaData.SetEntityName(args.Target.Value,
+                Loc.GetString("gavel-broken-entityname", ("ent", blockMeta.EntityName)));
+            _metaData.SetEntityName(uid,
+                Loc.GetString("gavel-broken-entityname", ("ent", hammerMeta.EntityName)));

В .ftl:

gavel-broken-entityname = сломанный {$ent}

As per coding guidelines: «Every player-facing string must be localized» — а локализация — это не только Loc.GetString, но и порядок токенов внутри fluent-сообщений.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Content.Server/_Starlight/Gavel/GavelSystem.cs` around lines 45 - 46, The
code concatenates a localized prefix and an entity name directly in
GavelSystem.cs (_metaData.SetEntityName calls), which breaks localization order;
change both SetEntityName calls to use a fluent/localization key with a
placeholder (e.g. "gavel-broken-entityname") and pass the entity name as the
"ent" argument instead of using $"..."; also add/update the corresponding .ftl
entry (gavel-broken-entityname = сломанный {$ent}) so the formatter controls
token order and spacing.

Comment on lines +115 to +163
- type: entity
id: ClothingOuterVestWebEliteFilledMAA
parent: ClothingOuterVestWebElite
suffix: Filled
components:
- type: Storage #Starlight
maxItemSize: Normal
grid:
- 0,0,1,0 #left
- 0,1,0,1 #left - cube
- 3,0,10,1
- 12,0,13,1 #right
whitelist:
tags:
- Bola
- CigPack
- Taser
- SecBeltEquip
- Radio
- Sidearm
- MagazinePistol
- MagazineMagnum
- CombatKnife
- Truncheon
- HandGrenade
components:
- Stunbaton
- FlashOnTrigger
- SmokeOnTrigger
- Flash
- Handcuff
- BallisticAmmoProvider
- CartridgeAmmo
- DoorRemote
- Whistle
- BalloonPopper
- type: EntityTableContainerFill
containers:
storagebase: !type:AllSelector
children:
- id: WeaponPistolStechkin
- id: MagazinePistolFMJ
- id: MagazinePistolSP
- id: Stunbaton
- id: Handcuffs
- id: Handcuffs
- id: GrenadeShrapnel
- id: Bola
- id: HoloprojectorSecurity

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
ast-grep --pattern $'- type: entity
  id: ClothingOuterVestWebElite
  $$$'

Repository: ss14-art/open-space

Length of output: 241


🏁 Script executed:

rg -A 20 'id: ClothingOuterVestWebElite' Resources/

Repository: ss14-art/open-space

Length of output: 3708


🏁 Script executed:

fd -g 'belt.yml' -o -g 'vests.yml' Resources/

Repository: ss14-art/open-space

Length of output: 180


🏁 Script executed:

rg 'ClothingOuterVestWebElite' Resources/ -t yml

Repository: ss14-art/open-space

Length of output: 91


🏁 Script executed:

rg -A 50 'id: ClothingOuterVestWebElite$' Resources/Prototypes/Entities/Clothing/OuterClothing/armor.yml

Repository: ss14-art/open-space

Length of output: 1711


🏁 Script executed:

ls -la Resources/Prototypes/_StarLight/Catalog/Fills/Items/

Repository: ss14-art/open-space

Length of output: 297


🏁 Script executed:

grep -E '^- type: entity|  id: ' Resources/Prototypes/_StarLight/Catalog/Fills/Items/belt.yml | head -30

Repository: ss14-art/open-space

Length of output: 725


🏁 Script executed:

find Resources/Prototypes/_StarLight/Catalog/Fills -name '*.yml' | xargs grep -l 'ClothingOuter'

Repository: ss14-art/open-space

Length of output: 198


🏁 Script executed:

rg 'ClothingOuter.*Filled' Resources/Prototypes/_StarLight/Catalog/Fills/ -l

Repository: ss14-art/open-space

Length of output: 124


🏁 Script executed:

ls -la Resources/Prototypes/_StarLight/Catalog/Fills/Items/

Repository: ss14-art/open-space

Length of output: 297


Перенесите vest из belt.yml в отдельный файл.

ClothingOuterVestWebEliteFilledMAA — это outer-vest, а не belt. Он не должен находиться в belt.yml. Создайте Resources/Prototypes/_StarLight/Catalog/Fills/Items/vests.yml и переместите туда все outer-clothing fills (в т. ч. этот).

Примечание: Storage в child-е — не дублирование. Parent ClothingOuterVestWebElite Storage-компонента не содержит, поэтому добавление его в child логично и не создаёт рассинхронов.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Prototypes/_StarLight/Catalog/Fills/Items/belt.yml` around lines
115 - 163, Перенесите запись сущности ClothingOuterVestWebEliteFilledMAA из
belt.yml в новый файл
Resources/Prototypes/_StarLight/Catalog/Fills/Items/vests.yml: создайте
vests.yml, переместите туда весь блок entity с id:
ClothingOuterVestWebEliteFilledMAA (и прочие outer-clothing fills из текущего
belt.yml), сохранив полностью секции components (включая Storage и
EntityTableContainerFill) и структуру YAML; не удаляйте Storage в child (Storage
в parent ClothingOuterVestWebElite отсутствует, поэтому компонент должен
остаться в child), и обновите перечисления/импорты при необходимости, чтобы
ссылки на этот fill продолжали работать.

Comment on lines +166 to +180
id: ClothingBeltMilitaryWebbingFilledDamageControle
parent: ClothingBeltMilitaryWebbing
suffix: Filled
components:
- type: EntityTableContainerFill
containers:
storagebase: !type:AllSelector
children:
- id: SyndicateJawsOfLife
- id: PowerDrill
- id: Multitool
- id: MetalFoamGrenade
- id: MetalFoamGrenade
- id: AirGrenade

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
rg -nP 'DamageControle'

Repository: ss14-art/open-space

Length of output: 182


Исправить опечатку в ID: DamageControleDamageControl.

ID ещё не используется в ссылках кодовой базы, поэтому переименование безопасно. После фиксации описание public interface останется корректным.

Фикс
-  id: ClothingBeltMilitaryWebbingFilledDamageControle
+  id: ClothingBeltMilitaryWebbingFilledDamageControl
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
id: ClothingBeltMilitaryWebbingFilledDamageControle
parent: ClothingBeltMilitaryWebbing
suffix: Filled
components:
- type: EntityTableContainerFill
containers:
storagebase: !type:AllSelector
children:
- id: SyndicateJawsOfLife
- id: PowerDrill
- id: Multitool
- id: MetalFoamGrenade
- id: MetalFoamGrenade
- id: AirGrenade
id: ClothingBeltMilitaryWebbingFilledDamageControl
parent: ClothingBeltMilitaryWebbing
suffix: Filled
components:
- type: EntityTableContainerFill
containers:
storagebase: !type:AllSelector
children:
- id: SyndicateJawsOfLife
- id: PowerDrill
- id: Multitool
- id: MetalFoamGrenade
- id: MetalFoamGrenade
- id: AirGrenade
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Prototypes/_StarLight/Catalog/Fills/Items/belt.yml` around lines
166 - 180, Переименовать опечатанный ID в блоке описания: заменить
ClothingBeltMilitaryWebbingFilledDamageControle на
ClothingBeltMilitaryWebbingFilledDamageControl в YAML (тот же сущностный блок с
type EntityTableContainerFill), оставив все остальные поля без изменений;
проверьте проект на случайные вхождения старого ID и обновите их при
обнаружении, но сейчас можно просто исправить значение ID в этом файле.

Comment on lines +56 to +67
equipment:
# head: ClothingHeadHatBeretBlueShield
# id: BlueShieldPDA
ears: ClothingHeadsetAltBSO # Starlight
# belt: ClothingBeltBlueShieldWebbingFilled
gloves: ClothingHandsGlovesCombat
pocket1: WeaponMultiphaseGun
pocket2: HandheldBSOCrewMonitor
storage:
back:
- Flash
- ClothingMaskGasBSO

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
rg -nP --type=yaml '\bid:\s*BlueShieldPDA\b'
rg -nP --type=yaml '\bid:\s*ClothingHeadHatBeretBlueShield\b'
rg -nP --type=yaml '\bid:\s*ClothingBeltBlueShieldWebbingFilled\b'

Repository: ss14-art/open-space

Length of output: 839


🏁 Script executed:

head -80 Resources/Prototypes/_StarLight/Roles/Jobs/Representives/blueshield.yml | cat -n

Repository: ss14-art/open-space

Length of output: 2181


🏁 Script executed:

sed -n '1,70p' Resources/Prototypes/_StarLight/Roles/Jobs/Representives/blueshield.yml | cat -n

Repository: ss14-art/open-space

Length of output: 2043


🏁 Script executed:

rg -B5 -A15 'access:' Resources/Prototypes/_StarLight/Roles/Jobs/Representives/blueshield.yml | head -50

Repository: ss14-art/open-space

Length of output: 450


🏁 Script executed:

rg -A30 'id: BlueShield' Resources/Prototypes/_StarLight/Loadouts/Jobs/blueshield.yml | head -60

Repository: ss14-art/open-space

Length of output: 1303


🏁 Script executed:

rg -B2 -A10 'radio' Resources/Prototypes/_StarLight/Roles/Jobs/Representives/blueshield.yml

Repository: ss14-art/open-space

Length of output: 45


🏁 Script executed:

rg -B5 -A20 'type: loadoutGroup' Resources/Prototypes/_StarLight/Loadouts/loadout_groups.yml | grep -A20 'BlueShield'

Repository: ss14-art/open-space

Length of output: 2469


🏁 Script executed:

sed -n '100,150p' Resources/Prototypes/_StarLight/Loadouts/Jobs/blueshield.yml | cat -n

Repository: ss14-art/open-space

Length of output: 921


🏁 Script executed:

rg -B5 -A25 'id: BlueShield' Resources/Prototypes/_StarLight/Roles/Jobs/Representives/blueshield.yml | head -40

Repository: ss14-art/open-space

Length of output: 1042


🏁 Script executed:

rg 'loadouts' Resources/Prototypes/_StarLight/Roles/Jobs/Representives/blueshield.yml

Repository: ss14-art/open-space

Length of output: 45


🏁 Script executed:

cat Resources/Prototypes/_StarLight/Roles/Jobs/Representives/blueshield.yml

Repository: ss14-art/open-space

Length of output: 1663


🏁 Script executed:

rg -B3 -A3 'loadouts:' Resources/Prototypes/_StarLight/Roles/Jobs/ | head -40

Repository: ss14-art/open-space

Length of output: 45


🏁 Script executed:

grep -r 'type: job' Resources/Prototypes/_StarLight/Roles/Jobs/Representives/ | head -5

Repository: ss14-art/open-space

Length of output: 245


🏁 Script executed:

rg 'type: job' Resources/Prototypes/_StarLight/Roles/Jobs/Representives/blueshield.yml -A50 | grep -E '(startingGear|loadouts)'

Repository: ss14-art/open-space

Length of output: 94


Раскомментируйте id: BlueShieldPDA в startingGear.

Без ID-карты персонаж не сможет использовать access-список (L20–L49). Двери не откроются, каналы радио недоступны. Предметы существуют в кодовой базе:

  • BlueShieldPDA определён в pda.yml и loadout_groups.yml
  • ClothingHeadHatBeretBlueShield есть в hats.yml
  • ClothingBeltBlueShieldWebbingFilled есть в belt.yml

Либо включите эти строки, либо явно поясните причину отключения.

Предлагаемый фикс
  equipment:
-    # head: ClothingHeadHatBeretBlueShield
-    # id: BlueShieldPDA
+    head: ClothingHeadHatBeretBlueShield
+    id: BlueShieldPDA
     ears: ClothingHeadsetAltBSO # Starlight
-    # belt: ClothingBeltBlueShieldWebbingFilled
+    belt: ClothingBeltBlueShieldWebbingFilled
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
equipment:
# head: ClothingHeadHatBeretBlueShield
# id: BlueShieldPDA
ears: ClothingHeadsetAltBSO # Starlight
# belt: ClothingBeltBlueShieldWebbingFilled
gloves: ClothingHandsGlovesCombat
pocket1: WeaponMultiphaseGun
pocket2: HandheldBSOCrewMonitor
storage:
back:
- Flash
- ClothingMaskGasBSO
equipment:
head: ClothingHeadHatBeretBlueShield
id: BlueShieldPDA
ears: ClothingHeadsetAltBSO # Starlight
belt: ClothingBeltBlueShieldWebbingFilled
gloves: ClothingHandsGlovesCombat
pocket1: WeaponMultiphaseGun
pocket2: HandheldBSOCrewMonitor
storage:
back:
- Flash
- ClothingMaskGasBSO
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Prototypes/_StarLight/Roles/Jobs/Representives/blueshield.yml`
around lines 56 - 67, В файле роли раскомментируйте строку с идентификатором
PDA, чтобы персонаж получал карту доступа: восстановите "id: BlueShieldPDA" в
блоке startingGear/equipment (и при необходимости связанные строки типа "head:
ClothingHeadHatBeretBlueShield" или "belt: ClothingBeltBlueShieldWebbingFilled")
— это гарантирует работу access-списка, открытия дверей и доступа к радио; если
вы намеренно отключаете карту, добавьте рядом краткую комментарий/пояснение
причины отключения вместо простого комментирования строки.

Comment on lines +7 to +9
- !type:DepartmentTimeRequirement
department: Command
time: 62000 # 20 hrs

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Комментарий не соответствует значению.

62000 секунд ≈ 17.2 часа, не 20. В соседнем blueshield.yml для тех же «20 hrs» стоит 72000. Либо приведите значение к 72000, либо исправьте комментарий, чтобы playtime-гейт у Representative не «уезжал» относительно остальных ролей.

Предлагаемый фикс
     - !type:DepartmentTimeRequirement
       department: Command
-      time: 62000 # 20 hrs
+      time: 72000 # 20 hrs
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- !type:DepartmentTimeRequirement
department: Command
time: 62000 # 20 hrs
- !type:DepartmentTimeRequirement
department: Command
time: 72000 # 20 hrs
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@Resources/Prototypes/_StarLight/Roles/Jobs/Representives/nanotrasenrepresentative.yml`
around lines 7 - 9, Значение в блоке !type:DepartmentTimeRequirement
(department: Command, time: 62000) не соответствует комментарию "20 hrs" — 62000
с ≈17.2 ч, тогда как в blueshield.yml для 20 ч используется 72000; либо
увеличьте time до 72000, либо поправьте комментарий на корректное время (~17.2
hrs) так чтобы playtime‑гейт для Representative согласовывался с остальными
ролями (исправьте поле time в том же !type:DepartmentTimeRequirement или
обновите комментарий).

Comment on lines +34 to +37
- Cargo
- Atmospherics
- Cargo
- Medical

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Дубликат Cargo в access.

     - Cargo
     - Atmospherics
-    - Cargo
     - Medical
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- Cargo
- Atmospherics
- Cargo
- Medical
- Cargo
- Atmospherics
- Medical
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@Resources/Prototypes/_StarLight/Roles/Jobs/Representives/nanotrasenrepresentative.yml`
around lines 34 - 37, В файле nanotrasenrepresentative.yml в секции access
присутствует дублирующая запись "Cargo"; удалите одну из повторяющихся строк в
списке access, оставив уникальные значения (например Cargo, Atmospherics,
Medical) чтобы убрать дубликат и сохранить корректный набор прав.

Comment on lines +456 to +470
- type: latheRecipe
parent: BaseJumpsuitRecipe
id: ClothingUniformJumpskirtCargoFormal
result: ClothingUniformJumpsuitCargoFormal

- type: latheRecipe
parent: BaseJumpsuitRecipe
id: ClothingUniformJumpsuitCargoAlt
result: ClothingUniformJumpsuitCargoAlt

- type: latheRecipe
parent: BaseJumpsuitRecipe
id: ClothingUniformJumpsuitCargoFormal
result: ClothingUniformJumpsuitCargoFormal

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
rg -nP '^\s*id:\s*ClothingUniformJumpskirtCargoFormal\b' --type=yml -C2

Repository: ss14-art/open-space

Length of output: 91


🏁 Script executed:

# Найти все вхождения id и result с Jumpskirt/Jumpsuit в clothing.yml
rg -n 'ClothingUniformJumpskirt|ClothingUniformJumpsuit' Resources/Prototypes/Recipes/Lathes/clothing.yml

# Найти все вхождения Coroner в clothing.yml
rg -n 'Coroner|MedicalDoctor' Resources/Prototypes/Recipes/Lathes/clothing.yml | head -20

Repository: ss14-art/open-space

Length of output: 12730


🏁 Script executed:

# Проверить наличие прототипов в Resources/Prototypes
rg -n 'id:\s*ClothingUniformJumpskirtCargoFormal' Resources/Prototypes/ 2>/dev/null
rg -n 'id:\s*ClothingUniformJumpsuitCargoFormal' Resources/Prototypes/ 2>/dev/null

Repository: ss14-art/open-space

Length of output: 490


🏁 Script executed:

# Check if Coroner prototypes exist
rg -n 'id:\s*ClothingUniformJumpsuitCoroner|id:\s*ClothingUniformJumpsuitCoronerAlt|id:\s*ClothingUniformJumpskirtCoroner' Resources/Prototypes/ 2>/dev/null | grep -v 'clothing.yml'

Repository: ss14-art/open-space

Length of output: 410


Три мисматча id и result в рецептах юниформ.

  1. L458-459 — jumpskirt id → jumpsuit result:
- type: latheRecipe
  parent: BaseJumpsuitRecipe
  id: ClothingUniformJumpskirtCargoFormal
-  result: ClothingUniformJumpsuitCargoFormal
+  result: ClothingUniformJumpskirtCargoFormal
  1. L555-556 — Coroner suit id → MedicalDoctor result:
- type: latheRecipe
  parent: BaseJumpsuitRecipe
  id: ClothingUniformJumpsuitCoroner
-  result: ClothingUniformJumpsuitMedicalDoctor
+  result: ClothingUniformJumpsuitCoroner
  1. L565-566 — CoronerAlt suit id → MedicalDoctor result:
- type: latheRecipe
  parent: BaseJumpsuitRecipe
  id: ClothingUniformJumpsuitCoronerAlt
-  result: ClothingUniformJumpsuitMedicalDoctor
+  result: ClothingUniformJumpsuitCoronerAlt

Все три прототипа существуют. Рецепты должны производить именно заявленные предметы.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- type: latheRecipe
parent: BaseJumpsuitRecipe
id: ClothingUniformJumpskirtCargoFormal
result: ClothingUniformJumpsuitCargoFormal
- type: latheRecipe
parent: BaseJumpsuitRecipe
id: ClothingUniformJumpsuitCargoAlt
result: ClothingUniformJumpsuitCargoAlt
- type: latheRecipe
parent: BaseJumpsuitRecipe
id: ClothingUniformJumpsuitCargoFormal
result: ClothingUniformJumpsuitCargoFormal
- type: latheRecipe
parent: BaseJumpsuitRecipe
id: ClothingUniformJumpskirtCargoFormal
result: ClothingUniformJumpskirtCargoFormal
- type: latheRecipe
parent: BaseJumpsuitRecipe
id: ClothingUniformJumpsuitCargoAlt
result: ClothingUniformJumpsuitCargoAlt
- type: latheRecipe
parent: BaseJumpsuitRecipe
id: ClothingUniformJumpsuitCargoFormal
result: ClothingUniformJumpsuitCargoFormal
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Prototypes/Recipes/Lathes/clothing.yml` around lines 456 - 470, The
three latheRecipe entries have mismatched result values: the recipe with id
ClothingUniformJumpskirtCargoFormal currently results in
ClothingUniformJumpsuitCargoFormal — change its result to
ClothingUniformJumpskirtCargoFormal; the Coroner suit and CoronerAlt recipe
entries that currently have result MedicalDoctor should have their result fields
set to their respective coroner prototype ids (e.g., ClothingUniformCoronerSuit
and ClothingUniformCoronerAlt) so each recipe's result matches the intended
prototype id.

Comment on lines +553 to +572
- type: latheRecipe
parent: BaseJumpsuitRecipe
id: ClothingUniformJumpsuitCoroner
result: ClothingUniformJumpsuitMedicalDoctor

- type: latheRecipe
parent: BaseJumpsuitRecipe
id: ClothingUniformJumpskirtSuitNurse
result: ClothingUniformJumpskirtSuitNurse

- type: latheRecipe
parent: BaseJumpsuitRecipe
id: ClothingUniformJumpsuitCoronerAlt
result: ClothingUniformJumpsuitMedicalDoctor

- type: latheRecipe
parent: BaseJumpsuitRecipe
id: ClothingUniformJumpskirtCoroner
result: ClothingUniformJumpskirtCoroner

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
rg -nP '^\s*id:\s*ClothingUniformJumpsuit(Coroner|CoronerAlt)\b' --type=yml -C2

Repository: ss14-art/open-space

Length of output: 91


🏁 Script executed:

#!/bin/bash
# Search for the problematic recipes
rg -nP 'id:\s*ClothingUniformJumpsuit(Coroner|CoronerAlt)' -C3

Repository: ss14-art/open-space

Length of output: 2875


🏁 Script executed:

#!/bin/bash
# Read the actual file to verify current state
cd Resources/Prototypes/Recipes/Lathes
head -n 575 clothing.yml | tail -n 30

Repository: ss14-art/open-space

Length of output: 882


🏁 Script executed:

#!/bin/bash
# Verify if the result entity IDs actually exist
rg -nP 'id:\s*ClothingUniformJumpsuit(Coroner|CoronerAlt|MedicalDoctor)' -C1

Repository: ss14-art/open-space

Length of output: 2529


Рецепты Coroner выдают неправильное снаряжение

Рецепты ClothingUniformJumpsuitCoroner (L555–556) и ClothingUniformJumpsuitCoronerAlt (L565–566) указывают result: ClothingUniformJumpsuitMedicalDoctor, хотя должны давать соответствующие предметы. Сущности ClothingUniformJumpsuitCoroner и ClothingUniformJumpsuitCoronerAlt существуют. Рецепт ClothingUniformJumpskirtCoroner (L570–571) задан корректно, что подтверждает ошибку.

Исправление
 - type: latheRecipe
   parent: BaseJumpsuitRecipe
   id: ClothingUniformJumpsuitCoroner
-  result: ClothingUniformJumpsuitMedicalDoctor
+  result: ClothingUniformJumpsuitCoroner

 - type: latheRecipe
   parent: BaseJumpsuitRecipe
   id: ClothingUniformJumpsuitCoronerAlt
-  result: ClothingUniformJumpsuitMedicalDoctor
+  result: ClothingUniformJumpsuitCoronerAlt
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Prototypes/Recipes/Lathes/clothing.yml` around lines 553 - 572, В
блоках рецептов с id ClothingUniformJumpsuitCoroner и
ClothingUniformJumpsuitCoronerAlt замените неверное result:
ClothingUniformJumpsuitMedicalDoctor на корректные результаты — соответственно
ClothingUniformJumpsuitCoroner и ClothingUniformJumpsuitCoronerAlt; проверьте,
что id-ы рецептов (ClothingUniformJumpsuitCoroner,
ClothingUniformJumpsuitCoronerAlt) точно соответствуют существующим сущностям и
что результатные поля теперь указывают на эти сущности вместо
ClothingUniformJumpsuitMedicalDoctor.

@github-actions

github-actions Bot commented Apr 25, 2026

Copy link
Copy Markdown
Contributor

RSI Diff Bot; head commit cfd9068 merging into f9ce7ca
This PR makes changes to 1 or more RSIs. Here is a summary of all changes:

Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/improvised.rsi

State Old New Status
base Added
mag-1 Added
mag-2 Added
mag-3 Added

Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi

State Old New Status
ap Added
base Added
fmj Added
incendiary Added
mag-1 Added
mag-2 Added
mag-3 Added
sp Added
uranium Added

Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/toz.rsi

State Old New Status
base Added

Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Casings/improvised_casing.rsi

State Old New Status
base-spent Added
base Added
tip Added

Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Casings/laser_casing.rsi

State Old New Status
base-spent Added
base Added
tip Added

Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell_toz.rsi

State Old New Status
base Added
spent Added
tip Added

Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Battery/lr30_mag.rsi

State Old New Status
base Added
mag-1 Added
mag-2 Added
mag-3 Added
mag-4 Added

Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_heavy.rsi

State Old New Status
ap Added
base Added
fmj Added
hp Added
incendiary Added
inhand-left-mag Added
inhand-left-stripe Added
inhand-right-mag Added
inhand-right-stripe Added
mag-0 Added
mag-1 Added
mag-2 Added
mag-3 Added
mag-4 Added
mag-5 Added
mag-6 Added
mag-7 Added
sp Added
uranium Added

Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Magnum/magnum_rifle_mag.rsi

State Old New Status
base Added
mag-1 Added
red Added

Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/40.rsi

State Old New Status
ap Added
base Added
fmj Added
incendiary Added
inhand-left-mag Added
inhand-left-stripe Added
inhand-right-mag Added
inhand-right-stripe Added
mag-1 Added
mag-2 Added
mag-3 Added
mag-4 Added
mag-5 Added
mag-6 Added
red-icon Added
red Added
sp Added
uranium Added

Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/improvised_pistol_magazine.rsi

State Old New Status
base Added
inhand-left-mag Added
inhand-right-mag Added
mag-1 Added
mag-2 Added
mag-3 Added
mag-4 Added
mag-5 Added

Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/dmr_mag.rsi

State Old New Status
ap Added
base Added
fmj Added
incendiary Added
inhand-left-mag Added
inhand-left-stripe Added
inhand-right-mag Added
inhand-right-stripe Added
mag-1 Added
practice Added
red Added
rubber Added
sp Added
uranium Added

Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/m-52.rsi

State Old New Status
ap Added
base Added
fmj Added
incendiary Added
inhand-left-mag Added
inhand-left-stripe Added
inhand-right-mag Added
inhand-right-stripe Added
mag-1 Added
mag-2 Added
mag-3 Added
mag-4 Added
mag-5 Added
mag-6 Added
practice Added
red Added
rubber Added
sp Added
uranium Added

Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/improvised_smg_magazine.rsi

State Old New Status
base Added
inhand-left-mag Added
inhand-right-mag Added
mag-1 Added
mag-2 Added

Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/ppsh.rsi

State Old New Status
base Added
inhand-left Added
inhand-right Added
mag-1 Added
mag-2 Added
mag-3 Added
mag-4 Added

Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/uzi.rsi

State Old New Status
base Added
inhand-left-mag Added
inhand-left-stripe Added
inhand-right-mag Added
inhand-right-stripe Added
mag-1 Added
mag-2 Added
mag-3 Added
mag-4 Added
mag-5 Added
mag-6 Added
mag-7 Added
mag-8 Added

Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Shotgun/toz.rsi

State Old New Status
base Added
extended Added
inhand-left-mag Added
inhand-right-mag Added
mag-1 Added

Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_lever_action_speed_loader.rsi

State Old New Status
base-1 Added
base-2 Added
base-3 Added
base-4 Added
base-5 Added
base-6 Added
base-7 Added
base-8 Added
base-tip-1 Added
base-tip-2 Added
base-tip-3 Added
base-tip-4 Added
base-tip-5 Added
base-tip-6 Added
base-tip-7 Added
base-tip-8 Added
base Added
icon Added

Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_magnum_speed_loader.rsi

State Old New Status
base-1 Added
base-2 Added
base-3 Added
base-4 Added
base-tip-1 Added
base-tip-2 Added
base-tip-3 Added
base-tip-4 Added
base Added
icon Added

Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Shotgun/shotgun_speed_loader.rsi

State Old New Status
base-1 Added
base-2 Added
base-3 Added
base-4 Added
base-5 Added
base-6 Added
base-7 Added
base-tip-1 Added
base-tip-2 Added
base-tip-3 Added
base-tip-4 Added
base-tip-5 Added
base-tip-6 Added
base-tip-7 Added
base Added
icon Added

Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/Energy_Magnum.rsi

State Old New Status
base Added
icon Added
inhand-left Added
inhand-right Added

Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi

State Old New Status
base Added
disable-unshaded-0 Added
disable-unshaded-1 Added
disable-unshaded-2 Added
disable-unshaded-3 Added
disable-unshaded-4 Added
disable Added
disable0-inhand-left Added
disable0-inhand-right Added
disable1-inhand-left Added
disable1-inhand-right Added
disable2-inhand-left Added
disable2-inhand-right Added
disable3-inhand-left Added
disable3-inhand-right Added
disable4-inhand-left Added
disable4-inhand-right Added
icon Added
stun-unshaded-0 Added
stun-unshaded-1 Added
stun-unshaded-2 Added
stun-unshaded-3 Added
stun-unshaded-4 Added
stun Added
stun0-inhand-left Added
stun0-inhand-right Added
stun1-inhand-left Added
stun1-inhand-right Added
stun2-inhand-left Added
stun2-inhand-right Added
stun3-inhand-left Added
stun3-inhand-right Added
stun4-inhand-left Added
stun4-inhand-right Added

Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/alien.rsi

State Old New Status
base Added
icon Added
inhand-left Added
inhand-right Added
mag-unshaded-0 Added
mag-unshaded-1 Added
mag-unshaded-2 Added
mag-unshaded-3 Added
mag-unshaded-4 Added

Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/decloner.rsi

State Old New Status
base Added
icon Added
inhand-left Added
inhand-right Added
mag-unshaded-0 Added
mag-unshaded-1 Added
mag-unshaded-2 Added
mag-unshaded-3 Added
mag-unshaded-4 Added
normal Added

Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/dominator.rsi

State Old New Status
base Added
destroy-unshaded-0 Added
destroy-unshaded-1 Added
destroy-unshaded-2 Added
destroy-unshaded-3 Added
disable-unshaded-0 Added

Edit: diff updated after cfd9068

@github-actions github-actions Bot added size/M and removed size/L labels Apr 25, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 18

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (6)
Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Shotgun/toz.rsi/meta.json (1)

1-29: ⚠️ Potential issue | 🟡 Minor

Нарушен порядок полей meta.json.

Поля должны идти в порядке: version, license, copyright, size, states. Сейчас size стоит перед license и copyright. Как указано в coding guidelines, RSI meta.json должен следовать строгому порядку полей.

♻️ Исправление порядка полей
 {
     "version": 1,
+    "license": "CC-BY-SA-3.0",
+    "copyright": "By Peter Poley (wassuythefourth_47721); inhands reused from .40 magazine by TiniestShark (github)",
     "size": {
         "x": 32,
         "y": 32
     },
-    "license": "CC-BY-SA-3.0",
-    "copyright": "By Peter Poley (wassuythefourth_47721); inhands reused from .40 magazine by TiniestShark (github)",
     "states": [
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Shotgun/toz.rsi/meta.json`
around lines 1 - 29, Reorder the fields in the JSON so they follow the required
RSI meta.json order: put "version" first, then "license", then "copyright", then
"size", and finally "states"; update the current object (which currently has
"size" before "license"/"copyright") to that exact sequence, preserving all
existing values and state entries like "base", "extended", "mag-1",
"inhand-left-mag", and "inhand-right-mag".
Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/decloner.rsi/meta.json (1)

1-58: ⚠️ Potential issue | 🟡 Minor

Несогласованные отступы в meta.json.

Файл использует смешанные отступы (2 и 4 пробела). Согласно coding guidelines, RSI meta.json должен использовать 4-пробельные отступы повсеместно.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/decloner.rsi/meta.json`
around lines 1 - 58, The meta.json uses mixed 2- and 4-space indentation; update
the file so every nested level uses 4-space indentation consistently
(particularly inside the top-level objects "states" and the state entries like
"normal", "mag-unshaded-0", "inhand-left", "inhand-right"), and ensure arrays of
delays and nested objects align with 4 spaces throughout; no content changes,
only reformat spacing to match the RSI 4-space guideline.
Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/meta.json (1)

1-218: ⚠️ Potential issue | 🟡 Minor

Неправильные отступы в meta.json.

Файл использует 2-пробельные отступы. Согласно coding guidelines, RSI meta.json должен использовать 4-пробельные отступы.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/meta.json`
around lines 1 - 218, The meta.json uses 2-space indentation but must use
4-space indentation; reformat the entire JSON (root keys like "version",
"license", "size", and the "states" array including entries such as
"disable0-inhand-left", "disable-unshaded-0", "stun", "stun4-inhand-right") to
use 4-space indenting, preserve all keys/values and arrays/delays exactly as-is,
and validate the file is still valid JSON after reformatting.
Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/alien.rsi/meta.json (1)

1-47: ⚠️ Potential issue | 🟡 Minor

Несогласованные отступы в meta.json.

Файл использует смешанные отступы (2 и 4 пробела). Согласно coding guidelines, RSI meta.json должен использовать 4-пробельные отступы повсеместно.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/alien.rsi/meta.json`
around lines 1 - 47, The meta.json uses mixed 2- and 4-space indentation;
normalize the file to use 4-space indentation everywhere so all top-level keys
(version, license, copyright, size) and nested structures (size.x/size.y, the
states array and each state object such as "mag-unshaded-0", "mag-unshaded-1",
"inhand-left", "inhand-right") are consistently indented with 4 spaces; update
the entire file formatting (or run your JSON formatter/editor config) to convert
any 2-space indents and align arrays/objects to 4 spaces throughout.
Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/m-52.rsi/meta.json (1)

1-73: ⚠️ Potential issue | 🟡 Minor

Нарушен порядок полей meta.json.

Поля должны идти в порядке: version, license, copyright, size, states. Сейчас size стоит перед license и copyright. Как указано в coding guidelines, RSI meta.json должен следовать строгому порядку полей.

♻️ Исправление порядка полей
 {
     "version": 1,
+    "license": "CC-BY-SA-3.0",
+    "copyright": "Taked from RU Paradise station, updated by Rinary for new ammo types and mag states, inhands by TiniestShark (github)",
     "size": {
         "x": 32,
         "y": 32
     },
-    "license": "CC-BY-SA-3.0",
-    "copyright": "Taked from RU Paradise station, updated by Rinary for new ammo types and mag states, inhands by TiniestShark (github)",
     "states": [
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/m-52.rsi/meta.json`
around lines 1 - 73, The meta.json field order is incorrect; reorder the
top-level keys so they follow the required sequence: "version", then "license",
then "copyright", then "size", then "states" (i.e. move the "size" block after
the copyright and before "states"); update the file
Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/m-52.rsi/meta.json
accordingly so the JSON object uses that exact key order.
Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_lever_action_speed_loader.rsi/meta.json (1)

1-66: ⚠️ Potential issue | 🟡 Minor

Нарушен порядок полей meta.json.

Поля должны идти в порядке: version, license, copyright, size, states. Сейчас size стоит перед license и copyright. Как указано в coding guidelines, RSI meta.json должен следовать строгому порядку полей.

♻️ Исправление порядка полей
 {
     "version": 1,
+    "license": "CC-BY-SA-3.0",
+    "copyright": "Made by Killer Tamashi (Discord)",
     "size": {
         "x": 32,
         "y": 32
     },
-    "license": "CC-BY-SA-3.0",
-    "copyright": "Made by Killer Tamashi (Discord)",
     "states": [
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_lever_action_speed_loader.rsi/meta.json`
around lines 1 - 66, The meta.json fields are out of the required order; reorder
the top-level keys so they follow the strict RSI sequence: "version", then
"license", then "copyright", then "size", and finally "states" (preserve the
existing "size" object and "states" array contents), i.e., move the "license"
and "copyright" entries before "size" in the current meta.json that contains
"version", "size", "license", "copyright", "states".
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/improvised.rsi/meta.json`:
- Around line 1-23: The meta.json uses 2-space indentation and must be formatted
with 4-space indentation and the keys ordered as: "version", "license",
"copyright", "size", "states"; open the meta.json for the improvised ammo (look
for the top-level keys "version", "license", "copyright", "size", "states") and
reformat the file to use 4 spaces per indent level while preserving the existing
key order and values.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/meta.json`:
- Around line 1-38: The meta.json uses 2-space indentation instead of the
required 4 spaces and should preserve the key order (version, license,
copyright, size, states); update
Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/meta.json
to use 4-space indentation throughout and ensure the top-level keys remain in
the order "version", "license", "copyright", "size", "states" while leaving the
existing state entries ("base", "mag-1", "mag-2", "mag-3", "incendiary", "sp",
"fmj", "ap", "uranium") unchanged.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/toz.rsi/meta.json`:
- Around line 2-13: Update the meta.json for the TOZ ammunition box to use
4-space indentation and ensure the keys are ordered as required: "version",
"license", "copyright", "size", "states"; open
Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/toz.rsi/meta.json,
reformat the entire JSON with 4-space indents (not 2), preserve the same key
names and values, and keep the existing "size" and "states" object/array
structures intact.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Casings/improvised_casing.rsi/meta.json`:
- Around line 2-9: В файле meta.json поля идут в неправильном порядке; переставь
поля так, чтобы порядок был "version", затем "license", затем "copyright", затем
"size" и затем "states" (с 4-пробельным отступом), обновив соответствующую
запись в RSI (найди текущие ключи "version", "size", "license", "copyright",
"states" и переупорядочь их).

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Casings/laser_casing.rsi/meta.json`:
- Around line 1-20: The meta.json field order is incorrect: it currently has
"size" before "license" and "copyright"; reorder the top-level keys in
Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Casings/laser_casing.rsi/meta.json
so they follow the required sequence version, license, copyright, size, states
(preserve existing values for "version", "size", and the "states" array with
"base", "tip", "base-spent").

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell_toz.rsi/meta.json`:
- Around line 2-9: Reorder the keys in the meta.json so they follow the
canonical RSI order and use 4-space indentation: place "version" first, then
"license", then "copyright", then "size", then "states"; update the object in
Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell_toz.rsi/meta.json
to that sequence and ensure all entries are indented with 4 spaces.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Battery/lr30_mag.rsi/meta.json`:
- Around line 2-8: The meta.json has fields in the wrong order; open
lr30_mag.rsi's meta.json and reorder the top-level keys to exactly: "version",
"license", "copyright", "size", "states" (replace the current "size" position so
license/copyright appear before size), ensure 4-space indentation and keep
values unchanged.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_heavy.rsi/meta.json`:
- Around line 2-8: The meta.json fields are out of the required order; reorder
the top-level keys in the light_rifle_heavy.rsi meta.json so they appear exactly
as: "version", "license", "copyright", "size", "states" (replace the current
"size" position), and ensure 4-space indentation for the JSON file; update the
object that currently contains "version", "size", "license", "copyright" to
follow the required sequence.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Magnum/magnum_rifle_mag.rsi/meta.json`:
- Around line 2-8: В meta.json для RSI (файл meta.json) поля идут в неверном
порядке; откройте метаданные и переставьте ключи так, чтобы порядок был:
"version", "license", "copyright", "size", "states" (четыре пробела для
отступа), сохраняя существующие значения и запятые/синтаксис JSON; проверьте,
что после перестановки JSON валиден и форматирование соответствует 4‑пробельному
отступу.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/40.rsi/meta.json`:
- Around line 2-9: The top-level keys in the RSI meta.json are out of the
required order; update the JSON so the top-level object lists keys in this exact
sequence: "version", "license", "copyright", "size", "states" (move the existing
"size" to after "copyright"), and ensure all entries use 4-space indentation
consistent with the project style; keep the rest of the values unchanged.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/improvised_pistol_magazine.rsi/meta.json`:
- Around line 2-9: Reorder the top-level keys in the meta.json so they follow
the required sequence: version, license, copyright, size, states; keep all
existing values intact (e.g. the current "version": 1 value, "license":
"CC-BY-SA-3.0", the copyright string, the "size" object, and "states" array) and
format the file with 4-space indentation for each level; locate the file
meta.json for the improvised_pistol_magazine resource and move the "size" block
after the copyright and before "states", ensuring valid JSON syntax is
preserved.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/dmr_mag.rsi/meta.json`:
- Around line 2-8: Reorder the keys in the meta.json so they follow the required
RSI order: place "license" and "copyright" immediately after "version", then
"size", and finally "states"; update the existing meta.json object (currently
containing "version", "size", "license", "copyright", "states") to the sequence
"version", "license", "copyright", "size", "states" and ensure 4-space
indentation is preserved.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/improvised_smg_magazine.rsi/meta.json`:
- Around line 2-9: Переставь поля в meta.json так, чтобы они шли в порядке
version, license, copyright, size, states; в текущем файле поменяй местами
"size" и "license"/"copyright" и отформатируй весь JSON с 4‑пробельным отступом;
проверь, что имена полей точные ("version", "license", "copyright", "size",
"states") и структура (массив states) осталась прежней.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/ppsh.rsi/meta.json`:
- Around line 1-32: В meta.json переставьте свойства в строго указанный порядок:
сначала "version", затем "license", затем "copyright", затем "size", и в конце
"states"; в текущем файле поле "size" стоит перед "license" и "copyright" —
переместите "size" после "copyright" так, чтобы порядок ключей был exactly:
version, license, copyright, size, states.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/uzi.rsi/meta.json`:
- Around line 3-9: Reorder and correct the meta.json keys so they follow the
project convention: ensure the top-level keys appear in the order version,
license, copyright, size, states; move the existing "size" block to come after
"copyright" and correct the typo in the attribution string from "Taked" to
"Taken"; also ensure the file uses 4-space indentation for all object levels and
retains the existing values (e.g., the size x/y and license string).

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_magnum_speed_loader.rsi/meta.json`:
- Around line 2-8: The meta.json fields are out of the required order; reorder
the top-level keys in the RSI meta (in
Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_magnum_speed_loader.rsi/meta.json)
to follow the canonical sequence: "version", "license", "copyright", "size",
"states"; ensure 4-space indentation is used and preserve existing values (e.g.,
keep the current copyright string and the size object) while moving "license"
and "copyright" above "size".

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Shotgun/shotgun_speed_loader.rsi/meta.json`:
- Around line 2-9: The meta.json fields are out of order: reorder the top-level
keys so they appear as version, license, copyright, size, states (i.e., move
"size" below "license" and "copyright") and ensure 4-space indentation for each
field; update the JSON in shotgun_speed_loader.rsi's meta.json so the keys read
exactly in that order and maintain consistent 4-space indentation.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/Energy_Magnum.rsi/meta.json`:
- Around line 2-24: The meta.json uses 2-space indentation and must be converted
to 4-space indentation and preserve the required key order (version, license,
copyright, size, states); update the file so each nested level (e.g., the "size"
object and the "states" array entries like "base", "icon", "inhand-left",
"inhand-right") is indented with 4 spaces, ensure the keys remain in the
specified order and that array/object formatting follows RSI meta.json
conventions.

---

Outside diff comments:
In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/m-52.rsi/meta.json`:
- Around line 1-73: The meta.json field order is incorrect; reorder the
top-level keys so they follow the required sequence: "version", then "license",
then "copyright", then "size", then "states" (i.e. move the "size" block after
the copyright and before "states"); update the file
Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/m-52.rsi/meta.json
accordingly so the JSON object uses that exact key order.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Shotgun/toz.rsi/meta.json`:
- Around line 1-29: Reorder the fields in the JSON so they follow the required
RSI meta.json order: put "version" first, then "license", then "copyright", then
"size", and finally "states"; update the current object (which currently has
"size" before "license"/"copyright") to that exact sequence, preserving all
existing values and state entries like "base", "extended", "mag-1",
"inhand-left-mag", and "inhand-right-mag".

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_lever_action_speed_loader.rsi/meta.json`:
- Around line 1-66: The meta.json fields are out of the required order; reorder
the top-level keys so they follow the strict RSI sequence: "version", then
"license", then "copyright", then "size", and finally "states" (preserve the
existing "size" object and "states" array contents), i.e., move the "license"
and "copyright" entries before "size" in the current meta.json that contains
"version", "size", "license", "copyright", "states".

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/meta.json`:
- Around line 1-218: The meta.json uses 2-space indentation but must use 4-space
indentation; reformat the entire JSON (root keys like "version", "license",
"size", and the "states" array including entries such as "disable0-inhand-left",
"disable-unshaded-0", "stun", "stun4-inhand-right") to use 4-space indenting,
preserve all keys/values and arrays/delays exactly as-is, and validate the file
is still valid JSON after reformatting.

In `@Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/alien.rsi/meta.json`:
- Around line 1-47: The meta.json uses mixed 2- and 4-space indentation;
normalize the file to use 4-space indentation everywhere so all top-level keys
(version, license, copyright, size) and nested structures (size.x/size.y, the
states array and each state object such as "mag-unshaded-0", "mag-unshaded-1",
"inhand-left", "inhand-right") are consistently indented with 4 spaces; update
the entire file formatting (or run your JSON formatter/editor config) to convert
any 2-space indents and align arrays/objects to 4 spaces throughout.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/decloner.rsi/meta.json`:
- Around line 1-58: The meta.json uses mixed 2- and 4-space indentation; update
the file so every nested level uses 4-space indentation consistently
(particularly inside the top-level objects "states" and the state entries like
"normal", "mag-unshaded-0", "inhand-left", "inhand-right"), and ensure arrays of
delays and nested objects align with 4 spaces throughout; no content changes,
only reformat spacing to match the RSI 4-space guideline.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 33780d87-02c3-47e0-a492-ba7da083a75e

📥 Commits

Reviewing files that changed from the base of the PR and between 0a5866a and 2ab4851.

⛔ Files ignored due to path filters (271)
  • Resources/Audio/_Starlight/Effects/Radio/ai.ogg is excluded by !**/*.ogg
  • Resources/Audio/_Starlight/Effects/Radio/brigmedic.ogg is excluded by !**/*.ogg
  • Resources/Audio/_Starlight/Effects/Radio/bso.ogg is excluded by !**/*.ogg
  • Resources/Audio/_Starlight/Effects/Radio/captain.ogg is excluded by !**/*.ogg
  • Resources/Audio/_Starlight/Effects/Radio/cc.ogg is excluded by !**/*.ogg
  • Resources/Audio/_Starlight/Effects/Radio/ce.ogg is excluded by !**/*.ogg
  • Resources/Audio/_Starlight/Effects/Radio/cmo.ogg is excluded by !**/*.ogg
  • Resources/Audio/_Starlight/Effects/Radio/deathsquad.ogg is excluded by !**/*.ogg
  • Resources/Audio/_Starlight/Effects/Radio/hos.ogg is excluded by !**/*.ogg
  • Resources/Audio/_Starlight/Effects/Radio/marauder.ogg is excluded by !**/*.ogg
  • Resources/Audio/_Starlight/Effects/Radio/marauder_agent.ogg is excluded by !**/*.ogg
  • Resources/Audio/_Starlight/Effects/Radio/marauder_commander.ogg is excluded by !**/*.ogg
  • Resources/Audio/_Starlight/Effects/Radio/ninja.ogg is excluded by !**/*.ogg
  • Resources/Audio/_Starlight/Effects/Radio/qm.ogg is excluded by !**/*.ogg
  • Resources/Audio/_Starlight/Effects/Radio/rd.ogg is excluded by !**/*.ogg
  • Resources/Audio/_Starlight/Effects/Radio/secoff.ogg is excluded by !**/*.ogg
  • Resources/Audio/_Starlight/Effects/Radio/soviet.ogg is excluded by !**/*.ogg
  • Resources/Audio/_Starlight/Effects/Radio/warden.ogg is excluded by !**/*.ogg
  • Resources/Audio/_Starlight/Effects/Radio/wizard.ogg is excluded by !**/*.ogg
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/improvised.rsi/base.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/improvised.rsi/mag-1.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/improvised.rsi/mag-2.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/improvised.rsi/mag-3.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/ap.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/base.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/fmj.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/incendiary.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/mag-1.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/mag-2.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/mag-3.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/sp.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/uranium.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/toz.rsi/base.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Casings/improvised_casing.rsi/base-spent.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Casings/improvised_casing.rsi/base.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Casings/improvised_casing.rsi/tip.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Casings/laser_casing.rsi/base-spent.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Casings/laser_casing.rsi/base.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Casings/laser_casing.rsi/tip.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell_toz.rsi/base.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell_toz.rsi/spent.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell_toz.rsi/tip.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Battery/lr30_mag.rsi/base.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Battery/lr30_mag.rsi/mag-1.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Battery/lr30_mag.rsi/mag-2.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Battery/lr30_mag.rsi/mag-3.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Battery/lr30_mag.rsi/mag-4.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_heavy.rsi/ap.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_heavy.rsi/base.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_heavy.rsi/fmj.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_heavy.rsi/hp.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_heavy.rsi/incendiary.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_heavy.rsi/inhand-left-mag.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_heavy.rsi/inhand-left-stripe.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_heavy.rsi/inhand-right-mag.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_heavy.rsi/inhand-right-stripe.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_heavy.rsi/mag-0.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_heavy.rsi/mag-1.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_heavy.rsi/mag-2.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_heavy.rsi/mag-3.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_heavy.rsi/mag-4.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_heavy.rsi/mag-5.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_heavy.rsi/mag-6.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_heavy.rsi/mag-7.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_heavy.rsi/sp.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_heavy.rsi/uranium.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Magnum/magnum_rifle_mag.rsi/base.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Magnum/magnum_rifle_mag.rsi/mag-1.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Magnum/magnum_rifle_mag.rsi/red.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/40.rsi/ap.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/40.rsi/base.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/40.rsi/fmj.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/40.rsi/incendiary.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/40.rsi/inhand-left-mag.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/40.rsi/inhand-left-stripe.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/40.rsi/inhand-right-mag.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/40.rsi/inhand-right-stripe.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/40.rsi/mag-1.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/40.rsi/mag-2.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/40.rsi/mag-3.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/40.rsi/mag-4.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/40.rsi/mag-5.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/40.rsi/mag-6.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/40.rsi/red-icon.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/40.rsi/red.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/40.rsi/sp.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/40.rsi/uranium.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/improvised_pistol_magazine.rsi/base.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/improvised_pistol_magazine.rsi/inhand-left-mag.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/improvised_pistol_magazine.rsi/inhand-right-mag.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/improvised_pistol_magazine.rsi/mag-1.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/improvised_pistol_magazine.rsi/mag-2.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/improvised_pistol_magazine.rsi/mag-3.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/improvised_pistol_magazine.rsi/mag-4.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/improvised_pistol_magazine.rsi/mag-5.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/dmr_mag.rsi/ap.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/dmr_mag.rsi/base.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/dmr_mag.rsi/fmj.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/dmr_mag.rsi/incendiary.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/dmr_mag.rsi/inhand-left-mag.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/dmr_mag.rsi/inhand-left-stripe.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/dmr_mag.rsi/inhand-right-mag.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/dmr_mag.rsi/inhand-right-stripe.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/dmr_mag.rsi/mag-1.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/dmr_mag.rsi/practice.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/dmr_mag.rsi/red.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/dmr_mag.rsi/rubber.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/dmr_mag.rsi/sp.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/dmr_mag.rsi/uranium.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/m-52.rsi/ap.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/m-52.rsi/base.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/m-52.rsi/fmj.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/m-52.rsi/incendiary.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/m-52.rsi/inhand-left-mag.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/m-52.rsi/inhand-left-stripe.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/m-52.rsi/inhand-right-mag.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/m-52.rsi/inhand-right-stripe.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/m-52.rsi/mag-1.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/m-52.rsi/mag-2.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/m-52.rsi/mag-3.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/m-52.rsi/mag-4.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/m-52.rsi/mag-5.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/m-52.rsi/mag-6.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/m-52.rsi/practice.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/m-52.rsi/red.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/m-52.rsi/rubber.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/m-52.rsi/sp.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/m-52.rsi/uranium.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/improvised_smg_magazine.rsi/base.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/improvised_smg_magazine.rsi/inhand-left-mag.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/improvised_smg_magazine.rsi/inhand-right-mag.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/improvised_smg_magazine.rsi/mag-1.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/improvised_smg_magazine.rsi/mag-2.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/ppsh.rsi/base.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/ppsh.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/ppsh.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/ppsh.rsi/mag-1.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/ppsh.rsi/mag-2.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/ppsh.rsi/mag-3.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/ppsh.rsi/mag-4.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/uzi.rsi/base.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/uzi.rsi/inhand-left-mag.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/uzi.rsi/inhand-left-stripe.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/uzi.rsi/inhand-right-mag.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/uzi.rsi/inhand-right-stripe.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/uzi.rsi/mag-1.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/uzi.rsi/mag-2.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/uzi.rsi/mag-3.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/uzi.rsi/mag-4.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/uzi.rsi/mag-5.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/uzi.rsi/mag-6.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/uzi.rsi/mag-7.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/uzi.rsi/mag-8.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Shotgun/toz.rsi/base.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Shotgun/toz.rsi/extended.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Shotgun/toz.rsi/inhand-left-mag.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Shotgun/toz.rsi/inhand-right-mag.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Shotgun/toz.rsi/mag-1.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_lever_action_speed_loader.rsi/base-1.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_lever_action_speed_loader.rsi/base-2.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_lever_action_speed_loader.rsi/base-3.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_lever_action_speed_loader.rsi/base-4.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_lever_action_speed_loader.rsi/base-5.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_lever_action_speed_loader.rsi/base-6.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_lever_action_speed_loader.rsi/base-7.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_lever_action_speed_loader.rsi/base-8.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_lever_action_speed_loader.rsi/base-tip-1.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_lever_action_speed_loader.rsi/base-tip-2.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_lever_action_speed_loader.rsi/base-tip-3.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_lever_action_speed_loader.rsi/base-tip-4.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_lever_action_speed_loader.rsi/base-tip-5.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_lever_action_speed_loader.rsi/base-tip-6.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_lever_action_speed_loader.rsi/base-tip-7.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_lever_action_speed_loader.rsi/base-tip-8.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_lever_action_speed_loader.rsi/base.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_lever_action_speed_loader.rsi/icon.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_magnum_speed_loader.rsi/base-1.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_magnum_speed_loader.rsi/base-2.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_magnum_speed_loader.rsi/base-3.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_magnum_speed_loader.rsi/base-4.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_magnum_speed_loader.rsi/base-tip-1.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_magnum_speed_loader.rsi/base-tip-2.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_magnum_speed_loader.rsi/base-tip-3.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_magnum_speed_loader.rsi/base-tip-4.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_magnum_speed_loader.rsi/base.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_magnum_speed_loader.rsi/icon.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/rubber-1.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/rubber-2.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/rubber-3.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/rubber-4.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/rubber-5.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/rubber-6.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Shotgun/shotgun_speed_loader.rsi/base-1.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Shotgun/shotgun_speed_loader.rsi/base-2.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Shotgun/shotgun_speed_loader.rsi/base-3.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Shotgun/shotgun_speed_loader.rsi/base-4.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Shotgun/shotgun_speed_loader.rsi/base-5.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Shotgun/shotgun_speed_loader.rsi/base-6.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Shotgun/shotgun_speed_loader.rsi/base-7.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Shotgun/shotgun_speed_loader.rsi/base-tip-1.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Shotgun/shotgun_speed_loader.rsi/base-tip-2.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Shotgun/shotgun_speed_loader.rsi/base-tip-3.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Shotgun/shotgun_speed_loader.rsi/base-tip-4.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Shotgun/shotgun_speed_loader.rsi/base-tip-5.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Shotgun/shotgun_speed_loader.rsi/base-tip-6.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Shotgun/shotgun_speed_loader.rsi/base-tip-7.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Shotgun/shotgun_speed_loader.rsi/base.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Shotgun/shotgun_speed_loader.rsi/icon.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/Energy_Magnum.rsi/base.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/Energy_Magnum.rsi/icon.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/Energy_Magnum.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/Energy_Magnum.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/base.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/disable-unshaded-0.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/disable-unshaded-1.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/disable-unshaded-2.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/disable-unshaded-3.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/disable-unshaded-4.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/disable.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/disable0-inhand-left.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/disable0-inhand-right.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/disable1-inhand-left.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/disable1-inhand-right.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/disable2-inhand-left.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/disable2-inhand-right.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/disable3-inhand-left.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/disable3-inhand-right.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/disable4-inhand-left.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/disable4-inhand-right.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/icon.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/stun-unshaded-0.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/stun-unshaded-1.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/stun-unshaded-2.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/stun-unshaded-3.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/stun-unshaded-4.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/stun.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/stun0-inhand-left.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/stun0-inhand-right.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/stun1-inhand-left.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/stun1-inhand-right.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/stun2-inhand-left.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/stun2-inhand-right.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/stun3-inhand-left.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/stun3-inhand-right.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/stun4-inhand-left.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/stun4-inhand-right.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/alien.rsi/base.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/alien.rsi/icon.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/alien.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/alien.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/alien.rsi/mag-unshaded-0.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/alien.rsi/mag-unshaded-1.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/alien.rsi/mag-unshaded-2.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/alien.rsi/mag-unshaded-3.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/alien.rsi/mag-unshaded-4.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/decloner.rsi/base.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/decloner.rsi/icon.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/decloner.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/decloner.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/decloner.rsi/mag-unshaded-0.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/decloner.rsi/mag-unshaded-1.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/decloner.rsi/mag-unshaded-2.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/decloner.rsi/mag-unshaded-3.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/decloner.rsi/mag-unshaded-4.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/decloner.rsi/normal.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/dominator.rsi/base.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/dominator.rsi/destroy-unshaded-0.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/dominator.rsi/destroy-unshaded-1.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/dominator.rsi/destroy-unshaded-2.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/dominator.rsi/destroy-unshaded-3.png is excluded by !**/*.png
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/dominator.rsi/disable-unshaded-0.png is excluded by !**/*.png
📒 Files selected for processing (25)
  • Resources/Audio/_Starlight/Effects/Radio/attributions.yml
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/improvised.rsi/meta.json
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/meta.json
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/toz.rsi/meta.json
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Casings/improvised_casing.rsi/meta.json
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Casings/laser_casing.rsi/meta.json
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell_toz.rsi/meta.json
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Battery/lr30_mag.rsi/meta.json
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_heavy.rsi/meta.json
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Magnum/magnum_rifle_mag.rsi/meta.json
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/40.rsi/meta.json
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/improvised_pistol_magazine.rsi/meta.json
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/dmr_mag.rsi/meta.json
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/m-52.rsi/meta.json
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/improvised_smg_magazine.rsi/meta.json
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/ppsh.rsi/meta.json
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/uzi.rsi/meta.json
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Shotgun/toz.rsi/meta.json
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_lever_action_speed_loader.rsi/meta.json
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_magnum_speed_loader.rsi/meta.json
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Shotgun/shotgun_speed_loader.rsi/meta.json
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/Energy_Magnum.rsi/meta.json
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/adv_taser.rsi/meta.json
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/alien.rsi/meta.json
  • Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/decloner.rsi/meta.json

Comment on lines +1 to +23
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/89456d18dd3e7c330839121e3c6bc8c609700137/icons/obj/ammo.dmi , tweaked by Alekshhh, tider-ifed by Killer Tamashi (Discord)",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "base"
},
{
"name": "mag-1"
},
{
"name": "mag-2"
},
{
"name": "mag-3"
}
]
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Неверный отступ в meta.json.

Файл использует 2-пробельные отступы вместо требуемых 4-пробельных.

🔧 Предлагаемое исправление
 {
-  "version": 1,
-  "license": "CC-BY-SA-3.0",
-  "copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/89456d18dd3e7c330839121e3c6bc8c609700137/icons/obj/ammo.dmi , tweaked by Alekshhh, tider-ifed by Killer Tamashi (Discord)",
-  "size": {
-    "x": 32,
-    "y": 32
-  },
-  "states": [
-    {
-      "name": "base"
-    },
-    {
-      "name": "mag-1"
-    },
-    {
-      "name": "mag-2"
-    },
-    {
-      "name": "mag-3"
-    }
-  ]
+    "version": 1,
+    "license": "CC-BY-SA-3.0",
+    "copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/89456d18dd3e7c330839121e3c6bc8c609700137/icons/obj/ammo.dmi , tweaked by Alekshhh, tider-ifed by Killer Tamashi (Discord)",
+    "size": {
+        "x": 32,
+        "y": 32
+    },
+    "states": [
+        {
+            "name": "base"
+        },
+        {
+            "name": "mag-1"
+        },
+        {
+            "name": "mag-2"
+        },
+        {
+            "name": "mag-3"
+        }
+    ]
 }

Based on learnings: Keep RSI meta.json ordered as version, license, copyright, size, states with 4-space indentation.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/89456d18dd3e7c330839121e3c6bc8c609700137/icons/obj/ammo.dmi , tweaked by Alekshhh, tider-ifed by Killer Tamashi (Discord)",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "base"
},
{
"name": "mag-1"
},
{
"name": "mag-2"
},
{
"name": "mag-3"
}
]
}
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/89456d18dd3e7c330839121e3c6bc8c609700137/icons/obj/ammo.dmi , tweaked by Alekshhh, tider-ifed by Killer Tamashi (Discord)",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "base"
},
{
"name": "mag-1"
},
{
"name": "mag-2"
},
{
"name": "mag-3"
}
]
}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/improvised.rsi/meta.json`
around lines 1 - 23, The meta.json uses 2-space indentation and must be
formatted with 4-space indentation and the keys ordered as: "version",
"license", "copyright", "size", "states"; open the meta.json for the improvised
ammo (look for the top-level keys "version", "license", "copyright", "size",
"states") and reformat the file to use 4 spaces per indent level while
preserving the existing key order and values.

Comment on lines +1 to +38
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Made by Killer Tamashi",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "base"
},
{
"name": "mag-1"
},
{
"name": "mag-2"
},
{
"name": "mag-3"
},
{
"name": "incendiary"
},
{
"name": "sp"
},
{
"name": "fmj"
},
{
"name": "ap"
},
{
"name": "uranium"
}
]
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Неверный отступ в meta.json.

Файл использует 2-пробельные отступы вместо требуемых 4-пробельных.

🔧 Предлагаемое исправление отступов
 {
-  "version": 1,
-  "license": "CC-BY-SA-3.0",
-  "copyright": "Made by Killer Tamashi",
-  "size": {
-    "x": 32,
-    "y": 32
-  },
-  "states": [
-    {
-      "name": "base"
-    },
-    {
-      "name": "mag-1"
-    },
-    {
-      "name": "mag-2"
-    },
-    {
-      "name": "mag-3"
-    },
-    {
-      "name": "incendiary"
-    },
-    {
-      "name": "sp"
-    },
-    {
-      "name": "fmj"
-    },
-    {
-      "name": "ap"
-    },
-    {
-      "name": "uranium"
-    }
-  ]
+    "version": 1,
+    "license": "CC-BY-SA-3.0",
+    "copyright": "Made by Killer Tamashi",
+    "size": {
+        "x": 32,
+        "y": 32
+    },
+    "states": [
+        {
+            "name": "base"
+        },
+        {
+            "name": "mag-1"
+        },
+        {
+            "name": "mag-2"
+        },
+        {
+            "name": "mag-3"
+        },
+        {
+            "name": "incendiary"
+        },
+        {
+            "name": "sp"
+        },
+        {
+            "name": "fmj"
+        },
+        {
+            "name": "ap"
+        },
+        {
+            "name": "uranium"
+        }
+    ]
 }

Based on learnings: Keep RSI meta.json ordered as version, license, copyright, size, states with 4-space indentation.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/meta.json`
around lines 1 - 38, The meta.json uses 2-space indentation instead of the
required 4 spaces and should preserve the key order (version, license,
copyright, size, states); update
Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/meta.json
to use 4-space indentation throughout and ensure the top-level keys remain in
the order "version", "license", "copyright", "size", "states" while leaving the
existing state entries ("base", "mag-1", "mag-2", "mag-3", "incendiary", "sp",
"fmj", "ap", "uranium") unchanged.

Comment on lines +2 to +13
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "By Peter Poley (wassuythefourth_47721)",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "base"
}
]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Приведи JSON к отступам в 4 пробела.

Сейчас используется 2 пробела; для RSI meta.json в репозитории требуется 4.

As per coding guidelines: Keep RSI meta.json ordered as version, license, copyright, size, states with 4-space indentation.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/toz.rsi/meta.json`
around lines 2 - 13, Update the meta.json for the TOZ ammunition box to use
4-space indentation and ensure the keys are ordered as required: "version",
"license", "copyright", "size", "states"; open
Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Boxes/toz.rsi/meta.json,
reformat the entire JSON with 4-space indents (not 2), preserve the same key
names and values, and keep the existing "size" and "states" object/array
structures intact.

Comment on lines +2 to +9
"version": 1,
"size": {
"x": 32,
"y": 32
},
"license": "CC-BY-SA-3.0",
"copyright": "Taken from https://github.com/vgstation-coders/vgstation13/blob/0b3ab17dbad632ddf738b63900ef8df1926bba47/icons/obj/ammo.dmi, modified by Topy, then recolored to greyscale by Killer Tamashi (Discord)",
"states": [

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Исправь порядок полей в RSI meta.json.

Поле size должно идти после license и copyright.

Предложение правки
 {
     "version": 1,
-    "size": {
-        "x": 32,
-        "y": 32
-    },
     "license": "CC-BY-SA-3.0",
     "copyright": "Taken from https://github.com/vgstation-coders/vgstation13/blob/0b3ab17dbad632ddf738b63900ef8df1926bba47/icons/obj/ammo.dmi, modified by Topy, then recolored to greyscale by Killer Tamashi (Discord)",
+    "size": {
+        "x": 32,
+        "y": 32
+    },

As per coding guidelines: Keep RSI meta.json ordered as version, license, copyright, size, states with 4-space indentation.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Casings/improvised_casing.rsi/meta.json`
around lines 2 - 9, В файле meta.json поля идут в неправильном порядке;
переставь поля так, чтобы порядок был "version", затем "license", затем
"copyright", затем "size" и затем "states" (с 4-пробельным отступом), обновив
соответствующую запись в RSI (найди текущие ключи "version", "size", "license",
"copyright", "states" и переупорядочь их).

Comment on lines +1 to +20
{
"version": 1,
"size": {
"x": 32,
"y": 32
},
"license": "CC-BY-SA-3.0",
"copyright": "Taken from Paradise Station",
"states": [
{
"name": "base"
},
{
"name": "tip"
},
{
"name": "base-spent"
}
]
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Нарушен порядок полей meta.json.

Поля должны идти в порядке: version, license, copyright, size, states. Сейчас size стоит перед license и copyright. Как указано в coding guidelines, RSI meta.json должен следовать строгому порядку полей.

♻️ Исправление порядка полей
 {
     "version": 1,
+    "license": "CC-BY-SA-3.0",
+    "copyright": "Taken from Paradise Station",
     "size": {
         "x": 32,
         "y": 32
     },
-    "license": "CC-BY-SA-3.0",
-    "copyright": "Taken from Paradise Station",
     "states": [
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Casings/laser_casing.rsi/meta.json`
around lines 1 - 20, The meta.json field order is incorrect: it currently has
"size" before "license" and "copyright"; reorder the top-level keys in
Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Casings/laser_casing.rsi/meta.json
so they follow the required sequence version, license, copyright, size, states
(preserve existing values for "version", "size", and the "states" array with
"base", "tip", "base-spent").

Comment on lines +1 to +32
{
"version": 1,
"size": {
"x": 32,
"y": 32
},
"license": "CC-BY-SA-3.0",
"copyright": "Made by CringeCursed(Github/Discord)",
"states": [
{
"name": "base"
},
{
"name": "mag-1"
},
{
"name": "mag-2"
},
{
"name": "mag-3"
},
{
"name": "mag-4"
},
{
"name": "inhand-left"
},
{
"name": "inhand-right"
}
]
} No newline at end of file

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Нарушен порядок полей meta.json.

Поля должны идти в порядке: version, license, copyright, size, states. Сейчас size стоит перед license и copyright. Как указано в coding guidelines, RSI meta.json должен следовать строгому порядку полей.

♻️ Исправление порядка полей
 {
     "version": 1,
+    "license": "CC-BY-SA-3.0",
+    "copyright": "Made by CringeCursed(Github/Discord)",
     "size": {
         "x": 32,
         "y": 32
     },
-    "license": "CC-BY-SA-3.0",
-    "copyright": "Made by CringeCursed(Github/Discord)",
     "states": [
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
{
"version": 1,
"size": {
"x": 32,
"y": 32
},
"license": "CC-BY-SA-3.0",
"copyright": "Made by CringeCursed(Github/Discord)",
"states": [
{
"name": "base"
},
{
"name": "mag-1"
},
{
"name": "mag-2"
},
{
"name": "mag-3"
},
{
"name": "mag-4"
},
{
"name": "inhand-left"
},
{
"name": "inhand-right"
}
]
}
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Made by CringeCursed(Github/Discord)",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "base"
},
{
"name": "mag-1"
},
{
"name": "mag-2"
},
{
"name": "mag-3"
},
{
"name": "mag-4"
},
{
"name": "inhand-left"
},
{
"name": "inhand-right"
}
]
}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/ppsh.rsi/meta.json`
around lines 1 - 32, В meta.json переставьте свойства в строго указанный
порядок: сначала "version", затем "license", затем "copyright", затем "size", и
в конце "states"; в текущем файле поле "size" стоит перед "license" и
"copyright" — переместите "size" после "copyright" так, чтобы порядок ключей был
exactly: version, license, copyright, size, states.

Comment on lines +3 to +9
"size": {
"x": 32,
"y": 32
},
"license": "CC-BY-SA-3.0",
"copyright": "Taked from Paradise station, inhands by TiniestShark (github)",
"states": [

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Нужно выровнять порядок ключей и поправить опечатку в атрибуции.

size должен быть после license/copyright; также исправь TakedTaken.

As per coding guidelines: Keep RSI meta.json ordered as version, license, copyright, size, states with 4-space indentation.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/uzi.rsi/meta.json`
around lines 3 - 9, Reorder and correct the meta.json keys so they follow the
project convention: ensure the top-level keys appear in the order version,
license, copyright, size, states; move the existing "size" block to come after
"copyright" and correct the typo in the attribution string from "Taked" to
"Taken"; also ensure the file uses 4-space indentation for all object levels and
retains the existing values (e.g., the size x/y and license string).

Comment on lines +2 to +8
"version": 1,
"size": {
"x": 32,
"y": 32
},
"license": "CC-BY-SA-3.0",
"copyright": "https://github.com/tgstation/tgstation/pull/1684/commits/19e51caef09e78ca1122d26455b539ff5968d334, https://github.com/tgstation/tgstation/blob/master/icons/obj/weapons/guns/ammo.dmi, tip by darkrell, 4-shot version by Killer Tamashi (Discord)",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Неверный порядок полей в meta.json.

Порядок должен быть: version, license, copyright, size, states. Текущий: version, size, license, copyright, states.

🔧 Предлагаемое исправление
 {
     "version": 1,
+    "license": "CC-BY-SA-3.0",
+    "copyright": "https://github.com/tgstation/tgstation/pull/1684/commits/19e51caef09e78ca1122d26455b539ff5968d334, https://github.com/tgstation/tgstation/blob/master/icons/obj/weapons/guns/ammo.dmi, tip by darkrell, 4-shot version by Killer Tamashi (Discord)",
     "size": {
         "x": 32,
         "y": 32
     },
-    "license": "CC-BY-SA-3.0",
-    "copyright": "https://github.com/tgstation/tgstation/pull/1684/commits/19e51caef09e78ca1122d26455b539ff5968d334, https://github.com/tgstation/tgstation/blob/master/icons/obj/weapons/guns/ammo.dmi, tip by darkrell, 4-shot version by Killer Tamashi (Discord)",
     "states": [

Based on learnings: Keep RSI meta.json ordered as version, license, copyright, size, states with 4-space indentation.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"version": 1,
"size": {
"x": 32,
"y": 32
},
"license": "CC-BY-SA-3.0",
"copyright": "https://github.com/tgstation/tgstation/pull/1684/commits/19e51caef09e78ca1122d26455b539ff5968d334, https://github.com/tgstation/tgstation/blob/master/icons/obj/weapons/guns/ammo.dmi, tip by darkrell, 4-shot version by Killer Tamashi (Discord)",
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "https://github.com/tgstation/tgstation/pull/1684/commits/19e51caef09e78ca1122d26455b539ff5968d334, https://github.com/tgstation/tgstation/blob/master/icons/obj/weapons/guns/ammo.dmi, tip by darkrell, 4-shot version by Killer Tamashi (Discord)",
"size": {
"x": 32,
"y": 32
},
"states": [
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_magnum_speed_loader.rsi/meta.json`
around lines 2 - 8, The meta.json fields are out of the required order; reorder
the top-level keys in the RSI meta (in
Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_magnum_speed_loader.rsi/meta.json)
to follow the canonical sequence: "version", "license", "copyright", "size",
"states"; ensure 4-space indentation is used and preserve existing values (e.g.,
keep the current copyright string and the size object) while moving "license"
and "copyright" above "size".

Comment on lines +2 to +9
"version": 1,
"size": {
"x": 32,
"y": 32
},
"license": "CC-BY-SA-3.0",
"copyright": "Taked from RU Paradise Station, tip by Rinary",
"states": [

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Порядок полей не соответствует стандарту RSI meta.json.

Перемести size ниже license и copyright.

As per coding guidelines: Keep RSI meta.json ordered as version, license, copyright, size, states with 4-space indentation.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Shotgun/shotgun_speed_loader.rsi/meta.json`
around lines 2 - 9, The meta.json fields are out of order: reorder the top-level
keys so they appear as version, license, copyright, size, states (i.e., move
"size" below "license" and "copyright") and ensure 4-space indentation for each
field; update the JSON in shotgun_speed_loader.rsi's meta.json so the keys read
exactly in that order and maintain consistent 4-space indentation.

Comment on lines +2 to +24
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Taken/modified from desertrose at https://github.com/DesertRose2/desertrose/commit/0b8f7b7694a4a814724ba8ed59f695916ce845ce , https://github.com/DesertRose2/desertrose/blob/master/icons/obj/guns/projectile.dmi retextured and remade into the Energy Magnum by scarlet!",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "base"
},
{
"name": "icon"
},
{
"name": "inhand-left",
"directions": 4
},
{
"name": "inhand-right",
"directions": 4
}
]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Отступы должны быть 4 пробела.

В файле сейчас 2 пробела, что расходится с требованием для RSI meta.json.

As per coding guidelines: Keep RSI meta.json ordered as version, license, copyright, size, states with 4-space indentation.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@Resources/Audio/_Starlight/Objects/Weapons/Guns/Battery/Energy_Magnum.rsi/meta.json`
around lines 2 - 24, The meta.json uses 2-space indentation and must be
converted to 4-space indentation and preserve the required key order (version,
license, copyright, size, states); update the file so each nested level (e.g.,
the "size" object and the "states" array entries like "base", "icon",
"inhand-left", "inhand-right") is indented with 4 spaces, ensure the keys remain
in the specified order and that array/object formatting follows RSI meta.json
conventions.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (2)
Content.Server/_Starlight/Gavel/GavelBlockComponent.cs (2)

3-3: ⚠️ Potential issue | 🟠 Major

Namespace форка не по конвенции (_Starlight пропущен).

Сейчас namespace выбивается из принятого шаблона для fork-путей и уже отмечался ранее; лучше привести к _Starlight, чтобы не плодить расхождения по ссылкам/using.

Предлагаемая правка
-namespace Content.Server.Starlight.Gavel;
+namespace Content.Server._Starlight.Gavel;

Based on learnings: Applies to Content.Server/Content/Server/**/*.cs : Load ss14-naming-conventions guideline set for Content.Server work.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Content.Server/_Starlight/Gavel/GavelBlockComponent.cs` at line 3, The
namespace in this file is missing the fork convention `_Starlight` — change the
declared namespace symbol from `Content.Server.Starlight.Gavel` to
`Content.Server._Starlight.Gavel` and update any internal references/usings or
project references that rely on this namespace so they match the fork naming
convention (ensure the namespace declaration in `GavelBlockComponent` is the
only change and build compiles).

14-18: 🛠️ Refactor suggestion | 🟠 Major

readOnly: true на Counter и MaxCounter лучше убрать.

Counter меняется в GavelSystem, поэтому пометка readOnly здесь вводит в заблуждение. Для MaxCounter достаточно обычного [DataField].

Предлагаемая правка
-    [DataField(readOnly: true)]
+    [DataField]
     public int Counter;

-    [DataField(readOnly: true)]
+    [DataField]
     public int MaxCounter = 60;
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Content.Server/_Starlight/Gavel/GavelBlockComponent.cs` around lines 14 - 18,
The DataField attributes on GavelBlockComponent incorrectly mark Counter and
MaxCounter as readOnly; remove the readOnly: true flag so Counter can be mutated
by GavelSystem and MaxCounter is a normal configurable field (i.e., change
[DataField(readOnly: true)] on Counter and MaxCounter to simply [DataField]
while leaving the field names and default value for MaxCounter intact).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@Content.Server/_Starlight/Gavel/GavelBlockComponent.cs`:
- Line 3: The namespace in this file is missing the fork convention `_Starlight`
— change the declared namespace symbol from `Content.Server.Starlight.Gavel` to
`Content.Server._Starlight.Gavel` and update any internal references/usings or
project references that rely on this namespace so they match the fork naming
convention (ensure the namespace declaration in `GavelBlockComponent` is the
only change and build compiles).
- Around line 14-18: The DataField attributes on GavelBlockComponent incorrectly
mark Counter and MaxCounter as readOnly; remove the readOnly: true flag so
Counter can be mutated by GavelSystem and MaxCounter is a normal configurable
field (i.e., change [DataField(readOnly: true)] on Counter and MaxCounter to
simply [DataField] while leaving the field names and default value for
MaxCounter intact).

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: a489edf7-c6d0-4b83-9891-3c8ce7a4d919

📥 Commits

Reviewing files that changed from the base of the PR and between 2ab4851 and 9c73d14.

📒 Files selected for processing (1)
  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs
📜 Review details
⏰ Context from checks skipped due to timeout of 180000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: YAML map schema validator
  • GitHub Check: build (ubuntu-latest)
  • GitHub Check: YAML Linter
  • GitHub Check: build (ubuntu-latest)
  • GitHub Check: Test Packaging
🧰 Additional context used
📓 Path-based instructions (8)
**/*.cs

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

**/*.cs: Read .agents/rules/ss14-csharp-style.md before editing
For C# gameplay work, load the ss14-ecs-components skill
For C# gameplay work, load the ss14-ecs-entities skill
For C# gameplay work, load the ss14-ecs-systems skill
For C# gameplay work, load the ss14-events skill
For C# gameplay work, load the ss14-prediction skill
For C# text or LocId fields, load the ss14-localization-code skill
For hot paths or Update() methods, load the ss14-standard-optimizations skill
For network events, NetEntity, or replicated state work, load the ss14-netcode skill
For Appearance and GenericVisualizer work, load the ss14-graphics-generic-visualizer-appearance skill
Keep components data-only and put behavior in systems
Use On... -> Try... -> Can... -> Do... interaction flow
Prefer Entity<T?>, ProtoId<T>, and localized strings

Files:

  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs
**/*.{xaml,cs}

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

For XAML or BUI work, load the ss14-ui-bui skill

Files:

  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs
Content.Server/**/*.cs

📄 CodeRabbit inference engine (.github/instructions/ss14-server.instructions.md)

Content.Server/**/*.cs: Keep authority, round rules, persistence, and server-only side effects in Content.Server code
For player-facing actions in Content.Server, verify the shared prediction path to ensure the local player feels the action immediately, rather than leaving the behavior server-only by accident
Load ss14-tests-authoring when behavior changes are risky enough to warrant test coverage

Files:

  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs

⚙️ CodeRabbit configuration file

Content.Server/**/*.cs: Review Content.Server for authority and fork-maintenance discipline:

  • Server owns authority, persistence, round logic, and non-predicted side effects.
  • If a player action should feel immediate, call out missing shared prediction rather than accepting a server-only path.
  • Keep upstream diffs narrow and prefer fork-scoped extensions over broad edits to upstream behavior.
  • When player-visible behavior changes, check whether matching prototype and locale updates are missing.

Files:

  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs
Content.{Shared,Server,Client,Tests,IntegrationTests}/**/*.cs

📄 CodeRabbit inference engine (.cursor/rules/ss14-csharp.mdc)

Content.{Shared,Server,Client,Tests,IntegrationTests}/**/*.cs: Follow C# ECS architecture patterns as defined in SS14 gameplay code
Follow SS14 interaction flow rules and patterns
Follow SS14 C# style guidelines and conventions
Apply SS14 naming conventions when defining classes, methods, properties, and identifiers
Implement ECS components following SS14 component patterns and best practices
Implement ECS entities following SS14 entity patterns and best practices
Implement ECS systems following SS14 system patterns and best practices
Follow SS14 event patterns and best practices for event-driven gameplay code
Follow SS14 netcode patterns and best practices for network synchronization
Follow SS14 localization code patterns for text and message handling

Files:

  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs
Content.{Shared,Server,Client}/**/*Component.cs

📄 CodeRabbit inference engine (AGENTS.md)

Keep components data-only; put gameplay logic in entity systems

Files:

  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs
Content.{Shared,Server,Client}/**/*.cs

📄 CodeRabbit inference engine (AGENTS.md)

Content.{Shared,Server,Client}/**/*.cs: Prefer [Dependency] fields over ad-hoc IoCManager.Resolve(...) inside methods
Use EntityUid? for optional entities; do not use EntityUid.Invalid as a 'missing' sentinel
Use sealed, abstract, static, or [Virtual] on new classes where appropriate
Prefer prototypes over enums for in-game content types
Use ProtoId<T> or EntProtoId instead of raw prototype ID strings in data fields and static references
Prefer [DataField] without string field names on new code unless serializer compatibility or a non-default data name is required
Event handlers should use On... names
Public action methods should prefer Try... names
Check methods should prefer Can... names
Dependency fields should use the existing underscore-prefixed style such as _popup, _hands, _audio
Keep new prototype IDs, event names, and component names aligned with nearby conventions rather than inventing new suffixes
Use sound collections/specifiers and sprite specifiers instead of ad-hoc raw asset strings in code when reusable content is intended
Do not compare localized strings or expose raw enum ToString() output to players
When adding or changing OpenSpace-specific code in a file outside any _OpenSpace path, wrap each OpenSpace-specific block with edit markers: // open-space edit start and // open-space edit end
Keep edit-marker ranges as narrow as practical; for files that do not use // comments, use the native comment syntax while preserving open-space edit start and open-space edit end

Files:

  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs
Content.{Server,Client}/**/*Component.cs

📄 CodeRabbit inference engine (AGENTS.md)

Never add NetworkedComponent to purely server-only or purely client-only components

Files:

  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs
Content.{Shared,Server,Client}/**/*.{cs,xaml}

📄 CodeRabbit inference engine (AGENTS.md)

Every player-facing string must be localized

Files:

  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs
🧠 Learnings (18)
📚 Learning: 2026-04-21T19:10:13.901Z
Learnt from: CR
Repo: ss14-art/open-space PR: 0
File: .cursor/rules/ss14-csharp.mdc:0-0
Timestamp: 2026-04-21T19:10:13.901Z
Learning: Applies to Content.{Shared,Server,Client,Tests,IntegrationTests}/**/*.cs : Implement ECS components following SS14 component patterns and best practices

Applied to files:

  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs
📚 Learning: 2026-04-21T20:10:46.780Z
Learnt from: CR
Repo: ss14-art/open-space PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-21T20:10:46.780Z
Learning: Applies to Content.Shared/**/*Component.cs : Shared predicted components should use `NetworkedComponent`, `AutoGenerateComponentState`, and `AutoNetworkedField` where appropriate

Applied to files:

  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs
📚 Learning: 2026-04-21T20:10:46.780Z
Learnt from: CR
Repo: ss14-art/open-space PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-21T20:10:46.780Z
Learning: Applies to Content.{Shared,Server,Client}/**/*Component.cs : Keep components data-only; put gameplay logic in entity systems

Applied to files:

  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs
📚 Learning: 2026-04-21T19:10:23.860Z
Learnt from: CR
Repo: ss14-art/open-space PR: 0
File: .cursor/rules/ss14-shared.mdc:0-0
Timestamp: 2026-04-21T19:10:23.860Z
Learning: Applies to Content.Shared/**/*.cs : Apply SS14 ECS component patterns when editing component files

Applied to files:

  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs
📚 Learning: 2026-04-21T19:09:31.929Z
Learnt from: CR
Repo: ss14-art/open-space PR: 0
File: .github/instructions/ss14-shared.instructions.md:0-0
Timestamp: 2026-04-21T19:09:31.929Z
Learning: Applies to Content.Shared/**/*.cs : Load `ss14-ecs-components`, `ss14-ecs-entities`, `ss14-ecs-systems`, `ss14-events`, `ss14-prediction`, and `ss14-netcode` modules in Content.Shared code

Applied to files:

  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs
📚 Learning: 2026-04-21T20:11:10.713Z
Learnt from: CR
Repo: ss14-art/open-space PR: 0
File: Content.Server/AGENTS.md:0-0
Timestamp: 2026-04-21T20:11:10.713Z
Learning: Applies to Content.Server/Content/Server/**/*Component.cs : Load `ss14-ecs-components` guideline set for Content.Server work

Applied to files:

  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs
📚 Learning: 2026-04-21T19:10:13.901Z
Learnt from: CR
Repo: ss14-art/open-space PR: 0
File: .cursor/rules/ss14-csharp.mdc:0-0
Timestamp: 2026-04-21T19:10:13.901Z
Learning: Applies to Content.{Shared,Server,Client,Tests,IntegrationTests}/**/*.cs : Follow C# ECS architecture patterns as defined in SS14 gameplay code

Applied to files:

  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs
📚 Learning: 2026-04-21T20:10:46.780Z
Learnt from: CR
Repo: ss14-art/open-space PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-21T20:10:46.780Z
Learning: Applies to Content.{Shared,Server,Client}/**/*.cs : When adding or changing OpenSpace-specific code in a file outside any `_OpenSpace` path, wrap each OpenSpace-specific block with edit markers: `// open-space edit start` and `// open-space edit end`

Applied to files:

  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs
📚 Learning: 2026-04-21T20:11:10.713Z
Learnt from: CR
Repo: ss14-art/open-space PR: 0
File: Content.Server/AGENTS.md:0-0
Timestamp: 2026-04-21T20:11:10.713Z
Learning: Applies to Content.Server/Content/Server/**/*.cs : Load `ss14-naming-conventions` guideline set for Content.Server work

Applied to files:

  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs
📚 Learning: 2026-04-21T20:10:46.780Z
Learnt from: CR
Repo: ss14-art/open-space PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-21T20:10:46.780Z
Learning: Applies to Content.{Shared,Server,Client}/**/*.cs : Keep new prototype IDs, event names, and component names aligned with nearby conventions rather than inventing new suffixes

Applied to files:

  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs
📚 Learning: 2026-04-21T20:10:46.780Z
Learnt from: CR
Repo: ss14-art/open-space PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-21T20:10:46.780Z
Learning: Applies to Content.{Shared,Server,Client}/**/*.cs : Dependency fields should use the existing underscore-prefixed style such as `_popup`, `_hands`, `_audio`

Applied to files:

  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs
📚 Learning: 2026-04-21T20:11:10.713Z
Learnt from: CR
Repo: ss14-art/open-space PR: 0
File: Content.Server/AGENTS.md:0-0
Timestamp: 2026-04-21T20:11:10.713Z
Learning: Applies to Content.Server/Content/Server/**/*System.cs : Load `ss14-ecs-systems` guideline set for Content.Server work

Applied to files:

  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs
📚 Learning: 2026-04-21T19:10:13.901Z
Learnt from: CR
Repo: ss14-art/open-space PR: 0
File: .cursor/rules/ss14-csharp.mdc:0-0
Timestamp: 2026-04-21T19:10:13.901Z
Learning: Applies to Content.{Shared,Server,Client,Tests,IntegrationTests}/**/*.cs : Implement ECS systems following SS14 system patterns and best practices

Applied to files:

  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs
📚 Learning: 2026-04-21T19:10:13.901Z
Learnt from: CR
Repo: ss14-art/open-space PR: 0
File: .cursor/rules/ss14-csharp.mdc:0-0
Timestamp: 2026-04-21T19:10:13.901Z
Learning: Applies to Content.{Shared,Server,Client,Tests,IntegrationTests}/**/*.cs : Follow SS14 netcode patterns and best practices for network synchronization

Applied to files:

  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs
📚 Learning: 2026-04-21T19:10:23.860Z
Learnt from: CR
Repo: ss14-art/open-space PR: 0
File: .cursor/rules/ss14-shared.mdc:0-0
Timestamp: 2026-04-21T19:10:23.860Z
Learning: Applies to Content.Shared/**/*.cs : Apply SS14 ECS system patterns when editing system files

Applied to files:

  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs
📚 Learning: 2026-04-21T20:10:46.780Z
Learnt from: CR
Repo: ss14-art/open-space PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-21T20:10:46.780Z
Learning: Applies to Content.{Shared,Server,Client}/**/*.cs : Use sound collections/specifiers and sprite specifiers instead of ad-hoc raw asset strings in code when reusable content is intended

Applied to files:

  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs
📚 Learning: 2026-04-21T20:11:18.817Z
Learnt from: CR
Repo: ss14-art/open-space PR: 0
File: Content.Shared/AGENTS.md:0-0
Timestamp: 2026-04-21T20:11:18.817Z
Learning: Applies to Content.Shared/**/*.cs : Load ss14-audio knowledge base when shared components or events carry sound specifiers or predicted audio intent

Applied to files:

  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs
📚 Learning: 2026-04-21T20:11:10.713Z
Learnt from: CR
Repo: ss14-art/open-space PR: 0
File: Content.Server/AGENTS.md:0-0
Timestamp: 2026-04-21T20:11:10.713Z
Learning: Applies to Content.Server/Content/Server/**/*Audio*.cs : Load `ss14-audio` guideline set for server-routed world audio, PVS audio, or global sound playback

Applied to files:

  • Content.Server/_Starlight/Gavel/GavelBlockComponent.cs
🔇 Additional comments (2)
Content.Server/_Starlight/Gavel/GavelBlockComponent.cs (2)

8-12: Хорошо: компонент остаётся data-only, HitSound nullable.

Этот блок выглядит корректно для ECS-компонента, поведение остаётся в системе.

As per coding guidelines: Keep components data-only and put behavior in systems.


3-21: ⚠️ Potential issue | 🟠 Major

Добавьте open-space edit маркеры для fork-правок.

В этом файле нет обязательных маркеров для OpenSpace-изменений вне _OpenSpace пути.

Пример минимальной обёртки
+// open-space edit start
 namespace Content.Server.Starlight.Gavel;
@@
 public sealed partial class GavelBlockComponent : Component
 {
@@
     public TimeSpan? PrevSound;
 }
+// open-space edit end

As per coding guidelines: When adding or changing OpenSpace-specific code in a file outside any _OpenSpace path, wrap each OpenSpace-specific block with edit markers: // open-space edit start and // open-space edit end.

⛔ Skipped due to learnings
Learnt from: CR
Repo: ss14-art/open-space PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-21T20:10:46.780Z
Learning: Applies to Content.{Shared,Server,Client}/**/*.cs : When adding or changing OpenSpace-specific code in a file outside any `_OpenSpace` path, wrap each OpenSpace-specific block with edit markers: `// open-space edit start` and `// open-space edit end`
Learnt from: CR
Repo: ss14-art/open-space PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-21T20:10:46.780Z
Learning: Applies to Content.{Shared,Server,Client}/**/*.cs : Keep edit-marker ranges as narrow as practical; for files that do not use `//` comments, use the native comment syntax while preserving `open-space edit start` and `open-space edit end`
Learnt from: CR
Repo: ss14-art/open-space PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-21T20:10:46.780Z
Learning: For fork-only behavior, prefer extending `_OpenSpace` or another clearly fork-scoped area instead of hiding fork logic in unrelated upstream files
Learnt from: CR
Repo: ss14-art/open-space PR: 0
File: .cursor/rules/ss14-shared.mdc:0-0
Timestamp: 2026-04-21T19:10:23.860Z
Learning: Applies to Content.Shared/**/*.cs : Apply SS14 ECS component patterns when editing component files
Learnt from: CR
Repo: ss14-art/open-space PR: 0
File: .cursor/rules/ss14-shared.mdc:0-0
Timestamp: 2026-04-21T19:10:23.860Z
Learning: Applies to Content.Shared/**/*.cs : Apply SS14 ECS system patterns when editing system files
Learnt from: CR
Repo: ss14-art/open-space PR: 0
File: .cursor/rules/ss14-ui.mdc:0-0
Timestamp: 2026-04-21T19:10:33.591Z
Learning: Applies to Content.Client/**/*.cs : Follow SS14 upstream maintenance practices when editing client code
Learnt from: CR
Repo: ss14-art/open-space PR: 0
File: .cursor/rules/ss14-shared.mdc:0-0
Timestamp: 2026-04-21T19:10:23.860Z
Learning: Applies to Content.Shared/**/*.cs : Apply SS14 prediction-aware patterns when editing gameplay code
Learnt from: cryals
Repo: ss14-art/open-space PR: 8
File: Resources/Prototypes/_Corvax/Decals/crayons.yml:2-133
Timestamp: 2026-03-17T09:20:45.898Z
Learning: In the ss14-art/open-space repository, PRs that port content from the upstream space-syndicate/space-station-14 repository should not have extra fields or modifications added that are not present in the upstream source. Faithful ports should be left as-is to match the original.

@ReWAFFlution ReWAFFlution left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Прошёлся глазом по ПРу:
Необходимо много исправлений в мете, прототипах и тд.
Конечно я всё не отметил, но видно какие ошибки заметил кролик.
По коду сам пройдусь

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Исправить согласно комментарию кролика

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Исправить согласно комментарию кролика

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Исправить согласно комментарию кролика

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Исправить согласно комментарию кролика

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Исправить согласно комментарию кролика

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Исправить согласно комментарию кролика

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

КАКОГО НАХУЙ ХУЯ

@github-actions

Copy link
Copy Markdown
Contributor

Этот Pull Request содержит конфликты. Почините их, прежде чем мы начнем проверять его.

@ReWAFFlution
ReWAFFlution marked this pull request as draft May 12, 2026 22:57
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants