i've looked at the dev docs for terrainrgion but i dont think im doing it correctly, and i cant find anywhere that specifically goes into detail on it for scripting.
Im trying to clone the terrain and place it into workspace alongside buildings & etc for map changing but it doesnt seem to be working. TIA
local RS = game:GetService("ReplicatedStorage")
local LoadedMapFolder = workspace.LoadedMaps
local MapsFolder = RS.Maps
local LoadMapEvent = RS.remotes.LoadMap
local Terrain = workspace.Terrain
local function clearPreviousMap()
for _, item in ipairs(LoadedMapFolder:GetChildren()) do
item:Destroy()
end
end
LoadMapEvent.OnServerEvent:Connect(function(player, mapName)
print("Server received map name:", mapName)
local mapTemplate = MapsFolder:FindFirstChild(mapName)
if not mapTemplate then
warn("no map named", mapName)
return
end
clearPreviousMap()
local mapClone = mapTemplate:Clone()
local terrainRegion = mapTemplate:FindFirstChild("SavedTerrain")
if terrainRegion then
local region = Region3.new(terrainRegion.Position, terrainRegion.Position + terrainRegion.Size)
local regionCopy = Terrain:CopyRegion(region)
mapClone.Parent = LoadedMapFolder
Terrain:PasteRegion(regionCopy)
print("map load with terrain region:", mapName)
else
mapClone.Parent = LoadedMapFolder
print("map load without terrain:", mapName)
end
end)