I have no idea why my ray is detecting air or I think its the ray and the region3...
This is the script:
local function Map(object, length, width)
for L = -length, length do
for W = -width, width do
local ray = Ray.new(plr.Character.PrimaryPart.Position + Vector3.new(L, 800, W), game.ReplicatedStorage.Down.Orientation * 5000)
local part, hitpos = workspace:FindPartOnRay(ray, plr.Character)
local cell = Region3.new(hitpos + Vector3.new(-0.5, -0.5, -0.5), hitpos - Vector3.new(-0.5, -0.5, -0.5))
local res = 4
cell = cell:ExpandToGrid(res)
local mat, occ = workspace.Terrain:ReadVoxels(cell, 4)
local color
local size = mat.Size
for x = 1, size.X do
for y = 1, size.Y do
for z = 1, size.Z do
local mat = mat[x][y][z]
print(mat)
if mat == Enum.Material.Grass then
color = workspace.Terrain:GetMaterialColor(mat)
elseif mat == Enum.CellMaterial.Grass then
color = workspace.Terrain:GetMaterialColor(mat)
end
end
end
end
local frame = Instance.new("Frame", MMenu.M.view)
frame.Size = UDim2.new(0, 1, 0, 1)
if color ~= nil then
frame.BackgroundColor3 = color
end
frame.BorderSizePixel = 0
frame.ZIndex = hitpos.Y
frame.Position = UDim2.new(0.5, L , 0.5, W - plr.Character.PrimaryPart.position.Z)
print(hitpos)
RunService.RenderStepped:Wait()
end
end
Map(plr, 100, 100)
This is the output:
Enum.Material.Air
-450102.25, 450846.719, -48.8493805
