Action Required: Workspace.RejectCharacterDeletions

I have waited so long for this, thank you so much!

It feels great not to have to write out integrity checks for my tools anymore, thank you!

1 Like

The post says that it will eventually be enabled by default:

I can’t overstate how happy I am that I don’t need to write an entire script to detect if a player should be allowed to remove a specific object from their character like their rootpart or humanoid.

I was happy when I saw this in the API dump and I was praying this post would come one day.

1 Like

Finally it’s here! Now we can safely access certain objects under character. (I will be testing it right now)

Thank you.

Client deletions in the character (and player) replicating was one of the biggest pains I’ve had in nearly all of my experiences, second to physics-based exploits which feel nigh-impossible to nail down correctly in a consistent manner. I’m eternally grateful for this. There are just some cases where instances need to be in the character or a relaxed project without deep structure or practices that wants to quickly and nicely add content to characters to be used in various systems.

A slightly-off topic aside: while we’ve been getting a lot of great updates lately, I seriously hope this isn’t the pacifying stage where we’re all happy with the new releases before we start hearing of the return of the lousy team create default update or it’s quietly added in. I am still very keen on the recent product decision/communication changes to be upheld.

19 Likes

This sounds pretty good (awesome),
Thanks for the update! (To the people who worked on this)

1 Like

oh so thats why my death ragdoll looks extremely bad, I thought I was just drunk when I programmed it ages ago.

2 Likes

I’m a very happy human rn thank you devs who were at the helm of this it saves a ton of energy

Very useful, thank you roblox for actually giving us useful updates to combat exploiters

best update yet
hopefully every game dev turns it on

I was testing this, and noticed that while using a script that ran in the workspace (RunContext = Server if that is important) that printed a part name when a part touched it. However, nothing was printed when I deleted a part of my avatar on the client, and moved to where the now-deleted part would be touching the block. Video:


PS: Watch the ouput.

Seeing as killbricks are the only application I could think for this, why isn’t it doing anything?

It is still nice that other players won’t see deleted parts though. :slight_smile:

for that reason the servers were so weird

Yes that’s expected, this change doesn’t solve physics exploits. The server still trusts the client to simulate physics for their character and other things near them, and touched events are part of physics simulation.

Fun fact: You can actually kind of work around this. If the touched part is unanchored and has the network owner explicitly set to the server (part:SetNetworkOwner(nil)) you’ll still get touched events. Since the part must be unanchored this is obviously not practical for real game development, but it demonstrates the underlying principles.

2 Likes

This is a major improvement, this issue existed for the longest time and workarounds were an absolute headache. Looking forward to more improvements like this, hopefully we can get an official ‘solution’ to movement exploits eventually.

One other question:
Is this upgrade one of the first parts of the Server-Sided anti-exploit thing ROBLOX CEO, David Baszucki, was talking about at RDC-22? Are more server-sided anti-exploits updates coming?

Again, great update :slight_smile:

1 Like

Other than clients no longer being able to delete stuff inside their character, is there any other behaviour that could result from this? Like small stuff that were perhaps not mentioned.

Other than that, amazing update, no longer are the days of constant sanity checks to make sure a character still has server created instances inside them.

I am so happy that this just works magically in my game without breaking anything. Love to see things getting more and more robust.

1 Like

SetNetworkOwner for anchored parts when? :wink:

2 Likes

Great improvement! This means that exploiters won’t be able to break limbs of other NPCs or players temporarily set as their network owner.

This doesn’t effect network ownership.