Skip to content

[Tweak] Retexture#25

Open
4esterNight wants to merge 5 commits intoTheMaidDev:mainfrom
4esterNight:main
Open

[Tweak] Retexture#25
4esterNight wants to merge 5 commits intoTheMaidDev:mainfrom
4esterNight:main

Conversation

@4esterNight
Copy link
Copy Markdown

@4esterNight 4esterNight commented Feb 9, 2026

🆑 4esterNight

  • tweak: изменены спрайты на новые. Утилизационный бак, ОБР скафандры, Лабораторный халат химика, Изолированные перчатки, Галоши, Челюсти жизни (НТ), Манипуляторы, Медицинский УмныйХолодильник, Фуражка смотрителя, Все типы гранат, Скафандр Джагера, Настенные шкафы, Ключи шифрования, Телекоммуникации, Все щиты, ПТех, фрейм мусорки.

Summary by CodeRabbit

  • Style
    • Updated visual assets for clothing items, weapons, grenades, tools, and machines to use alternative sprite variants
    • Added metadata definitions for the new asset variations
    • Changes affect appearance only; no gameplay functionality modified

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Feb 9, 2026

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

Resources/Textures/_Maid/Clothing/Hands/Gloves/Color/yellow.rsi

State Old New Status
equipped-HAND-vox Added
equipped-HAND Added
icon Added
inhand-left Added
inhand-right Added

Resources/Textures/_Maid/Clothing/Head/Hardsuits/ERThelmets/ertengineer.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
off-inhand-left Added
off-inhand-right Added
on-equipped-HELMET Added
on-inhand-left Added
on-inhand-right Added

Resources/Textures/_Maid/Clothing/Head/Hardsuits/ERThelmets/ertjanitor.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
off-inhand-left Added
off-inhand-right Added
on-equipped-HELMET Added
on-inhand-left Added
on-inhand-right Added

Resources/Textures/_Maid/Clothing/Head/Hardsuits/ERThelmets/ertleader.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
off-inhand-left Added
off-inhand-right Added
on-equipped-HELMET Added
on-inhand-left Added
on-inhand-right Added

Resources/Textures/_Maid/Clothing/Head/Hardsuits/ERThelmets/ertmedical.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
off-inhand-left Added
off-inhand-right Added
on-equipped-HELMET Added
on-inhand-left Added
on-inhand-right Added

Resources/Textures/_Maid/Clothing/Head/Hardsuits/ERThelmets/ertsecurity.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
off-inhand-left Added
off-inhand-right Added
on-equipped-HELMET Added
on-inhand-left Added
on-inhand-right Added

Resources/Textures/_Maid/Clothing/Head/Hats/warden.rsi

State Old New Status
equipped-HELMET Added
icon Added

Resources/Textures/_Maid/Clothing/OuterClothing/Coats/labcoat_chem.rsi

State Old New Status
equipped-OUTERCLOTHING-body-slim Added
equipped-OUTERCLOTHING Added
icon-open Added
icon Added
inhand-left Added
inhand-right Added
open-equipped-OUTERCLOTHING-body-slim Added
open-equipped-OUTERCLOTHING Added
open-inhand-left Added
open-inhand-right Added

Resources/Textures/_Maid/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi

State Old New Status
equipped-OUTERCLOTHING Added
icon Added
inhand-left Added
inhand-right Added

Resources/Textures/_Maid/Clothing/OuterClothing/Hardsuits/ERTSuits/ertjanitor.rsi

State Old New Status
equipped-OUTERCLOTHING Added
icon Added
inhand-left Added
inhand-right Added

Resources/Textures/_Maid/Clothing/OuterClothing/Hardsuits/ERTSuits/ertleader.rsi

State Old New Status
equipped-OUTERCLOTHING Added
icon Added
inhand-left Added
inhand-right Added

Resources/Textures/_Maid/Clothing/OuterClothing/Hardsuits/ERTSuits/ertmedical.rsi

State Old New Status
equipped-OUTERCLOTHING Added
icon Added
inhand-left Added
inhand-right Added

Resources/Textures/_Maid/Clothing/OuterClothing/Hardsuits/ERTSuits/ertsecurity.rsi

State Old New Status
equipped-OUTERCLOTHING Added
icon Added
inhand-left Added
inhand-right Added

Resources/Textures/_Maid/Clothing/Shoes/Specific/galoshes.rsi

State Old New Status
equipped-FEET Added
icon Added
inhand-left Added
inhand-right Added

Resources/Textures/_Maid/Objects/Devices/encryption_keys.rsi

State Old New Status
ai_label Added
borg_label Added
cap_label Added
cargo_label Added
ce_label Added
cmo_label Added
com_label Added
common_label Added
crypt_blue Added
crypt_gold Added
crypt_gray Added
crypt_orange Added
crypt_red Added
crypt_rusted Added
crypt_silver Added
eng_label Added
hop_label Added
hos_label Added
med_label Added
medsci_label Added
miner_label Added
nano_label Added
pirate_label Added
qm_label Added
rd_label Added
robotics_label Added
sci_label Added
sec_label Added
service_label Added
synd_label Added

Resources/Textures/_Maid/Objects/Weapons/Grenades/clusterbang.rsi

State Old New Status
base-0 Added
base-1 Added
base-2 Added
base-3 Added
icon Added
primed Added

Resources/Textures/_Maid/Objects/Weapons/Grenades/clusterbomb.rsi

State Old New Status
base-1 Added
base-2 Added
icon Added
primed Added

Resources/Textures/_Maid/Objects/Weapons/Grenades/empgrenade.rsi

State Old New Status
equipped-BELT Added
icon Added
primed Added

Resources/Textures/_Maid/Objects/Weapons/Grenades/flashbang.rsi

State Old New Status
equipped-BELT Added
icon Added
primed Added

Resources/Textures/_Maid/Objects/Weapons/Grenades/grenade.rsi

State Old New Status
equipped-BELT Added
icon Added
primed Added

Resources/Textures/_Maid/Objects/Weapons/Grenades/holyhandgrenade.rsi

State Old New Status
equipped-BELT Added
icon Added
primed Added

Resources/Textures/_Maid/Objects/Weapons/Grenades/janitor.rsi

State Old New Status
equipped-BELT Added
icon Added
primed Added

Resources/Textures/_Maid/Objects/Weapons/Grenades/modular.rsi

State Old New Status
complete Added
empty Added
no-payload Added
primed Added
wired Added

Resources/Textures/_Maid/Objects/Weapons/Grenades/nukenade.rsi

State Old New Status
icon Added
primed Added

Resources/Textures/_Maid/Objects/Weapons/Grenades/pyrogrenade.rsi

State Old New Status
equipped-BELT Added
icon Added
primed Added

Resources/Textures/_Maid/Objects/Weapons/Grenades/shrapnelgrenade.rsi

State Old New Status
equipped-BELT Added
icon Added
primed Added

Resources/Textures/_Maid/Objects/Weapons/Grenades/smoke.rsi

State Old New Status
icon Added
primed Added

Resources/Textures/_Maid/Objects/Weapons/Grenades/stingergrenade.rsi

State Old New Status
equipped-BELT Added
icon Added
primed Added

Resources/Textures/_Maid/Objects/Weapons/Grenades/supermattergrenade.rsi

State Old New Status
icon Added
primed Added

Resources/Textures/_Maid/Objects/Weapons/Grenades/syndgrenade.rsi

State Old New Status
equipped-BELT Added
icon Added
primed Added

Resources/Textures/_Maid/Objects/Weapons/Grenades/tear_gas.rsi

State Old New Status
icon Added
primed Added

Resources/Textures/_Maid/Objects/Weapons/Grenades/whiteholegrenade.rsi

State Old New Status
icon Added
primed Added

Resources/Textures/_Maid/Objects/Weapons/Melee/shields.rsi

State Old New Status
buckler-icon Added
buckler-inhand-left Added
buckler-inhand-right Added
changeling-icon Added
changeling-inhand-left Added
changeling-inhand-right Added
makeshift-icon Added
metal-icon Added
metal-inhand-left Added
metal-inhand-right Added
mirror-icon Added
mirror-inhand-left Added
mirror-inhand-right Added
ratvarian-icon Added
ratvarian-inhand-left Added
ratvarian-inhand-right Added
riot-icon Added
riot-inhand-left Added
riot-inhand-right Added
riot_bullet-icon Added
riot_bullet-inhand-left Added
riot_bullet-inhand-right Added
riot_laser-icon Added
riot_laser-inhand-left Added
riot_laser-inhand-right Added
teleriot-icon Added
teleriot-inhand-left-on Added
teleriot-inhand-left Added
teleriot-inhand-right-on Added
teleriot-inhand-right Added
teleriot-on Added

Resources/Textures/_Maid/Structures/Machines/VendingMachines/cart.rsi

State Old New Status
broken Added
deny-unshaded Added
eject-unshaded Added
normal-unshaded Added
off Added
panel Added

Resources/Textures/_Maid/Structures/Machines/smartfridge.rsi

State Old New Status
broken Added
off Added
smartfridge Added
smartfridge_door Added
smartfridge_open Added

Resources/Textures/_Maid/Structures/Machines/telecomms.rsi

State Old New Status
icon Added
panel Added
unlit Added

Resources/Textures/_Maid/Structures/Piping/disposal.rsi

State Old New Status
condisposal Added
conmailing Added
conpipe-c Added
conpipe-j1 Added
conpipe-j1s Added
conpipe-j2 Added
conpipe-j2s Added
conpipe-s Added
conpipe-signaller Added
conpipe-t Added
conpipe-tagger Added
conpipe-x Added
conpipe-y Added
disposal-charging Added
disposal-flush Added
disposal Added
dispover-charge Added
dispover-full Added

Edit: diff updated after bc4ebb4

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Feb 9, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f7bcbea and 2bfc831.

📒 Files selected for processing (1)
  • Resources/Textures/_Maid/Objects/Devices/encryption_keys.rsi/meta.json
🚧 Files skipped from review as they are similar to previous changes (1)
  • Resources/Textures/_Maid/Objects/Devices/encryption_keys.rsi/meta.json

📝 Walkthrough

Walkthrough

This PR systematically migrates sprite asset references throughout the codebase to use "_Maid" prefixed texture variants, accompanied by corresponding meta.json metadata files for each new asset. Changes span prototypes, actions, catalog items, and UI elements, with all visual references updated consistently while maintaining no functional logic or behavior changes.

Changes

Cohort / File(s) Summary
Admin & Action Systems
Content.Server/Administration/Systems/AdminVerbSystem.Smites.cs, Resources/Prototypes/Actions/ninja.yml, Resources/Prototypes/Actions/types.yml
Updated icon sprite paths to reference Maid variants for admin smite verbs and action definitions.
Catalog & Uplink
Resources/Prototypes/Catalog/Cargo/cargo_security.yml, Resources/Prototypes/Catalog/Cargo/cargo_service.yml, Resources/Prototypes/Catalog/uplink_catalog.yml, Resources/Prototypes/_Goobstation/Catalog/uplink_catalog.yml, Resources/Prototypes/_Goobstation/Catalog/selectable_sets.yml
Updated sprite asset paths for cargo products and uplink catalog listings to point to Maid-prefixed variants.
Clothing Prototypes
Resources/Prototypes/Entities/Clothing/Hands/colored.yml, Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml, Resources/Prototypes/Entities/Clothing/Head/hats.yml, Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml, Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml, Resources/Prototypes/Entities/Clothing/Shoes/specific.yml, Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml, Resources/Prototypes/_Goobstation/Entities/Markers/Spawners/Random/insuls.yml
Updated all clothing sprite references (gloves, helmets, hats, coats, hardsuits, shoes, and related spawners) to use Maid-themed asset paths.
Weapon & Grenade Prototypes
Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml, Resources/Prototypes/Entities/Objects/Weapons/Throwable/projectile_grenades.yml, Resources/Prototypes/Entities/Objects/Weapons/Throwable/scattering_grenades.yml, Resources/Prototypes/Entities/Objects/Tools/jaws_of_life.yml, Resources/Prototypes/Entities/Objects/Shields/shields.yml, Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/reagant_grenades.yml, Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/grenades.yml
Updated sprite paths for all grenade variants (flash, stinger, incendiary, tear gas, smoke, etc.), melee weapons (shields, jaws of life), and projectile definitions to reference Maid assets.
Devices & Equipment
Resources/Prototypes/Entities/Objects/Devices/encryption_keys.yml, Resources/Prototypes/Entities/Objects/Misc/machine_parts.yml, Resources/Prototypes/Objectives/stealTargetGroups.yml, Resources/Prototypes/_Goobstation/Entities/Objects/Devices/encryption_keys.yml
Updated sprite references for encryption keys, stock parts, and related objectives to use Maid-prefixed paths.
Machine & Structure Prototypes
Resources/Prototypes/Entities/Structures/Machines/smartfridge.yml, Resources/Prototypes/Entities/Structures/Machines/telecomms.yml, Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml, Resources/Prototypes/Entities/Structures/Piping/Disposal/high_pressure_machine_frame.yml, Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml, Resources/Prototypes/Entities/Structures/Piping/Disposal/units.yml, Resources/Prototypes/_DV/Entities/Structures/Machines/smartfridge.yml
Updated sprite paths for machines and structures (smartfridge, telecomms, vending machines, piping components) to use Maid variants; telecomms.yml also includes visual layer reconfiguration simplifications.
Recipes & Stacks
Resources/Prototypes/Recipes/Construction/Graphs/machines/machine.yml, Resources/Prototypes/Stacks/science_stacks.yml, Resources/Prototypes/_Goobstation/Actions/types.yml
Updated guide icon and sprite references for machine recipes and science stacks to point to Maid assets.
Texture Asset Metadata
Resources/Textures/_Maid/Clothing/Hands/Gloves/Color/yellow.rsi/meta.json, Resources/Textures/_Maid/Clothing/Head/Hardsuits/ERThelmets/*.rsi/meta.json, Resources/Textures/_Maid/Clothing/Head/Hats/warden.rsi/meta.json, Resources/Textures/_Maid/Clothing/OuterClothing/Coats/labcoat_chem.rsi/meta.json, Resources/Textures/_Maid/Clothing/OuterClothing/Hardsuits/ERTSuits/*.rsi/meta.json, Resources/Textures/_Maid/Clothing/Shoes/Specific/galoshes.rsi/meta.json, Resources/Textures/_Maid/Objects/Devices/encryption_keys.rsi/meta.json, Resources/Textures/_Maid/Objects/Weapons/Grenades/*.rsi/meta.json, Resources/Textures/_Maid/Objects/Weapons/Melee/shields.rsi/meta.json, Resources/Textures/_Maid/Structures/Machines/VendingMachines/cart.rsi/meta.json, Resources/Textures/_Maid/Structures/Machines/smartfridge.rsi/meta.json, Resources/Textures/_Maid/Structures/Machines/telecomms.rsi/meta.json
Added comprehensive JSON metadata files for all new Maid-prefixed texture assets, specifying versions, licenses, copyright attribution, sprite dimensions (32x32), and animation states with directional variants and timing delays where applicable.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • RedBurningPhoenix

Poem

🐰 Hopping through sprites with Maid-themed care,

A thousand paths pointing to textures so fair,

From grenades to clothes in a systematic dance,

Each asset renamed in a colorful prance!

The meta.json files march in a row,

Making the visuals shimmer and glow! ✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title '[Tweak] Retexture' is vague and uses non-descriptive language that doesn't convey meaningful information about the specific scope or impact of the changes. Provide a more specific title that indicates which systems or components are being retextured, such as '[Tweak] Retexture equipment and grenade sprites' or similar.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Tip

Issue Planner is now in beta. Read the docs and try it out! Share your feedback on Discord.


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

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

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 6

🤖 Fix all issues with AI agents
In `@CppProperties.json`:
- Around line 1-21: Remove the accidentally committed CppProperties.json from
the PR by deleting the file (CppProperties.json) from the branch and committing
that deletion, and then add an entry for CppProperties.json to .gitignore (or a
more general IDE/temp files rule) so it won’t be re-added; ensure the commit
message references removing the unintended IDE file and push the branch to
update the PR.

In `@Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/grenades.yml`:
- Line 21: The PR contains an unintended gameplay change: the Sarin reagent
"Quantity" field in grenades.yml was modified; either revert the Sarin Quantity
change in
Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/grenades.yml back to
the original value if this retexture PR should not alter gameplay, or if the
quantity change is intentional move that change into a separate commit/PR, add
an explicit changelog entry and update the PR description to call out the
balance change for review; locate the "Quantity" key for the Sarin reagent in
grenades.yml to make the correction or separate commit.

In `@Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml`:
- Line 111: The new sprite file _Maid/Structures/Piping/disposal.rsi is missing
four required animation states used by child entities (conpipe-x, conpipe-y,
pipe-signaller, pipe-x); update the RSI to add these four states with
appropriate frames/definitions matching the existing piping state conventions
(or revert the sprite path change used in the sprite: entry) so child entities
referencing those states can render; locate the sprite declaration that set
sprite: _Maid/Structures/Piping/disposal.rsi and ensure the disposal.rsi defines
conpipe-x, conpipe-y, pipe-signaller, and pipe-x state blocks consistent with
other piping RSIs.

In `@Resources/Prototypes/Entities/Structures/Piping/Disposal/units.yml`:
- Line 42: The MailingUnit sprite entry is inconsistent with DisposalUnitBase
and DisposalUnit which now reference the _Maid variant; update the MailingUnit
definition (symbol: MailingUnit) to use sprite:
_Maid/Structures/Piping/disposal.rsi (so it uses the same states like
conmailing, mailing-charging, etc.), or if there is an intentional difference,
add a clear comment/documentation in the MailingUnit definition explaining why
it must use the original Structures/Piping/disposal.rsi and list the
missing/overridden states; locate the sprite line in MailingUnit and either
change it to the _Maid path or add the explanatory comment next to the existing
sprite entry.

In `@Resources/Textures/_Maid/Clothing/Head/Hats/warden.rsi/meta.json`:
- Around line 9-17: The meta.json for the _Maid warden.rsi is missing the inhand
states required for held-item rendering; update the "states" array in meta.json
to add entries for "inhand-left" and "inhand-right" each with "directions": 4
(matching the existing "equipped-HELMET" entry), and add the corresponding
sprite files for those states to the resource bundle to match the base game and
the galoshes example so the engine can render held variants correctly.

In `@Resources/Textures/_Maid/Objects/Weapons/Melee/shields.rsi/meta.json`:
- Around line 147-149: The meta.json entry for the makeshift shield only defines
"makeshift-icon" but lacks the in-hand state entries other shields use; update
the makeshift section to add "makeshift-inhand-right" and
"makeshift-inhand-left" state names (matching the pattern used by
buckler/changeling/metal/etc.) and ensure corresponding PNG sprite files with
those exact names exist in the same folder (or update filenames to match if they
already exist), so rendering will find both inhand-right and inhand-left assets
for the makeshift shield.
🧹 Nitpick comments (7)
Resources/Prototypes/Recipes/Construction/Graphs/machines/machine.yml (1)

136-136: Nit: inconsistent DeleteEntity style.

This line uses !type:DeleteEntity {} while the other occurrences in this file (lines 26 and 57) use !type:DeleteEntity without the explicit empty mapping. Consider dropping {} for consistency.

Suggested fix
-            - !type:DeleteEntity {}
+            - !type:DeleteEntity
Resources/Prototypes/Catalog/Cargo/cargo_service.yml (1)

61-61: Minor comment style inconsistency: #Maid vs # Maid.

Line 61 uses #Maid (no space) while line 151 uses # Maid (with space). Consider picking one style for consistency across the file.

Proposed fix
-    sprite: _Maid/Objects/Weapons/Grenades/janitor.rsi `#Maid`
+    sprite: _Maid/Objects/Weapons/Grenades/janitor.rsi # Maid
Resources/Textures/_Maid/Objects/Weapons/Melee/shields.rsi/meta.json (1)

172-182: Inconsistent indentation for the changeling states.

Lines 172–182 use 6-space indentation for object braces and 10-space for properties, while the rest of the file uses 4-space and 6-space respectively. This appears to be a copy-paste artifact.

🔧 Fix indentation to match the rest of the file
-      {
-          "name": "changeling-icon"
-      },
-      {
-          "name": "changeling-inhand-left",
-          "directions": 4
-      },
-      {
-          "name": "changeling-inhand-right",
-          "directions": 4
-      }
+    {
+      "name": "changeling-icon"
+    },
+    {
+      "name": "changeling-inhand-left",
+      "directions": 4
+    },
+    {
+      "name": "changeling-inhand-right",
+      "directions": 4
+    }
Resources/Textures/_Maid/Objects/Weapons/Grenades/grenade.rsi/meta.json (1)

1-22: Inconsistent JSON formatting compared to sibling meta.json files.

This file uses 4-space indentation while the other grenade meta.json files in this PR (e.g., nukenade.rsi, smoke.rsi) use 2-space indentation. Additionally, the key order in the equipped-BELT state puts directions before name (Lines 17–18), unlike the name-first convention used elsewhere. Consider normalizing for consistency.

Resources/Textures/_Maid/Clothing/Hands/Gloves/Color/yellow.rsi/meta.json (1)

1-28: Inconsistent JSON formatting compared to other meta.json files in this PR.

The indentation is inconsistent: the first state object (lines 9-11) is indented with 8 spaces, while subsequent state objects (lines 12, 16, 20, 23) use 4 spaces. Line 22 also has a closing brace jammed onto the same line as the value ("directions": 4},). Compare with the cleanly formatted ertengineer.rsi/meta.json in this same PR.

♻️ Suggested formatting fix
-{"version": 1,
-"license": "CC-BY-SA-3.0",
-"copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e",
-"size": {
-    "x": 32,
-    "y": 32
-},
-"states": [
-    {
-        "name": "icon"
-    },
-{
-    "name": "equipped-HAND",
-    "directions": 4
-},
-{
-    "name": "inhand-left",
-    "directions": 4
-},
-{
-    "name": "inhand-right",
-    "directions": 4},
-{
-    "name": "equipped-HAND-vox",
-    "directions": 4
-}
-]
-}
+{
+  "version": 1,
+  "license": "CC-BY-SA-3.0",
+  "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e",
+  "size": {
+    "x": 32,
+    "y": 32
+  },
+  "states": [
+    {
+      "name": "icon"
+    },
+    {
+      "name": "equipped-HAND",
+      "directions": 4
+    },
+    {
+      "name": "inhand-left",
+      "directions": 4
+    },
+    {
+      "name": "inhand-right",
+      "directions": 4
+    },
+    {
+      "name": "equipped-HAND-vox",
+      "directions": 4
+    }
+  ]
+}
Resources/Prototypes/Entities/Structures/Machines/telecomms.yml (1)

120-159: Large block of commented-out visualizer config should be cleaned up.

Same concern as above — the old GenericVisualizer entries for per-variant shader toggling (lines 124–159) are commented out. If the new sprite doesn't support these states, remove the dead config. If it does, adapt it to work with the new sprite.

Resources/Prototypes/Catalog/uplink_catalog.yml (1)

961-961: Updating a commented-out icon path is unnecessary.

This line is inside a fully commented-out listing block. Updating dead config adds noise to the diff without functional benefit.

reagents:
- ReagentId: Sarin
Quantity: 50 No newline at end of file
Quantity: 50
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

Unrelated gameplay change in a retexture PR — Quantity for Sarin reagent was modified.

This line is marked as changed, but the PR is described as a retexture. Changing the Sarin reagent quantity is a balance/gameplay change that should be called out separately in the changelog and reviewed independently. Confirm this change is intentional and not accidental.

🤖 Prompt for AI Agents
In `@Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/grenades.yml` at
line 21, The PR contains an unintended gameplay change: the Sarin reagent
"Quantity" field in grenades.yml was modified; either revert the Sarin Quantity
change in
Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/grenades.yml back to
the original value if this retexture PR should not alter gameplay, or if the
quantity change is intentional move that change into a separate commit/PR, add
an explicit changelog entry and update the PR description to call out the
balance change for review; locate the "Quantity" key for the Sarin reagent in
grenades.yml to make the correction or separate commit.

- type: Sprite
drawdepth: ThickPipe
sprite: Structures/Piping/disposal.rsi
sprite: _Maid/Structures/Piping/disposal.rsi #Maid
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
echo "=== Check new RSI exists ==="
fd --type d "disposal.rsi" --full-path "Resources/Textures/_Maid/Structures/Piping"

echo ""
echo "=== States referenced by child entities in this file ==="
rg -oP "state:\s*\K[\w-]+" "Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml" | sort -u

echo ""
echo "=== States defined in new meta.json ==="
fd -t f "meta.json" --full-path "Resources/Textures/_Maid/Structures/Piping/disposal.rsi" --exec cat {} 2>/dev/null | python3 -c "
import json, sys
try:
    data = json.load(sys.stdin)
    for s in data.get('states', []):
        print(s['name'])
except:
    print('No meta.json found or parse error')
" | sort -u

Repository: TheMaidDev/Maid-14

Length of output: 1186


Critical: New RSI is missing required states — sprite change will break child entities.

The new _Maid/Structures/Piping/disposal.rsi exists but is incomplete. Child entities reference 28 states total, but the RSI is missing 4 required states:

  • conpipe-x
  • conpipe-y
  • pipe-signaller
  • pipe-x

These entities will fail to render. Either add the missing states to the RSI or revert the sprite path change.

🤖 Prompt for AI Agents
In `@Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml` at line
111, The new sprite file _Maid/Structures/Piping/disposal.rsi is missing four
required animation states used by child entities (conpipe-x, conpipe-y,
pipe-signaller, pipe-x); update the RSI to add these four states with
appropriate frames/definitions matching the existing piping state conventions
(or revert the sprite path change used in the sprite: entry) so child entities
referencing those states can render; locate the sprite declaration that set
sprite: _Maid/Structures/Piping/disposal.rsi and ensure the disposal.rsi defines
conpipe-x, conpipe-y, pipe-signaller, and pipe-x state blocks consistent with
other piping RSIs.

vaultable: false
- type: Sprite
sprite: Structures/Piping/disposal.rsi
sprite: _Maid/Structures/Piping/disposal.rsi #Maid
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
# First, locate the units.yml file and verify its content
find . -type f -name "units.yml" -path "*Disposal*" | head -5

Repository: TheMaidDev/Maid-14

Length of output: 130


🏁 Script executed:

#!/bin/bash
# Also search for the RSI files to understand the directory structure
fd "disposal.rsi" --type d

Repository: TheMaidDev/Maid-14

Length of output: 233


🏁 Script executed:

#!/bin/bash
# Look for meta.json files in RSI directories to understand states
fd "meta.json" --path "*disposal.rsi*"

Repository: TheMaidDev/Maid-14

Length of output: 277


🏁 Script executed:

#!/bin/bash
# Read the units.yml file to see the sprite references and entities
cat -n ./Resources/Prototypes/Entities/Structures/Piping/Disposal/units.yml | head -200

Repository: TheMaidDev/Maid-14

Length of output: 8353


🏁 Script executed:

#!/bin/bash
# Check meta.json in both disposal.rsi directories
echo "=== Original disposal.rsi meta.json ===" && \
cat "Resources/Textures/Structures/Piping/disposal.rsi/meta.json" && \
echo "" && \
echo "=== _Maid disposal.rsi meta.json ===" && \
cat "Resources/Textures/_Maid/Structures/Piping/disposal.rsi/meta.json"

Repository: TheMaidDev/Maid-14

Length of output: 28940


Update MailingUnit to use the _Maid variant or clarify why it differs.

The _Maid/Structures/Piping/disposal.rsi actually contains all required states including mailing-specific ones (conmailing, mailing, mailing-charging, mailing-flush, mailover-handle). Since DisposalUnitBase and DisposalUnit now reference the _Maid variant, MailingUnit should either be updated to match for consistency, or the reason for keeping it on the original Structures/Piping/disposal.rsi should be documented.

🤖 Prompt for AI Agents
In `@Resources/Prototypes/Entities/Structures/Piping/Disposal/units.yml` at line
42, The MailingUnit sprite entry is inconsistent with DisposalUnitBase and
DisposalUnit which now reference the _Maid variant; update the MailingUnit
definition (symbol: MailingUnit) to use sprite:
_Maid/Structures/Piping/disposal.rsi (so it uses the same states like
conmailing, mailing-charging, etc.), or if there is an intentional difference,
add a clear comment/documentation in the MailingUnit definition explaining why
it must use the original Structures/Piping/disposal.rsi and list the
missing/overridden states; locate the sprite line in MailingUnit and either
change it to the _Maid path or add the explanatory comment next to the existing
sprite entry.

Comment on lines +9 to +17
"states": [
{
"name": "icon"
},
{
"name": "equipped-HELMET",
"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

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash

# Check if the original warden.rsi has inhand states
echo "=== Original warden.rsi meta.json (excluding _Maid) ==="
fd -t f 'warden.rsi/meta.json' --exclude '_Maid' --exec cat {} 2>/dev/null || echo "Not found or error"

echo ""
echo "=== Maid warden.rsi meta.json ==="
fd -t f 'meta.json' '_Maid/Clothing/Head/Hats/warden.rsi/' --exec cat {} 2>/dev/null || echo "Not found"

echo ""
echo "=== All files in _Maid warden.rsi directory ==="
fd -t f . '_Maid/Clothing/Head/Hats/warden.rsi/' 2>/dev/null || echo "Not found"

echo ""
echo "=== Check galoshes.rsi meta.json for comparison ==="
fd -t f 'meta.json' '_Maid/Clothing/Feet/Shoes/galoshes.rsi/' --exec cat {} 2>/dev/null || echo "Not found"

echo ""
echo "=== List all warden.rsi locations in repo ==="
find . -name 'warden.rsi' -type d 2>/dev/null || echo "None found"

Repository: TheMaidDev/Maid-14

Length of output: 972


🏁 Script executed:

#!/bin/bash

echo "=== Contents of _Maid warden.rsi directory ==="
ls -la ./Resources/Textures/_Maid/Clothing/Head/Hats/warden.rsi/ 2>&1

echo ""
echo "=== Contents of base game warden.rsi (Head/Hats) ==="
ls -la ./Resources/Textures/Clothing/Head/Hats/warden.rsi/ 2>&1

echo ""
echo "=== Meta.json from base game warden.rsi ==="
cat ./Resources/Textures/Clothing/Head/Hats/warden.rsi/meta.json 2>&1

echo ""
echo "=== Search for galoshes.rsi anywhere ==="
find . -name 'galoshes.rsi' -type d 2>/dev/null

echo ""
echo "=== Search for any .rsi directories in _Maid/Clothing ==="
find ./Resources/Textures/_Maid/Clothing -name '*.rsi' -type d 2>/dev/null | head -20

Repository: TheMaidDev/Maid-14

Length of output: 3035


🏁 Script executed:

#!/bin/bash

echo "=== _Maid warden.rsi meta.json ==="
cat ./Resources/Textures/_Maid/Clothing/Head/Hats/warden.rsi/meta.json

echo ""
echo "=== Base game galoshes.rsi meta.json ==="
cat ./Resources/Textures/Clothing/Shoes/Specific/galoshes.rsi/meta.json

echo ""
echo "=== _Maid galoshes.rsi contents ==="
ls -la ./Resources/Textures/_Maid/Clothing/Shoes/Specific/galoshes.rsi/

echo ""
echo "=== _Maid galoshes.rsi meta.json ==="
cat ./Resources/Textures/_Maid/Clothing/Shoes/Specific/galoshes.rsi/meta.json 2>&1

Repository: TheMaidDev/Maid-14

Length of output: 1969


Add missing inhand-left and inhand-right states.

The _Maid warden.rsi is missing both the sprite files and meta.json state declarations for inhand-left and inhand-right. The base game version includes these with 4 directional variants, which are needed for proper rendering when the item is held. The _Maid galoshes.rsi added in this same PR correctly includes these inhand states, providing a working example in the same module.

Base game comparison (has inhand states)
{
  "states": [
    { "name": "icon" },
    { "name": "equipped-HELMET", "directions": 4 },
    { "name": "inhand-left", "directions": 4 },
    { "name": "inhand-right", "directions": 4 }
  ]
}
🤖 Prompt for AI Agents
In `@Resources/Textures/_Maid/Clothing/Head/Hats/warden.rsi/meta.json` around
lines 9 - 17, The meta.json for the _Maid warden.rsi is missing the inhand
states required for held-item rendering; update the "states" array in meta.json
to add entries for "inhand-left" and "inhand-right" each with "directions": 4
(matching the existing "equipped-HELMET" entry), and add the corresponding
sprite files for those states to the resource bundle to match the base game and
the galoshes example so the engine can render held variants correctly.

Comment on lines +147 to +149
{
"name": "makeshift-icon"
},
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
# Check if makeshift inhand PNGs exist in this RSI directory
fd 'makeshift' Resources/Textures/_Maid/Objects/Weapons/Melee/shields.rsi/ --type f

Repository: TheMaidDev/Maid-14

Length of output: 139


🏁 Script executed:

#!/bin/bash
# List all files in the shields RSI directory to see what exists
ls -la Resources/Textures/_Maid/Objects/Weapons/Melee/shields.rsi/

Repository: TheMaidDev/Maid-14

Length of output: 2459


🏁 Script executed:

#!/bin/bash
# Extract all state definitions from meta.json to see the pattern
cat Resources/Textures/_Maid/Objects/Weapons/Melee/shields.rsi/meta.json | jq '.states[] | {name: .name}' | head -50

Repository: TheMaidDev/Maid-14

Length of output: 650


🏁 Script executed:

#!/bin/bash
# Extract all makeshift state definitions from meta.json
cat Resources/Textures/_Maid/Objects/Weapons/Melee/shields.rsi/meta.json | jq '.states[] | select(.name | startswith("makeshift"))'

Repository: TheMaidDev/Maid-14

Length of output: 92


makeshift is missing inhand state definitions and sprites — every other shield has them.

The meta.json for makeshift only defines makeshift-icon, while all other shields (buckler, changeling, metal, mirror, ratvarian, riot, riot_bullet, riot_laser, teleriot) define -icon, -inhand-right, and -inhand-left states with corresponding PNG files. If makeshift is meant to be equippable in-hand, the missing states and sprites will cause rendering failures when held.

🤖 Prompt for AI Agents
In `@Resources/Textures/_Maid/Objects/Weapons/Melee/shields.rsi/meta.json` around
lines 147 - 149, The meta.json entry for the makeshift shield only defines
"makeshift-icon" but lacks the in-hand state entries other shields use; update
the makeshift section to add "makeshift-inhand-right" and
"makeshift-inhand-left" state names (matching the pattern used by
buckler/changeling/metal/etc.) and ensure corresponding PNG sprite files with
those exact names exist in the same folder (or update filenames to match if they
already exist), so rendering will find both inhand-right and inhand-left assets
for the makeshift shield.

an unnecessary file has been deleted
@4esterNight 4esterNight changed the title 🆑 4esterNight Retexture Feb 10, 2026
@4esterNight 4esterNight changed the title Retexture [Tweak] Retexture Feb 10, 2026
Resources/Textures/_Maid/Objects/Devices/encryption_keys.rsi: PNG not defined in metadata: borg_label.png
Resources/Textures/_Maid/Structures/Piping/disposal.rsi: PNG not defined in metadata: pipe-xf.png
Resources/Textures/_Maid/Structures/Piping/disposal.rsi: PNG not defined in metadata: pipe-signaller.png
Resources/Textures/_Maid/Structures/Piping/disposal.rsi: PNG not defined in metadata: pipe-x.png
Resources/Textures/_Maid/Structures/Storage/wall_locker.rsi: PNG not defined in metadata: n2_door.png
Resources/Textures/_Maid/Structures/Storage/wall_locker.rsi: PNG not defined in metadata: n2.png
conpipe signaller
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant