Skip to content
Beta: this is a preview of the new SplitScreen.Me. Data may be reset before launch.

Team Fortress 2 · handler “TeamFortress2”

Version 2

Release notes

Added a option for run the game without a map. (For load Custom Settings or Maps directly from the in game console)

Released
Size
1.8 MB
Downloads
119
Check
Verified
SHA-256
a6775b586c3509e3c0fc6206d4a8b326e558162e0543931b1de64c70ae62558d
Download v2 (.nc)All versions

Files 105

PathSize
handler.js17 KB
TeamFortress2/2Fort.png29 KB
TeamFortress2/2fortinvasion.png29 KB
TeamFortress2/5gorge.png27 KB
TeamFortress2/badlands.png27 KB
TeamFortress2/badwater.jpg8.1 KB
TeamFortress2/bananabay.png28 KB
TeamFortress2/barnblitz.PNG29 KB
TeamFortress2/bigrock.png18 KB
TeamFortress2/borneo.jpg4.7 KB
TeamFortress2/brazil.jpg3.6 KB
TeamFortress2/brickyard.png32 KB
TeamFortress2/byre.jpg4.4 KB
TeamFortress2/cactuscanyon.jpg3.8 KB
TeamFortress2/coaltown.png34 KB
TeamFortress2/coldfront.png25 KB
TeamFortress2/cp_mountainlab.jpg7.4 KB
TeamFortress2/Decoy.png32 KB
TeamFortress2/degrootkeep.png35 KB
TeamFortress2/district.jpg4.1 KB
TeamFortress2/doomsday.jpg4.4 KB
TeamFortress2/doomsdayevent.png32 KB
TeamFortress2/doublecross.png22 KB
TeamFortress2/dustbowl.jpg10 KB
TeamFortress2/Egypt.jpg9.5 KB
TeamFortress2/enclosurefinal.jpg4.2 KB
TeamFortress2/Eyeaduct.png23 KB
TeamFortress2/fastlane.png27 KB
TeamFortress2/fifthcurveevent.png27 KB
TeamFortress2/foundry.png32 KB
TeamFortress2/freightfinal.png31 KB
TeamFortress2/frontierfinal.jpg7.4 KB
TeamFortress2/GhostFortIsland.jpg3.0 KB
TeamFortress2/ghosttown.jpg3.1 KB
TeamFortress2/goldrush.jpg7.5 KB
TeamFortress2/gorge.jpg8.8 KB
TeamFortress2/gorgeevent.png25 KB
TeamFortress2/granary.jpg9.0 KB
TeamFortress2/gravelpit.jpg10 KB
TeamFortress2/gullywashfinal.png28 KB
TeamFortress2/harvestfinal.PNG33 KB
TeamFortress2/hellfire.png26 KB
TeamFortress2/highpass.jpg4.4 KB
TeamFortress2/hightower.png53 KB
TeamFortress2/hightowerevent.jpg7.2 KB
TeamFortress2/hoodoofinal.jpg8.7 KB
TeamFortress2/hydro.jpg8.3 KB
TeamFortress2/junctionfinal.jpg7.7 KB
TeamFortress2/kothbagelevent.png28 KB
TeamFortress2/kothharvestevent.jpg5.3 KB
TeamFortress2/kothking.png29 KB
TeamFortress2/kothmapleridgeevent.png28 KB
TeamFortress2/kothslaughterevent.png29 KB
TeamFortress2/koth_lazarus.jpg4.0 KB
TeamFortress2/Lakeside.jpg8.7 KB
TeamFortress2/landfall.jpg4.5 KB
TeamFortress2/lumberyard.jpg9.5 KB
TeamFortress2/mannhattan.png31 KB
TeamFortress2/mannworks.png33 KB
TeamFortress2/manorevent.png28 KB
TeamFortress2/mapcycle.txt781 B
TeamFortress2/mercenarypark.png36 KB
TeamFortress2/metalworks.jpg3.6 KB
TeamFortress2/millstoneevent.jpg3.9 KB
TeamFortress2/monsterbash.png28 KB
TeamFortress2/moonshineevent.png24 KB
TeamFortress2/mossrock.jpg3.9 KB
TeamFortress2/motd_default.txt959 B
TeamFortress2/motd_text_default.txt963 B
TeamFortress2/nightfallfinal.png30 KB
TeamFortress2/nucleus.jpg7.1 KB
TeamFortress2/offblastfinal.jpg7.7 KB
TeamFortress2/pdcursedcoveevent.png25 KB
TeamFortress2/pitofdeathevent.png26 KB
TeamFortress2/plrpipeline.jpg8.4 KB
TeamFortress2/powerhouse.png34 KB
TeamFortress2/precipiceeventfinall.png27 KB
TeamFortress2/probed.jpg3.8 KB
TeamFortress2/processfinal.jpeg5.0 KB
TeamFortress2/ravine.jpg9.6 KB
TeamFortress2/Rdasteroid.jpg5.5 KB
TeamFortress2/Rottenburg.png31 KB
TeamFortress2/rumbleevent.png29 KB
TeamFortress2/sawmill.png23 KB
TeamFortress2/sinshine.jpg3.3 KB
TeamFortress2/slasher.png28 KB
TeamFortress2/snakewaterfinal.png29 KB
TeamFortress2/snowplow.jpg4.2 KB
TeamFortress2/snowycoast.png28 KB
TeamFortress2/standinfinal.jpg3.1 KB
TeamFortress2/steel.png26 KB
TeamFortress2/suijin.jpg5.3 KB
TeamFortress2/sunshine.jpg5.0 KB
TeamFortress2/swiftwater.jpg4.4 KB
TeamFortress2/thundermountain.png28 KB
TeamFortress2/timbertown.jpeg3.6 KB
TeamFortress2/turbine.png22 KB
TeamFortress2/upward.png32 KB
TeamFortress2/vanguard.png29 KB
TeamFortress2/viaduct.jpg8.5 KB
TeamFortress2/watchtower.jpg8.7 KB
TeamFortress2/watergate.jpg4.2 KB
TeamFortress2/well.jpg11 KB
TeamFortress2/well.png23 KB
TeamFortress2/yukonfinal.png29 KB

handler.js

Plain text
Hub.Handler.Version = 2; // Released at https://hub.splitscreen.me/ on Mon Mar 16 2020 15:25:26 GMT+0000 (UTC).
Hub.Handler.Id = "mJKwas3uZAnbZ8uJn";
Hub.Maintainer.Name = "Bizzo";
Hub.Maintainer.Id = "HEgozNi3MNvhAmWfi";

var listMaps = [
  { Name: "No Map", Details: "Start the game normally", Console: "", ImageUrl: "" },
  // Capture the Flag
  { Name: "2Fort", Details: "Capture the Flag", Console: "ctf_2fort", ImageUrl: "2Fort.png" },
  { Name: "2Fort Invasion", Details: "Capture the Flag", Console: "ctf_2fort_invasion", ImageUrl: "2fortinvasion.png" },
  { Name: "Double Cross", Details: "Capture the Flag", Console: "ctf_doublecross", ImageUrl: "doublecross.png" },
  { Name: "Landfall", Details: "Capture the Flag", Console: "ctf_landfall", ImageUrl: "landfall.jpg" },
  { Name: "Sawmill", Details: "Capture the Flag", Console: "ctf_sawmill", ImageUrl: "sawmill.png" },
  { Name: "Turbine", Details: "Capture the Flag", Console: "ctf_turbine", ImageUrl: "turbine.png" },
  { Name: "Well", Details: "Capture the Flag", Console: "ctf_well", ImageUrl: "well.png" },
  // Control Point
  { Name: "5Gorge", Details: "Control Point", Console: "cp_5gorge", ImageUrl: "5gorge.png" },
  { Name: "Badlands", Details: "Control Point", Console: "cp_badlands", ImageUrl: "badlands.png" },
  { Name: "Coldfront", Details: "Control Point", Console: "cp_coldfront", ImageUrl: "coldfront.png" },
  { Name: "Fastlane", Details: "Control Point", Console: "cp_fastlane", ImageUrl: "fastlane.png" },
  { Name: "Foundry", Details: "Control Point", Console: "cp_foundry", ImageUrl: "foundry.png" },
  { Name: "Freight", Details: "Control Point", Console: "cp_freight_final1", ImageUrl: "freightfinal.png" },
  { Name: "Granary", Details: "Control Point", Console: "cp_granary", ImageUrl: "granary.jpg" },
  { Name: "Gullywash", Details: "Control Point", Console: "cp_gullywash_final1", ImageUrl: "gullywashfinal.png" },
  { Name: "Metalworks", Details: "Control Point", Console: "cp_metalworks", ImageUrl: "metalworks.jpg" },
  { Name: "Powerhouse", Details: "Control Point", Console: "cp_powerhouse", ImageUrl: "powerhouse.png" },
  { Name: "Process", Details: "Control Point", Console: "cp_process_final", ImageUrl: "processfinal.jpeg" },
  { Name: "Sinshine", Details: "Control Point", Console: "cp_sunshine_event", ImageUrl: "sinshine.jpg" },
  { Name: "Sunshine", Details: "Control Point", Console: "cp_sunshine", ImageUrl: "sunshine.jpg" },
  { Name: "Snakewater", Details: "Control Point", Console: "cp_snakewater_final1", ImageUrl: "snakewaterfinal.png" },
  { Name: "Standin", Details: "Control Point", Console: "cp_standin_final", ImageUrl: "standinfinal.jpg" },
  { Name: "Vanguard", Details: "Control Point", Console: "cp_vanguard", ImageUrl: "vanguard.png" },
  { Name: "Well", Details: "Control Point", Console: "cp_well", ImageUrl: "well.png" },
  { Name: "Yukon", Details: "Control Point", Console: "cp_yukon_final", ImageUrl: "yukonfinal.png" },
  // Attack/Defend
  { Name: "DeGroot Keep", Details: "Attack/Defend", Console: "cp_degrootkeep", ImageUrl: "degrootkeep.png" },
  { Name: "Dustbowl", Details: "Attack/Defend", Console: "cp_dustbowl", ImageUrl: "dustbowl.jpg" },
  { Name: "Egypt", Details: "Attack/Defend", Console: "cp_egypt_final", ImageUrl: "Egypt.jpg" },
  { Name: "Gorge", Details: "Attack/Defend", Console: "cp_gorge", ImageUrl: "gorge.jpg" },
  { Name: "Gorge Event", Details: "Attack/Defend", Console: "cp_gorge_event", ImageUrl: "gorgeevent.png" },
  { Name: "Gravel Pit", Details: "Attack/Defend", Console: "cp_gravelpit", ImageUrl: "gravelpit.jpg" },
  { Name: "Junction", Details: "Attack/Defend", Console: "cp_junction_final", ImageUrl: "junctionfinal.jpg" },
  { Name: "Mann Manor", Details: "Attack/Defend", Console: "cp_manor_event", ImageUrl: "manorevent.png" },
  { Name: "Mercenary Park", Details: "Attack/Defend", Console: "cp_mercenarypark", ImageUrl: "mercenarypark.png" },
  { Name: "Mossrock", Details: "Attack/Defend", Console: "cp_mossrock", ImageUrl: "mossrock.jpg" },
  { Name: "Mountain Lab", Details: "Attack/Defend", Console: "cp_mountainlab", ImageUrl: "cp_mountainlab.jpg" },
  { Name: "Snowplow", Details: "Attack/Defend", Console: "cp_snowplow", ImageUrl: "snowplow.jpg" },
  { Name: "Steel", Details: "Attack/Defend", Console: "cp_steel", ImageUrl: "steel.png" },
  // Territorial Control
  { Name: "Hydro", Details: "Attack/Defend", Console: "tc_hydro", ImageUrl: "hydro.jpg" },
  // Payload
  { Name: "Badwater Basin", Details: "Payload", Console: "pl_badwater", ImageUrl: "badwater.jpg" },
  { Name: "Barnblitz", Details: "Payload", Console: "pl_barnblitz", ImageUrl: "barnblitz.PNG" },
  { Name: "Borneo", Details: "Payload", Console: "pl_borneo", ImageUrl: "borneo.jpg" },
  { Name: "Brimstone", Details: "Payload", Console: "pl_fifthcurve_event", ImageUrl: "fifthcurveevent.png" },
  { Name: "Cactus Canyon", Details: "Payload", Console: "pl_cactuscanyon", ImageUrl: "cactuscanyon.jpg" },
  { Name: "Enclosure", Details: "Payload", Console: "pl_enclosure_final", ImageUrl: "enclosurefinal.jpg" },
  { Name: "Frontier", Details: "Payload", Console: "pl_frontier_final", ImageUrl: "frontierfinal.jpg" },
  { Name: "Gold Rush", Details: "Payload", Console: "pl_goldrush", ImageUrl: "goldrush.jpg" },
  { Name: "Gravestone", Details: "Payload", Console: "pl_rumble_event", ImageUrl: "rumbleevent.png" },
  { Name: "Hellstone", Details: "Payload", Console: "pl_millstone_event", ImageUrl: "millstoneevent.jpg" },
  { Name: "Hoodoo", Details: "Payload", Console: "pl_hoodoo_final", ImageUrl: "hoodoofinal.jpg" },
  { Name: "Precipice", Details: "Payload", Console: "pl_precipice_event_final", ImageUrl: "precipiceeventfinall.png" },
  { Name: "Snowycoast", Details: "Payload", Console: "pl_snowycoast", ImageUrl: "snowycoast.png" },
  { Name: "Thunder Mountain", Details: "Payload", Console: "pl_thundermountain", ImageUrl: "thundermountain.png" },
  { Name: "Upward", Details: "Payload", Console: "pl_upward", ImageUrl: "upward.png" },
  //Payload Race
  { Name: "Banana Bay", Details: "Payload Race", Console: "plr_bananabay", ImageUrl: "bananabay.png" },
  { Name: "Helltower", Details: "Payload Race", Console: "plr_hightower_event", ImageUrl: "hightowerevent.jpg" },
  { Name: "Hightower", Details: "Payload Race", Console: "plr_hightower", ImageUrl: "hightower.png" },
  { Name: "Nightfall", Details: "Payload Race", Console: "plr_nightfall_final", ImageUrl: "nightfallfinal.png" },
  { Name: "Pipeline", Details: "Payload Race", Console: "plr_pipeline", ImageUrl: "plrpipeline.jpg" },
  //Arena
  { Name: "Badlands Arena", Details: "Arena", Console: "arena_badlands", ImageUrl: "badlands.png" },
  { Name: "Byre", Details: "Arena", Console: "arena_byre", ImageUrl: "byre.jpg" },
  { Name: "Granary Arena", Details: "Arena", Console: "arena_granary", ImageUrl: "granary.jpg" },
  { Name: "Lumberyard", Details: "Arena", Console: "arena_lumberyard", ImageUrl: "lumberyard.jpg" },
  { Name: "Nucleus Arena ", Details: "Arena", Console: "arena_nucleus", ImageUrl: "nucleus.jpg" },
  { Name: "Offblast", Details: "Arena", Console: "arena_offblast_final", ImageUrl: "offblastfinal.jpg" },
  { Name: "Ravine", Details: "Arena", Console: "arena_ravine", ImageUrl: "ravine.jpg" },
  { Name: "Sawmill Arena", Details: "Arena", Console: "arena_sawmill", ImageUrl: "sawmill.png" },
  { Name: "Watchtower", Details: "Arena", Console: "arena_watchtower", ImageUrl: "watchtower.jpg" },
  { Name: "Well Arena", Details: "Arena", Console: "arena_well", ImageUrl: "well.png" },
  //King of the Hill
  { Name: "Badlands KotH", Details: "King of the Hill", Console: "koth_badlands", ImageUrl: "badlands.png" },
  { Name: "Brazil", Details: "King of the Hill", Console: "koth_brazil", ImageUrl: "brazil.jpg" },
  { Name: "Cauldron", Details: "King of the Hill", Console: "koth_bagel_event", ImageUrl: "kothbagelevent.png" },
  { Name: "Eyeaduct", Details: "King of the Hill", Console: "koth_viaduct_event", ImageUrl: "Eyeaduct.png" },
  { Name: "Ghost Fort", Details: "King of the Hill", Console: "koth_lakeside_event", ImageUrl: "GhostFortIsland.jpg" },
  { Name: "Harvest", Details: "King of the Hill", Console: "koth_harvest_final", ImageUrl: "harvestfinal.PNG" },
  { Name: "Harvest Event", Details: "King of the Hill", Console: "kkoth_harvest_event", ImageUrl: "kothharvestevent.jpg" },
  { Name: "Highpass", Details: "King of the Hill", Console: "koth_highpass", ImageUrl: "highpass.jpg" },
  { Name: "Kong King", Details: "King of the Hill", Console: "koth_king", ImageUrl: "kothking.png" },
  { Name: "Lakeside", Details: "King of the Hill", Console: "koth_lakeside_final", ImageUrl: "Lakeside.jpg" },
  { Name: "Laughter", Details: "King of the Hill", Console: "koth_slaughter_event", ImageUrl: "kothslaughterevent.png" },
  { Name: "Lazarus", Details: "King of the Hill", Console: "koth_lazarus", ImageUrl: "koth_lazarus.jpg" },
  { Name: "Maple Ridge Event", Details: "King of the Hill", Console: "koth_maple_ridge_event", ImageUrl: "kothmapleridgeevent.png" },
  { Name: "Moonshine Event", Details: "King of the Hill", Console: "koth_moonshine_event", ImageUrl: "moonshineevent.png" },
  { Name: "Nucleus KotH", Details: "King of the Hill", Console: "koth_nucleus", ImageUrl: "nucleus.jpg" },
  { Name: "Probed", Details: "King of the Hill", Console: "koth_probed", ImageUrl: "probed.jpg" },
  { Name: "Sawmill KotH", Details: "King of the Hill", Console: "koth_sawmill", ImageUrl: "sawmill.png" },
  { Name: "Slasher", Details: "King of the Hill", Console: "koth_slasher", ImageUrl: "slasher.png" },
  { Name: "Suijin", Details: "King of the Hill", Console: "koth_suijin", ImageUrl: "suijin.jpg" },
  { Name: "Viaduct", Details: "King of the Hill", Console: "koth_viaduct", ImageUrl: "viaduct.jpg" },
  //Special Delivery
  { Name: "Doomsday", Details: "Special Delivery", Console: "sd_doomsday", ImageUrl: "doomsday.jpg" },
  { Name: "Carnival of Carnage", Details: "Special Delivery", Console: "sd_doomsday_event", ImageUrl: "doomsdayevent.png" },
  //Mann vs. Machine
  { Name: "Big Rock", Details: "Mann vs. Machine", Console: "mvm_bigrock", ImageUrl: "bigrock.png" },
  { Name: "Coal Town", Details: "Mann vs. Machine", Console: "mvm_coaltown", ImageUrl: "coaltown.png" },
  { Name: "Decoy", Details: "Mann vs. Machine", Console: "mvm_decoy", ImageUrl: "Decoy.png" },
  { Name: "Ghost Town", Details: "Mann vs. Machine", Console: "mvm_ghost_town", ImageUrl: "ghosttown.jpg" },
  { Name: "Mannhattan", Details: "Mann vs. Machine", Console: "mvm_mannhattan", ImageUrl: "mannhattan.png" },
  { Name: "Mannworks", Details: "Mann vs. Machine", Console: "mvm_mannworks", ImageUrl: "mannworks.png" },
  { Name: "Rottenburg", Details: "Mann vs. Machine", Console: "mvm_rottenburg", ImageUrl: "Rottenburg.png" },
  //Robot Destruction
  { Name: "Asteroid", Details: "Robot Destruction", Console: "rd_asteroid", ImageUrl: "Rdasteroid.jpg" },
  //Mannpower
  { Name: "Foundry Capture the Flag", Details: "Mannpower", Console: "ctf_foundry", ImageUrl: "foundry.png" },
  { Name: "Gorge Capture the Flag", Details: "Mannpower", Console: "ctf_gorge", ImageUrl: "gorge.jpg" },
  { Name: "Hellfire", Details: "Mannpower", Console: "ctf_hellfire", ImageUrl: "hellfire.png" },
  { Name: "Thunder Mountain Capture the Flag", Details: "Mannpower", Console: "ctf_thundermountain", ImageUrl: "thundermountain.png" },
  //PASS Time
  { Name: "Brickyard", Details: "PASS Time", Console: "pass_brickyard", ImageUrl: "brickyard.png" },
  { Name: "District", Details: "PASS Time", Console: "pass_district", ImageUrl: "district.jpg" },
  { Name: "Timbertown", Details: "PASS Time", Console: "pass_timbertown", ImageUrl: "timbertown.jpeg" },
  //Player Destruction
  { Name: "Cursed Cove", Details: "Player Destruction", Console: "pd_cursed_cove_event", ImageUrl: "pdcursedcoveevent.png" },
  { Name: "Monster Bash", Details: "Player Destruction", Console: "pd_monster_bash", ImageUrl: "monsterbash.png" },
  { Name: "Pit of Death", Details: "Player Destruction", Console: "pd_pit_of_death_event", ImageUrl: "pitofdeathevent.png" },
  { Name: "Watergate", Details: "Player Destruction", Console: "pd_watergate", ImageUrl: "watergate.jpg" }
  //
  //{ Name: "Map Name",      Details: "Description. Type of gamemode?", Console: "name of the file map", ImageUrl: "image of the map" }, //use this format for add customs maps. Maps image must be placed in Nucelus\scripts\TeamFortress2 folder
];

Game.AddOption("Map", "The map the game will use", "MapID", listMaps);

var MapStep = Game.ShowOptionAsStep("MapID", true, "Select a Map");

Game.KillMutex = ["hl2_singleton_mutex"];

Game.DirSymlinkExclusions = ["bin", "tf", "tf\\cfg"];
Game.FileSymlinkExclusions = ["autoexec.cfg", "config.cfg", "listenserver.cfg", "mapcycle.txt", "motd_default.txt", "motd_text_default.txt", "xinput1_4.dll"];

Game.HandlerInterval = 100;
Game.SymlinkExe = false;
Game.SymlinkGame = true;
Game.SupportsKeyboard = true;
Game.KeyboardPlayerFirst = true;
Game.HideTaskbar = true;
Game.ExecutableName = "hl2.exe";
Game.SteamID = "440";
Game.GUID = "TeamFortress2";
Game.GameName = "Team Fortress 2";
Game.NeedsSteamEmulation = false;
Game.LauncherTitle = "";
Game.SaveType = Nucleus.SaveType.CFG;
Game.WorkingFolder = "bin";
Game.SupportsPositioning = true;
Game.MaxPlayersOneMonitor = 4;
Game.MaxPlayers = 32;
Game.ProcessorPriorityClass = "High"; ////Sets the overall priority category for the associated process. Can be "AboveNormal", "High" or "RealTime" | default: "Normal"
Game.Hook.ForceFocus = true; //set false for more than 4 controllers.
Game.Hook.ForceFocusWindowName = "Team Fortress 2";
Game.Hook.DInputEnabled = true;
Game.Hook.DInputForceDisable = true;
Game.Hook.XInputEnabled = true;
Game.Hook.XInputReroute = false; //set true for more than 4 controllers. You can use only ONE XboxOne controller and you can't use at the same time the keyboard. You must click/alt+tab on the corrisponding instance for make it work.
Game.Hook.BlockMouseEvents = false;
Game.Hook.BlockInputEvents = false;
Game.Hook.BlockKeyboardEvents = false;
Game.PauseBetweenStarts = 30;
Game.Hook.CustomDllEnabled = false; //set true for more than 4 controllers.
Game.HookFocus = true;
Game.HookInit = true;
Game.XInputPlusDll = ["xinput1_4.dll"]; // add the // before the line for more than 4 controllers.
//Game.Hook.XInputNames = [ "xinput1_4.dll" ];        // remove the "//" for more than 4 controllers.
Game.DPIHandling = Nucleus.DPIHandling.InvScaled;
Game.Description =
  'Open the script for see how to play with more than 4 controllers (Only one XboxOne controller) or for change server configuration by editing the autoexec lines. "Y" is used as "change status to Ready". For change map use map MAPNAME console command or if you want press F8 for a random map from the mapcycle.txt file inside you TeamFortress2 scripts folder.';

Game.Play = function() {
  var Args = (Context.Args = " -game tf -novid -windowed" + " -AlwaysFocus " + " -insecure " + " -w " + Context.Width + " -h " + Context.Height);

  Context.StartArguments = Args;

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\tf\\cfg\\motd_default.txt");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "motd_default.txt");
  System.IO.File.Copy(savePkgOrigin, savePath, true);
  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\tf\\cfg\\motd_text_default.txt");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "motd_text_default.txt");
  System.IO.File.Copy(savePkgOrigin, savePath, true);
  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\tf\\cfg\\mapcycle.txt");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "mapcycle.txt");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  //copy config.cfg
  System.IO.File.Copy(System.IO.Path.Combine(Context.RootInstallFolder, "tf\\cfg\\config.cfg"), System.IO.Path.Combine(Context.RootFolder, "tf\\cfg\\config.cfg"), true);

  var autoExec = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\tf\\cfg\\autoexec.cfg"; //create an autoexec.cfg file
  var lines = [
    "sv_lan 1", //LAN server (!!don't edit!!)          // <------------------------------------------- ADD HERE AUTOEXEC COMMANDS OR SERVER SETTINGS
    "fps_max 61", //Fps cap
    "tf_mvm_min_players_to_start 2", //minimun players for start MvsM
    "maxplayers 32",
    "cl_hud_minmode 1", //minimal hud
    "bind F8 randommap", //bind F8 as key for randommap command
    "engine_no_focus_sleep 0", // unlimited FPS on all screens (!!don't edit!!)
    "sv_cheats 1", //enable cheats
    "mp_idledealmethod 0", //afk mode kick (0=disabled)
    "mp_idlemaxtime 0", //max time that you can stay afk (0=disabled)
    "mp_showrespawntimes 5", //set the respawn wave time (default is 10)
    //"mp_disable_respawn_times", //instant respawn
    "mapcyclefile mapcycle.txt"
  ];

  if (Player.IsKeyboardPlayer) {
    lines.push("joystick 0");
    lines.push("exec undo360controller.cfg");
    lines.push("host_writeconfig");
  } else {
    lines.push("exec 360controller.cfg");
    lines.push("bind p player_ready_toggle");
    lines.push('alias "togglescores" "player_ready_toggle"');
    lines.push('bind "JOY4" "togglescores"');
  }

  if (Context.PlayerID == 0) {
    var map = Context.Options["MapID"].Console;
    if (map != "") {
      lines.push("map " + map);
    }
  } else {
    lines.push("connect " + Context.User.GetLocalIP());
  }

  Context.WriteTextFile(autoExec, lines);
};