Hey! So far I’ve been learning basics of the Raycasting Feature and so far I understand the certain basics of it, but however I’m now wanting to fix this issue with them spawning out of the zone, however the code I’ve used was from basic understanding however if I change my raycast direction it’ll result in a nil instance that cannot give out the result of how I wanted it. I’ve very new to this however, and would appreciate the help. I’ve tried looking around in the Roblox-Developer Forum to find solutions but I’ve never found any answer to fix this I’m not trying to use another way for spawning in regions because I want it to spawn in different random positions while the spawning does not spawn into walls or floors for that matter, I want to make a advanced spawning coin system, however there is only 1 solution I found but that requires a module when I want to learn my own understanding, I would love atleast support that could help me understand what I’m lacking to know of and could use for this to be advanced and correctly spawning
Example:
Spawning outside of the zone:
This is the code so far.
local Region = workspace:WaitForChild("SpawnPosition");
local SpawnFolder = workspace:WaitForChild("Spawners");
local PosX, PosZ = Region.Position.X, Region.Position.Z
while wait(.5) do
local SizeX, SizeZ = Region.Size.X / 2, Region.Size.Z / 2
local Position1 = math.random(PosX - SizeX, PosX + SizeX)
local Position2 = math.random(PosZ - SizeZ, PosZ + SizeZ)
local RayOrigin = Vector3.new(Position1, Region.Position.Y, Position2)
local RayDirection = Vector3.new(0, -500, 0)
local RaycastParamsData = RaycastParams.new()
RaycastParamsData.FilterDescendantsInstances = {SpawnFolder}
RaycastParamsData.FilterType = Enum.RaycastFilterType.Blacklist
local RaycastResult = workspace:Raycast(RayOrigin, RayDirection, RaycastParamsData)
print(RaycastResult)
if RaycastResult ~= nil then
local Part = Instance.new("Part", SpawnFolder)
Part.Position = RaycastResult.Position
Part.Color = Color3.fromRGB(255, 0, 0)
Part.Anchored = true
Part.Name = "Object"
Part.CanCollide = false
end
end
Any feedback or possible solutions are recommended / supported, however please make sure it’s something I can write and learn instead of using a simple module or something
If possible I however want to spawn it 1.34 studs above the floor.