ENSL NS2 Server Setup Tutorial

Setup your NS2 Server after these Tutorial/s: http://wiki.naturalselection2.com/view/Dedicated_Server

http://wiki.naturalselection2.com/view/Server_Maintenance_Manual

 

What is needed after the initial setup is several Mods and configuration settings.

This Tutorial assumes you are running the NS2 server under Windows and use a separate config folder for the server config and mod files.

Create a shortcut to the server exe and add the following parameters:

"C:\Steamcmd\steamapps\common\Natural Selection 2 Dedicated Server\x64\Server.exe" -file "C:\Ns2server-1\config.txt"

 

The config.txt file contains all the startup parameters for the server like:

Port, Name, Playercount, map, password, workshop mod storage folder, log file folder and which mods to load on startup.

The mod list should not contain any Map mods as they are configured in macycle.json.

Here an example of a config.txt:

 

-port 27015

-limit 16

-password "ns2nsl"

-name "ENSL.org | Server X"

-modstorage "C:\Ns2server-1\mods"

-config_path "C:\Ns2server-1"

-map ns2_tram

-mods "706d242 a2ddae8 334982d2 c6fbbb0 2e135822 b7149f9 40e9f8c8 4839f8a3"

-console                    

-logdir "C:\Ns2server-1"

 

List of mods / maps workshop ModIDs:

Source: http://www.ensl.org/rules

8. Match Procedures

(g) Servers

(iii) Servers must have the following mods installed:

(i) NSL Mod (ModID: a2ddae8)

(ii) Server consistency is hard coded into the NSL Mod.

(iii) NS2+ (Mod ID: 334982d2)

(iv) Competitive Mod (Mod ID: 2adc73ed)

(v) FrozenBuild322 (Mod ID: 542fd351)

 

(vi) Prevent UWE Extension (ModID: 4839F8A3)

(iv) Optional Helpful mods

(i) Shine Admin (Mod ID: 706d242)

(ii) [Shine] Epsilon (ModID: c6fbbb0)

(iii) Badges+ (ModID: b7149f9)

(iv) NSL Team Badges (ModID: 40E9F8C8)

(v) [Shine] Wonitor (ModID: 235ee3a6)



Edit your "MapCycle.json" to look like this:

{

  "maps":[

     "ns2_biodome",

     "ns2_descent",

     "ns2_veil",

     "ns2_summit",

     "ns2_tram",

     "ns2_summit",

     {

        "map":"ns2_jambi",

        "mods":[

           "7b986f5"

        ]

     },

     {

        "map":"ns2_mineral",

        "mods":[

           "d873977"

        ]

     },

     {

        "map":"ns2_nexus",

        "mods":[

           "17b0e28c"

        ]

     },

     {

        "map":"ns2_mesh",

        "mods":[

           "2FA38A0D"

        ]

     },

     {

        "map":"ns2_unearthed",

        "mods":[

           "454f732c"

        ]

     }

  ],

  "mode":"order",

  "mods":[

     "706d242",

     "a2ddae8",

     "334982D2",

     "c6fbbb0",

     "2e135822",

     "b7149f9",

     "40E9F8C8",

     "4839f8a3"

  ],

  "time":240

}

If you change any of the JSON files run them through a JSON-Validator like https://jsonformatter.curiousconcept.com/ to syntax check before saving. Server will crash on malformed config Files.

Edit your "ServerConfig.json" to look like this:

 

{

 "settings":{

   "alltalk":false,

   "auto_kick_afk_capacity":0.5,

   "auto_kick_afk_time":300,

   "auto_team_balance":{

     "enabled":false,

     "enabled_after_seconds":0,

     "enabled_on_unbalance_amount":2

   },

   "auto_vote_add_commander_bots":false,

   "consistency_enabled":true,

   "dyndns":"",

   "enabledyndns":false,

   "end_round_on_team_unbalance":0.4,

   "end_round_on_team_unbalance_after_warning_time":30,

   "end_round_on_team_unbalance_check_after_time":300,

   "filler_bots":0,

   "force_even_teams_on_join":false,

   "hiveranking":true,

   "jit_maxmcode":40000,

   "jit_maxtrace":25000,

   "mod_backup_before_steam":false,

   "mod_backup_servers":[],

   "pregamealltalk":false,

   "quickplay_ready":true,

   "rookie_only":false,

   "rookie_only_bots":12,

   "season":"",

   "season_month":0,

   "use_own_consistency_config":false,

   "voting":{

     "voteaddcommanderbots":false,

     "votechangemap":true,

     "votekick_bantime":2,

     "votekickplayer":true,

     "voterandomizerr":false,

     "voteresetgame":true,

     "votingforceeventeams":false

   }

 },

 "tags":["NSL"]

}

 

Configure the NS2+ via “NS2PlusServerConfig.json”

This is for allowing to disable viewmodels, particles and sounds.

{

 "allow_ambient":true,

 "allow_deathstats":true,

 "allow_drawviewmodel":true,

 "allow_mapparticles":true,

 "allow_nsllights":true,

 "autodisplayendstats":true,

 "endstatsteambreakdown":true,

 "modupdater":true,

 "modupdatercheckinterval":15,

 "modupdaterreminderinterval":30,

 "savestats":false,

 "showavgteamskill":false,

 "showplayerskill":false,

 "showprobabilityofteamvictory":false

}

 

Next configure Shine:

The shine config files reside in a subfolder called “shine” in your server config folder.

Edit “shine\BaseConfig.json”:

This configures which shine plugins you want.

{

   "APIKeys": {

       "Steam": ""

   },

   "ActiveExtensions": {

       "adverts": false,

       "afkkick": false,

       "autoperfprofile": false,

       "badges": true,

       "ban": true,

       "basecommands": true,

       "botmanager": false,

       "captains": false,

       "commbans": false,

       "customspawns": false,

       "customtextcommands": false,

       "disablevanillavotes": false,

       "enforceteamsizes": false,

       "epsilonbadges": true,

       "extraips": false,

       "fakeserverip": false,

       "funcommands": false,

       "hiveteamrestriction": false,

       "killstreak": false,

       "logging": false,

       "mapstats": false,

       "mapvote": true,

       "motd": true,

       "namefilter": false,

       "norookies": false,

       "ns2feedback": false,

       "passwordreset": false,

       "pingtracker": false,

       "pregame": false,

       "pregameplus": false,

       "readyroom": false,

       "reservedslots": false,

       "rookiesonly": false,

       "roundlimiter": false,

       "serverswitch": false,

       "tournamentmode": false,

       "unstuck": true,

       "usermanagement": true,

       "vacplus": false,

       "verboselogging": false,

       "votealltalk": false,

       "voterandom": false,

       "votesurrender": true,

       "welcomemessages": false,

       "wonitor": true,

       "workshopupdater": false

   },

   "AddTag": true,

   "ChatName": "Admin",

   "ConsoleName": "Admin",

   "DateFormat": "dd-mm-yyyy",

   "DebugLogging": false,

   "EnableLogging": true,

   "EqualsCanTarget": false,

   "ExtensionDir": "config://shine/plugins/",

   "GetUsersFromWeb": false,

   "GetUsersWithPOST": false,

   "LogDir": "config://shine/logs/",

   "NotifyAdminAnonymous": false,

   "NotifyAnonymous": true,

   "NotifyOnCommand": false,

   "RefreshInterval": 60,

   "RefreshUsers": false,

   "ReportErrors": true,

   "SilentChatCommands": true,

   "UserRetrieveArguments": [],

   "UsersURL": "http://www.yoursite.com/users.json",

   "WebConfigs": {

       "Enabled": false,

       "IsBlacklist": false,

       "MaxAttempts": 3,

       "Plugins": [],

       "RequestArguments": [],

       "RequestURL": "",

       "UpdateInterval": 1,

       "UpdateMode": 1

   }

}

 

Shine User config “\shine\UserConfig.json”

Configure User groups and their rights in this file, NSL staff should be given admin privileges.

 

{

  "DefaultGroup" : {

     "Commands" : [ "sh_reservedslot" ],

     "Immunity" : 0,

     "IsBlacklist" : false

  },

  "Groups" : {

     "admin" : {

        "Commands" : [

           "sh_showmotd",

           "sh_afk",

           "sh_afk_partial",

           "sh_rcon",

           "sh_luarun",

           "sh_unban",

           "sh_listbans",

           "sh_idleimmune",

           "sh_randomimmune"

        ],

        "Immunity" : 50,

        "IsBlacklist" : true

     },

     "ignoreafk" : {

        "Commands" : [ "sh_afk_partial" ],

        "Immunity" : 10,

        "IsBlacklist" : false

     },

     "ignorestatus" : {

        "Commands" : [ "sh_ignorestatscheck" ],

        "Immunity" : 10,

        "IsBlacklist" : false

     },

     "nslplayer" : {

        "Commands" : [

           "sh_cheats",

           {

              "Allowed" : {

                 "1" : "speed *"

              },

              "Command" : "sh_rcon"

           }

        ],

        "Immunity" : 0,

        "IsBlacklist" : false

     },

     "superadmin" : {

        "Commands" : [

           "sh_showmotd",

           "sh_afk",

           "sh_afk_partial",

           "sh_ignorestatscheck",

           "sh_randomimmune"

        ],

        "Immunity" : 100,

        "IsBlacklist" : true

     },

     "trustedadmin" : {

        "Commands" : [

           "sh_reset",

           "sh_adminmenu",

           "sh_kick",

           "sh_changelevel",

           "sh_eject",

           "sh_gag",

           "sh_status",

           "sh_ungag",

           "sh_hiveteams",

           "sh_forcemapvote",

           "sh_alltalk",

           "sh_password",

           "sh_enablerandom",

           "sh_listplugins",

           "sh_setteam",

           "sh_rr",

           "sh_reservedslot",

           "sh_cheats",

           "sh_who",

           "sh_stopvote",

           "sh_uncommbanid",

           {

              "Allowed" : {

                 "1" : "captains"

              },

              "Command" : "sh_loadplugin"

           },

           {

              "Allowed" : {

                 "1" : "captains"

              },

              "Command" : "sh_unloadplugin"

           },

           {

              "Allowed" : {

                 "2" : {

                    "Max" : 1440,

                    "Min" : 1

                 }

              },

              "Command" : "sh_ban"

           },

           {

              "Allowed" : {

                 "2" : {

                    "Max" : 1440,

                    "Min" : 1

                 }

              },

              "Command" : "sh_banid"

           },

           {

              "Allowed" : {

                 "2" : {

                    "Max" : 1440,

                    "Min" : 1

                 }

              },

              "Command" : "sh_commban"

           },

           {

              "Allowed" : {

                 "2" : {

                    "Max" : 1440,

                    "Min" : 1

                 }

              },

              "Command" : "sh_commbanid"

           }

        ],

        "Immunity" : 10,

        "IsBlacklist" : false

     }

  },

  "Users" : {

     

     "3023411" : {

        "Group" : "trustedadmin",

        "name" : "jiriki"

     },

    "32430346" : {

        "Group" : "trustedadmin",

        "name" : "Phone"

     },

    "107716916" : {

        "Group" : "trustedadmin",

        "name" : "asdfg"

     },

    "36622746" : {

        "Group" : "trustedadmin",

        "name" : "spring"

     },

    "30866861" : {

        "Group" : "trustedadmin",

        "name" : "kmacg"

     },

    "57346" : {

        "Group" : "trustedadmin",

        "name" : "Mega"

     },

    "3811690" : {

        "Group" : "trustedadmin",

        "name" : "Deck"

     },

    "12034125" : {

        "Group" : "trustedadmin",

        "name" : "Wob"

     },

    "3119646" : {

        "Group" : "trustedadmin",

        "name" : "Tyr"

     },

    "50679424" : {

        "Group" : "trustedadmin",

        "name" : "BauerJankins"

     },

    "63581227" : {

        "Group" : "trustedadmin",

        "name" : "RolliePollie"

     },

    "133828502" : {

        "Group" : "trustedadmin",

        "name" : "caperp"

     },

    "84404580" : {

        "Group" : "trustedadmin",

        "name" : "Keats"

     },

    "83750404" : {

        "Group" : "trustedadmin",

        "name" : "101"

     },

    "49650612" : {

        "Group" : "trustedadmin",

        "name" : "CrazyCat"

     },

    "4378837" : {

        "Group" : "trustedadmin",

        "name" : "Gung-Ho"

     },

    "37617670" : {

        "Group" : "trustedadmin",

        "name" : "carnage"

     },

    "24767946" : {

        "Group" : "trustedadmin",

        "name" : "Paddy"

     },

    "1477865" : {

        "Group" : "trustedadmin",

        "name" : "Mstkid"

     },

     "3393030" : {

        "Group" : "trustedadmin",

        "name" : "Sep"

     },

     "818729" : {

        "Group" : "trustedadmin",

        "name" : "DJA"

     },

    "194971" : {

        "Group" : "trustedadmin",

        "name" : "IzO"

     },

    "10837467" : {

        "Group" : "trustedadmin",

        "name" : "Barns"

     },

    "302984041" : {

        "Group" : "trustedadmin",

        "name" : "Marshmellow"

     },

    "144869096" : {

        "Group" : "trustedadmin",

        "name" : "DoggO"

     }   

  }

}

 

 

Shine Base config: via “shine\plugins\BaseCommands.json”

These are very fundamental values you shouldn’t change the Move, Send or Tickrates.

Friendly fire must be configured here!

{

   "AllTalk": false,

   "AllTalkLocal": false,

   "AllTalkPreGame": false,

   "AllTalkSpectator": false,

   "BWLimit": 100,

   "CommanderBotVoteDelayInSeconds": 300,

   "DisableLuaRun": false,

   "EjectVotesNeeded": 0.5,

   "FriendlyFire": true,

   "FriendlyFirePreGame": true,

   "FriendlyFireScale": 0.33,

   "GaggedPlayers": [],

   "Interp": 100,

   "MoveRate": 26,

   "SendRate": 20,

   "TickRate": 30,

   "VoteSettings": {

       "VoteKickPlayer": {

           "AFKTimeInSeconds": 60,

           "ConsiderAFKPlayersInVotes": true

       }

   },

   "__Version": "1.3"

}

 

Shine Epsilon Badge config via “shine\plugins\EpsilonBadges.json” :

This should be configured to show NSL team badges.

{

   "Debug": false,

   "ENSLTeams": true,

   "ENSLTeamsRow": 1,

   "Flags": false,

   "FlagsRow": 2,

   "SteamBadges": true,

   "SteamBadgesRow": 5,

   "__Version": "1.5"

}

 

Additional notes:

If your server cannot maintain a stable 30 Tickrate while idle then the Windows timer resolution might be the cause, get srcdsfpsboost.exe.

See also: http://wiki.unknownworlds.com/ns2/Server_Maintenance_Manual#High_Resolution_Timer



If you came this Far your Server should be working fine (might need multiple restarts till it works) and you should be done.

 

 

THANK YOU ALOT BARNS and everyone else with input for helping on this TUTORIAL.

Mega on 14 May 18 00:45

Comments

1942

Blank Mega | pubstars

In case something is wrong about this tutorial provide feedback here trough the Google docs suggestion function:

https://docs.google.com/document/d/1djfZ6oeTI36AA0iCyXSwxZFovExh7RT2Ix7TTR5B4S4/edit

14 May 2018, 00:47

New Comment
Please log in or register to post comments.