Skip to content

Solutions (Rebirth) - #5893

Merged
walksanatora merged 48 commits into
ss14Starlight:starlight-devfrom
wonderfulnewworld:upstream/solutions-rebirth
Sep 3, 2026
Merged

Solutions (Rebirth)#5893
walksanatora merged 48 commits into
ss14Starlight:starlight-devfrom
wonderfulnewworld:upstream/solutions-rebirth

Conversation

@wonderfulnewworld

@wonderfulnewworld wonderfulnewworld commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Short description

image

"If there is magic in my heart, can I make this overwhelming dream come true?"

It's the entirety of the Solutions Refactor + a ton of bug fixes, and, as a result of some awkward tangled PRs, also the butchering -> slicing refactor.

I'm going to split up the "list of PRs" into 2 sections, Solutions related, and Slicing related.

Solutions

Slicing

As I always say when I use AI, I used AI to help me with this PR. It was mainly the "busy" work, the hundreds of 2 line changes to go from solutioncontainer to solution, etc, and some C# assistance too. A lot of busy work.

Since this is technically an upstream merge in a way, might not want to squash merge it? It's not in the same format as the others, so I don't know. It was cherry picked, for what it's worth. (Edit: Yeah don't squash merge this or it'll collide with the other 5 direct PRs that rely on it)

Why we need to add this

We're 7 months behind, and a lot of really good modern features (reagent fires, blood footprints, blood splatter on walls) rely on this PR to work. And to me, this PR existing in our path is a bit of a mental block, so I just want to move past it.

Media (Video/Screenshots)

image

Note, the silver jug is now 4 wide, 3 tall, instead of 3 wide, 4 tall. It bothered me when I took this picture, so I changed it later.

image image

Despite all those PRs taken, there's not actually that much to show off.

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
🆑 wonderfulnewworld, Princess Cheeseballs, kosticia, slarticodefast, themias, rumaks xyz, veprolet, AreYouConfused, insoPL, whatston3, cashew 42, B Kirill, portfiend, korczoczek, deltanedas, Winkarst cpu, Wintoli

  • add: You can now boil snails alive in the microwave.
  • tweak: Blood volume has been doubled.
  • tweak: Many chef recipes have been changed so the final result better matches the ingredients put in. This means overall the nutritional value of the chef's meals have increased.
  • tweak: Many chef recipes have had their ingredients changed.
  • tweak: Most sliceable foods now give a lot more slices.
  • tweak: Reagent container sizes have been standardized, at a base of 30 units per inventory square. Most containers can now hold more than they did before.
  • tweak: Changed the size of the silver and gold beakers; they don't fit the standards of the others, since they cost credits.
  • tweak: Chemical jugs and bar jugs are now Large (2x4) items.
  • tweak: Buckets now hold 360u and are 3x4 items.
  • tweak: Nukie medical duffel bag now comes with a bicaridine jug, a mixed puncturase & tranexamic acid jug, a mixed dermaline & pyrazine jug, and a mixed saline & dexalin plus jug.
  • tweak: Most items with slicing tool quality now can be used for butchering.
  • tweak: Butchering is now predicted and called slicing!
  • tweak: Butter and butter slices can be mixed into solutions.
  • tweak: Chemical dispenser and ChemMaster transfer increments have been changed to 1u, 5u, 10u, 15u, 20u, 30u, 40u, 60u, and 120u.
  • tweak: Hyposprays and jet injectors no longer spill when thrown.
  • tweak: The salt and pepper requirements for several recipes have been heavily reduced.
  • tweak: Butter now requires Cream instead of Milk to create.

Princess-Cheeseballs and others added 30 commits August 30, 2026 02:26
* Everything except the YAML slop...

* She solution on my manager till I sajfslkahfsjakfhaskjfshajksafhfsakhfasjfas

* another 1000 lines

* fix chem dispenser size

* go my shnelf

* Implicit ass

* rider is being mean for some reason

* dasdas

* borger

* better formatting go!

* clothes/bloodstream

* Cartons

* cups and bottles

* mmm soder

* bar drinks

* Spray bottles and some size tweaks with hindsight

* 99 bottles of beer on the wall I hate YAML

* push that shit

* mmm burger

* Sneed

* sheets

* condiments

* mmm yummy

* fridge yummyfood

* meat...

* sub 300

* burger...

* bready

* let them eat cake

* does she know how to make a grilled cheese?

* pizza pie!

* misc shit

* soup or salad

* Food and drinks, vanquished

* the cubes!!!

* Almost free from YAML...

* fix test fails and some yaml issues

* fix prediction, almost done

* fix all test fails

* remove master merge artifacts and undo autonetworking

* review and compatibility

* graaah

* unfuck master merge I hate github

* merg conflicts

* sfsa

* ehoop

* sadas

* afsafsaasf

* merge conflicts

* fucked up the merge conflicts

* merge conflict is fucked I might need to completely redo this branch

* test fail

* no calcium????

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
# Conflicts:
#	Content.Client/Chemistry/EntitySystems/ChemistryGuideDataSystem.cs
#	Content.Server/Administration/Systems/AdminVerbSystem.cs
#	Content.Server/Stunnable/Systems/StunbatonSystem.cs
#	Content.Server/_Starlight/Kitchen/EntitySystems/CookingDeviceSystem.cs
#	Content.Shared/Chemistry/Components/Solution.cs
#	Content.Shared/Chemistry/Components/SolutionComponent.cs
#	Content.Shared/Chemistry/EntitySystems/RehydratableSystem.cs
#	Content.Shared/Chemistry/EntitySystems/SharedSolutionContainerSystem.Relays.cs
#	Content.Shared/Chemistry/EntitySystems/SharedSolutionContainerSystem.cs
#	Content.Shared/Chemistry/EntitySystems/SolutionRegenerationSystem.cs
#	Content.Shared/EntityEffects/Effects/Solution/AddReagentToSolutionEntityEffectSystem.cs
#	Content.Shared/Fluids/SharedPuddleSystem.cs
#	Content.Shared/Kitchen/EntitySystems/SharedReagentGrinderSystem.cs
#	Content.Shared/Medical/Cryogenics/SharedCryoPodSystem.cs
#	Content.Shared/Nutrition/EntitySystems/IngestionSystem.cs
#	Content.Shared/Nutrition/EntitySystems/PressurizedSolutionSystem.cs
#	Content.Shared/_Starlight/Medical/Body/Systems/MetabolizerSystem.cs
#	Content.Shared/_Starlight/Medical/Body/Systems/StomachSystem.cs
#	Resources/Prototypes/Body/Animals/ruminant.yml
#	Resources/Prototypes/Body/Species/arachnid.yml
#	Resources/Prototypes/Body/Species/diona.yml
#	Resources/Prototypes/Body/Species/gingerbread.yml
#	Resources/Prototypes/Body/Species/moth.yml
#	Resources/Prototypes/Body/Species/slime.yml
#	Resources/Prototypes/Body/Species/vox.yml
#	Resources/Prototypes/Body/Species/vulpkanin.yml
#	Resources/Prototypes/Body/base_organs.yml
#	Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml
#	Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
#	Resources/Prototypes/Entities/Mobs/NPCs/argocyte.yml
#	Resources/Prototypes/Entities/Mobs/NPCs/space.yml
#	Resources/Prototypes/Entities/Mobs/NPCs/spacetick.yml
#	Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml
#	Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml
#	Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml
#	Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml
#	Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/pizza.yml
#	Resources/Prototypes/Entities/Objects/Consumable/Food/ingredients.yml
#	Resources/Prototypes/Entities/Objects/Consumable/Food/meat.yml
#	Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml
#	Resources/Prototypes/Entities/Objects/Consumable/Food/snacks.yml
#	Resources/Prototypes/Entities/Objects/Consumable/Food/soup.yml
#	Resources/Prototypes/Entities/Objects/Fun/toys.yml
#	Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml
#	Resources/Prototypes/Entities/Objects/Materials/Sheets/metal.yml
#	Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml
#	Resources/Prototypes/Entities/Objects/Materials/crystal_shard.yml
#	Resources/Prototypes/Entities/Objects/Materials/ingots.yml
#	Resources/Prototypes/Entities/Objects/Materials/parts.yml
#	Resources/Prototypes/Entities/Objects/Misc/paper.yml
#	Resources/Prototypes/Entities/Objects/Specific/Chemistry/chemical-containers.yml
#	Resources/Prototypes/Entities/Objects/Specific/Chemistry/chemistry-bottles.yml
#	Resources/Prototypes/Entities/Objects/Specific/Hydroponics/leaves.yml
#	Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml
#	Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml
#	Resources/Prototypes/Entities/Objects/Specific/Medical/morgue.yml
#	Resources/Prototypes/Entities/Objects/Tools/cable_coils.yml
#	Resources/Prototypes/Entities/Objects/Tools/lighters.yml
#	Resources/Prototypes/Entities/Objects/Tools/welders.yml
#	Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/shotgun.yml
#	Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml
#	Resources/Prototypes/Entities/Objects/Weapons/security.yml
#	Resources/Prototypes/Entities/Structures/Furniture/toilet.yml
#	Resources/Prototypes/Entities/Structures/Machines/chem_master.yml
#	Resources/Prototypes/Entities/Structures/Machines/reagent_grinder.yml
#	Resources/Prototypes/Entities/Structures/Specific/Janitor/janicart.yml
#	Resources/Prototypes/Entities/Tiles/water.yml
#	Resources/migration.yml
change parents

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
* fix overflow and mice

* actually don't relay it, each individual solution should handle it.

* misc

* ensure the solution overflow is tested

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Co-authored-by: Janet Blackquill <uhhadd@gmail.com>
# Conflicts:
#	Content.Shared/Chemistry/EntitySystems/SharedSolutionContainerSystem.Relays.cs
whoops

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
* burge

* bruegr

* YAML

* two misc fixes

* snoutta here

* add tests

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Co-authored-by: Janet Blackquill <uhhadd@gmail.com>
# Conflicts:
#	Content.Server/Chemistry/EntitySystems/VaporSystem.cs
#	Content.Server/Fluids/EntitySystems/SpraySystem.cs
#	Content.Server/Weapons/Ranged/Systems/GunSystem.Solution.cs
#	Content.Shared/Chemistry/EntitySystems/SolutionPurgeSystem.cs
#	Content.Shared/Chemistry/EntitySystems/SolutionRegenerationSystem.cs
#	Content.Shared/EntityEffects/Effects/Solution/AddReagentToSolutionEntityEffectSystem.cs
#	Resources/Prototypes/Entities/Objects/Tools/lighters.yml
#	Resources/Prototypes/Entities/Structures/Furniture/toilet.yml
…s refactor. (#43728)

* fix prediction and solution duplication issues

* lock down

* wait I fogrot other systems need to read this id I'm stupid

* fix

* actually throw

* better comment and obsoletion

* master merge + fix popup text

* netowkring fix

* better debug assert

* back to basics

* dumbb

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Co-authored-by: veprolet <>
# Conflicts:
#	Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml
* Goodbye

* whoop

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
misc fixes

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
* no longer will medipens spill when thrown

* reparented injectors/sprays to removed spillable component

* hyposprays and jet injectors nolonger spill when thrown.
* predict

* fix
# Conflicts:
#	Content.Shared/Materials/SharedMaterialReclaimerSystem.cs
* moproach/spider solutions with recharge

* mop mop mop roach

* more straightforward moproach solution inheritance
* draf

* slime time

* ddsaasdgatagsde

* fix that shit

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
# Conflicts:
#	Content.Shared/Tools/Systems/ToolRefinableSystem.cs
#	Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
#	Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml
#	Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/bread.yml
add transformablecontainer back to the metamorphic glass
* Recyclers: spill without valid solutions

* Early return on empty
…mponent into one. Sharp component removal. (#36895)

* Yay

* Do a LOT changes in yml

* and again

* Finale changes

* yml and locale

* locale tweak

* yml and charp cleanup

* fix carpets

* and some-some

* And some

* I want to believe that its last🙏🙏

* 😭

* 😭😭

* clean

* fix

* AAHHAHAHAHAHAH

* fix

* FINAL

* thisguyusa...

* LAST_ONE

* wawa

* merge2

* sdobfjibwdsjaqaksmzxsowaw2edqw84

* aoaoaooaoaao

* this hardcode took 30 minutes of my life

* fix aaaa

* fix test

* FIX BUILD

* oops

* oops

* aaooaoaoa

* fuck

* oops

* refactor: cleanup after merge + use protoId in KitchenSpikeComponent

* refactor: fix butcherable stuff again!~

* fix: now actively checks for EdibleComponent on slicing, predicted items splitting

* fix: changed knife.yaml to use Slicing tool

* fix: no more sounds spam on chop-chop

* refactor: cleanups

* refactor: default time value for slicable

* refactor: whitespaces and extract variables

* fix: slicable no longer prevents InteractUsingEvent by marking handled w/o actually handling

* feat: chopping trees now requires sawing tool, same for slicing logs

* refactor: cleanup after merge

* refactor: fix non-related PR changes

* refactor: rename locid

* refactor: remove unneeded red 'slice' verb name when slicing entities with mob-state.

* refactor: simplify test code changes

* refactor: better readability for test

* refactor: linebreak for unary op

* refactor: xml-doc for SliceableComponent corrected to be more fitting.

* refactor: cleanup SliceableSystem some more

* refactor: use HasComp instead of TryComp in AddSliceVerb

* refactor: extracted methods to improve readability

* refactor: remove unchecked operator - not needed when casting from uint

* refactor: SliceableSystem cleanups, fix logs not being chopped due to solution splitting

* fix: slice verb is now showing up even if disabled, slicing is done even if there is no solution to split, replaced direct dependency for sliceable component to food component with default solution-name

* refactor: comment about RandomPredicted + toy knife now fits into clown shoes

* refactor: remove EdibleComponent dependency from SliceableSystem

* refactor: moved SliceableSystem into ToolRefinableSystem

* refactor: basic renaming for comps

* refactor: cleanup after merge

* refactor: reorder methods, renaming, simplify polymorph related conditions on slicing

* refactor: xml-doc + reorder yaml fields

* refactor: fixing yaml + method renaming, unused usings removed

* refactor: removed unused usings

* refactor: fix typo

* refactor: remove reference for deleted meat proto

* refactor: clean up yaml after merge

* refactor: fix multiple typos from mass replace

* refactor: fix missed field renaming

* refactor: ensure all entities that had ToolRefinable got BaseSlicingRefinable (aftermerge cleanup)

* refactor: undo solution-related changes for animals.yml

* refactor: fix invalid parent set for corgi + fix amount of slices for the rest of pies

* refactor: revert Solution to SolutionContainerManager changes after merge

* refactor: revert Solution to SolutionContainerManager changes after merge

* refactor: fix invalid property name for toolMissingQualityTooltip in yml, fixed missing entity on which AttemptToolRefineEvent is raised

* refactor: remove over-indent for components of BaseSlicingRefinable and for Slicing tool quality

* refactor: remove over-indentation on MobCarpHolo

* empty collection

---------

Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
Co-authored-by: Fildrance <fildrance@gmail.com>
Co-authored-by: iaada <iaada@users.noreply.github.com>
# Conflicts:
#	Content.IntegrationTests/Tests/CargoTest.cs
#	Content.Server/Botany/Components/LogComponent.cs
#	Content.Server/_Starlight/Nutrition/EntitySystems/SliceableFoodSystem.cs
#	Content.Shared/Nutrition/EntitySystems/SharedCreamPieSystem.cs
#	Content.Shared/Nutrition/IngestionEvents.cs
#	Content.Shared/Tools/Systems/ToolRefinableSystem.cs
#	Content.Shared/_Starlight/Kitchen/EntitySystems/SharedSharpSystem.cs
#	Resources/Locale/en-US/nutrition/components/sliceable-food-component.ftl
#	Resources/Prototypes/Body/Species/diona.yml
#	Resources/Prototypes/Body/Species/reptilian.yml
#	Resources/Prototypes/Body/Species/slime.yml
#	Resources/Prototypes/Body/Species/vox.yml
#	Resources/Prototypes/Body/species_base.yml
#	Resources/Prototypes/Entities/Clothing/Hands/gloves.yml
#	Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
#	Resources/Prototypes/Entities/Mobs/NPCs/hellspawn.yml
#	Resources/Prototypes/Entities/Mobs/NPCs/pets.yml
#	Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml
#	Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml
#	Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/bread.yml
#	Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/cake.yml
#	Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/pie.yml
#	Resources/Prototypes/Entities/Objects/Consumable/Food/ingredients.yml
#	Resources/Prototypes/Entities/Objects/Consumable/Food/meat.yml
#	Resources/Prototypes/Entities/Objects/Materials/crystal_shard.yml
#	Resources/Prototypes/Entities/Objects/Materials/shards.yml
#	Resources/Prototypes/Entities/Objects/Misc/broken_bottle.yml
#	Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml
#	Resources/Prototypes/Entities/Objects/Weapons/Melee/armblade.yml
#	Resources/Prototypes/Entities/Objects/Weapons/Melee/chainsaw.yml
#	Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml
#	Resources/Prototypes/Entities/Objects/Weapons/Melee/fireaxe.yml
#	Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml
#	Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml
* Meat spike localization fixes

* Review
* relocalize these two messages

* fix erroneous butcherable components pt 1

* fix argocyte butchery

* redundant
# Conflicts:
#	Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
#	Resources/Prototypes/Entities/Mobs/NPCs/carp.yml
…l qualities (#44441)

ToolRefinableSystem: check used tool before evt
e

Co-authored-by: deltanedas <@deltanedas:goida.zip>
Update SharedKitchenSpikeSystem.cs
@wonderfulnewworld

Copy link
Copy Markdown
Contributor Author

@coderabbitai explain test failures

@coderabbitai

coderabbitai Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo="ss14Starlight/space-station-14"
pr_number="5893"
head_sha="$(gh pr view "$pr_number" --repo "$repo" --json headRefOid --jq '.headRefOid')"

echo "== HEAD =="
echo "$head_sha"

echo
echo "== FAILED CHECKS =="
gh pr checks "$pr_number" --repo "$repo" --json name,state,link,workflow \
  --jq '.[] | select(.state == "FAILURE" or .state == "ERROR" or .state == "CANCELLED" or .state == "TIMED_OUT") | [.name, .state, .workflow, .link] | `@tsv`' \
  || true

echo
echo "== FAILED CHECK ANNOTATIONS =="
gh api "repos/$repo/commits/$head_sha/check-runs?per_page=100" \
  --jq '.check_runs[] | select(.conclusion == "failure" or .conclusion == "timed_out" or .conclusion == "cancelled") | [.id, .name, .details_url] | `@tsv`' \
  | while IFS=$'\t' read -r id name url; do
      echo "-- $name: $url"
      gh api "repos/$repo/check-runs/$id/annotations?per_page=100" \
        --jq '.[] | [.path, (.start_line|tostring), .annotation_level, .message] | `@tsv`' \
        || true
    done

echo
echo "== FAILED JOB LOG CONTEXT =="
gh run list --repo "$repo" --commit "$head_sha" --limit 30 \
  --json databaseId,workflowName,conclusion,url \
  --jq '.[] | select(.conclusion == "failure" or .conclusion == "timed_out") | [.databaseId, .workflowName, .url] | `@tsv`' \
  | while IFS=$'\t' read -r run_id workflow url; do
      echo "-- $workflow: $url"
      gh run view "$run_id" --repo "$repo" --log-failed 2>&1 \
        | rg -n -i -C 5 \
          'failed|error:|exception|assert|nunit|xunit|stack trace|unhandled|expected|actual|test.*fail|fatal' \
        | head -n 500 || true
    done

Length of output: 167051


🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo="ss14Starlight/space-station-14"
run_id="33363526016"
base_sha="$(gh pr view 5893 --repo "$repo" --json baseRefOid --jq '.baseRefOid')"

echo "== DISTINCT FAILED TESTS FROM ALL SHARDS =="
for job_id in 99400917620 99400917714 99400917723; do
  echo "-- job $job_id"
  gh run view "$run_id" --repo "$repo" --job "$job_id" --log-failed 2>&1 \
    | sed -r 's/\x1B\[[0-9;]*[[:alpha:]]//g' \
    | rg -n '^[^[:space:]].*failed[[:space:]]' \
    | head -n 100 || true
done

echo
echo "== CHANGED FILES MATCHING FAILURE TERMS =="
git diff --name-only "$base_sha" HEAD | while IFS= read -r path; do
  if rg -q -i \
    'CosmicGlyphBlades|CheekStorage|TiderLathe|SwordFlamingTA|HelmetForgedTA|BountyKnife|FoodPizzaLarge|FoodPizza|ClothingOuterWinter|SolutionContainerManagerComponent|[[:space:]]Sharp:' \
    "$path"; then
    echo "$path"
  fi
done

echo
echo "== CURRENT MATCHES WITH CONTEXT =="
rg -n -i -C 4 \
  'CosmicGlyphBlades|CheekStorage|TiderLathe|SwordFlamingTA|HelmetForgedTA|BountyKnife|FoodPizzaLarge|FoodPizza|ClothingOuterWinter|SolutionContainerManagerComponent|^[[:space:]]+Sharp:' \
  -g '*.yml' -g '*.yaml' Resources Content.Shared Content.Server Content.Client 2>/dev/null \
  | head -n 900

echo
echo "== RELEVANT PR DIFF =="
git diff --unified=3 "$base_sha" HEAD -- \
  | rg -n -C 4 \
    'CosmicGlyphBlades|CheekStorage|TiderLathe|SwordFlamingTA|HelmetForgedTA|BountyKnife|FoodPizzaLarge|FoodPizza|ClothingOuterWinter|SolutionContainerManagerComponent|^[+-][[:space:]]+Sharp:' \
  | head -n 900

Length of output: 132962


@wonderfulnewworld The current failures have five direct causes.

  1. Pizza cargo crates can be sold for more than their purchase price.
    NoCargoOrderArbitrage fails for:

    • FoodPizza: cost 450, sale value varies from 844 to 1000.
    • FoodPizzaLarge: cost 1800, sale value varies from 3565 to 3979.

    The increased number or value of pizza slices raises the crate resale value above the cargo product cost. Increase the cargo prices, reduce the produced value, or change the crate contents.

  2. FoodPizzaLarge completes the knife bounty.
    NoCargoBountyArbitrageTest reports that FoodPizzaLarge costs 1800 and fulfills BountyKnife, which pays 2000.

    The slicing migration made the large pizza match the bounty’s knife requirements. A pizza should not satisfy BountyKnife. Remove the matching tool/tag/component condition from the pizza, or change the bounty criteria.

  3. Winter coats contain both legacy and new food solutions.
    AllItemsHaveSpritesTest fails because the compatibility system logs warnings such as:

    Attempted to port a solution id: food from a SolutionContainerManagerComponent ...
    but the entity already had a solution with that id.
    

    Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml uses ClothingOuterStorageEdible. The inherited setup already creates food through the new solution system. The legacy SolutionContainerManagerComponent data still attempts to migrate another food solution during map initialization.

    Remove the remaining legacy solution-container definition from the winter-coat inheritance chain. Keep only the new solution definition.

  4. Two prototypes still use Sharp, but no Sharp component is registered.
    TestAllServerPrototypesAreSerializable fails for:

    • CosmicGlyphBlades
    • CheekStorage

    Both serialize with:

    Unknown component kind: Sharp
    

    The slicing refactor removed or renamed that component registration. Port these prototypes to the registered slicing component or remove Sharp if it is no longer required.

  5. TiderLathe has recipes that require unsupported materials.
    TestLatheRecipeIngredientsFitLathe reports:

    • SwordFlamingTA requires Glass and Plastic.
    • HelmetForgedTA requires Plastic.

    TiderLathe does not accept those materials. Either remove these recipes from TiderLathe, add the materials to its accepted material list, or modify the recipe materials.

Test was dirty-disposed and the VSTestException messages occur after these primary failures. They are test cleanup effects, not separate regressions.

The prior YAML diagnosis does not apply to the current CI run.

You are interacting with an AI system.

@github-actions

github-actions Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Content + Integration Test Results

Tests 📝 Passed ✅ Failed ❌ Duration ⏱️
1711 1691 0 10m 47s

🎉 No failed tests in this run.

Github Test Reporter by CTRF 💚

🔄 This comment has been updated

@wonderfulnewworld

Copy link
Copy Markdown
Contributor Author

Tests all passed. :ikneel:

Comment thread Resources/Prototypes/_Starlight/CosmicCult/glyphs.yml Outdated
Comment thread Resources/Prototypes/_Starlight/Body/Prototypes/rodentia.yml
Comment thread Resources/Prototypes/_Starlight/CosmicCult/glyphs.yml Outdated
Comment thread Resources/Prototypes/Catalog/Cargo/cargo_food.yml
@starlightgithub starlightgithub Bot added the S: Awaiting Changes Status: Changes are required before another review can happen label Aug 31, 2026
@github-actions github-actions Bot added S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. and removed S: Awaiting Changes Status: Changes are required before another review can happen labels Aug 31, 2026
@starlightgithub starlightgithub Bot added S: Approved Status: Reviewed and approved by at least one maintainer or dev; a PR may require another approval. and removed S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. labels Sep 3, 2026
@walksanatora
walksanatora added this pull request to the merge queue Sep 3, 2026
@walksanatora
walksanatora removed this pull request from the merge queue due to a manual request Sep 3, 2026
@walksanatora
walksanatora merged commit 40a01ac into ss14Starlight:starlight-dev Sep 3, 2026
19 checks passed
starlightgithub Bot added a commit that referenced this pull request Sep 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Changes: C# Changes: Prototypes Changes: UI S: Approved Status: Reviewed and approved by at least one maintainer or dev; a PR may require another approval. size/L

Projects

None yet

Development

Successfully merging this pull request may close these issues.