This is probably an advanced concept. As of now, this spawns a model into and onto a platform, then sets its x and z coordinates into a table. Everything is working great, but I want to require it to only spawn when the random x and z coordinates are mdist (6 blocks in this case) away.

So, I have marked the if line in question with a lot of hyphens, and it currently contains a mock "~=1" combo for placeholders sake.

The biggest issue I've encountered so far is that the iteration through a list will likely require a "for" loop, and I don't believe those work inside of a one line if statement. I'll use the 6 block comparison by requiring it to be greater than/less than +- mdist, but I can't get it to iterate properly though the table with the coordinates while inside of an if statement.

Any help is greatly appreciated, and thank you for your time!

local x = script.Parent.Position.X;
local y = script.Parent.Position.Y;
local z = script.Parent.Position.Z;

local copper = game.Lighting.oretotal.Copper;

local currspawn = 1;

local mdist = script.MaxDistance.Value;
local limitnum = mdist * script.closeMultiplier.Value;
local xs = script.Parent.Size.X;
local zs = script.Parent.Size.Z;
local initial = script.Parent.Initrun.Value;

local waittime = game.Lighting.oretotal.respawn.Value; 
local limit;

local xhalf = xs/2;
local zhalf = zs/2;

local Bounds = {
	{x1=x-xhalf,x2=x+xhalf},
	{z1=z-zhalf,z2=z+zhalf}
}

--print(Bounds[1].x1, Bounds[1].x2);
local boundsrandx = math.random(Bounds[1].x1, Bounds[1].x2);
local boundsrandz = math.random(Bounds[2].z1, Bounds[2].z2);

local Coords = {
}

for i=1,limit do -- limit is a varying integer value
		local boundsrandx = math.random(Bounds[1].x1, Bounds[1].x2); -- sets random position within limits.
		local boundsrandz = math.random(Bounds[2].z1, Bounds[2].z2); -- see above
		if (boundsrandx ~= 1 and boundsrandz ~= 1)then -- this is the line in question ----------------
			local cclone = copper:Clone(); -- creates the model
			cclone.Parent = script.Parent; -- sets the model inside spawn platform
			cclone:MoveTo(Vector3.new(boundsrandx,y,boundsrandz)); -- moves it
			local intclone = game.Lighting.Destroyed:Clone(); -- clones a bool that contains an int
			intclone.Parent = cclone; -- puts bool and int in model
			cclone.Destroyed.listnumber.Value = currspawn; -- sets integer to spawn order
			currspawn = currspawn + 1; -- sets spawn limit up by one
			table.insert(Coords, {x=cclone.ore.Position.X, z=cclone.ore.Position.Z}); -- puts the object coords into the table
			wait(.5);
		else
			nil;
			wait(.5);
		end
	end

EDIT It seems to me that I could probably just feed the numbers through another function then return them for the check, but I'll still keep this up to find if there's another better way.