I have the following code:
BlockTypes[,] BackupQuad = EditModeBlocks.ListOfBlocks; //Create Backup
for (int x = 0; x < 16; x++)
{
for (int y = 0; y < 16; y++)
{
//Translate each point to the opposite side
EditModeBlocks.ListOfBlocks[15 - x, y] = BackupQuad[x, y];
}
}
First it makes up a backup (BackupQuad), and then it loops through each “block” in the backup array. And then it reads the block from the backup array and rewrites it to the original array as 15 – X. (I tried 16 – x too, but didnt work). It works for the most part, but it copies one half to the other side, deleting everything there.

No, it really doesn’t. That just takes a copy of the reference. If you want to take a copy of the actual object, you have to do so explicitly. For example: