Spawning part in antoher part

So, I’m trying to spawn some rocks into an square grass area. For some reason the rocks still spawn outside the area.

These are the ways I tried:

newRocks.CFrame = CFrame.new(math.random(-newRoad[grass].Size.X/2 - newRoad[grass].Size.X/10,newRoad[grass].Size.X/2 - newRoad[grass].Size.X/10),newRoad[grass].Size.Y / 2 + newRocks.Size.Y / 2 - 0.2,math.random(-newRoad[grass].Size.Z/2 - newRoad[grass].Size.Z/5,newRoad[grass].Size.Z/2 - newRoad[grass].Size.Z/5))
newRocks.CFrame = newRoad[grass].CFrame * CFrame.new(math.random(-newRoad[grass].Size.X/2 - newRoad[grass].Size.X/10,newRoad[grass].Size.X/2 - newRoad[grass].Size.X/10),newRoad[grass].Size.Y / 2 + newRocks.Size.Y / 2 - 0.2,math.random(-newRoad[grass].Size.Z/2 - newRoad[grass].Size.Z/5,newRoad[grass].Size.Z/2 - newRoad[grass].Size.Z/5))
newRocks.Position = newRoad[grass].Position + Vector3.new(math.random(-newRoad[grass].Size.X/2 - newRoad[grass].Size.X/10,newRoad[grass].Size.X/2 - newRoad[grass].Size.X/10),newRoad[grass].Size.Y / 2 + newRocks.Size.Y / 2 - 0.2,math.random(-newRoad[grass].Size.Z/2 - newRoad[grass].Size.Z/5,newRoad[grass].Size.Z/2 - newRoad[grass].Size.Z/5))

they all didn’t work

Could you possibly give more of the script + more info on the grass & rocks you are spawning (size, etc)?

here

local part = PATH_TO_PART
local area = PATH_TO_AREA

local maxX = area.Size.X / 2 - part.Size.X
local minX = -maxX
local maxZ = area.Size.Z / 2 - part.Size.Z
local minZ = -maxZ

local addedY = area.Size.Y / 2


for i = 1, 1000 do
	local part = part:Clone()
	part.Position = area.Position
	part.Position = Vector3.new( part.Position.X + math.random(minX, maxX), part.Position.Y + part.Size.Y + addedY, part.Position.Z + math.random(minZ, maxZ) )

	part.Parent = WHERE_YOU_STORE_THEM
end