How can i add the possibility to corner clip in my game?

Hello !
Recently, roblox patched corner clips, and, i would like to know if it is possible to make a script that gives the possibility to the player to corner clip again.

So, since yesterday, roblox patched the glitch called “corner clip”, and, i would like to be able to do this glitch again into my game, but i don’t even know how.

So, i would like to know if anyone knows how to be able to do this glitch again using a script or anything like that.
Thanks for reading!

1 Like

you can still corner clip with thin walls or long emote(emote where you move away from your position[
Example:
Line dance
when you move as far as you can with the emote, you have to shift lock to corner clip.
])

this is called dance clipping and not corner clipping

1 Like

Please read the post

I’ve tried to recreate corner clipping, but I’ve only managed to get as far as “if some part of the player clips into a brick on the other side of a wall, teleport them through the wall”.

corner clip re-creation attempt.rbxl (32.6 KB)

(walk sideways with shift-lock into the green wall)

but, then, if the arm of the player touch the wall, he will get teleported…

Yeah, but their arm would need to clip through the wall, which is still possible.

It’s not so simple re-creating a bug, moreover, a physics one.

I think the best way to unpatch corner clips is to reverse roblox physic by making a script which modify players physic.

You can’t modify the internal physics engine. Simple as that.

this is what i am asking. how to make this script ??

@EgoMoose CaN yOu UhHhh… rescript the roblox physic please :thinking:

In my opinion, roblox physic should be more customisable.

yeahᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ

1 Like

Sorry, but corner clip can’t be added to any game.

Roblox has been very serious about corner clipping and decided to remove it from the entire game.

They thought of Corner Clipping as a glitch to unfair Roblox Players.

What they do not understand is that lots of Difficulty Chart Obbies and Obbies require Corner Clipping.

Right now, you cannot unpatch corner clips.

From,
SinClosed

Roblox should at least add the possibility to have acess to the physic before corner clips patch by writting a script. So, only developpers who need corner clips in their games will can make corner clips.

I found a solution

local RS = game:GetService("RunService")

local char = game:GetService("Players").LocalPlayer.Character
local rootPart = char:WaitForChild("Torso")

function clip()
	local SelectedClipPart

	local rayParams = RaycastParams.new()
	rayParams.FilterDescendantsInstances = char:GetDescendants()
	rayParams.FilterType = Enum.RaycastFilterType.Blacklist

	local result = workspace:Raycast(rootPart.Position, rootPart.CFrame.LookVector * -2, rayParams)

	if result then
		SelectedClipPart = result.Instance
	end

	if SelectedClipPart then
		-- get what corner of the part the player is touching.		
		local CornerPartsFolder = Instance.new("Folder", workspace)
		CornerPartsFolder.Name = "TEMP_CC_CornerParts"

		local function createCorner(pos)
			local CornerPart = Instance.new("Part", CornerPartsFolder)
			CornerPart.Anchored = true
			CornerPart.CanCollide = false
			CornerPart.Transparency = 1
			CornerPart.Color = Color3.new(1,0,0)
			CornerPart.CFrame = pos 
			CornerPart.Size = Vector3.new(.1, SelectedClipPart.Size.Y, .1)
			CornerPart.Touched:Connect(function() end)
			return CornerPart
		end

		local Corners = {
			createCorner( 
				SelectedClipPart.CFrame * CFrame.new(
					SelectedClipPart.Size.X/-2 - 0.05,
					0,
					SelectedClipPart.Size.Z/2 + 0.05
				)
			),

			createCorner(
				SelectedClipPart.CFrame * CFrame.new(
					SelectedClipPart.Size.X/2 + 0.05,
					0,
					SelectedClipPart.Size.Z/2 + 0.05 
				)* CFrame.Angles(0, 0, math.rad(180)) 

			),

			createCorner(
				SelectedClipPart.CFrame * CFrame.new(
					SelectedClipPart.Size.X/2 + 0.05,
					0,
					SelectedClipPart.Size.Z/-2 - 0.05
				)* CFrame.Angles(0, math.rad(180), 0) 
			),

			createCorner(
				SelectedClipPart.CFrame * CFrame.new(
					SelectedClipPart.Size.X/-2 - 0.05,
					0,
					SelectedClipPart.Size.Z/-2 - 0.05
				)* CFrame.Angles(math.rad(180), 0, 0) 	
			)
		}

		local SelectedCorner

		for _, part in pairs(rootPart:GetTouchingParts()) do
			for _, corner in pairs(Corners) do
				if part == corner then
					SelectedCorner = part
					break
				end
			end
		end

		if SelectedCorner then
			-- find which side of the corner the player is closer to 
			local LV = createCorner(SelectedCorner.CFrame - SelectedCorner.CFrame.LookVector * 0.3)
			local RV = createCorner(SelectedCorner.CFrame - SelectedCorner.CFrame.RightVector * 0.3)

			local function roundTransformation(partSize)
				if partSize > 5 then
					--[[ parts that are longer than 5 studs are given the 'glitch wrap behaviour', 
					meaning players will only be transformed 3/4 through the wall instead of all the way.
					]]
					return math.max(partSize*0.75, 5)
				else
					return partSize + 1
				end
			end

			if (LV.Position - rootPart.Position).Magnitude <= (RV.Position - rootPart.Position).Magnitude then
				rootPart.CFrame = rootPart.CFrame + SelectedCorner.CFrame.LookVector 
					* roundTransformation(SelectedClipPart.Size.Z)
			else
				rootPart.CFrame = rootPart.CFrame + SelectedCorner.CFrame.RightVector  
					* roundTransformation(SelectedClipPart.Size.X)
			end
		end
		CornerPartsFolder:Destroy()
	end 
end

local PrevAngle = rootPart.CFrame.LookVector

local Cooldown = false

RS.Stepped:Connect(function()
	if rootPart.CFrame.LookVector:Dot(PrevAngle) < -0.5 and Cooldown == false then
		Cooldown = true
		clip()
		wait(1)
		Cooldown = false
	end
	PrevAngle = rootPart.CFrame.LookVector
end)
2 Likes