I'm not sure but I think that the function to change the gamemode is changeGameMode(); but I have no idea how to retrieve the current gamemode since $GameModeArg does not work and $Pref::Gui::GameMode::SelectedGamemode seems to be client sided...
I tried export("$*gamemode*", ...) and this came out:
$AddOn__GameMode_Blockheads_Ruin_Xmas = -1;
$AddOn__GameMode_Rampage = -1;
$AddOn__GameMode_SpeedKart = -1;
$AddOn__GameMode_Tutorial = -1;
$CrapOnName_GameMode_JJsCityRPG = 1;
$GameModeArg = "";
$GameModeDisplayName = "Custom";
$GameModeGuiServer::GameMode0 = "Add-Ons/GameMode_Two_Ship_DM/gamemode.txt";
$GameModeGuiServer::GameMode1 = "Add-Ons/GameMode_Tutorial/gamemode.txt";
$GameModeGuiServer::GameMode2 = "Add-Ons/GameMode_SpeedKart/gamemode.txt";
$GameModeGuiServer::GameMode3 = "Add-Ons/GameMode_Rampage/gamemode.txt";
$GameModeGuiServer::GameMode4 = "Add-Ons/GameMode_Pirate_DM/gamemode.txt";
$GameModeGuiServer::GameMode5 = "Add-Ons/GameMode_Ninja_Jump_Challenge/gamemode.txt";
$GameModeGuiServer::GameMode6 = "Add-Ons/GameMode_MotE_Mansion/gamemode.txt";
$GameModeGuiServer::GameMode7 = "Add-Ons/GameMode_Freebuild/gamemode.txt";
$GameModeGuiServer::GameMode8 = "Add-Ons/GameMode_Custom/gamemode.txt";
$GameModeGuiServer::GameMode9 = "Add-Ons/GameMode_Blockheads_Ruin_Xmas/gamemode.txt";
$GameModeGuiServer::GameModeCount = 10;
$GameModeGuiServer::MissingAddOns0 = "";
$GameModeGuiServer::MissingAddOns1 = "";
$GameModeGuiServer::MissingAddOns2 = "";
$GameModeGuiServer::MissingAddOns3 = "";
$GameModeGuiServer::MissingAddOns4 = "";
$GameModeGuiServer::MissingAddOns5 = "";
$GameModeGuiServer::MissingAddOns6 = "";
$GameModeGuiServer::MissingAddOns7 = "";
$GameModeGuiServer::MissingAddOns8 = "";
$GameModeGuiServer::MissingAddOns9 = "";
$GameModeGuiServer::Preview0 = "Add-Ons/GameMode_Two_Ship_DM/preview.jpg";
$GameModeGuiServer::Preview1 = "Add-Ons/GameMode_Tutorial/preview.jpg";
$GameModeGuiServer::Preview2 = "Add-Ons/GameMode_SpeedKart/preview.jpg";
$GameModeGuiServer::Preview3 = "Add-Ons/GameMode_Rampage/preview.jpg";
$GameModeGuiServer::Preview4 = "Add-Ons/GameMode_Pirate_DM/preview.jpg";
$GameModeGuiServer::Preview5 = "Add-Ons/GameMode_Ninja_Jump_Challenge/preview.jpg";
$GameModeGuiServer::Preview6 = "Add-Ons/GameMode_MotE_Mansion/preview.jpg";
$GameModeGuiServer::Preview7 = "Add-Ons/GameMode_Freebuild/preview.jpg";
$GameModeGuiServer::Preview8 = "Add-Ons/GameMode_Custom/preview.jpg";
$GameModeGuiServer::Preview9 = "Add-Ons/GameMode_Blockheads_Ruin_Xmas/preview.jpg";
$GameModeGuiServer::Thumb0 = "Add-Ons/GameMode_Two_Ship_DM/thumb.jpg";
$GameModeGuiServer::Thumb1 = "Add-Ons/GameMode_Tutorial/thumb.jpg";
$GameModeGuiServer::Thumb2 = "Add-Ons/GameMode_SpeedKart/thumb.jpg";
$GameModeGuiServer::Thumb3 = "Add-Ons/GameMode_Rampage/thumb.jpg";
$GameModeGuiServer::Thumb4 = "Add-Ons/GameMode_Pirate_DM/thumb.jpg";
$GameModeGuiServer::Thumb5 = "Add-Ons/GameMode_Ninja_Jump_Challenge/thumb.jpg";
$GameModeGuiServer::Thumb6 = "Add-Ons/GameMode_MotE_Mansion/thumb.jpg";
$GameModeGuiServer::Thumb7 = "Add-Ons/GameMode_Freebuild/thumb.jpg";
$GameModeGuiServer::Thumb8 = "Add-Ons/GameMode_Custom/thumb.jpg";
$GameModeGuiServer::Thumb9 = "Add-Ons/GameMode_Blockheads_Ruin_Xmas/thumb.jpg";
$GameModeInitialResetCheckEvent = 0;
I ran a non-dedicated server and changeGameMode($Pref::Gui::SelectedGamemode); worked but i don't think you can do it on a dedicated server.