This repository was archived by the owner on Jun 14, 2018. It is now read-only.

Repository files navigation

NS2+ has moved, and now maintained at NS2CDT/NS2Plus. Please go there to report issues or make pull requests.


NS2+

This Natural Selection 2 mod aims to improve, fix and expand the game in order to bring players a better experience. It contains extra customization options and quality of life improvements. This mod needs to be installed on the server.

You can check some of the recommended settings here.

Latest changes

  • 7/4/2018

    • Fixed a script error that could occur opening the ns2+options in-game
    • Fixed that predict conflicted with the weapon slot mode of the alien ability select option.
  • 4/6/2018

    • Replaced all Elixer methods with the new DebugUltility methods
    • Added an option to choose how to select alien abilities. This allows to select metabolize to be selected as weapon once again.
      • Todo:
        • I'm planning to expand this feature to support all abilities and pure key bound ability activation.
        • Additionally currently selecting metabolize has a short delay due to the way the weapon select is handled at the server side.
  • 28/3/2018

    • Fixed that the hive skill graph uses the skill maximum as initial minimum
    • Fixed that spectators were considered as alien players at the beginning of a round by the hive skill graph

Server settings

Server operators can adjust some features for NS2+ through the console (typing "sv_plus" in console), or change them in the NS2PlusServerSettings.json file located in the server config folder.

  • Enable/Disable client features

    • allow_ambient: Enables or disables the ability to disable map ambient sounds for clients.
    • allow_mapparticles: Enables or disables the ability to disable the map particles for clients.
    • allow_nsllights: Enables or disables the ability to use the NSL lights for clients.
    • allow_deathstats: Enables or disables the display of stats when players die.
    • allow_drawviewmodel: Enables or disables the ability to hide player models. Disabled by default.
  • Server features

    • autodisplayendstats: Enables or disables the end game stats displaying automatically upon game end.
    • endstatsteambreakdown: Enables or disables the end game stats displaying the full team breakdown. This is the table with kills, deaths, accuracy, etc.
    • modupdater: Enables or disables the mod update checker. This will notify players that mods running on the server have been updated during the round and that new players cannot join until the map is changed. If the server is using a mod backup server it will display a different notification.
    • modupdatercheckinterval: Sets the update check interval for the mod updater (in minutes).
    • modupdaterreminderinterval: Sets the time between reminders when an update has been found. Set to 0 to disable (only shows once).
    • showavgteamskill: Shows the average team skill at the top of the scoreboard for clients.
    • showplayerskill: Shows each player's Hive skill on the scoreboard before the game starts.
    • savestats: Saves the last round stats in the NS2Plus\Stats\ folder in your config path in json format. Each round played will be saved in a separate file. The file name for each round is the epoch time at round end. Disabled by default.

Stats format

For the modders or people interested in making use of the stats gathered by NS2+, they can either call CHUDGetLastRoundStats() after the round has ended (it updates the data on NS2Gamerules:EndGame()), or use the "savestats" server option, which will give them access to the tables that NS2+ uses to store the info during the round that gets sent to the players at the end of the game.

Locations

This table will store an array with the location names, the index of each entry will be used in the other tables to refer to each location in order to save some space.

For example in "Locations":["North Tech","South Tech"], North Tech would be referred as 1, and South Tech as 2.

ServerInfo

FieldDescription
slotsNumber of slots for this server.
modsTable that contains the modId and name for each of the mods active in this server.
buildNumberNS2 build number for this round.
rookieOnlyShows if the server is rookie only or not.
ipServer IP.
portServer port.
nameServer name.

RoundInfo

FieldDescription
roundDateEpoch time for the round.
winningTeamTeam that won the game (0 = Draw, 1 = Marines, 2 = Aliens).
roundLengthRound length, in seconds.
tournamentModeWill show if the game had tournament mode enabled (true/false).
mapNameName of the map played.
startingLocationsTable with the starting locations for each team, (1 = Marines, 2 = Aliens). It uses the location name index from the Locations table.
maxPlayers1The maximum amount of players the marine team had during the round.
maxPlayers2The maximum amount of players the alien team had during the round.
minimapExtentsTable with the minimap extents to map coordinates to the overview. Contains "origin" and "scale".

Research

This table contains all the researches done during the game.

FieldDescription
teamNumberTeam that owns the research.
gameTimeTime when this research completed (in seconds).
researchIdName of the tech researched.

Buildings

Here we can find building completions, deaths and recycles during the games. If built = true and destroyed = false, it means the building finished construction. When a building is recycled, the destroyed field will also be true.

FieldDescription
teamNumberTeam that owns the building.
gameTimeTime when this building action completed (in seconds).
builtIf the building was completely built when this happened.
recycledThe building was recycled.
destroyedThe building was destroyed.
techIdName of the building.
biomass(Optional) This will only show up when a Hive dies to be able to track how much biomass was lost.

PlayerStats

The first field in this table is the SteamID for each recorded player in the game. Inside each table, you will find tables for each team that the player played in (1 = Marines, 2 = Aliens), each of these team tables has these fields:

FieldDescription
killsNumber of kills.
deathsNumber of deaths.
assistsNumber of assists.
scorePlayer score for the round.
timeBuildingTime that the player has spent building during the round, in seconds.
hitsNumber of attacks that hit (this includes Onos hits).
onosHitsNumber of attacks that hit an Onos.
missesNumber of attacks that missed.
killstreakBest killstreak during the round.
isRookieShows if this player is a rookie (true/false).
timePlayedTime that the player was on this team for the round, in seconds.
commanderTimeTime that the player spent as commander for this team, in seconds.
playerDamagePlayer damage.
structureDamageStructure damage.

It also has a table ("weapons") for the weapons used by the player, which contains the following:

FieldDescription
teamNumberThe player's team (1 = Marines, 2 = Aliens).
hitsNumber of attacks that hit (this includes Onos hits).
onosHitsNumber of attacks that hit an Onos.
missesNumber of attacks that missed.
killsNumber of kills with this weapon.
playerDamagePlayer damage with this weapon.
structureDamageStructure damage with this weapon.

Also contains a status table ("status"), which shows the breakdown of classes for the player during the round:

FieldDescription
statusIdName of the class.
classTimeTime as this class, in seconds.

These are the rest of the fields inside each SteamID entry:

FieldDescription
playerNameThe player nickname ingame.
lastTeamLast team the player belonged to.
hiveSkillHive Skill for the player for this round.
isRookieShows if the player is a rookie.

MarineCommStats

The first field in this table is the SteamID for each recorded marine Commander in the game. Inside each table, you will find a table for each type of drop, as follows:

medpack

FieldDescription
hitsAccNumber of medpacks dropped directly on players. Used for the medpack accuracy.
picksNumber of medpacks picked up by players at any point.
missesNumber of medpacks that are never picked up.
refilledAmount of health given to players through medpacks.

ammopack

FieldDescription
picksNumber of ammopacks picked up by players.
missesNumber of ammopacks that are never picked up.
refilledAmount of bullets given to players through ammopacks.

catpack

FieldDescription
picksNumber of catpacks picked up by players.
missesNumber of catpacks that are never picked up.

KillFeed

Some fields will be null sometimes like in Suicides or death by Natural Causes or killing bots (they don't have SteamIDs).

FieldDescription
killerTeamNumberTeam that got awarded this kill (1 = Marines, 2 = Aliens).
killerWeaponWeapon used for the kill. Will be "None" for Natural Causes/Suicide.
killerClassThe killer's class.
killerPositionMap coordinates for the killer's position.
killerLocationLocation name index for the killer's position.
doerPositionMap coordinates for the killer entity position (grenades/turrets/hydras, etc).
doerLocationLocation name index for the killer entity position (grenades/turrets/hydras, etc).
victimClassThe victim's class.
victimPositionMap coordinates for the victim's position.
victimLocationLocation name index for the victim's position.
gameTimeGame time when this happened (in seconds).

Credits/Thanks to

Past NS2+ features now included in vanilla NS2:

  • [295] Ragdolls dissolve instantly.
  • [286] The server browser highlights ranked servers.
  • [286] The server browser shows the total number of servers available as well as the total number that pass your filter settings.
  • [286] Resource nodes and Tech Points are highlighted on the minimap.
  • [276] Added extra bindings for voiceover options: "Weld me", "Follow me", etc.
  • [276] Dropped weapon expire times now are displayed for the commander.
  • [273] You can click on the scoreboard to check a player's Steam/NS2 profile.
  • [273] Scoreboard displays if someone is your steam friend.
  • [273] You can mute voice/text independently and it's persistent across map changes up to 6 hours.
  • [273] The scoreboard now truncates player names if they overlap with the rest of the elements.
  • [272] Modified vanilla scoreboard to make it usable at low resolutions. It will automatically scroll to your position if you are in RR or in a team. You can use the mousewheel, home/end/pgup/pgdn or click and drag to scroll.
  • [272] Scoreboard shows the Commander background in yellow instead of the name, so you can identify rookie players that are commanding.
  • [272] Medpacks, ammo, and catpacks can be picked up from any height difference.
  • [270] Scoreboard displays the number of connecting players.
  • [270] In the voice request menu you can now select items by moving the mouse past them (similar to NS1).
  • [270] Building range circles now use decals instead of models.
  • [270] Added an option in the sound tab to continue recording after the microphone button has been released for a fraction of a second to help ensure your last word isn't cut off (defaults to 150ms).
  • [268] Marine weapons now reload automatically upon firing the last bullet.
  • [268] Commanders can marquee select enemy units when there's no friendly units in the marquee.
  • [268] Grenade collision radius is more representative of the visual model (proximity detonation radius is unchanged).
  • [268] You can click on the player frames on the sides to autofollow a player. Click again to stop following.
  • [268] Shotgun lights in the model reflect ammo count.
  • [268] Weapon displays flash red when low on ammo.
  • [268] Added unsocketed and blueprint states for Power Nodes in the minimap. You can now see all Power Node states.
  • [268] Alien Commanders can see the energy for their teammates.
  • [268] High contrast colors for health/armor in Insight spectator.
  • [267] Marine players and the Marine Commander can see the time until the weapon disappears when it's been dropped.
  • [267] Make the outline color yellow for parasited players and purple when they have received a catpack in overhead.
  • [267] Added bonewall icon to map.
  • [267] Items that disappear after some time on the ground now display an expiration bar for all Marine players (including the Marine Commander).
  • [267] Server-confirmed hitsounds.
  • [267] The armory and infantry portal arms don’t block bullets anymore.
  • [267] Lerks can see damage numbers for the poison bite's damage over time.
  • [267] When a structure bleeds out the killfeed will show the killer as whoever hit it last.
  • [267] You can see the class of your evolving teammates.
  • [267] The kill feed highlights your player kills. Icons in the killfeed are properly scaled too.
  • [267] Dropped weapons outlines are color coded for improved readability.
  • [267] Infantry Portals will show the name and progress of the player that is about to spawn.
  • [267] Evolving alien players will show their evolution progress for their teammates.
  • [267] Scoreboard keeps the time of the previous round until the next one starts.
  • [267] Dropped marine weapons are outlined for the marine commander and spectators.
  • [267] Spectators can see deployed mines highlighted with a blue outline, and the outline will turn yellow if the mine has been parasited.
  • [267] Added slight impulse to dropped weapons.
  • [267] Enabled weapon specific ammo models for dropped weapons.
  • [266] Marine commanders can see the marine ammo bar with the color that's used in the overview spectator mode to easily identify the weapon the marine is carrying.
  • [266] Commanders can see building ranges before dropping them.
  • [266] Adds player upgrades to the Insight player frames.
  • [266] Adds Lerk deaths to Insight alerts.
  • [266] Alltalk displays the correct team color/background for voice chat.
  • [266] Mods list is sorted automatically as Active > Subscribed > Alphabetically. You can also sort by column.
  • [266] Connections between Phase Gates or Gorge Tunnels are now colored depending on the team. If there’s more than 2 PGs it will switch to lines with animated arrows.
  • [265] Parasited players display their name yellow for teammates and spectators.

Past NS2+ fixes now included in vanilla NS2:

  • [274] Fixed scoreboard hiding the GUIHoverMenu every frame as long as the scoreboard wasn't up.
  • [274] Fixed jetpacks left behind by dead marines not dissolving with the body on death.
  • [274] Fixed Medpacks/Ammo/Catpacks not showing the pickup icons.
  • [272] Fixed server crash related to picking up a jetpack and a weapon at the same time.
  • [272] Fixed kill feed being obscured by the death screen fade to black.
  • [270] Fixed players having voice communication cut off while entering or exiting commander mode.
  • [270] Fixed occasional error when attempting to enter the Mods menu.
  • [268] Fixed bug that made trigger volumes bigger than their representation in the editor. This affected some map locations (power node issues).
  • [268] Fixed bug where the Commander would log out attacking.
  • [267] Made location text for marines left aligned so long location names can fit in the UI
  • [267] Fixed Bonewall not having pre-drop range.
  • [267] Fixed bug where Shotguns and Exo Minigun didn't shoot through soft targets.
  • [267] Fixed drifters trying to build structures they can't and fake-building them forever.
  • [266] Fixed sentries not being able to be dropped until the first sentry battery is finished.
  • [266] Fixed scoreboard not showing Spectators to players on teams.
  • [266] Fixed commander selection bug that made buildings selected with hotgroups not respond properly sometimes.
  • [266] Fixed lights staying red if the power node was under attack (infestation).
  • [266] Fixed bug where damage numbers wouldn't show the damage done in the killing blow.
  • [265] Fixed skulk jump sound loudness (50% reduced).
  • [265] Fixed skulk growl sound when walking.
  • [265] Fixed inactive/unbuilt structures not blinking red when under attack.
  • [265] Fixed alien structures not blinking red when uncysted.

Copyright 2017 - Unknown Worlds Entertainment. All rights reserved.

About

NS2+ mod for Natural Selection 2

Resources

Stars

10 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
This repository was archived by the owner on Jun 14, 2018. It is now read-only.

Repository files navigation

NS2+ has moved, and now maintained at NS2CDT/NS2Plus. Please go there to report issues or make pull requests.


NS2+

This Natural Selection 2 mod aims to improve, fix and expand the game in order to bring players a better experience. It contains extra customization options and quality of life improvements. This mod needs to be installed on the server.

You can check some of the recommended settings here.

Latest changes

  • 7/4/2018

    • Fixed a script error that could occur opening the ns2+options in-game
    • Fixed that predict conflicted with the weapon slot mode of the alien ability select option.
  • 4/6/2018

    • Replaced all Elixer methods with the new DebugUltility methods
    • Added an option to choose how to select alien abilities. This allows to select metabolize to be selected as weapon once again.
      • Todo:
        • I'm planning to expand this feature to support all abilities and pure key bound ability activation.
        • Additionally currently selecting metabolize has a short delay due to the way the weapon select is handled at the server side.
  • 28/3/2018

    • Fixed that the hive skill graph uses the skill maximum as initial minimum
    • Fixed that spectators were considered as alien players at the beginning of a round by the hive skill graph

Server settings

Server operators can adjust some features for NS2+ through the console (typing "sv_plus" in console), or change them in the NS2PlusServerSettings.json file located in the server config folder.

  • Enable/Disable client features

    • allow_ambient: Enables or disables the ability to disable map ambient sounds for clients.
    • allow_mapparticles: Enables or disables the ability to disable the map particles for clients.
    • allow_nsllights: Enables or disables the ability to use the NSL lights for clients.
    • allow_deathstats: Enables or disables the display of stats when players die.
    • allow_drawviewmodel: Enables or disables the ability to hide player models. Disabled by default.
  • Server features

    • autodisplayendstats: Enables or disables the end game stats displaying automatically upon game end.
    • endstatsteambreakdown: Enables or disables the end game stats displaying the full team breakdown. This is the table with kills, deaths, accuracy, etc.
    • modupdater: Enables or disables the mod update checker. This will notify players that mods running on the server have been updated during the round and that new players cannot join until the map is changed. If the server is using a mod backup server it will display a different notification.
    • modupdatercheckinterval: Sets the update check interval for the mod updater (in minutes).
    • modupdaterreminderinterval: Sets the time between reminders when an update has been found. Set to 0 to disable (only shows once).
    • showavgteamskill: Shows the average team skill at the top of the scoreboard for clients.
    • showplayerskill: Shows each player's Hive skill on the scoreboard before the game starts.
    • savestats: Saves the last round stats in the NS2Plus\Stats\ folder in your config path in json format. Each round played will be saved in a separate file. The file name for each round is the epoch time at round end. Disabled by default.

Stats format

For the modders or people interested in making use of the stats gathered by NS2+, they can either call CHUDGetLastRoundStats() after the round has ended (it updates the data on NS2Gamerules:EndGame()), or use the "savestats" server option, which will give them access to the tables that NS2+ uses to store the info during the round that gets sent to the players at the end of the game.

Locations

This table will store an array with the location names, the index of each entry will be used in the other tables to refer to each location in order to save some space.

For example in "Locations":["North Tech","South Tech"], North Tech would be referred as 1, and South Tech as 2.

ServerInfo

FieldDescription
slotsNumber of slots for this server.
modsTable that contains the modId and name for each of the mods active in this server.
buildNumberNS2 build number for this round.
rookieOnlyShows if the server is rookie only or not.
ipServer IP.
portServer port.
nameServer name.

RoundInfo

FieldDescription
roundDateEpoch time for the round.
winningTeamTeam that won the game (0 = Draw, 1 = Marines, 2 = Aliens).
roundLengthRound length, in seconds.
tournamentModeWill show if the game had tournament mode enabled (true/false).
mapNameName of the map played.
startingLocationsTable with the starting locations for each team, (1 = Marines, 2 = Aliens). It uses the location name index from the Locations table.
maxPlayers1The maximum amount of players the marine team had during the round.
maxPlayers2The maximum amount of players the alien team had during the round.
minimapExtentsTable with the minimap extents to map coordinates to the overview. Contains "origin" and "scale".

Research

This table contains all the researches done during the game.

FieldDescription
teamNumberTeam that owns the research.
gameTimeTime when this research completed (in seconds).
researchIdName of the tech researched.

Buildings

Here we can find building completions, deaths and recycles during the games. If built = true and destroyed = false, it means the building finished construction. When a building is recycled, the destroyed field will also be true.

FieldDescription
teamNumberTeam that owns the building.
gameTimeTime when this building action completed (in seconds).
builtIf the building was completely built when this happened.
recycledThe building was recycled.
destroyedThe building was destroyed.
techIdName of the building.
biomass(Optional) This will only show up when a Hive dies to be able to track how much biomass was lost.

PlayerStats

The first field in this table is the SteamID for each recorded player in the game. Inside each table, you will find tables for each team that the player played in (1 = Marines, 2 = Aliens), each of these team tables has these fields:

FieldDescription
killsNumber of kills.
deathsNumber of deaths.
assistsNumber of assists.
scorePlayer score for the round.
timeBuildingTime that the player has spent building during the round, in seconds.
hitsNumber of attacks that hit (this includes Onos hits).
onosHitsNumber of attacks that hit an Onos.
missesNumber of attacks that missed.
killstreakBest killstreak during the round.
isRookieShows if this player is a rookie (true/false).
timePlayedTime that the player was on this team for the round, in seconds.
commanderTimeTime that the player spent as commander for this team, in seconds.
playerDamagePlayer damage.
structureDamageStructure damage.

It also has a table ("weapons") for the weapons used by the player, which contains the following:

FieldDescription
teamNumberThe player's team (1 = Marines, 2 = Aliens).
hitsNumber of attacks that hit (this includes Onos hits).
onosHitsNumber of attacks that hit an Onos.
missesNumber of attacks that missed.
killsNumber of kills with this weapon.
playerDamagePlayer damage with this weapon.
structureDamageStructure damage with this weapon.

Also contains a status table ("status"), which shows the breakdown of classes for the player during the round:

FieldDescription
statusIdName of the class.
classTimeTime as this class, in seconds.

These are the rest of the fields inside each SteamID entry:

FieldDescription
playerNameThe player nickname ingame.
lastTeamLast team the player belonged to.
hiveSkillHive Skill for the player for this round.
isRookieShows if the player is a rookie.

MarineCommStats

The first field in this table is the SteamID for each recorded marine Commander in the game. Inside each table, you will find a table for each type of drop, as follows:

medpack

FieldDescription
hitsAccNumber of medpacks dropped directly on players. Used for the medpack accuracy.
picksNumber of medpacks picked up by players at any point.
missesNumber of medpacks that are never picked up.
refilledAmount of health given to players through medpacks.

ammopack

FieldDescription
picksNumber of ammopacks picked up by players.
missesNumber of ammopacks that are never picked up.
refilledAmount of bullets given to players through ammopacks.

catpack

FieldDescription
picksNumber of catpacks picked up by players.
missesNumber of catpacks that are never picked up.

KillFeed

Some fields will be null sometimes like in Suicides or death by Natural Causes or killing bots (they don't have SteamIDs).

FieldDescription
killerTeamNumberTeam that got awarded this kill (1 = Marines, 2 = Aliens).
killerWeaponWeapon used for the kill. Will be "None" for Natural Causes/Suicide.
killerClassThe killer's class.
killerPositionMap coordinates for the killer's position.
killerLocationLocation name index for the killer's position.
doerPositionMap coordinates for the killer entity position (grenades/turrets/hydras, etc).
doerLocationLocation name index for the killer entity position (grenades/turrets/hydras, etc).
victimClassThe victim's class.
victimPositionMap coordinates for the victim's position.
victimLocationLocation name index for the victim's position.
gameTimeGame time when this happened (in seconds).

Credits/Thanks to

Past NS2+ features now included in vanilla NS2:

  • [295] Ragdolls dissolve instantly.
  • [286] The server browser highlights ranked servers.
  • [286] The server browser shows the total number of servers available as well as the total number that pass your filter settings.
  • [286] Resource nodes and Tech Points are highlighted on the minimap.
  • [276] Added extra bindings for voiceover options: "Weld me", "Follow me", etc.
  • [276] Dropped weapon expire times now are displayed for the commander.
  • [273] You can click on the scoreboard to check a player's Steam/NS2 profile.
  • [273] Scoreboard displays if someone is your steam friend.
  • [273] You can mute voice/text independently and it's persistent across map changes up to 6 hours.
  • [273] The scoreboard now truncates player names if they overlap with the rest of the elements.
  • [272] Modified vanilla scoreboard to make it usable at low resolutions. It will automatically scroll to your position if you are in RR or in a team. You can use the mousewheel, home/end/pgup/pgdn or click and drag to scroll.
  • [272] Scoreboard shows the Commander background in yellow instead of the name, so you can identify rookie players that are commanding.
  • [272] Medpacks, ammo, and catpacks can be picked up from any height difference.
  • [270] Scoreboard displays the number of connecting players.
  • [270] In the voice request menu you can now select items by moving the mouse past them (similar to NS1).
  • [270] Building range circles now use decals instead of models.
  • [270] Added an option in the sound tab to continue recording after the microphone button has been released for a fraction of a second to help ensure your last word isn't cut off (defaults to 150ms).
  • [268] Marine weapons now reload automatically upon firing the last bullet.
  • [268] Commanders can marquee select enemy units when there's no friendly units in the marquee.
  • [268] Grenade collision radius is more representative of the visual model (proximity detonation radius is unchanged).
  • [268] You can click on the player frames on the sides to autofollow a player. Click again to stop following.
  • [268] Shotgun lights in the model reflect ammo count.
  • [268] Weapon displays flash red when low on ammo.
  • [268] Added unsocketed and blueprint states for Power Nodes in the minimap. You can now see all Power Node states.
  • [268] Alien Commanders can see the energy for their teammates.
  • [268] High contrast colors for health/armor in Insight spectator.
  • [267] Marine players and the Marine Commander can see the time until the weapon disappears when it's been dropped.
  • [267] Make the outline color yellow for parasited players and purple when they have received a catpack in overhead.
  • [267] Added bonewall icon to map.
  • [267] Items that disappear after some time on the ground now display an expiration bar for all Marine players (including the Marine Commander).
  • [267] Server-confirmed hitsounds.
  • [267] The armory and infantry portal arms don’t block bullets anymore.
  • [267] Lerks can see damage numbers for the poison bite's damage over time.
  • [267] When a structure bleeds out the killfeed will show the killer as whoever hit it last.
  • [267] You can see the class of your evolving teammates.
  • [267] The kill feed highlights your player kills. Icons in the killfeed are properly scaled too.
  • [267] Dropped weapons outlines are color coded for improved readability.
  • [267] Infantry Portals will show the name and progress of the player that is about to spawn.
  • [267] Evolving alien players will show their evolution progress for their teammates.
  • [267] Scoreboard keeps the time of the previous round until the next one starts.
  • [267] Dropped marine weapons are outlined for the marine commander and spectators.
  • [267] Spectators can see deployed mines highlighted with a blue outline, and the outline will turn yellow if the mine has been parasited.
  • [267] Added slight impulse to dropped weapons.
  • [267] Enabled weapon specific ammo models for dropped weapons.
  • [266] Marine commanders can see the marine ammo bar with the color that's used in the overview spectator mode to easily identify the weapon the marine is carrying.
  • [266] Commanders can see building ranges before dropping them.
  • [266] Adds player upgrades to the Insight player frames.
  • [266] Adds Lerk deaths to Insight alerts.
  • [266] Alltalk displays the correct team color/background for voice chat.
  • [266] Mods list is sorted automatically as Active > Subscribed > Alphabetically. You can also sort by column.
  • [266] Connections between Phase Gates or Gorge Tunnels are now colored depending on the team. If there’s more than 2 PGs it will switch to lines with animated arrows.
  • [265] Parasited players display their name yellow for teammates and spectators.

Past NS2+ fixes now included in vanilla NS2:

  • [274] Fixed scoreboard hiding the GUIHoverMenu every frame as long as the scoreboard wasn't up.
  • [274] Fixed jetpacks left behind by dead marines not dissolving with the body on death.
  • [274] Fixed Medpacks/Ammo/Catpacks not showing the pickup icons.
  • [272] Fixed server crash related to picking up a jetpack and a weapon at the same time.
  • [272] Fixed kill feed being obscured by the death screen fade to black.
  • [270] Fixed players having voice communication cut off while entering or exiting commander mode.
  • [270] Fixed occasional error when attempting to enter the Mods menu.
  • [268] Fixed bug that made trigger volumes bigger than their representation in the editor. This affected some map locations (power node issues).
  • [268] Fixed bug where the Commander would log out attacking.
  • [267] Made location text for marines left aligned so long location names can fit in the UI
  • [267] Fixed Bonewall not having pre-drop range.
  • [267] Fixed bug where Shotguns and Exo Minigun didn't shoot through soft targets.
  • [267] Fixed drifters trying to build structures they can't and fake-building them forever.
  • [266] Fixed sentries not being able to be dropped until the first sentry battery is finished.
  • [266] Fixed scoreboard not showing Spectators to players on teams.
  • [266] Fixed commander selection bug that made buildings selected with hotgroups not respond properly sometimes.
  • [266] Fixed lights staying red if the power node was under attack (infestation).
  • [266] Fixed bug where damage numbers wouldn't show the damage done in the killing blow.
  • [265] Fixed skulk jump sound loudness (50% reduced).
  • [265] Fixed skulk growl sound when walking.
  • [265] Fixed inactive/unbuilt structures not blinking red when under attack.
  • [265] Fixed alien structures not blinking red when uncysted.

Copyright 2017 - Unknown Worlds Entertainment. All rights reserved.

About

NS2+ mod for Natural Selection 2

Resources

Stars

10 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Jun 14, 2018. It is now read-only.

Repository files navigation

NS2+ has moved, and now maintained at NS2CDT/NS2Plus. Please go there to report issues or make pull requests.


NS2+

This Natural Selection 2 mod aims to improve, fix and expand the game in order to bring players a better experience. It contains extra customization options and quality of life improvements. This mod needs to be installed on the server.

You can check some of the recommended settings here.

Latest changes

  • 7/4/2018

    • Fixed a script error that could occur opening the ns2+options in-game
    • Fixed that predict conflicted with the weapon slot mode of the alien ability select option.
  • 4/6/2018

    • Replaced all Elixer methods with the new DebugUltility methods
    • Added an option to choose how to select alien abilities. This allows to select metabolize to be selected as weapon once again.
      • Todo:
        • I'm planning to expand this feature to support all abilities and pure key bound ability activation.
        • Additionally currently selecting metabolize has a short delay due to the way the weapon select is handled at the server side.
  • 28/3/2018

    • Fixed that the hive skill graph uses the skill maximum as initial minimum
    • Fixed that spectators were considered as alien players at the beginning of a round by the hive skill graph

Server settings

Server operators can adjust some features for NS2+ through the console (typing "sv_plus" in console), or change them in the NS2PlusServerSettings.json file located in the server config folder.

  • Enable/Disable client features

    • allow_ambient: Enables or disables the ability to disable map ambient sounds for clients.
    • allow_mapparticles: Enables or disables the ability to disable the map particles for clients.
    • allow_nsllights: Enables or disables the ability to use the NSL lights for clients.
    • allow_deathstats: Enables or disables the display of stats when players die.
    • allow_drawviewmodel: Enables or disables the ability to hide player models. Disabled by default.
  • Server features

    • autodisplayendstats: Enables or disables the end game stats displaying automatically upon game end.
    • endstatsteambreakdown: Enables or disables the end game stats displaying the full team breakdown. This is the table with kills, deaths, accuracy, etc.
    • modupdater: Enables or disables the mod update checker. This will notify players that mods running on the server have been updated during the round and that new players cannot join until the map is changed. If the server is using a mod backup server it will display a different notification.
    • modupdatercheckinterval: Sets the update check interval for the mod updater (in minutes).
    • modupdaterreminderinterval: Sets the time between reminders when an update has been found. Set to 0 to disable (only shows once).
    • showavgteamskill: Shows the average team skill at the top of the scoreboard for clients.
    • showplayerskill: Shows each player's Hive skill on the scoreboard before the game starts.
    • savestats: Saves the last round stats in the NS2Plus\Stats\ folder in your config path in json format. Each round played will be saved in a separate file. The file name for each round is the epoch time at round end. Disabled by default.

Stats format

For the modders or people interested in making use of the stats gathered by NS2+, they can either call CHUDGetLastRoundStats() after the round has ended (it updates the data on NS2Gamerules:EndGame()), or use the "savestats" server option, which will give them access to the tables that NS2+ uses to store the info during the round that gets sent to the players at the end of the game.

Locations

This table will store an array with the location names, the index of each entry will be used in the other tables to refer to each location in order to save some space.

For example in "Locations":["North Tech","South Tech"], North Tech would be referred as 1, and South Tech as 2.

ServerInfo

FieldDescription
slotsNumber of slots for this server.
modsTable that contains the modId and name for each of the mods active in this server.
buildNumberNS2 build number for this round.
rookieOnlyShows if the server is rookie only or not.
ipServer IP.
portServer port.
nameServer name.

RoundInfo

FieldDescription
roundDateEpoch time for the round.
winningTeamTeam that won the game (0 = Draw, 1 = Marines, 2 = Aliens).
roundLengthRound length, in seconds.
tournamentModeWill show if the game had tournament mode enabled (true/false).
mapNameName of the map played.
startingLocationsTable with the starting locations for each team, (1 = Marines, 2 = Aliens). It uses the location name index from the Locations table.
maxPlayers1The maximum amount of players the marine team had during the round.
maxPlayers2The maximum amount of players the alien team had during the round.
minimapExtentsTable with the minimap extents to map coordinates to the overview. Contains "origin" and "scale".

Research

This table contains all the researches done during the game.

FieldDescription
teamNumberTeam that owns the research.
gameTimeTime when this research completed (in seconds).
researchIdName of the tech researched.

Buildings

Here we can find building completions, deaths and recycles during the games. If built = true and destroyed = false, it means the building finished construction. When a building is recycled, the destroyed field will also be true.

FieldDescription
teamNumberTeam that owns the building.
gameTimeTime when this building action completed (in seconds).
builtIf the building was completely built when this happened.
recycledThe building was recycled.
destroyedThe building was destroyed.
techIdName of the building.
biomass(Optional) This will only show up when a Hive dies to be able to track how much biomass was lost.

PlayerStats

The first field in this table is the SteamID for each recorded player in the game. Inside each table, you will find tables for each team that the player played in (1 = Marines, 2 = Aliens), each of these team tables has these fields:

FieldDescription
killsNumber of kills.
deathsNumber of deaths.
assistsNumber of assists.
scorePlayer score for the round.
timeBuildingTime that the player has spent building during the round, in seconds.
hitsNumber of attacks that hit (this includes Onos hits).
onosHitsNumber of attacks that hit an Onos.
missesNumber of attacks that missed.
killstreakBest killstreak during the round.
isRookieShows if this player is a rookie (true/false).
timePlayedTime that the player was on this team for the round, in seconds.
commanderTimeTime that the player spent as commander for this team, in seconds.
playerDamagePlayer damage.
structureDamageStructure damage.

It also has a table ("weapons") for the weapons used by the player, which contains the following:

FieldDescription
teamNumberThe player's team (1 = Marines, 2 = Aliens).
hitsNumber of attacks that hit (this includes Onos hits).
onosHitsNumber of attacks that hit an Onos.
missesNumber of attacks that missed.
killsNumber of kills with this weapon.
playerDamagePlayer damage with this weapon.
structureDamageStructure damage with this weapon.

Also contains a status table ("status"), which shows the breakdown of classes for the player during the round:

FieldDescription
statusIdName of the class.
classTimeTime as this class, in seconds.

These are the rest of the fields inside each SteamID entry:

FieldDescription
playerNameThe player nickname ingame.
lastTeamLast team the player belonged to.
hiveSkillHive Skill for the player for this round.
isRookieShows if the player is a rookie.

MarineCommStats

The first field in this table is the SteamID for each recorded marine Commander in the game. Inside each table, you will find a table for each type of drop, as follows:

medpack

FieldDescription
hitsAccNumber of medpacks dropped directly on players. Used for the medpack accuracy.
picksNumber of medpacks picked up by players at any point.
missesNumber of medpacks that are never picked up.
refilledAmount of health given to players through medpacks.

ammopack

FieldDescription
picksNumber of ammopacks picked up by players.
missesNumber of ammopacks that are never picked up.
refilledAmount of bullets given to players through ammopacks.

catpack

FieldDescription
picksNumber of catpacks picked up by players.
missesNumber of catpacks that are never picked up.

KillFeed

Some fields will be null sometimes like in Suicides or death by Natural Causes or killing bots (they don't have SteamIDs).

FieldDescription
killerTeamNumberTeam that got awarded this kill (1 = Marines, 2 = Aliens).
killerWeaponWeapon used for the kill. Will be "None" for Natural Causes/Suicide.
killerClassThe killer's class.
killerPositionMap coordinates for the killer's position.
killerLocationLocation name index for the killer's position.
doerPositionMap coordinates for the killer entity position (grenades/turrets/hydras, etc).
doerLocationLocation name index for the killer entity position (grenades/turrets/hydras, etc).
victimClassThe victim's class.
victimPositionMap coordinates for the victim's position.
victimLocationLocation name index for the victim's position.
gameTimeGame time when this happened (in seconds).

Credits/Thanks to

Past NS2+ features now included in vanilla NS2:

  • [295] Ragdolls dissolve instantly.
  • [286] The server browser highlights ranked servers.
  • [286] The server browser shows the total number of servers available as well as the total number that pass your filter settings.
  • [286] Resource nodes and Tech Points are highlighted on the minimap.
  • [276] Added extra bindings for voiceover options: "Weld me", "Follow me", etc.
  • [276] Dropped weapon expire times now are displayed for the commander.
  • [273] You can click on the scoreboard to check a player's Steam/NS2 profile.
  • [273] Scoreboard displays if someone is your steam friend.
  • [273] You can mute voice/text independently and it's persistent across map changes up to 6 hours.
  • [273] The scoreboard now truncates player names if they overlap with the rest of the elements.
  • [272] Modified vanilla scoreboard to make it usable at low resolutions. It will automatically scroll to your position if you are in RR or in a team. You can use the mousewheel, home/end/pgup/pgdn or click and drag to scroll.
  • [272] Scoreboard shows the Commander background in yellow instead of the name, so you can identify rookie players that are commanding.
  • [272] Medpacks, ammo, and catpacks can be picked up from any height difference.
  • [270] Scoreboard displays the number of connecting players.
  • [270] In the voice request menu you can now select items by moving the mouse past them (similar to NS1).
  • [270] Building range circles now use decals instead of models.
  • [270] Added an option in the sound tab to continue recording after the microphone button has been released for a fraction of a second to help ensure your last word isn't cut off (defaults to 150ms).
  • [268] Marine weapons now reload automatically upon firing the last bullet.
  • [268] Commanders can marquee select enemy units when there's no friendly units in the marquee.
  • [268] Grenade collision radius is more representative of the visual model (proximity detonation radius is unchanged).
  • [268] You can click on the player frames on the sides to autofollow a player. Click again to stop following.
  • [268] Shotgun lights in the model reflect ammo count.
  • [268] Weapon displays flash red when low on ammo.
  • [268] Added unsocketed and blueprint states for Power Nodes in the minimap. You can now see all Power Node states.
  • [268] Alien Commanders can see the energy for their teammates.
  • [268] High contrast colors for health/armor in Insight spectator.
  • [267] Marine players and the Marine Commander can see the time until the weapon disappears when it's been dropped.
  • [267] Make the outline color yellow for parasited players and purple when they have received a catpack in overhead.
  • [267] Added bonewall icon to map.
  • [267] Items that disappear after some time on the ground now display an expiration bar for all Marine players (including the Marine Commander).
  • [267] Server-confirmed hitsounds.
  • [267] The armory and infantry portal arms don’t block bullets anymore.
  • [267] Lerks can see damage numbers for the poison bite's damage over time.
  • [267] When a structure bleeds out the killfeed will show the killer as whoever hit it last.
  • [267] You can see the class of your evolving teammates.
  • [267] The kill feed highlights your player kills. Icons in the killfeed are properly scaled too.
  • [267] Dropped weapons outlines are color coded for improved readability.
  • [267] Infantry Portals will show the name and progress of the player that is about to spawn.
  • [267] Evolving alien players will show their evolution progress for their teammates.
  • [267] Scoreboard keeps the time of the previous round until the next one starts.
  • [267] Dropped marine weapons are outlined for the marine commander and spectators.
  • [267] Spectators can see deployed mines highlighted with a blue outline, and the outline will turn yellow if the mine has been parasited.
  • [267] Added slight impulse to dropped weapons.
  • [267] Enabled weapon specific ammo models for dropped weapons.
  • [266] Marine commanders can see the marine ammo bar with the color that's used in the overview spectator mode to easily identify the weapon the marine is carrying.
  • [266] Commanders can see building ranges before dropping them.
  • [266] Adds player upgrades to the Insight player frames.
  • [266] Adds Lerk deaths to Insight alerts.
  • [266] Alltalk displays the correct team color/background for voice chat.
  • [266] Mods list is sorted automatically as Active > Subscribed > Alphabetically. You can also sort by column.
  • [266] Connections between Phase Gates or Gorge Tunnels are now colored depending on the team. If there’s more than 2 PGs it will switch to lines with animated arrows.
  • [265] Parasited players display their name yellow for teammates and spectators.

Past NS2+ fixes now included in vanilla NS2:

  • [274] Fixed scoreboard hiding the GUIHoverMenu every frame as long as the scoreboard wasn't up.
  • [274] Fixed jetpacks left behind by dead marines not dissolving with the body on death.
  • [274] Fixed Medpacks/Ammo/Catpacks not showing the pickup icons.
  • [272] Fixed server crash related to picking up a jetpack and a weapon at the same time.
  • [272] Fixed kill feed being obscured by the death screen fade to black.
  • [270] Fixed players having voice communication cut off while entering or exiting commander mode.
  • [270] Fixed occasional error when attempting to enter the Mods menu.
  • [268] Fixed bug that made trigger volumes bigger than their representation in the editor. This affected some map locations (power node issues).
  • [268] Fixed bug where the Commander would log out attacking.
  • [267] Made location text for marines left aligned so long location names can fit in the UI
  • [267] Fixed Bonewall not having pre-drop range.
  • [267] Fixed bug where Shotguns and Exo Minigun didn't shoot through soft targets.
  • [267] Fixed drifters trying to build structures they can't and fake-building them forever.
  • [266] Fixed sentries not being able to be dropped until the first sentry battery is finished.
  • [266] Fixed scoreboard not showing Spectators to players on teams.
  • [266] Fixed commander selection bug that made buildings selected with hotgroups not respond properly sometimes.
  • [266] Fixed lights staying red if the power node was under attack (infestation).
  • [266] Fixed bug where damage numbers wouldn't show the damage done in the killing blow.
  • [265] Fixed skulk jump sound loudness (50% reduced).
  • [265] Fixed skulk growl sound when walking.
  • [265] Fixed inactive/unbuilt structures not blinking red when under attack.
  • [265] Fixed alien structures not blinking red when uncysted.

Copyright 2017 - Unknown Worlds Entertainment. All rights reserved.

About

NS2+ mod for Natural Selection 2

Resources

Stars

10 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Jun 14, 2018. It is now read-only.

Repository files navigation

NS2+ has moved, and now maintained at NS2CDT/NS2Plus. Please go there to report issues or make pull requests.


NS2+

This Natural Selection 2 mod aims to improve, fix and expand the game in order to bring players a better experience. It contains extra customization options and quality of life improvements. This mod needs to be installed on the server.

You can check some of the recommended settings here.

Latest changes

  • 7/4/2018

    • Fixed a script error that could occur opening the ns2+options in-game
    • Fixed that predict conflicted with the weapon slot mode of the alien ability select option.
  • 4/6/2018

    • Replaced all Elixer methods with the new DebugUltility methods
    • Added an option to choose how to select alien abilities. This allows to select metabolize to be selected as weapon once again.
      • Todo:
        • I'm planning to expand this feature to support all abilities and pure key bound ability activation.
        • Additionally currently selecting metabolize has a short delay due to the way the weapon select is handled at the server side.
  • 28/3/2018

    • Fixed that the hive skill graph uses the skill maximum as initial minimum
    • Fixed that spectators were considered as alien players at the beginning of a round by the hive skill graph

Server settings

Server operators can adjust some features for NS2+ through the console (typing "sv_plus" in console), or change them in the NS2PlusServerSettings.json file located in the server config folder.

  • Enable/Disable client features

    • allow_ambient: Enables or disables the ability to disable map ambient sounds for clients.
    • allow_mapparticles: Enables or disables the ability to disable the map particles for clients.
    • allow_nsllights: Enables or disables the ability to use the NSL lights for clients.
    • allow_deathstats: Enables or disables the display of stats when players die.
    • allow_drawviewmodel: Enables or disables the ability to hide player models. Disabled by default.
  • Server features

    • autodisplayendstats: Enables or disables the end game stats displaying automatically upon game end.
    • endstatsteambreakdown: Enables or disables the end game stats displaying the full team breakdown. This is the table with kills, deaths, accuracy, etc.
    • modupdater: Enables or disables the mod update checker. This will notify players that mods running on the server have been updated during the round and that new players cannot join until the map is changed. If the server is using a mod backup server it will display a different notification.
    • modupdatercheckinterval: Sets the update check interval for the mod updater (in minutes).
    • modupdaterreminderinterval: Sets the time between reminders when an update has been found. Set to 0 to disable (only shows once).
    • showavgteamskill: Shows the average team skill at the top of the scoreboard for clients.
    • showplayerskill: Shows each player's Hive skill on the scoreboard before the game starts.
    • savestats: Saves the last round stats in the NS2Plus\Stats\ folder in your config path in json format. Each round played will be saved in a separate file. The file name for each round is the epoch time at round end. Disabled by default.

Stats format

For the modders or people interested in making use of the stats gathered by NS2+, they can either call CHUDGetLastRoundStats() after the round has ended (it updates the data on NS2Gamerules:EndGame()), or use the "savestats" server option, which will give them access to the tables that NS2+ uses to store the info during the round that gets sent to the players at the end of the game.

Locations

This table will store an array with the location names, the index of each entry will be used in the other tables to refer to each location in order to save some space.

For example in "Locations":["North Tech","South Tech"], North Tech would be referred as 1, and South Tech as 2.

ServerInfo

FieldDescription
slotsNumber of slots for this server.
modsTable that contains the modId and name for each of the mods active in this server.
buildNumberNS2 build number for this round.
rookieOnlyShows if the server is rookie only or not.
ipServer IP.
portServer port.
nameServer name.

RoundInfo

FieldDescription
roundDateEpoch time for the round.
winningTeamTeam that won the game (0 = Draw, 1 = Marines, 2 = Aliens).
roundLengthRound length, in seconds.
tournamentModeWill show if the game had tournament mode enabled (true/false).
mapNameName of the map played.
startingLocationsTable with the starting locations for each team, (1 = Marines, 2 = Aliens). It uses the location name index from the Locations table.
maxPlayers1The maximum amount of players the marine team had during the round.
maxPlayers2The maximum amount of players the alien team had during the round.
minimapExtentsTable with the minimap extents to map coordinates to the overview. Contains "origin" and "scale".

Research

This table contains all the researches done during the game.

FieldDescription
teamNumberTeam that owns the research.
gameTimeTime when this research completed (in seconds).
researchIdName of the tech researched.

Buildings

Here we can find building completions, deaths and recycles during the games. If built = true and destroyed = false, it means the building finished construction. When a building is recycled, the destroyed field will also be true.

FieldDescription
teamNumberTeam that owns the building.
gameTimeTime when this building action completed (in seconds).
builtIf the building was completely built when this happened.
recycledThe building was recycled.
destroyedThe building was destroyed.
techIdName of the building.
biomass(Optional) This will only show up when a Hive dies to be able to track how much biomass was lost.

PlayerStats

The first field in this table is the SteamID for each recorded player in the game. Inside each table, you will find tables for each team that the player played in (1 = Marines, 2 = Aliens), each of these team tables has these fields:

FieldDescription
killsNumber of kills.
deathsNumber of deaths.
assistsNumber of assists.
scorePlayer score for the round.
timeBuildingTime that the player has spent building during the round, in seconds.
hitsNumber of attacks that hit (this includes Onos hits).
onosHitsNumber of attacks that hit an Onos.
missesNumber of attacks that missed.
killstreakBest killstreak during the round.
isRookieShows if this player is a rookie (true/false).
timePlayedTime that the player was on this team for the round, in seconds.
commanderTimeTime that the player spent as commander for this team, in seconds.
playerDamagePlayer damage.
structureDamageStructure damage.

It also has a table ("weapons") for the weapons used by the player, which contains the following:

FieldDescription
teamNumberThe player's team (1 = Marines, 2 = Aliens).
hitsNumber of attacks that hit (this includes Onos hits).
onosHitsNumber of attacks that hit an Onos.
missesNumber of attacks that missed.
killsNumber of kills with this weapon.
playerDamagePlayer damage with this weapon.
structureDamageStructure damage with this weapon.

Also contains a status table ("status"), which shows the breakdown of classes for the player during the round:

FieldDescription
statusIdName of the class.
classTimeTime as this class, in seconds.

These are the rest of the fields inside each SteamID entry:

FieldDescription
playerNameThe player nickname ingame.
lastTeamLast team the player belonged to.
hiveSkillHive Skill for the player for this round.
isRookieShows if the player is a rookie.

MarineCommStats

The first field in this table is the SteamID for each recorded marine Commander in the game. Inside each table, you will find a table for each type of drop, as follows:

medpack

FieldDescription
hitsAccNumber of medpacks dropped directly on players. Used for the medpack accuracy.
picksNumber of medpacks picked up by players at any point.
missesNumber of medpacks that are never picked up.
refilledAmount of health given to players through medpacks.

ammopack

FieldDescription
picksNumber of ammopacks picked up by players.
missesNumber of ammopacks that are never picked up.
refilledAmount of bullets given to players through ammopacks.

catpack

FieldDescription
picksNumber of catpacks picked up by players.
missesNumber of catpacks that are never picked up.

KillFeed

Some fields will be null sometimes like in Suicides or death by Natural Causes or killing bots (they don't have SteamIDs).

FieldDescription
killerTeamNumberTeam that got awarded this kill (1 = Marines, 2 = Aliens).
killerWeaponWeapon used for the kill. Will be "None" for Natural Causes/Suicide.
killerClassThe killer's class.
killerPositionMap coordinates for the killer's position.
killerLocationLocation name index for the killer's position.
doerPositionMap coordinates for the killer entity position (grenades/turrets/hydras, etc).
doerLocationLocation name index for the killer entity position (grenades/turrets/hydras, etc).
victimClassThe victim's class.
victimPositionMap coordinates for the victim's position.
victimLocationLocation name index for the victim's position.
gameTimeGame time when this happened (in seconds).

Credits/Thanks to

Past NS2+ features now included in vanilla NS2:

  • [295] Ragdolls dissolve instantly.
  • [286] The server browser highlights ranked servers.
  • [286] The server browser shows the total number of servers available as well as the total number that pass your filter settings.
  • [286] Resource nodes and Tech Points are highlighted on the minimap.
  • [276] Added extra bindings for voiceover options: "Weld me", "Follow me", etc.
  • [276] Dropped weapon expire times now are displayed for the commander.
  • [273] You can click on the scoreboard to check a player's Steam/NS2 profile.
  • [273] Scoreboard displays if someone is your steam friend.
  • [273] You can mute voice/text independently and it's persistent across map changes up to 6 hours.
  • [273] The scoreboard now truncates player names if they overlap with the rest of the elements.
  • [272] Modified vanilla scoreboard to make it usable at low resolutions. It will automatically scroll to your position if you are in RR or in a team. You can use the mousewheel, home/end/pgup/pgdn or click and drag to scroll.
  • [272] Scoreboard shows the Commander background in yellow instead of the name, so you can identify rookie players that are commanding.
  • [272] Medpacks, ammo, and catpacks can be picked up from any height difference.
  • [270] Scoreboard displays the number of connecting players.
  • [270] In the voice request menu you can now select items by moving the mouse past them (similar to NS1).
  • [270] Building range circles now use decals instead of models.
  • [270] Added an option in the sound tab to continue recording after the microphone button has been released for a fraction of a second to help ensure your last word isn't cut off (defaults to 150ms).
  • [268] Marine weapons now reload automatically upon firing the last bullet.
  • [268] Commanders can marquee select enemy units when there's no friendly units in the marquee.
  • [268] Grenade collision radius is more representative of the visual model (proximity detonation radius is unchanged).
  • [268] You can click on the player frames on the sides to autofollow a player. Click again to stop following.
  • [268] Shotgun lights in the model reflect ammo count.
  • [268] Weapon displays flash red when low on ammo.
  • [268] Added unsocketed and blueprint states for Power Nodes in the minimap. You can now see all Power Node states.
  • [268] Alien Commanders can see the energy for their teammates.
  • [268] High contrast colors for health/armor in Insight spectator.
  • [267] Marine players and the Marine Commander can see the time until the weapon disappears when it's been dropped.
  • [267] Make the outline color yellow for parasited players and purple when they have received a catpack in overhead.
  • [267] Added bonewall icon to map.
  • [267] Items that disappear after some time on the ground now display an expiration bar for all Marine players (including the Marine Commander).
  • [267] Server-confirmed hitsounds.
  • [267] The armory and infantry portal arms don’t block bullets anymore.
  • [267] Lerks can see damage numbers for the poison bite's damage over time.
  • [267] When a structure bleeds out the killfeed will show the killer as whoever hit it last.
  • [267] You can see the class of your evolving teammates.
  • [267] The kill feed highlights your player kills. Icons in the killfeed are properly scaled too.
  • [267] Dropped weapons outlines are color coded for improved readability.
  • [267] Infantry Portals will show the name and progress of the player that is about to spawn.
  • [267] Evolving alien players will show their evolution progress for their teammates.
  • [267] Scoreboard keeps the time of the previous round until the next one starts.
  • [267] Dropped marine weapons are outlined for the marine commander and spectators.
  • [267] Spectators can see deployed mines highlighted with a blue outline, and the outline will turn yellow if the mine has been parasited.
  • [267] Added slight impulse to dropped weapons.
  • [267] Enabled weapon specific ammo models for dropped weapons.
  • [266] Marine commanders can see the marine ammo bar with the color that's used in the overview spectator mode to easily identify the weapon the marine is carrying.
  • [266] Commanders can see building ranges before dropping them.
  • [266] Adds player upgrades to the Insight player frames.
  • [266] Adds Lerk deaths to Insight alerts.
  • [266] Alltalk displays the correct team color/background for voice chat.
  • [266] Mods list is sorted automatically as Active > Subscribed > Alphabetically. You can also sort by column.
  • [266] Connections between Phase Gates or Gorge Tunnels are now colored depending on the team. If there’s more than 2 PGs it will switch to lines with animated arrows.
  • [265] Parasited players display their name yellow for teammates and spectators.

Past NS2+ fixes now included in vanilla NS2:

  • [274] Fixed scoreboard hiding the GUIHoverMenu every frame as long as the scoreboard wasn't up.
  • [274] Fixed jetpacks left behind by dead marines not dissolving with the body on death.
  • [274] Fixed Medpacks/Ammo/Catpacks not showing the pickup icons.
  • [272] Fixed server crash related to picking up a jetpack and a weapon at the same time.
  • [272] Fixed kill feed being obscured by the death screen fade to black.
  • [270] Fixed players having voice communication cut off while entering or exiting commander mode.
  • [270] Fixed occasional error when attempting to enter the Mods menu.
  • [268] Fixed bug that made trigger volumes bigger than their representation in the editor. This affected some map locations (power node issues).
  • [268] Fixed bug where the Commander would log out attacking.
  • [267] Made location text for marines left aligned so long location names can fit in the UI
  • [267] Fixed Bonewall not having pre-drop range.
  • [267] Fixed bug where Shotguns and Exo Minigun didn't shoot through soft targets.
  • [267] Fixed drifters trying to build structures they can't and fake-building them forever.
  • [266] Fixed sentries not being able to be dropped until the first sentry battery is finished.
  • [266] Fixed scoreboard not showing Spectators to players on teams.
  • [266] Fixed commander selection bug that made buildings selected with hotgroups not respond properly sometimes.
  • [266] Fixed lights staying red if the power node was under attack (infestation).
  • [266] Fixed bug where damage numbers wouldn't show the damage done in the killing blow.
  • [265] Fixed skulk jump sound loudness (50% reduced).
  • [265] Fixed skulk growl sound when walking.
  • [265] Fixed inactive/unbuilt structures not blinking red when under attack.
  • [265] Fixed alien structures not blinking red when uncysted.

Copyright 2017 - Unknown Worlds Entertainment. All rights reserved.

About

NS2+ mod for Natural Selection 2

Resources

Stars

10 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
This repository was archived by the owner on Jun 14, 2018. It is now read-only.

Repository files navigation

NS2+ has moved, and now maintained at NS2CDT/NS2Plus. Please go there to report issues or make pull requests.


NS2+

This Natural Selection 2 mod aims to improve, fix and expand the game in order to bring players a better experience. It contains extra customization options and quality of life improvements. This mod needs to be installed on the server.

You can check some of the recommended settings here.

Latest changes

  • 7/4/2018

    • Fixed a script error that could occur opening the ns2+options in-game
    • Fixed that predict conflicted with the weapon slot mode of the alien ability select option.
  • 4/6/2018

    • Replaced all Elixer methods with the new DebugUltility methods
    • Added an option to choose how to select alien abilities. This allows to select metabolize to be selected as weapon once again.
      • Todo:
        • I'm planning to expand this feature to support all abilities and pure key bound ability activation.
        • Additionally currently selecting metabolize has a short delay due to the way the weapon select is handled at the server side.
  • 28/3/2018

    • Fixed that the hive skill graph uses the skill maximum as initial minimum
    • Fixed that spectators were considered as alien players at the beginning of a round by the hive skill graph

Server settings

Server operators can adjust some features for NS2+ through the console (typing "sv_plus" in console), or change them in the NS2PlusServerSettings.json file located in the server config folder.

  • Enable/Disable client features

    • allow_ambient: Enables or disables the ability to disable map ambient sounds for clients.
    • allow_mapparticles: Enables or disables the ability to disable the map particles for clients.
    • allow_nsllights: Enables or disables the ability to use the NSL lights for clients.
    • allow_deathstats: Enables or disables the display of stats when players die.
    • allow_drawviewmodel: Enables or disables the ability to hide player models. Disabled by default.
  • Server features

    • autodisplayendstats: Enables or disables the end game stats displaying automatically upon game end.
    • endstatsteambreakdown: Enables or disables the end game stats displaying the full team breakdown. This is the table with kills, deaths, accuracy, etc.
    • modupdater: Enables or disables the mod update checker. This will notify players that mods running on the server have been updated during the round and that new players cannot join until the map is changed. If the server is using a mod backup server it will display a different notification.
    • modupdatercheckinterval: Sets the update check interval for the mod updater (in minutes).
    • modupdaterreminderinterval: Sets the time between reminders when an update has been found. Set to 0 to disable (only shows once).
    • showavgteamskill: Shows the average team skill at the top of the scoreboard for clients.
    • showplayerskill: Shows each player's Hive skill on the scoreboard before the game starts.
    • savestats: Saves the last round stats in the NS2Plus\Stats\ folder in your config path in json format. Each round played will be saved in a separate file. The file name for each round is the epoch time at round end. Disabled by default.

Stats format

For the modders or people interested in making use of the stats gathered by NS2+, they can either call CHUDGetLastRoundStats() after the round has ended (it updates the data on NS2Gamerules:EndGame()), or use the "savestats" server option, which will give them access to the tables that NS2+ uses to store the info during the round that gets sent to the players at the end of the game.

Locations

This table will store an array with the location names, the index of each entry will be used in the other tables to refer to each location in order to save some space.

For example in "Locations":["North Tech","South Tech"], North Tech would be referred as 1, and South Tech as 2.

ServerInfo

FieldDescription
slotsNumber of slots for this server.
modsTable that contains the modId and name for each of the mods active in this server.
buildNumberNS2 build number for this round.
rookieOnlyShows if the server is rookie only or not.
ipServer IP.
portServer port.
nameServer name.

RoundInfo

FieldDescription
roundDateEpoch time for the round.
winningTeamTeam that won the game (0 = Draw, 1 = Marines, 2 = Aliens).
roundLengthRound length, in seconds.
tournamentModeWill show if the game had tournament mode enabled (true/false).
mapNameName of the map played.
startingLocationsTable with the starting locations for each team, (1 = Marines, 2 = Aliens). It uses the location name index from the Locations table.
maxPlayers1The maximum amount of players the marine team had during the round.
maxPlayers2The maximum amount of players the alien team had during the round.
minimapExtentsTable with the minimap extents to map coordinates to the overview. Contains "origin" and "scale".

Research

This table contains all the researches done during the game.

FieldDescription
teamNumberTeam that owns the research.
gameTimeTime when this research completed (in seconds).
researchIdName of the tech researched.

Buildings

Here we can find building completions, deaths and recycles during the games. If built = true and destroyed = false, it means the building finished construction. When a building is recycled, the destroyed field will also be true.

FieldDescription
teamNumberTeam that owns the building.
gameTimeTime when this building action completed (in seconds).
builtIf the building was completely built when this happened.
recycledThe building was recycled.
destroyedThe building was destroyed.
techIdName of the building.
biomass(Optional) This will only show up when a Hive dies to be able to track how much biomass was lost.

PlayerStats

The first field in this table is the SteamID for each recorded player in the game. Inside each table, you will find tables for each team that the player played in (1 = Marines, 2 = Aliens), each of these team tables has these fields:

FieldDescription
killsNumber of kills.
deathsNumber of deaths.
assistsNumber of assists.
scorePlayer score for the round.
timeBuildingTime that the player has spent building during the round, in seconds.
hitsNumber of attacks that hit (this includes Onos hits).
onosHitsNumber of attacks that hit an Onos.
missesNumber of attacks that missed.
killstreakBest killstreak during the round.
isRookieShows if this player is a rookie (true/false).
timePlayedTime that the player was on this team for the round, in seconds.
commanderTimeTime that the player spent as commander for this team, in seconds.
playerDamagePlayer damage.
structureDamageStructure damage.

It also has a table ("weapons") for the weapons used by the player, which contains the following:

FieldDescription
teamNumberThe player's team (1 = Marines, 2 = Aliens).
hitsNumber of attacks that hit (this includes Onos hits).
onosHitsNumber of attacks that hit an Onos.
missesNumber of attacks that missed.
killsNumber of kills with this weapon.
playerDamagePlayer damage with this weapon.
structureDamageStructure damage with this weapon.

Also contains a status table ("status"), which shows the breakdown of classes for the player during the round:

FieldDescription
statusIdName of the class.
classTimeTime as this class, in seconds.

These are the rest of the fields inside each SteamID entry:

FieldDescription
playerNameThe player nickname ingame.
lastTeamLast team the player belonged to.
hiveSkillHive Skill for the player for this round.
isRookieShows if the player is a rookie.

MarineCommStats

The first field in this table is the SteamID for each recorded marine Commander in the game. Inside each table, you will find a table for each type of drop, as follows:

medpack

FieldDescription
hitsAccNumber of medpacks dropped directly on players. Used for the medpack accuracy.
picksNumber of medpacks picked up by players at any point.
missesNumber of medpacks that are never picked up.
refilledAmount of health given to players through medpacks.

ammopack

FieldDescription
picksNumber of ammopacks picked up by players.
missesNumber of ammopacks that are never picked up.
refilledAmount of bullets given to players through ammopacks.

catpack

FieldDescription
picksNumber of catpacks picked up by players.
missesNumber of catpacks that are never picked up.

KillFeed

Some fields will be null sometimes like in Suicides or death by Natural Causes or killing bots (they don't have SteamIDs).

FieldDescription
killerTeamNumberTeam that got awarded this kill (1 = Marines, 2 = Aliens).
killerWeaponWeapon used for the kill. Will be "None" for Natural Causes/Suicide.
killerClassThe killer's class.
killerPositionMap coordinates for the killer's position.
killerLocationLocation name index for the killer's position.
doerPositionMap coordinates for the killer entity position (grenades/turrets/hydras, etc).
doerLocationLocation name index for the killer entity position (grenades/turrets/hydras, etc).
victimClassThe victim's class.
victimPositionMap coordinates for the victim's position.
victimLocationLocation name index for the victim's position.
gameTimeGame time when this happened (in seconds).

Credits/Thanks to

Past NS2+ features now included in vanilla NS2:

  • [295] Ragdolls dissolve instantly.
  • [286] The server browser highlights ranked servers.
  • [286] The server browser shows the total number of servers available as well as the total number that pass your filter settings.
  • [286] Resource nodes and Tech Points are highlighted on the minimap.
  • [276] Added extra bindings for voiceover options: "Weld me", "Follow me", etc.
  • [276] Dropped weapon expire times now are displayed for the commander.
  • [273] You can click on the scoreboard to check a player's Steam/NS2 profile.
  • [273] Scoreboard displays if someone is your steam friend.
  • [273] You can mute voice/text independently and it's persistent across map changes up to 6 hours.
  • [273] The scoreboard now truncates player names if they overlap with the rest of the elements.
  • [272] Modified vanilla scoreboard to make it usable at low resolutions. It will automatically scroll to your position if you are in RR or in a team. You can use the mousewheel, home/end/pgup/pgdn or click and drag to scroll.
  • [272] Scoreboard shows the Commander background in yellow instead of the name, so you can identify rookie players that are commanding.
  • [272] Medpacks, ammo, and catpacks can be picked up from any height difference.
  • [270] Scoreboard displays the number of connecting players.
  • [270] In the voice request menu you can now select items by moving the mouse past them (similar to NS1).
  • [270] Building range circles now use decals instead of models.
  • [270] Added an option in the sound tab to continue recording after the microphone button has been released for a fraction of a second to help ensure your last word isn't cut off (defaults to 150ms).
  • [268] Marine weapons now reload automatically upon firing the last bullet.
  • [268] Commanders can marquee select enemy units when there's no friendly units in the marquee.
  • [268] Grenade collision radius is more representative of the visual model (proximity detonation radius is unchanged).
  • [268] You can click on the player frames on the sides to autofollow a player. Click again to stop following.
  • [268] Shotgun lights in the model reflect ammo count.
  • [268] Weapon displays flash red when low on ammo.
  • [268] Added unsocketed and blueprint states for Power Nodes in the minimap. You can now see all Power Node states.
  • [268] Alien Commanders can see the energy for their teammates.
  • [268] High contrast colors for health/armor in Insight spectator.
  • [267] Marine players and the Marine Commander can see the time until the weapon disappears when it's been dropped.
  • [267] Make the outline color yellow for parasited players and purple when they have received a catpack in overhead.
  • [267] Added bonewall icon to map.
  • [267] Items that disappear after some time on the ground now display an expiration bar for all Marine players (including the Marine Commander).
  • [267] Server-confirmed hitsounds.
  • [267] The armory and infantry portal arms don’t block bullets anymore.
  • [267] Lerks can see damage numbers for the poison bite's damage over time.
  • [267] When a structure bleeds out the killfeed will show the killer as whoever hit it last.
  • [267] You can see the class of your evolving teammates.
  • [267] The kill feed highlights your player kills. Icons in the killfeed are properly scaled too.
  • [267] Dropped weapons outlines are color coded for improved readability.
  • [267] Infantry Portals will show the name and progress of the player that is about to spawn.
  • [267] Evolving alien players will show their evolution progress for their teammates.
  • [267] Scoreboard keeps the time of the previous round until the next one starts.
  • [267] Dropped marine weapons are outlined for the marine commander and spectators.
  • [267] Spectators can see deployed mines highlighted with a blue outline, and the outline will turn yellow if the mine has been parasited.
  • [267] Added slight impulse to dropped weapons.
  • [267] Enabled weapon specific ammo models for dropped weapons.
  • [266] Marine commanders can see the marine ammo bar with the color that's used in the overview spectator mode to easily identify the weapon the marine is carrying.
  • [266] Commanders can see building ranges before dropping them.
  • [266] Adds player upgrades to the Insight player frames.
  • [266] Adds Lerk deaths to Insight alerts.
  • [266] Alltalk displays the correct team color/background for voice chat.
  • [266] Mods list is sorted automatically as Active > Subscribed > Alphabetically. You can also sort by column.
  • [266] Connections between Phase Gates or Gorge Tunnels are now colored depending on the team. If there’s more than 2 PGs it will switch to lines with animated arrows.
  • [265] Parasited players display their name yellow for teammates and spectators.

Past NS2+ fixes now included in vanilla NS2:

  • [274] Fixed scoreboard hiding the GUIHoverMenu every frame as long as the scoreboard wasn't up.
  • [274] Fixed jetpacks left behind by dead marines not dissolving with the body on death.
  • [274] Fixed Medpacks/Ammo/Catpacks not showing the pickup icons.
  • [272] Fixed server crash related to picking up a jetpack and a weapon at the same time.
  • [272] Fixed kill feed being obscured by the death screen fade to black.
  • [270] Fixed players having voice communication cut off while entering or exiting commander mode.
  • [270] Fixed occasional error when attempting to enter the Mods menu.
  • [268] Fixed bug that made trigger volumes bigger than their representation in the editor. This affected some map locations (power node issues).
  • [268] Fixed bug where the Commander would log out attacking.
  • [267] Made location text for marines left aligned so long location names can fit in the UI
  • [267] Fixed Bonewall not having pre-drop range.
  • [267] Fixed bug where Shotguns and Exo Minigun didn't shoot through soft targets.
  • [267] Fixed drifters trying to build structures they can't and fake-building them forever.
  • [266] Fixed sentries not being able to be dropped until the first sentry battery is finished.
  • [266] Fixed scoreboard not showing Spectators to players on teams.
  • [266] Fixed commander selection bug that made buildings selected with hotgroups not respond properly sometimes.
  • [266] Fixed lights staying red if the power node was under attack (infestation).
  • [266] Fixed bug where damage numbers wouldn't show the damage done in the killing blow.
  • [265] Fixed skulk jump sound loudness (50% reduced).
  • [265] Fixed skulk growl sound when walking.
  • [265] Fixed inactive/unbuilt structures not blinking red when under attack.
  • [265] Fixed alien structures not blinking red when uncysted.

Copyright 2017 - Unknown Worlds Entertainment. All rights reserved.

About

NS2+ mod for Natural Selection 2

Resources

Stars

10 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Jun 14, 2018. It is now read-only.

Repository files navigation

NS2+ has moved, and now maintained at NS2CDT/NS2Plus. Please go there to report issues or make pull requests.


NS2+

This Natural Selection 2 mod aims to improve, fix and expand the game in order to bring players a better experience. It contains extra customization options and quality of life improvements. This mod needs to be installed on the server.

You can check some of the recommended settings here.

Latest changes

  • 7/4/2018

    • Fixed a script error that could occur opening the ns2+options in-game
    • Fixed that predict conflicted with the weapon slot mode of the alien ability select option.
  • 4/6/2018

    • Replaced all Elixer methods with the new DebugUltility methods
    • Added an option to choose how to select alien abilities. This allows to select metabolize to be selected as weapon once again.
      • Todo:
        • I'm planning to expand this feature to support all abilities and pure key bound ability activation.
        • Additionally currently selecting metabolize has a short delay due to the way the weapon select is handled at the server side.
  • 28/3/2018

    • Fixed that the hive skill graph uses the skill maximum as initial minimum
    • Fixed that spectators were considered as alien players at the beginning of a round by the hive skill graph

Server settings

Server operators can adjust some features for NS2+ through the console (typing "sv_plus" in console), or change them in the NS2PlusServerSettings.json file located in the server config folder.

  • Enable/Disable client features

    • allow_ambient: Enables or disables the ability to disable map ambient sounds for clients.
    • allow_mapparticles: Enables or disables the ability to disable the map particles for clients.
    • allow_nsllights: Enables or disables the ability to use the NSL lights for clients.
    • allow_deathstats: Enables or disables the display of stats when players die.
    • allow_drawviewmodel: Enables or disables the ability to hide player models. Disabled by default.
  • Server features

    • autodisplayendstats: Enables or disables the end game stats displaying automatically upon game end.
    • endstatsteambreakdown: Enables or disables the end game stats displaying the full team breakdown. This is the table with kills, deaths, accuracy, etc.
    • modupdater: Enables or disables the mod update checker. This will notify players that mods running on the server have been updated during the round and that new players cannot join until the map is changed. If the server is using a mod backup server it will display a different notification.
    • modupdatercheckinterval: Sets the update check interval for the mod updater (in minutes).
    • modupdaterreminderinterval: Sets the time between reminders when an update has been found. Set to 0 to disable (only shows once).
    • showavgteamskill: Shows the average team skill at the top of the scoreboard for clients.
    • showplayerskill: Shows each player's Hive skill on the scoreboard before the game starts.
    • savestats: Saves the last round stats in the NS2Plus\Stats\ folder in your config path in json format. Each round played will be saved in a separate file. The file name for each round is the epoch time at round end. Disabled by default.

Stats format

For the modders or people interested in making use of the stats gathered by NS2+, they can either call CHUDGetLastRoundStats() after the round has ended (it updates the data on NS2Gamerules:EndGame()), or use the "savestats" server option, which will give them access to the tables that NS2+ uses to store the info during the round that gets sent to the players at the end of the game.

Locations

This table will store an array with the location names, the index of each entry will be used in the other tables to refer to each location in order to save some space.

For example in "Locations":["North Tech","South Tech"], North Tech would be referred as 1, and South Tech as 2.

ServerInfo

FieldDescription
slotsNumber of slots for this server.
modsTable that contains the modId and name for each of the mods active in this server.
buildNumberNS2 build number for this round.
rookieOnlyShows if the server is rookie only or not.
ipServer IP.
portServer port.
nameServer name.

RoundInfo

FieldDescription
roundDateEpoch time for the round.
winningTeamTeam that won the game (0 = Draw, 1 = Marines, 2 = Aliens).
roundLengthRound length, in seconds.
tournamentModeWill show if the game had tournament mode enabled (true/false).
mapNameName of the map played.
startingLocationsTable with the starting locations for each team, (1 = Marines, 2 = Aliens). It uses the location name index from the Locations table.
maxPlayers1The maximum amount of players the marine team had during the round.
maxPlayers2The maximum amount of players the alien team had during the round.
minimapExtentsTable with the minimap extents to map coordinates to the overview. Contains "origin" and "scale".

Research

This table contains all the researches done during the game.

FieldDescription
teamNumberTeam that owns the research.
gameTimeTime when this research completed (in seconds).
researchIdName of the tech researched.

Buildings

Here we can find building completions, deaths and recycles during the games. If built = true and destroyed = false, it means the building finished construction. When a building is recycled, the destroyed field will also be true.

FieldDescription
teamNumberTeam that owns the building.
gameTimeTime when this building action completed (in seconds).
builtIf the building was completely built when this happened.
recycledThe building was recycled.
destroyedThe building was destroyed.
techIdName of the building.
biomass(Optional) This will only show up when a Hive dies to be able to track how much biomass was lost.

PlayerStats

The first field in this table is the SteamID for each recorded player in the game. Inside each table, you will find tables for each team that the player played in (1 = Marines, 2 = Aliens), each of these team tables has these fields:

FieldDescription
killsNumber of kills.
deathsNumber of deaths.
assistsNumber of assists.
scorePlayer score for the round.
timeBuildingTime that the player has spent building during the round, in seconds.
hitsNumber of attacks that hit (this includes Onos hits).
onosHitsNumber of attacks that hit an Onos.
missesNumber of attacks that missed.
killstreakBest killstreak during the round.
isRookieShows if this player is a rookie (true/false).
timePlayedTime that the player was on this team for the round, in seconds.
commanderTimeTime that the player spent as commander for this team, in seconds.
playerDamagePlayer damage.
structureDamageStructure damage.

It also has a table ("weapons") for the weapons used by the player, which contains the following:

FieldDescription
teamNumberThe player's team (1 = Marines, 2 = Aliens).
hitsNumber of attacks that hit (this includes Onos hits).
onosHitsNumber of attacks that hit an Onos.
missesNumber of attacks that missed.
killsNumber of kills with this weapon.
playerDamagePlayer damage with this weapon.
structureDamageStructure damage with this weapon.

Also contains a status table ("status"), which shows the breakdown of classes for the player during the round:

FieldDescription
statusIdName of the class.
classTimeTime as this class, in seconds.

These are the rest of the fields inside each SteamID entry:

FieldDescription
playerNameThe player nickname ingame.
lastTeamLast team the player belonged to.
hiveSkillHive Skill for the player for this round.
isRookieShows if the player is a rookie.

MarineCommStats

The first field in this table is the SteamID for each recorded marine Commander in the game. Inside each table, you will find a table for each type of drop, as follows:

medpack

FieldDescription
hitsAccNumber of medpacks dropped directly on players. Used for the medpack accuracy.
picksNumber of medpacks picked up by players at any point.
missesNumber of medpacks that are never picked up.
refilledAmount of health given to players through medpacks.

ammopack

FieldDescription
picksNumber of ammopacks picked up by players.
missesNumber of ammopacks that are never picked up.
refilledAmount of bullets given to players through ammopacks.

catpack

FieldDescription
picksNumber of catpacks picked up by players.
missesNumber of catpacks that are never picked up.

KillFeed

Some fields will be null sometimes like in Suicides or death by Natural Causes or killing bots (they don't have SteamIDs).

FieldDescription
killerTeamNumberTeam that got awarded this kill (1 = Marines, 2 = Aliens).
killerWeaponWeapon used for the kill. Will be "None" for Natural Causes/Suicide.
killerClassThe killer's class.
killerPositionMap coordinates for the killer's position.
killerLocationLocation name index for the killer's position.
doerPositionMap coordinates for the killer entity position (grenades/turrets/hydras, etc).
doerLocationLocation name index for the killer entity position (grenades/turrets/hydras, etc).
victimClassThe victim's class.
victimPositionMap coordinates for the victim's position.
victimLocationLocation name index for the victim's position.
gameTimeGame time when this happened (in seconds).

Credits/Thanks to

Past NS2+ features now included in vanilla NS2:

  • [295] Ragdolls dissolve instantly.
  • [286] The server browser highlights ranked servers.
  • [286] The server browser shows the total number of servers available as well as the total number that pass your filter settings.
  • [286] Resource nodes and Tech Points are highlighted on the minimap.
  • [276] Added extra bindings for voiceover options: "Weld me", "Follow me", etc.
  • [276] Dropped weapon expire times now are displayed for the commander.
  • [273] You can click on the scoreboard to check a player's Steam/NS2 profile.
  • [273] Scoreboard displays if someone is your steam friend.
  • [273] You can mute voice/text independently and it's persistent across map changes up to 6 hours.
  • [273] The scoreboard now truncates player names if they overlap with the rest of the elements.
  • [272] Modified vanilla scoreboard to make it usable at low resolutions. It will automatically scroll to your position if you are in RR or in a team. You can use the mousewheel, home/end/pgup/pgdn or click and drag to scroll.
  • [272] Scoreboard shows the Commander background in yellow instead of the name, so you can identify rookie players that are commanding.
  • [272] Medpacks, ammo, and catpacks can be picked up from any height difference.
  • [270] Scoreboard displays the number of connecting players.
  • [270] In the voice request menu you can now select items by moving the mouse past them (similar to NS1).
  • [270] Building range circles now use decals instead of models.
  • [270] Added an option in the sound tab to continue recording after the microphone button has been released for a fraction of a second to help ensure your last word isn't cut off (defaults to 150ms).
  • [268] Marine weapons now reload automatically upon firing the last bullet.
  • [268] Commanders can marquee select enemy units when there's no friendly units in the marquee.
  • [268] Grenade collision radius is more representative of the visual model (proximity detonation radius is unchanged).
  • [268] You can click on the player frames on the sides to autofollow a player. Click again to stop following.
  • [268] Shotgun lights in the model reflect ammo count.
  • [268] Weapon displays flash red when low on ammo.
  • [268] Added unsocketed and blueprint states for Power Nodes in the minimap. You can now see all Power Node states.
  • [268] Alien Commanders can see the energy for their teammates.
  • [268] High contrast colors for health/armor in Insight spectator.
  • [267] Marine players and the Marine Commander can see the time until the weapon disappears when it's been dropped.
  • [267] Make the outline color yellow for parasited players and purple when they have received a catpack in overhead.
  • [267] Added bonewall icon to map.
  • [267] Items that disappear after some time on the ground now display an expiration bar for all Marine players (including the Marine Commander).
  • [267] Server-confirmed hitsounds.
  • [267] The armory and infantry portal arms don’t block bullets anymore.
  • [267] Lerks can see damage numbers for the poison bite's damage over time.
  • [267] When a structure bleeds out the killfeed will show the killer as whoever hit it last.
  • [267] You can see the class of your evolving teammates.
  • [267] The kill feed highlights your player kills. Icons in the killfeed are properly scaled too.
  • [267] Dropped weapons outlines are color coded for improved readability.
  • [267] Infantry Portals will show the name and progress of the player that is about to spawn.
  • [267] Evolving alien players will show their evolution progress for their teammates.
  • [267] Scoreboard keeps the time of the previous round until the next one starts.
  • [267] Dropped marine weapons are outlined for the marine commander and spectators.
  • [267] Spectators can see deployed mines highlighted with a blue outline, and the outline will turn yellow if the mine has been parasited.
  • [267] Added slight impulse to dropped weapons.
  • [267] Enabled weapon specific ammo models for dropped weapons.
  • [266] Marine commanders can see the marine ammo bar with the color that's used in the overview spectator mode to easily identify the weapon the marine is carrying.
  • [266] Commanders can see building ranges before dropping them.
  • [266] Adds player upgrades to the Insight player frames.
  • [266] Adds Lerk deaths to Insight alerts.
  • [266] Alltalk displays the correct team color/background for voice chat.
  • [266] Mods list is sorted automatically as Active > Subscribed > Alphabetically. You can also sort by column.
  • [266] Connections between Phase Gates or Gorge Tunnels are now colored depending on the team. If there’s more than 2 PGs it will switch to lines with animated arrows.
  • [265] Parasited players display their name yellow for teammates and spectators.

Past NS2+ fixes now included in vanilla NS2:

  • [274] Fixed scoreboard hiding the GUIHoverMenu every frame as long as the scoreboard wasn't up.
  • [274] Fixed jetpacks left behind by dead marines not dissolving with the body on death.
  • [274] Fixed Medpacks/Ammo/Catpacks not showing the pickup icons.
  • [272] Fixed server crash related to picking up a jetpack and a weapon at the same time.
  • [272] Fixed kill feed being obscured by the death screen fade to black.
  • [270] Fixed players having voice communication cut off while entering or exiting commander mode.
  • [270] Fixed occasional error when attempting to enter the Mods menu.
  • [268] Fixed bug that made trigger volumes bigger than their representation in the editor. This affected some map locations (power node issues).
  • [268] Fixed bug where the Commander would log out attacking.
  • [267] Made location text for marines left aligned so long location names can fit in the UI
  • [267] Fixed Bonewall not having pre-drop range.
  • [267] Fixed bug where Shotguns and Exo Minigun didn't shoot through soft targets.
  • [267] Fixed drifters trying to build structures they can't and fake-building them forever.
  • [266] Fixed sentries not being able to be dropped until the first sentry battery is finished.
  • [266] Fixed scoreboard not showing Spectators to players on teams.
  • [266] Fixed commander selection bug that made buildings selected with hotgroups not respond properly sometimes.
  • [266] Fixed lights staying red if the power node was under attack (infestation).
  • [266] Fixed bug where damage numbers wouldn't show the damage done in the killing blow.
  • [265] Fixed skulk jump sound loudness (50% reduced).
  • [265] Fixed skulk growl sound when walking.
  • [265] Fixed inactive/unbuilt structures not blinking red when under attack.
  • [265] Fixed alien structures not blinking red when uncysted.

Copyright 2017 - Unknown Worlds Entertainment. All rights reserved.

About

NS2+ mod for Natural Selection 2

Resources

Stars

10 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Jun 14, 2018. It is now read-only.

Repository files navigation

NS2+ has moved, and now maintained at NS2CDT/NS2Plus. Please go there to report issues or make pull requests.


NS2+

This Natural Selection 2 mod aims to improve, fix and expand the game in order to bring players a better experience. It contains extra customization options and quality of life improvements. This mod needs to be installed on the server.

You can check some of the recommended settings here.

Latest changes

  • 7/4/2018

    • Fixed a script error that could occur opening the ns2+options in-game
    • Fixed that predict conflicted with the weapon slot mode of the alien ability select option.
  • 4/6/2018

    • Replaced all Elixer methods with the new DebugUltility methods
    • Added an option to choose how to select alien abilities. This allows to select metabolize to be selected as weapon once again.
      • Todo:
        • I'm planning to expand this feature to support all abilities and pure key bound ability activation.
        • Additionally currently selecting metabolize has a short delay due to the way the weapon select is handled at the server side.
  • 28/3/2018

    • Fixed that the hive skill graph uses the skill maximum as initial minimum
    • Fixed that spectators were considered as alien players at the beginning of a round by the hive skill graph

Server settings

Server operators can adjust some features for NS2+ through the console (typing "sv_plus" in console), or change them in the NS2PlusServerSettings.json file located in the server config folder.

  • Enable/Disable client features

    • allow_ambient: Enables or disables the ability to disable map ambient sounds for clients.
    • allow_mapparticles: Enables or disables the ability to disable the map particles for clients.
    • allow_nsllights: Enables or disables the ability to use the NSL lights for clients.
    • allow_deathstats: Enables or disables the display of stats when players die.
    • allow_drawviewmodel: Enables or disables the ability to hide player models. Disabled by default.
  • Server features

    • autodisplayendstats: Enables or disables the end game stats displaying automatically upon game end.
    • endstatsteambreakdown: Enables or disables the end game stats displaying the full team breakdown. This is the table with kills, deaths, accuracy, etc.
    • modupdater: Enables or disables the mod update checker. This will notify players that mods running on the server have been updated during the round and that new players cannot join until the map is changed. If the server is using a mod backup server it will display a different notification.
    • modupdatercheckinterval: Sets the update check interval for the mod updater (in minutes).
    • modupdaterreminderinterval: Sets the time between reminders when an update has been found. Set to 0 to disable (only shows once).
    • showavgteamskill: Shows the average team skill at the top of the scoreboard for clients.
    • showplayerskill: Shows each player's Hive skill on the scoreboard before the game starts.
    • savestats: Saves the last round stats in the NS2Plus\Stats\ folder in your config path in json format. Each round played will be saved in a separate file. The file name for each round is the epoch time at round end. Disabled by default.

Stats format

For the modders or people interested in making use of the stats gathered by NS2+, they can either call CHUDGetLastRoundStats() after the round has ended (it updates the data on NS2Gamerules:EndGame()), or use the "savestats" server option, which will give them access to the tables that NS2+ uses to store the info during the round that gets sent to the players at the end of the game.

Locations

This table will store an array with the location names, the index of each entry will be used in the other tables to refer to each location in order to save some space.

For example in "Locations":["North Tech","South Tech"], North Tech would be referred as 1, and South Tech as 2.

ServerInfo

FieldDescription
slotsNumber of slots for this server.
modsTable that contains the modId and name for each of the mods active in this server.
buildNumberNS2 build number for this round.
rookieOnlyShows if the server is rookie only or not.
ipServer IP.
portServer port.
nameServer name.

RoundInfo

FieldDescription
roundDateEpoch time for the round.
winningTeamTeam that won the game (0 = Draw, 1 = Marines, 2 = Aliens).
roundLengthRound length, in seconds.
tournamentModeWill show if the game had tournament mode enabled (true/false).
mapNameName of the map played.
startingLocationsTable with the starting locations for each team, (1 = Marines, 2 = Aliens). It uses the location name index from the Locations table.
maxPlayers1The maximum amount of players the marine team had during the round.
maxPlayers2The maximum amount of players the alien team had during the round.
minimapExtentsTable with the minimap extents to map coordinates to the overview. Contains "origin" and "scale".

Research

This table contains all the researches done during the game.

FieldDescription
teamNumberTeam that owns the research.
gameTimeTime when this research completed (in seconds).
researchIdName of the tech researched.

Buildings

Here we can find building completions, deaths and recycles during the games. If built = true and destroyed = false, it means the building finished construction. When a building is recycled, the destroyed field will also be true.

FieldDescription
teamNumberTeam that owns the building.
gameTimeTime when this building action completed (in seconds).
builtIf the building was completely built when this happened.
recycledThe building was recycled.
destroyedThe building was destroyed.
techIdName of the building.
biomass(Optional) This will only show up when a Hive dies to be able to track how much biomass was lost.

PlayerStats

The first field in this table is the SteamID for each recorded player in the game. Inside each table, you will find tables for each team that the player played in (1 = Marines, 2 = Aliens), each of these team tables has these fields:

FieldDescription
killsNumber of kills.
deathsNumber of deaths.
assistsNumber of assists.
scorePlayer score for the round.
timeBuildingTime that the player has spent building during the round, in seconds.
hitsNumber of attacks that hit (this includes Onos hits).
onosHitsNumber of attacks that hit an Onos.
missesNumber of attacks that missed.
killstreakBest killstreak during the round.
isRookieShows if this player is a rookie (true/false).
timePlayedTime that the player was on this team for the round, in seconds.
commanderTimeTime that the player spent as commander for this team, in seconds.
playerDamagePlayer damage.
structureDamageStructure damage.

It also has a table ("weapons") for the weapons used by the player, which contains the following:

FieldDescription
teamNumberThe player's team (1 = Marines, 2 = Aliens).
hitsNumber of attacks that hit (this includes Onos hits).
onosHitsNumber of attacks that hit an Onos.
missesNumber of attacks that missed.
killsNumber of kills with this weapon.
playerDamagePlayer damage with this weapon.
structureDamageStructure damage with this weapon.

Also contains a status table ("status"), which shows the breakdown of classes for the player during the round:

FieldDescription
statusIdName of the class.
classTimeTime as this class, in seconds.

These are the rest of the fields inside each SteamID entry:

FieldDescription
playerNameThe player nickname ingame.
lastTeamLast team the player belonged to.
hiveSkillHive Skill for the player for this round.
isRookieShows if the player is a rookie.

MarineCommStats

The first field in this table is the SteamID for each recorded marine Commander in the game. Inside each table, you will find a table for each type of drop, as follows:

medpack

FieldDescription
hitsAccNumber of medpacks dropped directly on players. Used for the medpack accuracy.
picksNumber of medpacks picked up by players at any point.
missesNumber of medpacks that are never picked up.
refilledAmount of health given to players through medpacks.

ammopack

FieldDescription
picksNumber of ammopacks picked up by players.
missesNumber of ammopacks that are never picked up.
refilledAmount of bullets given to players through ammopacks.

catpack

FieldDescription
picksNumber of catpacks picked up by players.
missesNumber of catpacks that are never picked up.

KillFeed

Some fields will be null sometimes like in Suicides or death by Natural Causes or killing bots (they don't have SteamIDs).

FieldDescription
killerTeamNumberTeam that got awarded this kill (1 = Marines, 2 = Aliens).
killerWeaponWeapon used for the kill. Will be "None" for Natural Causes/Suicide.
killerClassThe killer's class.
killerPositionMap coordinates for the killer's position.
killerLocationLocation name index for the killer's position.
doerPositionMap coordinates for the killer entity position (grenades/turrets/hydras, etc).
doerLocationLocation name index for the killer entity position (grenades/turrets/hydras, etc).
victimClassThe victim's class.
victimPositionMap coordinates for the victim's position.
victimLocationLocation name index for the victim's position.
gameTimeGame time when this happened (in seconds).

Credits/Thanks to

Past NS2+ features now included in vanilla NS2:

  • [295] Ragdolls dissolve instantly.
  • [286] The server browser highlights ranked servers.
  • [286] The server browser shows the total number of servers available as well as the total number that pass your filter settings.
  • [286] Resource nodes and Tech Points are highlighted on the minimap.
  • [276] Added extra bindings for voiceover options: "Weld me", "Follow me", etc.
  • [276] Dropped weapon expire times now are displayed for the commander.
  • [273] You can click on the scoreboard to check a player's Steam/NS2 profile.
  • [273] Scoreboard displays if someone is your steam friend.
  • [273] You can mute voice/text independently and it's persistent across map changes up to 6 hours.
  • [273] The scoreboard now truncates player names if they overlap with the rest of the elements.
  • [272] Modified vanilla scoreboard to make it usable at low resolutions. It will automatically scroll to your position if you are in RR or in a team. You can use the mousewheel, home/end/pgup/pgdn or click and drag to scroll.
  • [272] Scoreboard shows the Commander background in yellow instead of the name, so you can identify rookie players that are commanding.
  • [272] Medpacks, ammo, and catpacks can be picked up from any height difference.
  • [270] Scoreboard displays the number of connecting players.
  • [270] In the voice request menu you can now select items by moving the mouse past them (similar to NS1).
  • [270] Building range circles now use decals instead of models.
  • [270] Added an option in the sound tab to continue recording after the microphone button has been released for a fraction of a second to help ensure your last word isn't cut off (defaults to 150ms).
  • [268] Marine weapons now reload automatically upon firing the last bullet.
  • [268] Commanders can marquee select enemy units when there's no friendly units in the marquee.
  • [268] Grenade collision radius is more representative of the visual model (proximity detonation radius is unchanged).
  • [268] You can click on the player frames on the sides to autofollow a player. Click again to stop following.
  • [268] Shotgun lights in the model reflect ammo count.
  • [268] Weapon displays flash red when low on ammo.
  • [268] Added unsocketed and blueprint states for Power Nodes in the minimap. You can now see all Power Node states.
  • [268] Alien Commanders can see the energy for their teammates.
  • [268] High contrast colors for health/armor in Insight spectator.
  • [267] Marine players and the Marine Commander can see the time until the weapon disappears when it's been dropped.
  • [267] Make the outline color yellow for parasited players and purple when they have received a catpack in overhead.
  • [267] Added bonewall icon to map.
  • [267] Items that disappear after some time on the ground now display an expiration bar for all Marine players (including the Marine Commander).
  • [267] Server-confirmed hitsounds.
  • [267] The armory and infantry portal arms don’t block bullets anymore.
  • [267] Lerks can see damage numbers for the poison bite's damage over time.
  • [267] When a structure bleeds out the killfeed will show the killer as whoever hit it last.
  • [267] You can see the class of your evolving teammates.
  • [267] The kill feed highlights your player kills. Icons in the killfeed are properly scaled too.
  • [267] Dropped weapons outlines are color coded for improved readability.
  • [267] Infantry Portals will show the name and progress of the player that is about to spawn.
  • [267] Evolving alien players will show their evolution progress for their teammates.
  • [267] Scoreboard keeps the time of the previous round until the next one starts.
  • [267] Dropped marine weapons are outlined for the marine commander and spectators.
  • [267] Spectators can see deployed mines highlighted with a blue outline, and the outline will turn yellow if the mine has been parasited.
  • [267] Added slight impulse to dropped weapons.
  • [267] Enabled weapon specific ammo models for dropped weapons.
  • [266] Marine commanders can see the marine ammo bar with the color that's used in the overview spectator mode to easily identify the weapon the marine is carrying.
  • [266] Commanders can see building ranges before dropping them.
  • [266] Adds player upgrades to the Insight player frames.
  • [266] Adds Lerk deaths to Insight alerts.
  • [266] Alltalk displays the correct team color/background for voice chat.
  • [266] Mods list is sorted automatically as Active > Subscribed > Alphabetically. You can also sort by column.
  • [266] Connections between Phase Gates or Gorge Tunnels are now colored depending on the team. If there’s more than 2 PGs it will switch to lines with animated arrows.
  • [265] Parasited players display their name yellow for teammates and spectators.

Past NS2+ fixes now included in vanilla NS2:

  • [274] Fixed scoreboard hiding the GUIHoverMenu every frame as long as the scoreboard wasn't up.
  • [274] Fixed jetpacks left behind by dead marines not dissolving with the body on death.
  • [274] Fixed Medpacks/Ammo/Catpacks not showing the pickup icons.
  • [272] Fixed server crash related to picking up a jetpack and a weapon at the same time.
  • [272] Fixed kill feed being obscured by the death screen fade to black.
  • [270] Fixed players having voice communication cut off while entering or exiting commander mode.
  • [270] Fixed occasional error when attempting to enter the Mods menu.
  • [268] Fixed bug that made trigger volumes bigger than their representation in the editor. This affected some map locations (power node issues).
  • [268] Fixed bug where the Commander would log out attacking.
  • [267] Made location text for marines left aligned so long location names can fit in the UI
  • [267] Fixed Bonewall not having pre-drop range.
  • [267] Fixed bug where Shotguns and Exo Minigun didn't shoot through soft targets.
  • [267] Fixed drifters trying to build structures they can't and fake-building them forever.
  • [266] Fixed sentries not being able to be dropped until the first sentry battery is finished.
  • [266] Fixed scoreboard not showing Spectators to players on teams.
  • [266] Fixed commander selection bug that made buildings selected with hotgroups not respond properly sometimes.
  • [266] Fixed lights staying red if the power node was under attack (infestation).
  • [266] Fixed bug where damage numbers wouldn't show the damage done in the killing blow.
  • [265] Fixed skulk jump sound loudness (50% reduced).
  • [265] Fixed skulk growl sound when walking.
  • [265] Fixed inactive/unbuilt structures not blinking red when under attack.
  • [265] Fixed alien structures not blinking red when uncysted.

Copyright 2017 - Unknown Worlds Entertainment. All rights reserved.

About

NS2+ mod for Natural Selection 2

Resources

Stars

10 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
This repository was archived by the owner on Jun 14, 2018. It is now read-only.

Repository files navigation

NS2+ has moved, and now maintained at NS2CDT/NS2Plus. Please go there to report issues or make pull requests.


NS2+

This Natural Selection 2 mod aims to improve, fix and expand the game in order to bring players a better experience. It contains extra customization options and quality of life improvements. This mod needs to be installed on the server.

You can check some of the recommended settings here.

Latest changes

  • 7/4/2018

    • Fixed a script error that could occur opening the ns2+options in-game
    • Fixed that predict conflicted with the weapon slot mode of the alien ability select option.
  • 4/6/2018

    • Replaced all Elixer methods with the new DebugUltility methods
    • Added an option to choose how to select alien abilities. This allows to select metabolize to be selected as weapon once again.
      • Todo:
        • I'm planning to expand this feature to support all abilities and pure key bound ability activation.
        • Additionally currently selecting metabolize has a short delay due to the way the weapon select is handled at the server side.
  • 28/3/2018

    • Fixed that the hive skill graph uses the skill maximum as initial minimum
    • Fixed that spectators were considered as alien players at the beginning of a round by the hive skill graph

Server settings

Server operators can adjust some features for NS2+ through the console (typing "sv_plus" in console), or change them in the NS2PlusServerSettings.json file located in the server config folder.

  • Enable/Disable client features

    • allow_ambient: Enables or disables the ability to disable map ambient sounds for clients.
    • allow_mapparticles: Enables or disables the ability to disable the map particles for clients.
    • allow_nsllights: Enables or disables the ability to use the NSL lights for clients.
    • allow_deathstats: Enables or disables the display of stats when players die.
    • allow_drawviewmodel: Enables or disables the ability to hide player models. Disabled by default.
  • Server features

    • autodisplayendstats: Enables or disables the end game stats displaying automatically upon game end.
    • endstatsteambreakdown: Enables or disables the end game stats displaying the full team breakdown. This is the table with kills, deaths, accuracy, etc.
    • modupdater: Enables or disables the mod update checker. This will notify players that mods running on the server have been updated during the round and that new players cannot join until the map is changed. If the server is using a mod backup server it will display a different notification.
    • modupdatercheckinterval: Sets the update check interval for the mod updater (in minutes).
    • modupdaterreminderinterval: Sets the time between reminders when an update has been found. Set to 0 to disable (only shows once).
    • showavgteamskill: Shows the average team skill at the top of the scoreboard for clients.
    • showplayerskill: Shows each player's Hive skill on the scoreboard before the game starts.
    • savestats: Saves the last round stats in the NS2Plus\Stats\ folder in your config path in json format. Each round played will be saved in a separate file. The file name for each round is the epoch time at round end. Disabled by default.

Stats format

For the modders or people interested in making use of the stats gathered by NS2+, they can either call CHUDGetLastRoundStats() after the round has ended (it updates the data on NS2Gamerules:EndGame()), or use the "savestats" server option, which will give them access to the tables that NS2+ uses to store the info during the round that gets sent to the players at the end of the game.

Locations

This table will store an array with the location names, the index of each entry will be used in the other tables to refer to each location in order to save some space.

For example in "Locations":["North Tech","South Tech"], North Tech would be referred as 1, and South Tech as 2.

ServerInfo

FieldDescription
slotsNumber of slots for this server.
modsTable that contains the modId and name for each of the mods active in this server.
buildNumberNS2 build number for this round.
rookieOnlyShows if the server is rookie only or not.
ipServer IP.
portServer port.
nameServer name.

RoundInfo

FieldDescription
roundDateEpoch time for the round.
winningTeamTeam that won the game (0 = Draw, 1 = Marines, 2 = Aliens).
roundLengthRound length, in seconds.
tournamentModeWill show if the game had tournament mode enabled (true/false).
mapNameName of the map played.
startingLocationsTable with the starting locations for each team, (1 = Marines, 2 = Aliens). It uses the location name index from the Locations table.
maxPlayers1The maximum amount of players the marine team had during the round.
maxPlayers2The maximum amount of players the alien team had during the round.
minimapExtentsTable with the minimap extents to map coordinates to the overview. Contains "origin" and "scale".

Research

This table contains all the researches done during the game.

FieldDescription
teamNumberTeam that owns the research.
gameTimeTime when this research completed (in seconds).
researchIdName of the tech researched.

Buildings

Here we can find building completions, deaths and recycles during the games. If built = true and destroyed = false, it means the building finished construction. When a building is recycled, the destroyed field will also be true.

FieldDescription
teamNumberTeam that owns the building.
gameTimeTime when this building action completed (in seconds).
builtIf the building was completely built when this happened.
recycledThe building was recycled.
destroyedThe building was destroyed.
techIdName of the building.
biomass(Optional) This will only show up when a Hive dies to be able to track how much biomass was lost.

PlayerStats

The first field in this table is the SteamID for each recorded player in the game. Inside each table, you will find tables for each team that the player played in (1 = Marines, 2 = Aliens), each of these team tables has these fields:

FieldDescription
killsNumber of kills.
deathsNumber of deaths.
assistsNumber of assists.
scorePlayer score for the round.
timeBuildingTime that the player has spent building during the round, in seconds.
hitsNumber of attacks that hit (this includes Onos hits).
onosHitsNumber of attacks that hit an Onos.
missesNumber of attacks that missed.
killstreakBest killstreak during the round.
isRookieShows if this player is a rookie (true/false).
timePlayedTime that the player was on this team for the round, in seconds.
commanderTimeTime that the player spent as commander for this team, in seconds.
playerDamagePlayer damage.
structureDamageStructure damage.

It also has a table ("weapons") for the weapons used by the player, which contains the following:

FieldDescription
teamNumberThe player's team (1 = Marines, 2 = Aliens).
hitsNumber of attacks that hit (this includes Onos hits).
onosHitsNumber of attacks that hit an Onos.
missesNumber of attacks that missed.
killsNumber of kills with this weapon.
playerDamagePlayer damage with this weapon.
structureDamageStructure damage with this weapon.

Also contains a status table ("status"), which shows the breakdown of classes for the player during the round:

FieldDescription
statusIdName of the class.
classTimeTime as this class, in seconds.

These are the rest of the fields inside each SteamID entry:

FieldDescription
playerNameThe player nickname ingame.
lastTeamLast team the player belonged to.
hiveSkillHive Skill for the player for this round.
isRookieShows if the player is a rookie.

MarineCommStats

The first field in this table is the SteamID for each recorded marine Commander in the game. Inside each table, you will find a table for each type of drop, as follows:

medpack

FieldDescription
hitsAccNumber of medpacks dropped directly on players. Used for the medpack accuracy.
picksNumber of medpacks picked up by players at any point.
missesNumber of medpacks that are never picked up.
refilledAmount of health given to players through medpacks.

ammopack

FieldDescription
picksNumber of ammopacks picked up by players.
missesNumber of ammopacks that are never picked up.
refilledAmount of bullets given to players through ammopacks.

catpack

FieldDescription
picksNumber of catpacks picked up by players.
missesNumber of catpacks that are never picked up.

KillFeed

Some fields will be null sometimes like in Suicides or death by Natural Causes or killing bots (they don't have SteamIDs).

FieldDescription
killerTeamNumberTeam that got awarded this kill (1 = Marines, 2 = Aliens).
killerWeaponWeapon used for the kill. Will be "None" for Natural Causes/Suicide.
killerClassThe killer's class.
killerPositionMap coordinates for the killer's position.
killerLocationLocation name index for the killer's position.
doerPositionMap coordinates for the killer entity position (grenades/turrets/hydras, etc).
doerLocationLocation name index for the killer entity position (grenades/turrets/hydras, etc).
victimClassThe victim's class.
victimPositionMap coordinates for the victim's position.
victimLocationLocation name index for the victim's position.
gameTimeGame time when this happened (in seconds).

Credits/Thanks to

Past NS2+ features now included in vanilla NS2:

  • [295] Ragdolls dissolve instantly.
  • [286] The server browser highlights ranked servers.
  • [286] The server browser shows the total number of servers available as well as the total number that pass your filter settings.
  • [286] Resource nodes and Tech Points are highlighted on the minimap.
  • [276] Added extra bindings for voiceover options: "Weld me", "Follow me", etc.
  • [276] Dropped weapon expire times now are displayed for the commander.
  • [273] You can click on the scoreboard to check a player's Steam/NS2 profile.
  • [273] Scoreboard displays if someone is your steam friend.
  • [273] You can mute voice/text independently and it's persistent across map changes up to 6 hours.
  • [273] The scoreboard now truncates player names if they overlap with the rest of the elements.
  • [272] Modified vanilla scoreboard to make it usable at low resolutions. It will automatically scroll to your position if you are in RR or in a team. You can use the mousewheel, home/end/pgup/pgdn or click and drag to scroll.
  • [272] Scoreboard shows the Commander background in yellow instead of the name, so you can identify rookie players that are commanding.
  • [272] Medpacks, ammo, and catpacks can be picked up from any height difference.
  • [270] Scoreboard displays the number of connecting players.
  • [270] In the voice request menu you can now select items by moving the mouse past them (similar to NS1).
  • [270] Building range circles now use decals instead of models.
  • [270] Added an option in the sound tab to continue recording after the microphone button has been released for a fraction of a second to help ensure your last word isn't cut off (defaults to 150ms).
  • [268] Marine weapons now reload automatically upon firing the last bullet.
  • [268] Commanders can marquee select enemy units when there's no friendly units in the marquee.
  • [268] Grenade collision radius is more representative of the visual model (proximity detonation radius is unchanged).
  • [268] You can click on the player frames on the sides to autofollow a player. Click again to stop following.
  • [268] Shotgun lights in the model reflect ammo count.
  • [268] Weapon displays flash red when low on ammo.
  • [268] Added unsocketed and blueprint states for Power Nodes in the minimap. You can now see all Power Node states.
  • [268] Alien Commanders can see the energy for their teammates.
  • [268] High contrast colors for health/armor in Insight spectator.
  • [267] Marine players and the Marine Commander can see the time until the weapon disappears when it's been dropped.
  • [267] Make the outline color yellow for parasited players and purple when they have received a catpack in overhead.
  • [267] Added bonewall icon to map.
  • [267] Items that disappear after some time on the ground now display an expiration bar for all Marine players (including the Marine Commander).
  • [267] Server-confirmed hitsounds.
  • [267] The armory and infantry portal arms don’t block bullets anymore.
  • [267] Lerks can see damage numbers for the poison bite's damage over time.
  • [267] When a structure bleeds out the killfeed will show the killer as whoever hit it last.
  • [267] You can see the class of your evolving teammates.
  • [267] The kill feed highlights your player kills. Icons in the killfeed are properly scaled too.
  • [267] Dropped weapons outlines are color coded for improved readability.
  • [267] Infantry Portals will show the name and progress of the player that is about to spawn.
  • [267] Evolving alien players will show their evolution progress for their teammates.
  • [267] Scoreboard keeps the time of the previous round until the next one starts.
  • [267] Dropped marine weapons are outlined for the marine commander and spectators.
  • [267] Spectators can see deployed mines highlighted with a blue outline, and the outline will turn yellow if the mine has been parasited.
  • [267] Added slight impulse to dropped weapons.
  • [267] Enabled weapon specific ammo models for dropped weapons.
  • [266] Marine commanders can see the marine ammo bar with the color that's used in the overview spectator mode to easily identify the weapon the marine is carrying.
  • [266] Commanders can see building ranges before dropping them.
  • [266] Adds player upgrades to the Insight player frames.
  • [266] Adds Lerk deaths to Insight alerts.
  • [266] Alltalk displays the correct team color/background for voice chat.
  • [266] Mods list is sorted automatically as Active > Subscribed > Alphabetically. You can also sort by column.
  • [266] Connections between Phase Gates or Gorge Tunnels are now colored depending on the team. If there’s more than 2 PGs it will switch to lines with animated arrows.
  • [265] Parasited players display their name yellow for teammates and spectators.

Past NS2+ fixes now included in vanilla NS2:

  • [274] Fixed scoreboard hiding the GUIHoverMenu every frame as long as the scoreboard wasn't up.
  • [274] Fixed jetpacks left behind by dead marines not dissolving with the body on death.
  • [274] Fixed Medpacks/Ammo/Catpacks not showing the pickup icons.
  • [272] Fixed server crash related to picking up a jetpack and a weapon at the same time.
  • [272] Fixed kill feed being obscured by the death screen fade to black.
  • [270] Fixed players having voice communication cut off while entering or exiting commander mode.
  • [270] Fixed occasional error when attempting to enter the Mods menu.
  • [268] Fixed bug that made trigger volumes bigger than their representation in the editor. This affected some map locations (power node issues).
  • [268] Fixed bug where the Commander would log out attacking.
  • [267] Made location text for marines left aligned so long location names can fit in the UI
  • [267] Fixed Bonewall not having pre-drop range.
  • [267] Fixed bug where Shotguns and Exo Minigun didn't shoot through soft targets.
  • [267] Fixed drifters trying to build structures they can't and fake-building them forever.
  • [266] Fixed sentries not being able to be dropped until the first sentry battery is finished.
  • [266] Fixed scoreboard not showing Spectators to players on teams.
  • [266] Fixed commander selection bug that made buildings selected with hotgroups not respond properly sometimes.
  • [266] Fixed lights staying red if the power node was under attack (infestation).
  • [266] Fixed bug where damage numbers wouldn't show the damage done in the killing blow.
  • [265] Fixed skulk jump sound loudness (50% reduced).
  • [265] Fixed skulk growl sound when walking.
  • [265] Fixed inactive/unbuilt structures not blinking red when under attack.
  • [265] Fixed alien structures not blinking red when uncysted.

Copyright 2017 - Unknown Worlds Entertainment. All rights reserved.

About

NS2+ mod for Natural Selection 2

Resources

Stars

10 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages