Making player see something different

I want to make a button that if you press it, you will see a different map, but I want that if you “teleport”, you can see another player in the one you was in, for example, the moon map in speed run if you turn it n, you would still see the players, but the map changed. How would I do that?

Since it’s changed for every player, it’ll be handled on a LocalScript of some sort

I haven’t seen how Speed Run does it, but I’m assuming that they get all the maps inside ReplicatedStorage, pick a random one then parent it to the workspace locally

Code Example?

local Maps = game.ReplicatedStorage.Maps:GetChildren()

local RandomMap = Maps[math.random(1, #Maps)]
if RandomMap then
    local MapClone = RandomMap:Clone()
    MapClone.Parent = workspace
    MapClone:MakeJoints()
end