There has been a glitch around for a while that lets you teleport through walls of up to multiple studs thick. Here is a Youtube video showing it:
I haven’t found any reports of this even though this video is already a year old, but players are using this glitch in my experience to cheat and claim rewards they otherwise could not.
Expected behavior
Avatars shouldn’t be able to teleport using emotes, such as the V Pose emote.
you can make or get some sort of anti cheat that detects wall clipping; emote clipping is a enjoyable glitch (similar to wall hopping) and roblox fixing this will 100% make the community go into chaos
honestly, I do this all the time with another emote (bouncy twirl) but as a newer dev, I knew to make walls thick enough to stop my emote from working…until I saw that it can bypass this thick of a wall!
I came up with an incredibly simple fix which takes a single minute to program in.
You simply just need to create a collision group that doesn’t collide with Default.
Then set every part (except for the HumanoidRootPart/PrimaryPart) within the character inside a script in StarterCharacterScripts to that collision group you just made.
This may slightly interfere with character collisions, and players who attempt to clip can still be seen through walls when using the emotes. However, the HumanoidRootPart remains collidable so it should still be fine.
Emote clipping actually seems to occur because your character’s parts are collidable by default. When an emote is used to clip, the shift lock instantly pushes the character to the other side. It then pulls the HumanoidRootPart inside the wall, attempting to correct itself. Eventually the HumanoidRootPart gets stuck inside the wall and pushes itself further into the wall, until the physics engine corrects the collisions by pushing it all the way to the other side.
Here’s an example of the code:
local primary = script.Parent.PrimaryPart
for _, part: BasePart in script.Parent:GetDescendants() do
if (not part:IsA("BasePart") or part == primary) then
continue
end
part.CollisionGroup = "Players"
end