Scent fixes - #5500
Conversation
…ke rollerbeds, vehicles, and lockers.
📝 WalkthroughWalkthroughScent markers now record their airtight container. Emission excludes disposed entities and hidden vent-crawl entities. Client tracking uses current containment. Dead smellers lose tracked scent when their mob state changes to ChangesScent lifecycle
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant Entity
participant ScentSystem
participant ScentMarkerComponent
Entity->>ScentSystem: Emit scent
ScentSystem->>ScentSystem: Check disposal and hidden vent-crawl state
ScentSystem->>ScentSystem: GetAirtightContainer
ScentSystem->>ScentMarkerComponent: SpawnAtPosition and set ContainedIn
Suggested reviewers: 🚥 Pre-merge checks | ✅ 6 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (6 passed)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@Content.Server/_Starlight/Scent/Systems/ScentSystem.cs`:
- Line 451: Update the marker creation in the scent emission flow around
SpawnAtPosition to pass the map-space position from
ToMapCoordinates(xform.Coordinates).Position instead of EntityCoordinates.
Preserve ContainedIn solely as emission metadata and do not attach the spawned
marker to the emitter’s parent.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI (base), Organization UI (inherited)
Review profile: CHILL
Plan: Pro Plus
Run ID: b8fb4102-d6a6-4261-b24f-72702a89ca2e
📒 Files selected for processing (4)
Content.Client/_Starlight/Scent/Systems/ScentTrackingSystem.csContent.Server/_Starlight/Scent/Systems/ScentSystem.csContent.Shared/_Starlight/Scent/Components/ScentMarkerComponent.csContent.Shared/_Starlight/Scent/Systems/SharedScentSystem.cs
|
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
6ba8d59
7e3675c
## Short description <!-- What do you propose to change with your PR? --> Day one fixes for ScentSystem. ## Why we need to add this <!-- What is the reason for adding these changes? Please post links to Discussions as well as Bug Reports here. Please describe how this will change the game balance. --> Consistent and sensible logic for this system is important. ## Media (Video/Screenshots) <!-- If your PR contains in-game changes you must provide screenshots/videos of the changes. --> (all fixes tested/verified; rollerbed clip shown here) (also tested making a long dispo loop and verifying no new scent emissions once flushed) (also tested having a terror spider with attached ScentComponent in dispo pipes) (also tested replays) Scents no longer stick to the rollerbed: https://github.com/user-attachments/assets/7721f942-6e80-4d85-a00e-81c0f0375c3b Scents now only show up if a vent crawler is at a pipe system terminus: https://github.com/user-attachments/assets/2235da14-b9ad-4988-9ce7-333c45ca1467 Scents now no longer show up in replays: https://github.com/user-attachments/assets/03f745c2-6a00-4fcd-a5af-f49f07c0d88f ## Checks <!-- check boxes for faster reviewing of your PR --> - [X] I do not require assistance to complete the PR. - [X] Before posting/requesting review of a PR, I have verified that the changes work. - [X] I have added screenshots/videos of the changes, or this PR does not change in-game mechanics. - [X] I affirm that my changes are licensed under the [MIT License](https://github.com/ss14Starlight/space-station-14/blob/Starlight/LICENSE.TXT) and grant permission for use in this repository under its conditions. **Changelog** :cl: Sparlight - tweak: Dying makes you lose your currently-tracked scent. - fix: Scent emissions now no longer get stuck on mechs/rollerbeds. - fix: Scent emissions no longer travel down disposal tubes and emit while being disposed. - fix: Scent emissions no longer emit from vent-crawling entities unless they are at a vent terminus. - fix: Scents no longer appear in replays. <!-- If you want the players to know about changes made in this PR, specify them using the template outside the comment. Short and informative. :cl: STARLIGHT TEAM - add: Added Starlight. - remove: Removed SS13. - tweak: Changed SS14. - fix: Fixed Rinary. -->
## Short description <!-- What do you propose to change with your PR? --> Day one fixes for ScentSystem. ## Why we need to add this <!-- What is the reason for adding these changes? Please post links to Discussions as well as Bug Reports here. Please describe how this will change the game balance. --> Consistent and sensible logic for this system is important. ## Media (Video/Screenshots) <!-- If your PR contains in-game changes you must provide screenshots/videos of the changes. --> (all fixes tested/verified; rollerbed clip shown here) (also tested making a long dispo loop and verifying no new scent emissions once flushed) (also tested having a terror spider with attached ScentComponent in dispo pipes) (also tested replays) Scents no longer stick to the rollerbed: https://github.com/user-attachments/assets/7721f942-6e80-4d85-a00e-81c0f0375c3b Scents now only show up if a vent crawler is at a pipe system terminus: https://github.com/user-attachments/assets/2235da14-b9ad-4988-9ce7-333c45ca1467 Scents now no longer show up in replays: https://github.com/user-attachments/assets/03f745c2-6a00-4fcd-a5af-f49f07c0d88f ## Checks <!-- check boxes for faster reviewing of your PR --> - [X] I do not require assistance to complete the PR. - [X] Before posting/requesting review of a PR, I have verified that the changes work. - [X] I have added screenshots/videos of the changes, or this PR does not change in-game mechanics. - [X] I affirm that my changes are licensed under the [MIT License](https://github.com/ss14Starlight/space-station-14/blob/Starlight/LICENSE.TXT) and grant permission for use in this repository under its conditions. **Changelog** :cl: Sparlight - tweak: Dying makes you lose your currently-tracked scent. - fix: Scent emissions now no longer get stuck on mechs/rollerbeds. - fix: Scent emissions no longer travel down disposal tubes and emit while being disposed. - fix: Scent emissions no longer emit from vent-crawling entities unless they are at a vent terminus. - fix: Scents no longer appear in replays. <!-- If you want the players to know about changes made in this PR, specify them using the template outside the comment. Short and informative. :cl: STARLIGHT TEAM - add: Added Starlight. - remove: Removed SS13. - tweak: Changed SS14. - fix: Fixed Rinary. -->
## Short description <!-- What do you propose to change with your PR? --> Day one fixes for ScentSystem. ## Why we need to add this <!-- What is the reason for adding these changes? Please post links to Discussions as well as Bug Reports here. Please describe how this will change the game balance. --> Consistent and sensible logic for this system is important. ## Media (Video/Screenshots) <!-- If your PR contains in-game changes you must provide screenshots/videos of the changes. --> (all fixes tested/verified; rollerbed clip shown here) (also tested making a long dispo loop and verifying no new scent emissions once flushed) (also tested having a terror spider with attached ScentComponent in dispo pipes) (also tested replays) Scents no longer stick to the rollerbed: https://github.com/user-attachments/assets/7721f942-6e80-4d85-a00e-81c0f0375c3b Scents now only show up if a vent crawler is at a pipe system terminus: https://github.com/user-attachments/assets/2235da14-b9ad-4988-9ce7-333c45ca1467 Scents now no longer show up in replays: https://github.com/user-attachments/assets/03f745c2-6a00-4fcd-a5af-f49f07c0d88f ## Checks <!-- check boxes for faster reviewing of your PR --> - [X] I do not require assistance to complete the PR. - [X] Before posting/requesting review of a PR, I have verified that the changes work. - [X] I have added screenshots/videos of the changes, or this PR does not change in-game mechanics. - [X] I affirm that my changes are licensed under the [MIT License](https://github.com/ss14Starlight/space-station-14/blob/Starlight/LICENSE.TXT) and grant permission for use in this repository under its conditions. **Changelog** :cl: Sparlight - tweak: Dying makes you lose your currently-tracked scent. - fix: Scent emissions now no longer get stuck on mechs/rollerbeds. - fix: Scent emissions no longer travel down disposal tubes and emit while being disposed. - fix: Scent emissions no longer emit from vent-crawling entities unless they are at a vent terminus. - fix: Scents no longer appear in replays. <!-- If you want the players to know about changes made in this PR, specify them using the template outside the comment. Short and informative. :cl: STARLIGHT TEAM - add: Added Starlight. - remove: Removed SS13. - tweak: Changed SS14. - fix: Fixed Rinary. -->

Short description
Day one fixes for ScentSystem.
Why we need to add this
Consistent and sensible logic for this system is important.
Media (Video/Screenshots)
(all fixes tested/verified; rollerbed clip shown here)
(also tested making a long dispo loop and verifying no new scent emissions once flushed)
(also tested having a terror spider with attached ScentComponent in dispo pipes)
(also tested replays)
Scents no longer stick to the rollerbed:
Myserver.-.Starlight.2026-08-03.13-26-11.mp4
Scents now only show up if a vent crawler is at a pipe system terminus:
2026-08-03.13-59-11.mp4
Scents now no longer show up in replays:
Starlight.2026-08-03.21-00-32.mp4
Checks
Changelog
🆑 Sparlight