An updated build of the game Natural Selection for Windows and Linux focused on quality-of-life improvements and bug fixes.
The Natural Selection Launcher (Windows) can install, update, or repair the game.
Manual installation (Windows / Linux)
As the game is a Half-Life mod, Steam and Half-Life installations are required to play the game. After installing, restart steam.
A fresh install of NS comes with updated config files containing everything you need to get playing on the standard settings most players prefer. Customization options are built into the advanced options menu, like the Nine Legends competitive UI option. For further customization, team and weapon specific config files are also now available.
If the game doesn't load, check the following:
c:\Program Files\Steam\steamapps\common\Half-Life
) and remove or rename the ns
folder, then try installing NS.For Linux:
libstdc++so.6
and possibly the libgcc.so.1
in the Half-Life
directory so the linux distro's can be used instead. The one steam provides is outdated.apt-get install libc6-i386
if on debian or ubuntu. The libm.so.6
from it may need to be placed in your half-life folder if you cannot install that package.Update highlights:
How to set up a dedicated Natural Selection server with HLDS:
hlds
from doing force_install_dir ./hlds/
app_update 90 validate
multiple times in steamCMD to install HLDS and fully update it, as it won't completely do it the first time.ns
directory into the hlds
directory after installing HLDS from steamcmdlibstdc++so.6
in the hlds
directory so the linux distro's can be used instead. The one steam provides is outdated. You may need to rename the libgcc.so.1
file in the same directory as well.apt-get install libc6-i386
if on debian or ubuntu. The libm.so.6 from it may need to be placed in your HLDS folder if you cannot install that package../hlds_run -game ns +map ns_eclipse +sv_secure 1 +port 27015 +hostname "Natural Selection" +maxplayers 32
hlds.exe -console -game ns +map ns_eclipse +sv_secure 1 +port 27015 +hostname "Natural Selection" +maxplayers 32
If you are behind a NAT(Router) make sure to open at least those ports:
For more information see the HLDS valve wiki.
In order to check if your server is connected to the steam servers copy the following url in your browser and replace <your IP address>
with your external ip:
http://api.steampowered.com/ISteamApps/GetServersAtAddress/v0001?addr=<your IP address>&format=json
There is an updated version of metamod called metamod-p.
To run NS plugins, please use the updated build of AMX that supports this version of NS.
Evobot is integrated in NS 3.3 and can be configured in the listen server creation UI or via the following commands in the server.cfg
for dedicated servers:
mp_botsenabled (0/1) Bots are enabled Y/N
mp_botautomode (0-2) (0 = manually add/remove bots, 1 = Maintain min player counts, 2 = Keep teams balanced only)
mp_botskill (0-3) Bot skill (0 = Easiest, 3 = Hardest)
mp_botcommandermode (0-2) (0 = Bot never commands, 1 = Bot commands after mp_botcommanderwait seconds if nobody else does, 2 = Bot only commands if no humans are on the team)
mp_botcommanderwait (0..) How long the bot should wait before taking command (if allowed to)
mp_botusemapdefaults (0/1) Use the map min player counts defined in nsbots.ini Y/N
mp_botminplayers (0-32) If not using map defaults, maintain this player population for all maps
mp_botallowlerk (0/1) Bot is allowed to evolve lerk Y/N
mp_botallowfade (0/1) Bot is allowed to evolve fade Y/N
mp_botallowonos (0/1) Bot is allowed to evolve onos Y/N
mp_botlerkcooldown (0..) After a lerk is killed, how long in seconds should the bot wait to evolve again (default 60s)
mp_botmaxstucktime (0..) If a bot is stuck longer than this time (in seconds) it will suicide (default 15s)
mp_botdebugmode (0-2) (0 = Disabled, 1 = Drone Mode, 2 = Test Nav Mode). Use test nav mode to validate your nav files.
sv_botadd <Team> If mp_botautomode is 0, this will manually add a bot to team 1 or 2. If Team is 0, it will assign randomly
sv_botremove <Team> If mp_botautomode is 0, this will manually remove a bot from team 1 or 2. If Team is 0, it will remove randomly
sv_botregenini If your copy of nsbots.ini is lost or corrupted, this will generate a fresh one
bot_cometome If mp_botdebugmode is 1, this will force the bot to come to you. Helps test your nav file.
bot_drawoffmeshconns Will draw the off-mesh connections present in the loaded navigation file, color-coded based on connection type
bot_drawtempobstacles Will draw nearby temporary obstacles affecting the nav mesh
The bot system uses a modified version of the Detour library from recastnavigation.
Other bot plugins:
For Windows, compilation should be working if you have VS2019 installed.
For Linux:
First you need some libraries. On Ubuntu it is:
apt-get install build-essential git gdb gcc-multilib g++-multilib libc6-dev-i386 mesa-common-dev
Then you will need to get the files:
git clone https://github.com/ENSL/NS.git
Then cd to the linux directory:
cd NS/main/source/linux
Then build
make
or make ns
to build the server binary and make cl_dll
for the client binary. make clean
to clean.
If you get this error when running the app: Fatal Error - could not load library (client.so)
, With a high chance it is because of some UNDEFINED SYMBOLS
in the shared library. But you can check this with this command:
ldd -r -d client.so
Make sure you have vgui.so copied to the cl_dll folder too on Linux.
For Windows:
Debug builds can be built with the Debug
build option. The other debug options are currently broken and are a reference from the original UWE source release. After building the debug version and running it, attach the visual studio debugger to hl.exe.
For Linux: If you want to debug:
LD_LIBRARY_PATH=".:$LD_LIBRARY_PATH" gdb ./hl_linux r -game ns -dev -steam
Due to the new engine and the nature of Linux a lot of changes were made. You can find them with grep -Ril @Linux
.
For MacOS & lldb:
DYLD_LIBRARY_PATH=".:$DYLD_LIBRARY_PATH" /Applications/Xcode.app/Contents/Developer/usr/bin/lldb -- ./hl_osx r -game ns -dev -steam -windowed
Have to use XCode's lldb to get around https://stackoverflow.com/a/33589760 (Lack of environment variables). -windowed
as windowed mode makes it easier to deal with crashes on MacOS.
https://github.com/ValveSoftware/halflife/blob/master/README.md
You may, free of charge, download and use the SDK to develop a modified Valve game running on the Half-Life engine. You may distribute your modified Valve game in source and object code form, but only for free. Terms of use for Valve games are found in the Steam Subscriber Agreement located here: http://store.steampowered.com/subscriber_agreement/
You may copy, modify, and distribute the SDK and any modifications you make to the SDK in source and object code form, but only for free. Any distribution of this SDK must include this license.txt and third_party_licenses.txt.
DISCLAIMER OF WARRANTIES. THE SOURCE SDK AND ANY OTHER MATERIAL DOWNLOADED BY LICENSEE IS PROVIDED “AS IS”. VALVE AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES WITH RESPECT TO THE SDK, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, TITLE AND FITNESS FOR A PARTICULAR PURPOSE.
LIMITATION OF LIABILITY. IN NO EVENT SHALL VALVE OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR INABILITY TO USE THE ENGINE AND/OR THE SDK, EVEN IF VALVE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
All artwork, sounds, audio, screenshots, text and code in Natural Selection, Zen of Sudoku, Spark engine and Natural Selection 2 are Copyright © 2014 Unknown Worlds Entertainment, Inc (http://www.unknownworlds.com).
The mark Natural Selection was first represented in association with video-game software in June of 2001, and was first used in commerce around January, 2002. Natural Selection is Registered with the U.S. Patent and Trademark Office (No. 4,179,393).
See COPYING.txt for the GNU GENERAL PUBLIC LICENSE
EXCLUDED CODE: The code described below and contained in the Natural Selection Source Code release is not part of the Program covered by the GPL and is expressly excluded from its terms. You are solely responsible for obtaining from the copyright holder a license for such code and complying with the applicable license terms.
EXCLUDED CODE AND LIBRARIES
Original code and design by Charlie Cleveland (charlie@unknownworlds.com, @flayra).
Many contributions from Karl Patrick (karl.patrick@gmail.com), Petter Rønningen tankefugl@gmail.com, Harry Walsh harry.walsh@gmail.com, and probably lots of people I forgot.