Skip to content

Salvage: Employees of the ITG - #5619

Open
Swonkus wants to merge 39 commits into
ss14Starlight:starlight-devfrom
Swonkus:Salvage-Relocation-Without-damn-merges
Open

Salvage: Employees of the ITG#5619
Swonkus wants to merge 39 commits into
ss14Starlight:starlight-devfrom
Swonkus:Salvage-Relocation-Without-damn-merges

Conversation

@Swonkus

@Swonkus Swonkus commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Short description

This PR moves salvage from on station to fully off station, and into being employees of the Interstellar Trade Guild aboard the ATs. This PR specifically

  1. Resprites salvage icons to gray to differentiate from cargo and make it easier to determine them as non crew
  2. Reworks ATS to include an empty armoury for salvage goods, as well as more salvage job spawnpoints and large lockers, as well as a salvage lead and medic spawnpoint
  3. Removes salvage access and comms from command, restricting communication either through the QM's hand radio or common channels
  4. Reworks in game guidebook SOP for salvage
  5. Removes many station accesses, including cargo, from salvage operators
  6. Removes salvage equipment from all stations
  7. Adds a salvage medic
  8. Adds an expedition tracking implant
  9. Removes many salvage exclusive items from steal objectives

Duplicate versions of salvage assets have been made to mass remove currently mapped salvage bays. ITG marked version appear on the ATS

Why we need to add this

Salvage currently struggle to fit into the round flow naturally as members of cargo. Current gameplay results in a rule/sop evasion, excessive intervention of salvagers in security affairs, and a limitation of salvage content due to their capabilities on station

Moving them to the ATS and making them a non-crew element seeks to de-restrict salvager gameplay and make them a more interesting asset for the crew to interact with.

This PR is in collaboration with #5522

Relevent PR Workshop

Design Document

Media (Video/Screenshots)

image image image image image image

Checks

  • I do not require assistance to complete the PR.
  • Before posting/requesting review of a PR, I have verified that the changes work.
  • I have added screenshots/videos of the changes, or this PR does not change in-game mechanics.
  • I affirm that my changes are licensed under the MIT License and grant permission for use in this repository under its conditions.

Changelog

🆑 Swonki, Born Stellar, Mikeysaurus, itsmaitake

  • add: Added Salvage medic role.
  • add: Added ITG tracking Implant for salvagers.
  • add: Added new Salvage SOP.
  • add: Added New Salvage Armoury. The Salvage team can store all their extra loot aboard the ATS.
  • tweak: Salvage Icons are now greyscaled to differentiate from crew.
  • tweak: Salvage members are no longer the targets of antag objectives.
  • tweak: Salvage are now members of the Interstellar Trade Guild, and are no longer considered crew.
  • remove: Quartermaster locker no longer has expedition comms or salvage related computer circuits.
  • remove: Salvage Access From Command.
  • remove: Cargo Access from Salvage.
  • remove: Salvage bay's from all stations.
  • remove: Salvage steal objectives.

@github-actions github-actions Bot added S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. size/XL labels Aug 11, 2026
@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 99c68d6c-4ebd-40b3-bcfb-69d1705774c1

📥 Commits

Reviewing files that changed from the base of the PR and between 8401b9f and 2f9b088.

⛔ Files ignored due to path filters (23)
  • Resources/Textures/_Starlight/Clothing/Neck/Mantles/medicmantle.rsi/equipped-NECK.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Neck/Mantles/medicmantle.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpskirt/salvagemedic.rsi/equipped-INNERCLOTHING-monkey.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpskirt/salvagemedic.rsi/equipped-INNERCLOTHING-vox.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpskirt/salvagemedic.rsi/equipped-INNERCLOTHING.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpskirt/salvagemedic.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpskirt/salvagemedic.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpskirt/salvagemedic.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/salvagemedic.rsi/equipped-INNERCLOTHING-monkey.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/salvagemedic.rsi/equipped-INNERCLOTHING-vox.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/salvagemedic.rsi/equipped-INNERCLOTHING.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/salvagemedic.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/salvagemedic.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/salvagemedic.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/salvagemedic.rsi/rolled-equipped-INNERCLOTHING.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Interface/Misc/job_icons.rsi/SalvageLead.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Interface/Misc/job_icons.rsi/SalvageMedic.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Interface/Misc/job_icons.rsi/SalvageSpecialist.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Markers/jobs.rsi/salvagemedic.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Objects/Devices/pda.rsi/pda-salvagemedic.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Structures/Storage/closet.rsi/salvagemedic.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Structures/Storage/closet.rsi/salvagemedic_door.png is excluded by !**/*.png
  • Resources/Textures/_Starlight/Structures/Storage/closet.rsi/salvagemedic_open.png is excluded by !**/*.png
📒 Files selected for processing (99)
  • Resources/Locale/en-US/_Starlight/guidebook/guides.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-supervisors.ftl
  • Resources/Locale/en-US/_Starlight/job/job.ftl
  • Resources/Locale/en-US/job/job-description.ftl
  • Resources/Maps/_Starlight/Shuttles/Salvage/expeditioneer.yml
  • Resources/Maps/_Starlight/Shuttles/Shipyard/pioneer.yml
  • Resources/Maps/_Starlight/trading_outpost.yml
  • Resources/Prototypes/Access/cargo.yml
  • Resources/Prototypes/Access/misc.yml
  • Resources/Prototypes/Catalog/Fills/Boxes/heads.yml
  • Resources/Prototypes/Catalog/Fills/Lockers/cargo.yml
  • Resources/Prototypes/Catalog/Fills/Lockers/heads.yml
  • Resources/Prototypes/Entities/Clothing/Ears/headsets.yml
  • Resources/Prototypes/Entities/Clothing/Ears/headsets_alt.yml
  • Resources/Prototypes/Entities/Objects/Devices/Circuitboards/computer.yml
  • Resources/Prototypes/Entities/Objects/Misc/implanters.yml
  • Resources/Prototypes/Objectives/objectiveGroups.yml
  • Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml
  • Resources/Prototypes/Roles/Jobs/Cargo/salvage_specialist.yml
  • Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml
  • Resources/Prototypes/Roles/Jobs/departments.yml
  • Resources/Prototypes/_Starlight/Access/itg.yml
  • Resources/Prototypes/_Starlight/Access/misc.yml
  • Resources/Prototypes/_Starlight/Catalog/Fills/Lockers/cargo.yml
  • Resources/Prototypes/_Starlight/Entities/Clothing/Ears/headsets.yml
  • Resources/Prototypes/_Starlight/Entities/Clothing/Neck/cloaks.yml
  • Resources/Prototypes/_Starlight/Entities/Clothing/OuterClothing/hardsuits.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/Deliveries/deliveries_items.yml
  • Resources/Prototypes/_Starlight/Entities/Objects/Devices/Circuitboards/computers.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/implanters.yml
  • Resources/Prototypes/_Starlight/Entities/Objects/Misc/subdermal_implants.yml
  • Resources/Prototypes/_Starlight/Entities/Structures/Machines/Computers/computers.yml
  • Resources/Prototypes/_Starlight/Entities/Structures/Machines/vending_machines.yml
  • Resources/Prototypes/_Starlight/Entities/Structures/Storage/Closets/Lockers/lockers.yml
  • Resources/Prototypes/_Starlight/Guidebook/sop.yml
  • Resources/Prototypes/_Starlight/Loadouts/role_loadouts.yml
  • Resources/Prototypes/_Starlight/Maps/bagel.yml
  • Resources/Prototypes/_Starlight/Maps/box.yml
  • Resources/Prototypes/_Starlight/Maps/cluster.yml
  • Resources/Prototypes/_Starlight/Maps/cog.yml
  • Resources/Prototypes/_Starlight/Maps/cork.yml
  • Resources/Prototypes/_Starlight/Maps/elkridge.yml
  • Resources/Prototypes/_Starlight/Maps/fland.yml
  • Resources/Prototypes/_Starlight/Maps/hotel.yml
  • Resources/Prototypes/_Starlight/Maps/kiloton.yml
  • Resources/Prototypes/_Starlight/Maps/lagan.yml
  • Resources/Prototypes/_Starlight/Maps/leth.yml
  • Resources/Prototypes/_Starlight/Maps/manor.yml
  • Resources/Prototypes/_Starlight/Maps/ming.yml
  • Resources/Prototypes/_Starlight/Maps/novolobster.yml
  • Resources/Prototypes/_Starlight/Maps/oasis.yml
  • Resources/Prototypes/_Starlight/Maps/orwell.yml
  • Resources/Prototypes/_Starlight/Maps/packed.yml
  • Resources/Prototypes/_Starlight/Maps/plasma.yml
  • Resources/Prototypes/_Starlight/Maps/prism.yml
  • Resources/Prototypes/_Starlight/Maps/reach.yml
  • Resources/Prototypes/_Starlight/Maps/saltern.yml
  • Resources/Prototypes/_Starlight/Maps/sepultum.yml
  • Resources/Prototypes/_Starlight/Maps/serpentcrest.yml
  • Resources/Prototypes/_Starlight/Maps/silica.yml
  • Resources/Prototypes/_Starlight/Maps/spacemall.yml
  • Resources/Prototypes/_Starlight/Maps/starboard.yml
  • Resources/Prototypes/_Starlight/Maps/stationbuilding.yml
  • Resources/Prototypes/_Starlight/Objectives/stealTargetGroups.yml
  • Resources/Prototypes/_Starlight/Objectives/thief.yml
  • Resources/Prototypes/_Starlight/Objectives/traitor.yml
  • Resources/Prototypes/_Starlight/Roles/Jobs/Cargo/mail_technician.yml
  • Resources/Prototypes/_Starlight/Roles/Jobs/Cargo/mining_specialist.yml
  • Resources/Prototypes/_Starlight/Roles/Jobs/Cargo/salvage_lead.yml
  • Resources/Prototypes/_Starlight/Roles/Jobs/Cargo/salvage_medic.yml
  • Resources/Prototypes/_Starlight/Roles/Jobs/Representatives/blueshield.yml
  • Resources/Prototypes/_Starlight/Roles/Jobs/Representatives/nanotrasenrepresentative.yml
  • Resources/Prototypes/_Starlight/Roles/Jobs/departments.yml
  • Resources/Prototypes/_Starlight/Roles/play_time_trackers.yml
  • Resources/Prototypes/_Starlight/Roles/salaries.yml
  • Resources/Prototypes/_Starlight/StatusIcon/job.yml
  • Resources/Prototypes/_Starlight/datasets.yml
  • Resources/ServerInfo/Guidebook/StarlightSOP/CargoSOP/Quartermaster.xml
  • Resources/ServerInfo/Guidebook/StarlightSOP/CargoSOP/SalvageSpecialist.xml
  • Resources/ServerInfo/Guidebook/StarlightSOP/CargoSOP/cargo-sop-intro.xml
  • Resources/ServerInfo/Guidebook/StarlightSOP/SalvageSOP/salvage-sop-intro.xml
  • Resources/ServerInfo/Guidebook/StarlightSOP/SalvageSOP/salvage-sop-salvagers.xml
  • Resources/Textures/_Starlight/Clothing/Neck/Mantles/medicmantle.rsi/meta.json
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpskirt/salvagemedic.rsi/meta.json
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/salvagemedic.rsi/meta.json
  • Resources/Textures/_Starlight/Interface/Misc/job_icons.rsi/meta.json
  • Resources/Textures/_Starlight/Markers/jobs.rsi/meta.json
  • Resources/Textures/_Starlight/Objects/Devices/pda.rsi/meta.json
  • Resources/Textures/_Starlight/Structures/Storage/closet.rsi/meta.json
  • Resources/migration.yml
💤 Files with no reviewable changes (20)
  • Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml
  • Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml
  • Resources/Prototypes/_Starlight/Entities/Clothing/OuterClothing/hardsuits.yml
  • Resources/Prototypes/_Starlight/Roles/Jobs/Representatives/blueshield.yml
  • Resources/Prototypes/Access/misc.yml
  • Resources/Prototypes/_Starlight/Roles/Jobs/Cargo/mining_specialist.yml
  • Resources/Prototypes/Objectives/objectiveGroups.yml
  • Resources/Prototypes/_Starlight/Roles/Jobs/Cargo/mail_technician.yml
  • Resources/Prototypes/Entities/Clothing/Ears/headsets.yml
  • Resources/Prototypes/Catalog/Fills/Boxes/heads.yml
  • Resources/Prototypes/_Starlight/Entities/Objects/Devices/encryption_keys.yml
  • Resources/Prototypes/_Starlight/Roles/Jobs/Representatives/nanotrasenrepresentative.yml
  • Resources/Prototypes/_Starlight/Objectives/traitor.yml
  • Resources/Locale/en-US/job/job-description.ftl
  • Resources/Prototypes/Roles/Jobs/departments.yml
  • Resources/Prototypes/_Starlight/Objectives/thief.yml
  • Resources/Prototypes/_Starlight/Entities/Objects/Deliveries/deliveries_items.yml
  • Resources/ServerInfo/Guidebook/StarlightSOP/CargoSOP/SalvageSpecialist.xml
  • Resources/Prototypes/Access/cargo.yml
  • Resources/Prototypes/Catalog/Fills/Lockers/heads.yml
🚧 Files skipped from review as they are similar to previous changes (76)
  • Resources/Prototypes/_Starlight/Maps/saltern.yml
  • Resources/Prototypes/_Starlight/Maps/stationbuilding.yml
  • Resources/Prototypes/_Starlight/Roles/play_time_trackers.yml
  • Resources/Prototypes/_Starlight/Maps/plasma.yml
  • Resources/Prototypes/_Starlight/Maps/prism.yml
  • Resources/Prototypes/_Starlight/Maps/fland.yml
  • Resources/Textures/_Starlight/Interface/Misc/job_icons.rsi/meta.json
  • Resources/Textures/_Starlight/Objects/Devices/pda.rsi/meta.json
  • Resources/Locale/en-US/_Starlight/job/department.ftl
  • Resources/Prototypes/_Starlight/Maps/hotel.yml
  • Resources/Prototypes/_Starlight/Maps/silica.yml
  • Resources/Prototypes/_Starlight/Entities/Objects/Misc/identification_cards.yml
  • Resources/Prototypes/_Starlight/Maps/oasis.yml
  • Resources/Prototypes/_Starlight/Maps/bagel.yml
  • Resources/Prototypes/_Starlight/Maps/reach.yml
  • Resources/Prototypes/_Starlight/datasets.yml
  • Resources/Prototypes/_Starlight/Entities/Clothing/Uniforms/jumpskirts.yml
  • Resources/Prototypes/_Starlight/Maps/spacemall.yml
  • Resources/Prototypes/_Starlight/Entities/Objects/Misc/implanters.yml
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpsuit/salvagemedic.rsi/meta.json
  • Resources/Prototypes/_Starlight/Maps/sepultum.yml
  • Resources/Prototypes/_Starlight/Maps/cluster.yml
  • Resources/Prototypes/_Starlight/Access/itg.yml
  • Resources/Locale/en-US/_Starlight/job/job-supervisors.ftl
  • Resources/Locale/en-US/_Starlight/job/department-desc.ftl
  • Resources/Prototypes/_Starlight/Maps/lagan.yml
  • Resources/Textures/_Starlight/Markers/jobs.rsi/meta.json
  • Resources/Prototypes/_Starlight/Roles/Jobs/departments.yml
  • Resources/Prototypes/_Starlight/Maps/box.yml
  • Resources/ServerInfo/Guidebook/StarlightSOP/CargoSOP/cargo-sop-intro.xml
  • Resources/Prototypes/_Starlight/Maps/serpentcrest.yml
  • Resources/Locale/en-US/_Starlight/job/job-desc.ftl
  • Resources/Prototypes/_Starlight/Entities/Clothing/Ears/headsets.yml
  • Resources/Prototypes/Entities/Objects/Misc/implanters.yml
  • Resources/Textures/_Starlight/Clothing/Uniforms/Jumpskirt/salvagemedic.rsi/meta.json
  • Resources/Prototypes/_Starlight/Maps/cog.yml
  • Resources/Prototypes/_Starlight/Maps/kiloton.yml
  • Resources/migration.yml
  • Resources/Prototypes/Entities/Clothing/Ears/headsets_alt.yml
  • Resources/Prototypes/_Starlight/Maps/elkridge.yml
  • Resources/Textures/_Starlight/Structures/Storage/closet.rsi/meta.json
  • Resources/Prototypes/_Starlight/Maps/ming.yml
  • Resources/Prototypes/_Starlight/Entities/Structures/Machines/vending_machines.yml
  • Resources/Prototypes/_Starlight/Maps/packed.yml
  • Resources/ServerInfo/Guidebook/StarlightSOP/SalvageSOP/salvage-sop-intro.xml
  • Resources/Prototypes/_Starlight/Entities/Clothing/Uniforms/jumpsuits.yml
  • Resources/Prototypes/_Starlight/StatusIcon/job.yml
  • Resources/ServerInfo/Guidebook/StarlightSOP/CargoSOP/Quartermaster.xml
  • Resources/Prototypes/_Starlight/Entities/Objects/Misc/subdermal_implants.yml
  • Resources/Prototypes/_Starlight/Maps/orwell.yml
  • Resources/Maps/_Starlight/Shuttles/Shipyard/pioneer.yml
  • Resources/Prototypes/_Starlight/Entities/Structures/Storage/Closets/Lockers/lockers.yml
  • Resources/Prototypes/_Starlight/Maps/manor.yml
  • Resources/Prototypes/_Starlight/Maps/starboard.yml
  • Resources/Prototypes/Entities/Objects/Devices/Circuitboards/computer.yml
  • Resources/ServerInfo/Guidebook/StarlightSOP/SalvageSOP/salvage-sop-salvagers.xml
  • Resources/Prototypes/_Starlight/Maps/cork.yml
  • Resources/Prototypes/_Starlight/Roles/salaries.yml
  • Resources/Textures/_Starlight/Clothing/Neck/Mantles/medicmantle.rsi/meta.json
  • Resources/Prototypes/_Starlight/Maps/novolobster.yml
  • Resources/Prototypes/_Starlight/Access/misc.yml
  • Resources/Prototypes/_Starlight/Roles/Jobs/Cargo/salvage_lead.yml
  • Resources/Locale/en-US/_Starlight/guidebook/guides.ftl
  • Resources/Prototypes/_Starlight/Loadouts/role_loadouts.yml
  • Resources/Locale/en-US/_Starlight/job/job.ftl
  • Resources/Prototypes/_Starlight/Maps/leth.yml
  • Resources/Prototypes/_Starlight/Roles/Jobs/Cargo/salvage_medic.yml
  • Resources/Prototypes/_Starlight/Entities/Clothing/Neck/cloaks.yml
  • Resources/Prototypes/Roles/Jobs/Cargo/salvage_specialist.yml
  • Resources/Prototypes/_Starlight/Objectives/stealTargetGroups.yml
  • Resources/Prototypes/_Starlight/Catalog/Fills/Lockers/cargo.yml
  • Resources/Prototypes/_Starlight/Guidebook/sop.yml
  • Resources/Maps/_Starlight/Shuttles/Salvage/expeditioneer.yml
  • Resources/Prototypes/Catalog/Fills/Lockers/cargo.yml
  • Resources/Prototypes/_Starlight/Entities/Objects/Devices/pda.yml
  • Resources/Prototypes/_Starlight/Entities/Structures/Machines/Computers/computers.yml

Included review availability: Your plan provides up to 2 included reviews per hour; 1 remains after this review.


📝 Walkthrough

Summary

Moves salvage operations from station Cargo to an Interstellar Trade Guild (ITG) base aboard ATS vessels.

User and gameplay impact

  • Adds the ITG department with Salvage Lead, Salvage Specialist, and Salvage Medic roles.
  • Adds Salvage Medic equipment, PDA, ID card, uniforms, mantle, loadout, salary, job icon, and spawnpoints.
  • Adds ITG salvage lockers, vending, expedition, job-board, and shuttle-console prototypes.
  • Restricts salvage access and removes Cargo access from salvage roles.
  • Removes salvage access from unrelated roles and broad access groups.
  • Adds an ITGTrackingImplant that reports condition and death over the Expedition radio channel.
  • Removes salvage from crew status and antagonist objectives.
  • Replaces station salvage SOP content with ITG salvage procedures and crew responsibilities.
  • Adds one Salvage Medic slot to supported station maps.
  • Migrates obsolete station salvage entities and remaps salvage airlocks.

Notable file changes

  • Adds ITG access, department, job, supervisor, salary, play-time, and localization definitions.
  • Adds ATS salvage computers, spawnpoints, lockers, vending, and map entity updates.
  • Adds Salvage Medic prototypes and texture metadata.
  • Updates Cargo and representative access lists.
  • Removes obsolete salvage circuitboard, equipment, and steal-target definitions.
  • Adds migration data for existing salvage entities and airlocks.
  • Updates Cargo SOP text to identify ITG as the salvage contact.

Risk areas

  • Existing maps or saved entities that reference removed salvage prototypes require the migration block.
  • Spawnpoint removal or relocation can affect map initialization and job availability. The PR notes a Shard 1 failure caused by removed map spawnpoints.
  • Salvage communication depends on the updated headset encryption keys and Expedition radio channel.
  • Access changes can block existing Cargo, representative, Mail Technician, Mining Specialist, and station administration workflows.
  • ATS salvage facilities must contain the new ITG consoles, lockers, vending machines, and spawnpoints.
  • The tracking implant introduces persistent reporting behavior and requires correct deimplantation support.
  • Removing salvage steal objectives and station equipment changes antagonist and station gameplay.

Guideline gaps

  • The PR context does not state why salvage must operate from ATS vessels instead of stations.
  • The PR context does not identify which maps received ATS facilities or explain expected behavior for maps without them.
  • The PR context does not document the breaking impact of removing station salvage equipment, access, objectives, and spawnpoints.
  • The PR context does not state whether shared prototypes were considered before adding ITG-specific replacements.
  • The PR context does not explain the ownership or purpose of the new tracking implant beyond its reporting behavior.
  • The PR context does not document the rationale for adding only Salvage Medic slots to station job rosters while moving the other salvage roles to ATS vessels.

Walkthrough

Adds the Interstellar Trade Guild salvage department and Salvage Medic role. Updates salvage access, equipment, computers, lockers, SOP documentation, migration rules, theft objectives, and station job rosters.

Changes

ITG Salvage Department

Layer / File(s) Summary
Department roles and access
Resources/Prototypes/_Starlight/Roles/..., Resources/Prototypes/Access/..., Resources/Locale/en-US/_Starlight/job/*
Adds the ITG department and Salvage Medic role. Moves salvage access from Cargo to ITG and updates role supervisors, rules, descriptions, trackers, salary, and job metadata.
Salvage equipment and loadouts
Resources/Prototypes/_Starlight/Entities/..., Resources/Prototypes/_Starlight/Catalog/..., Resources/Prototypes/_Starlight/Loadouts/..., Resources/Textures/_Starlight/...
Adds Salvage Medic clothing, PDA, ID card, lockers, loadout, spawn points, tracker implant, and related texture metadata.
Salvage machinery and migration
Resources/Prototypes/_Starlight/Entities/Structures/..., Resources/Prototypes/Entities/Objects/Devices/..., Resources/Maps/_Starlight/Shuttles/..., Resources/migration.yml
Adds ITG salvage computers and vending equipment. Updates circuitboard and map references. Removes obsolete salvage prototypes through migration mappings.
Salvage objective cleanup
Resources/Prototypes/_Starlight/Objectives/..., Resources/Prototypes/Objectives/..., Resources/Prototypes/_Starlight/Entities/Objects/Deliveries/...
Removes obsolete salvage theft objectives, steal-target groups, and related steal-target components.
Salvage SOP and guidebook
Resources/ServerInfo/Guidebook/StarlightSOP/..., Resources/Prototypes/_Starlight/Guidebook/sop.yml, Resources/Locale/en-US/_Starlight/guidebook/guides.ftl
Replaces the Cargo Salvage Specialist guide entry with Salvage and Salvage Crew entries. Adds Salvage SOP and Salvage Crew documentation.
Station Salvage Medic staffing
Resources/Prototypes/_Starlight/Maps/*.yml
Adds one Salvage Medic position to each configured station and outpost roster.

Estimated code review effort: 4 (Complex) | ~45 minutes

Merge Risk: 🟡 Moderate · up to 2f9b0

This PR relocates salvage operations and changes their roles, equipment, access, objectives, and map behavior, but several current issues can leave salvage unable to operate correctly, preserve an objective that was intended to be removed, or alter existing airlock behavior unexpectedly. It is not merge-ready until these concrete configuration and behavior issues are fixed or explicitly accepted.

Suggested reviewers: redmushie, rinary1

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
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.
Title check ✅ Passed The title clearly summarizes the primary change: salvage personnel become employees of the Interstellar Trade Guild.
Description check ✅ Passed The description directly explains the salvage relocation, ITG integration, access changes, new Salvage Medic role, tracking implant, SOP updates, and related gameplay changes.
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (78 skipped: 78 unsupported.)

✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch

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.

@Swonkus

Swonkus commented Aug 11, 2026

Copy link
Copy Markdown
Contributor Author

Reopened as a new draft to keep it clean after a merge went bad

Comment thread Resources/Prototypes/Catalog/Fills/Lockers/heads.yml Outdated
Comment thread Resources/Prototypes/Catalog/Fills/Lockers/heads.yml Outdated
Comment thread Resources/Prototypes/Entities/Clothing/Ears/headsets_alt.yml
@CawsForConcern CawsForConcern added T: Rework and removed S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. labels Aug 12, 2026

@CawsForConcern CawsForConcern 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.

mapping approved

@Swonkus

Swonkus commented Aug 17, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai resume reviews

@coderabbitai

coderabbitai Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

@Swonkus Reviews resumed.

✅ Action performed

Reviews resumed.

@github-actions github-actions Bot added the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Aug 18, 2026
@github-actions

Copy link
Copy Markdown
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@Swonkus

Swonkus commented Aug 18, 2026

Copy link
Copy Markdown
Contributor Author

Shard 1 is triggering as a result of removing the spawnpoints from the map, this failure is just part of how the update is

@github-actions github-actions Bot removed the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Aug 20, 2026
@coderabbitai

coderabbitai Bot commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@github-actions github-actions Bot added the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Aug 25, 2026
@github-actions

Copy link
Copy Markdown
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions github-actions Bot removed the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Aug 27, 2026
@coderabbitai

coderabbitai Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@Conflee Conflee 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.

Sprites approved.

@Swonkus

Swonkus commented Aug 27, 2026

Copy link
Copy Markdown
Contributor Author

Changes are all still functional after final testing

@github-actions github-actions Bot added the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Aug 28, 2026
@github-actions

Copy link
Copy Markdown
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions github-actions Bot removed the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Aug 28, 2026
@Swonkus

Swonkus commented Aug 28, 2026

Copy link
Copy Markdown
Contributor Author
image

@github-actions github-actions Bot added the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Sep 3, 2026
@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Changes: C# Changes: Guidebook Changes: Map Changes: No C# Changes: Prototypes Changes: Sprites S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. size/XL T: Rework

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants