R6 /e dance2 Allows Clipping User Through Wall

Background:

I’ve been experimenting with a lot of glitches, ways to clip, and jump off of walls. Recently, I’ve found the /e dance2 glitch. This is relatively unknown.

The Bug Itself:

DANCE_CLIP

Reproduction:

  1. Walk up to a wall that is ≤0.1 stud in width.
  2. Face your camera completely forward while on the wall.
  3. Using shiftlock, very slightly move your camera to the right, so a small gap forms between the wall and your right shoulder. Unshiftlock after in position
  4. Face your camera overhead, slightly over the wall.
  5. Type in chat “/e dance2”.
  6. As soon as your right foot lands on the ground in the animation, activate shiftlock and you will clip through the wall.

Reproduction Game:

If you’d like to try it out for yourself, I’ve made the game below.

Extra Information:

This can be pretty difficult to pull off and isn’t too applicable due to the requirement of a <0.1 stud wall.
This likely started to become possible with the release of the new R6 emotes.
Using the Reproduction Method, you can also get an extra jump when clipping through the wall. This can be used to jump over a gap if needed.

Extra Jump:

DANCE_CLIP_EXTRA

62 Likes

I wrote this piece of code to prevent it. even though this small code isn’t much of an achievement and this post is 4 years old but I think it’s good to inform people that there is a solution.

(StarterCharacterScripts, Local Script)

local rs = game:GetService("RunService")
local Chr = script.Parent
local hrp = Chr:WaitForChild("HumanoidRootPart")
local OldLocation = hrp.CFrame
local Info = RaycastParams.new()
Info.RespectCanCollide = true
Info.IgnoreWater = true
Info.CollisionGroup = hrp.CollisionGroup
Info.FilterType = Enum.RaycastFilterType.Exclude

hrp:GetPropertyChangedSignal("CollisionGroup"):Connect(function()
	Info.CollisionGroup = hrp.CollisionGroup
end)

rs.Stepped:Connect(function()
	local NewLocation = hrp.CFrame
	Info.FilterDescendantsInstances = {Chr,table.unpack(hrp:GetConnectedParts())}
	local Results = workspace:Raycast(OldLocation.Position,NewLocation.Position-OldLocation.Position,Info)
	if Results then
		hrp.CFrame = CFrame.new(Results.Position,Results.Position + NewLocation.LookVector)
	end
	OldLocation = hrp.CFrame
end)

edit: added connected parts to the filterdescendantsinstances table.

6 Likes