How to check if they go through a wall

i wanna check if they no clipped or something like that

here is my current code

-- AntiExploit: FerbZides

local AntiExploit = {}

local List = {}
List.__index = List

-- player
local player = game.Players.LocalPlayer

function LoadUp()
	local SetupTbl = {}
	
	-- load it up
	for _, Objects in pairs(player.Character:GetChildren()) do
		if Objects:IsA("Humanoid") then
			table.insert(Objects.WalkSpeed, SetupTbl)
			table.insert(Objects.JumpPower, SetupTbl)
			table.insert(Objects.FloorMaterial, SetupTbl)
			
			-- set it
			setmetatable(SetupTbl, {})
		end
	end
end

-- open it up
LoadUp()

function CheckHumanoid()
	-- load it up
	for _, Objects in pairs(player.Character:GetChildren()) do
		if Objects:IsA("Humanoid") then
			return Objects
		end
	end
end

function AntiExploit:AntiSpeed()
	if CheckHumanoid().WalkSpeed ~= self.WalkSpeed then
		player:Kick("Get yeeted")
	end
end

function AntiExploit:AntiJumpPower()
	if CheckHumanoid().JumpPower ~= self.JumpPower then
		player:Kick("Get yeeted")
	end
end

function AntiExploit:AntiFly()
	if CheckHumanoid().FloorMaterial ~= self.FloorMaterial then
		player:Kick("Get yeeted")
	end
end

function AntiExploit:AntiNoClip()
	
end

return AntiExploit

I don’t remember exactly but it would appear to be raycasting between character positions from old to new. When raycasting filtering the hit by character(and other things), it will certainly hit a wall first.

i read on a topic and i heard if a player goes through a part it would change its state to strafing physics

is this correct?

Humanoid’s state changes when they noclip or try to fly. Yeah, I guess that’s one way to approach it.

going to end this topic here by listing all the humanoid properties

if you want to detect exploits just check one of the properties of the humanoid’s state

Speed

humanoid.WalkSpeed

JumpPower

Humanoid.JumpPower

Flying

if humanoid:GetState() == Enum.HumanoidStateType.Flying then

No Clipping

if humanoid:GetState() == Enum.HumanoidStateType.StrafingNoPhysics then

yes ofcourse i am having an issue where the humanoid is nil which is not

the metatable method works and if the strafing physics dont work then ill use a raycast method if it still doesnt work then ill use RunningNoPhysics in the api

also if it doesnt work here is a link to it