How do I detect slight overlap?

I’m making a plot system with a scaling feature and when the player wants to place the part I’ve been using overlap params to check if the part’s inside the plot area. The problem with that is it checks from the middle of the part so players could do weird things like this (image below) and place parts half outside the plot.

I’ve tried everything from region3 to :getTouchingParts() to get this to work and I’ve gotten no where.

This is the code that I’ve been using to check if it’s inside the plot;

local overlapParams = OverlapParams.new()
overlapParams.FilterDescendantsInstances = {workspace.Baseplate,plot,DummyBlock.Block,Child}
overlapParams.FilterType = Enum.RaycastFilterType.Blacklist

local boxTouching = game.Workspace:GetPartsInPart(plotbox,overlapParams)

for i,part in pairs(boxTouching) do
	if part.Parent == "Block" then
		Place() return
	end
end

Any help is appreciated!

try this it should help out.

If this doesn’t work I have some old code I wrote years ago that may help also from a shops system

It seams to do what I kinda want, but doesn’t work with rotated parts unfortunately

you will need to recode it to use the parts Cframe

may also look at this

I see if i can find my old code too

Yea so the first thing you sent me works, it doesn’t when rotating though

Why don’t you check if all the corners are inside the area instead of only the center? You can get the bounding box and then check for all the corners.

Yeah I was wondering about that but couldn’t find much info about it?