Skip to content

Redo Changeling Identity Networking + New Objective#43673

Merged
slarticodefast merged 13 commits intospace-wizards:masterfrom
ScarKy0:changeling-identity-data-+-objective
Apr 26, 2026
Merged

Redo Changeling Identity Networking + New Objective#43673
slarticodefast merged 13 commits intospace-wizards:masterfrom
ScarKy0:changeling-identity-data-+-objective

Conversation

@ScarKy0
Copy link
Copy Markdown
Contributor

@ScarKy0 ScarKy0 commented Apr 20, 2026

About the PR

Rewrote the changeling identity networking to work a new datatype instead of a dictionary.
Made changelings unable to devour a body that has been recently devoured by another changeling (or themselves).

Open as draft because this is very reviewable, just need to clean up, add docs and add an objective using the new API.

Why / Balance

Allows for easier keeping track of unique identities and similiar without needing to track several seperate lists.

Technical details

New ChangelingIdentityData. We manually network it from Server to Client with the relevant information regarding an identity.
Then all checks are just made using that via previous or new API.

Media

2026-04-21.18-26-36.mp4

Requirements

Breaking changes

ChangelingIdentityComponent no longer raises AfterAutoHandleStateEvent on itself. The functionality has been moved to a ComponentHandleState subscription. This also means the component is manually networked.
ChangelingIdentityComponent.ConsumedIdentities now uses a new data definition ChangelingIdentityData instead of Dictionary<EntityUid, EntityUid?>. Specific items can be retrieved using the new API.
ChangelingDevourSystem.HasDevoured has been renamed to HasIdentity.

Changelog

  • remove: Herobrine

ScarKy0 added 2 commits April 20, 2026 18:08
TODO:
Devour X identities objective
@PJBot PJBot added S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. S: Approved Status: Reviewed and approved by at least one maintainer; a PR may require another approval. S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. size/M Denotes a PR that changes 100-999 lines. labels Apr 20, 2026
@ScarKy0 ScarKy0 requested a review from slarticodefast April 20, 2026 23:53
@ScarKy0 ScarKy0 mentioned this pull request Apr 21, 2026
46 tasks
@ScarKy0 ScarKy0 marked this pull request as ready for review April 21, 2026 16:40
@MayasMischief
Copy link
Copy Markdown

you stole my fucking bit

@Pok27 Pok27 added P2: Raised Priority: Item has a raised priority, indicating it might get increased maintainer attention. D2: Medium Difficulty: A good amount of codebase knowledge required. A: Roundflow/Antag Area: Roundflow - "What happens in the game", including antagonist roles and their capabilities T: New Feature Type: New feature or content, or extending existing content and removed S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. labels Apr 23, 2026
Copy link
Copy Markdown
Member

@slarticodefast slarticodefast left a comment

Choose a reason for hiding this comment

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

Small request:
Add a ToString method for Identity data so that it will show up in VV here and gets easier to debug.

Image

Comment thread Content.Shared/Changeling/Components/ChangelingIdentityComponent.cs
Comment thread Content.Shared/Changeling/Components/ChangelingIdentityComponent.cs
Comment thread Content.Shared/Changeling/Components/ChangelingIdentityComponent.cs
Comment thread Content.Client/Changeling/Systems/ChangelingIdentitySystem.cs Outdated
Comment thread Content.Client/Changeling/Systems/ChangelingIdentitySystem.cs Outdated
Comment thread Content.Shared/Changeling/Systems/ChangelingDevourSystem.cs Outdated
Comment thread Content.Shared/Changeling/Systems/ChangelingDevourSystem.cs Outdated
Comment thread Content.Shared/Changeling/Systems/ChangelingDevourSystem.cs Outdated
Comment thread Content.Shared/Changeling/Systems/SharedChangelingIdentitySystem.cs Outdated
Comment thread Content.Shared/Changeling/Systems/SharedChangelingIdentitySystem.cs Outdated
@PJBot PJBot added S: Awaiting Changes Status: Changes are required before another review can happen and removed S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. labels Apr 25, 2026
@ScarKy0 ScarKy0 requested a review from slarticodefast April 25, 2026 22:45
@PJBot PJBot added the S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. label Apr 25, 2026
@PJBot PJBot removed the S: Awaiting Changes Status: Changes are required before another review can happen label Apr 25, 2026
Copy link
Copy Markdown
Member

@slarticodefast slarticodefast left a comment

Choose a reason for hiding this comment

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

Good work!

@slarticodefast slarticodefast added this pull request to the merge queue Apr 26, 2026
Merged via the queue into space-wizards:master with commit f6eeb88 Apr 26, 2026
11 of 12 checks passed
@ScarKy0 ScarKy0 deleted the changeling-identity-data-+-objective branch April 26, 2026 08:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A: Roundflow/Antag Area: Roundflow - "What happens in the game", including antagonist roles and their capabilities D2: Medium Difficulty: A good amount of codebase knowledge required. P2: Raised Priority: Item has a raised priority, indicating it might get increased maintainer attention. S: Approved Status: Reviewed and approved by at least one maintainer; a PR may require another approval. S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. size/M Denotes a PR that changes 100-999 lines. T: New Feature Type: New feature or content, or extending existing content

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants