I've been trying this for a while with no prevail. This code I think is the base for save duping.
	%fileName = strLwr(%fileName);
		if(!dupCheckString(%fileName))
		{
			%client.dupMsg($Duplicator::Msg::Invalid, %fileName);
			return;
		}
		%filePath = "saves/Duplications/" @ %fileName @ ".bls";
		if(isFile(%filePath))
		{
			%client.dupMsg($Duplicator::Msg::Exists, %fileName);
			return;
		}
		%dupObj = %client.dupObj;
		%fileObj = new fileObject();
		%fileObj.openForWrite(%filePath);
		%fileObj.writeLine("This is a Blockland save file.  You probably shouldn't modify it cause you'll screw it up.");
		%fileObj.writeLine("1");
		%fileObj.writeLine("Duplicated by" SPC %client.getPlayerName() @ ".");
		for(%i = 0; %i < 64; %i++)
		{
			%fileObj.writeLine(getColorIdTable(%i));
		}
		%fileObj.writeLine("Linecount" SPC %dupObj.bricks);
		for(%a = 0; %a < %dupObj.bricks; %a++)
		{
			%fileObj.writeLine(%dupObj.brick[%a]);
			for(%b = 0; %dupObj.brickData[%a, %b] !$= ""; %b++)
			{
				%fileObj.writeLine(%dupObj.brickData[%a, %b]);
			}
		}
		%fileObj.close();
		%fileObj.delete();
		%client.dupTimeoutC = $Sim::Time + (%client.isAdmin || %client.isSuperAdmin ? $Pref::Duplicator::TimeoutC::Admin : $Pref::Duplicator::TimeoutC::NonAdmin);
		%client.dupMsg($Duplicator::Msg::Saved, %fileName);
		echo("\c1" @ %client.getPlayerName() @ "\c0 saved the duplication \c1" @ %fileName @ "\c0.");
	}