BeeStation / BeeStation-Hornet

99.95% station. 0.05% bees
https://beestation13.com
GNU Affero General Public License v3.0
200 stars 681 forks source link

Xenobiology's Stabilized Cerulean crossbreed extract can nullspace user (consistent replication) #9017

Open aramix273 opened 1 year ago

aramix273 commented 1 year ago

Occurance Details

Testmerges:

Bug Details

Expected Behaviour: Monkifying the Stabilized Cerulean body does not break extract-body link

Actual Behaviour:

Once applying Monkified mutation to the body produced by Stabilized Cerulean, the link is lost, as can be seen by the fact that dropping the extract does not despawn the body anymore. Upon observing this behavior, further testing was done to observe the "transfer mind to Stabilized Cerulean body on death" effect that the crossbreed regularly has, and this causes the player to become a mind without a body (see screenshots), being nullspaced.

Reproduction:

Obtain a Stabilized Cerulean crossbreed and keep it active in inventory (bag but not box) A new body will spawn, as normal for the extract's effect Via genetics, offer this body a Monkified mutation - this will break the link between the extract and the body For testing purposes, you can drop the extract and notice the monkified body does not disappear as is normal of the created body - however doing so prevents exploiting this instance of the bug further, as a new body will be generated when picking the extract back - to continue, repeat previous steps After the extract-body link is severed, keep the extract in your bag and die via any means (done locally via giving brute damage) The extract's effect will trigger, attempting to transfer the mind from the dead character to the extract's body, but being unable to find it, fails and nullspaces the user instead.

Isolation:

To pinpoint the exact cause for this bug, it comes from the step where you apply Monkified mutation to the Stabilized Cerulean body clone, breaking the link between extract and body. Expected result would be that the link is properly maintained through applying of Monkified mutation.

Maximization:

Besides being able to generate multiple clones of yourself that persist outside the effect of Stabilized Cerulean crossbreed, the part about being able to be sent to nullspace with a consistent replication and cause tons of runtime errors in the process is gamebreaking for the player and undesirable for the server. Worse, while testing on a local server, after a few minutes, the nullspaced player loses connection, being sent to round lobby upon reconnection. This has not been tested on a live server and replicability of this issue in those circumstances is unknown

Screenshot:

image image

CydiaLamiales commented 1 year ago

This most likely happens because the humanize/monkeyize transformations actually create a new mob and transfer all the relevant data onto it, and then qdel the old one.

github-actions[bot] commented 1 year ago

This issue has been inactive for long enough to be automatically marked as stale. If this was a bug report and hasn't been addressed yet, and is still a problem, please don't hesitate to notify a maintainer.