diff --git a/Dockerfile b/Dockerfile
index 5728221..fc25cbd 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,13 +1,13 @@
FROM debian:buster-slim
-# Install software
+# Install dependencies
RUN dpkg --add-architecture i386
RUN apt-get update && \
- apt-get install -y apt-utils vim curl wget file tar bzip2 gzip unzip bsdmainutils python util-linux ca-certificates binutils bc jq tmux netcat lib32gcc1 lib32stdc++6 cpio sudo procps iproute2
+ apt-get install -y apt-utils vim curl wget file tar bzip2 gzip unzip bsdmainutils python util-linux ca-certificates binutils bc jq tmux netcat lib32gcc1 lib32stdc++6 cpio sudo procps iproute2 libsdl2-2.0-0:i386
# Install gamedig
# GameDig is a tool that queries game servers and returns outputs data from a query into json format. It can not only check if the game server is online but also return various data such as current maps and players. This allows ./gameserver details to display live information.
-# See https://github.com/gamedig/node-gamedig
+# https://github.com/gamedig/node-gamedig
RUN curl -fsSL https://deb.nodesource.com/setup_16.x | bash -
RUN apt-get install -y nodejs
RUN npm install gamedig -g
@@ -22,6 +22,8 @@ USER csserver
WORKDIR /home/csserver
# Download linuxgsm.sh
+# LinuxGSM is the command-line tool for quick, simple deployment and management of Linux dedicated game servers.
+# https://github.com/GameServerManagers/LinuxGSM
RUN wget -O linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh csserver
# Installation of dependencies requires either sudo or root access. LinuxGSM can automatically install dependencies if the user has sudo or is root.
@@ -30,9 +32,14 @@ RUN sudo ./csserver install
# Auto install is useful for automatic server deployments as no user prompt is required.
RUN ./csserver auto-install
-# Get and install serverconfig
-RUN wget https://dl.ardestani.org/cs16serverconfig.tar.gz
-RUN tar -zxvf cs16serverconfig.tar.gz
-RUN rm cs16serverconfig.tar.gz
+# Install config, metamod & amxmodx
+# http://metamod.org/
+# https://www.amxmodx.org/
+COPY --chown=csserver ./src/csserver/ ./src/scripts/mapcheck.js ./
-CMD /bin/bash -c '/home/csserver/csserver start; /bin/bash'
+# Add big kreedz mappack
+RUN wget https://dl.ardestani.org/kreedz-mappack.tar.gz \
+ && tar zxvpf kreedz-mappack.tar.gz -C ./serverfiles \
+ && rm kreedz-mappack.tar.gz
+
+CMD /bin/bash -c '/home/csserver/csserver start; /bin/bash'
\ No newline at end of file
diff --git a/README.md b/README.md
index 48f81ed..52e4787 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,3 @@
-# cstrike-1.6server
+# cs16
+Counter-Strike 1.6 server running docker
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
index efbc882..e62b7aa 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,11 +1,10 @@
version: '3'
-
services:
- cs16:
+ cs16climbing:
build: .
- image: cs16:latest
+ image: cs16climbing:latest
ports:
- - "27015:27015/udp"
- - "27015:27015/tcp"
- container_name: cs16
- tty: true
+ - "27017:27017/udp"
+ - "27017:27017/tcp"
+ container_name: cs16climbing
+ tty: true
\ No newline at end of file
diff --git a/src/csserver/lgsm/config-lgsm/csserver/csserver.cfg b/src/csserver/lgsm/config-lgsm/csserver/csserver.cfg
new file mode 100644
index 0000000..e1df9e3
--- /dev/null
+++ b/src/csserver/lgsm/config-lgsm/csserver/csserver.cfg
@@ -0,0 +1,10 @@
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
+ip="0.0.0.0"
+port="27017"
+clientport="27005"
+defaultmap="bkz_goldbhop"
+maxplayers="32"
+pingboost="2"
+
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game cstrike -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers} -pingboost ${pingboost}"
\ No newline at end of file
diff --git a/src/csserver/serverfiles/cstrike/addons/amxmodx/configs/amxx.cfg b/src/csserver/serverfiles/cstrike/addons/amxmodx/configs/amxx.cfg
new file mode 100644
index 0000000..fe13620
--- /dev/null
+++ b/src/csserver/serverfiles/cstrike/addons/amxmodx/configs/amxx.cfg
@@ -0,0 +1,182 @@
+// AMX Mod X Configuration File
+echo Executing AMX Mod X Configuration File
+
+// Default access for all non admin players (see users.ini for access details)
+//
+// Default value: "z"
+amx_default_access "z"
+
+// Name of setinfo which should store a password on a client (you should change this)
+// Note: Always prefix the field with an underscore (aka: "_")
+// (Example: setinfo _pw "password")
+//
+// Default value: "_pw"
+amx_password_field "_pw"
+
+// Mode of logging to a server
+// 0 - disable logging, players won't be checked (and access won't be set)
+// 1 - normal mode which obey flags set in accounts
+// 2 - kick all players not on list
+//
+// Default value: 1
+amx_mode 1
+
+// Show admins activity
+// 0 - disabled
+// 1 - show without admin name
+// 2 - show with name
+//
+// Default value: 2
+amx_show_activity 2
+
+// Frequency in seconds and text of scrolling message
+//
+// Default value: "Welcome to %hostname% -- This server is using AMX Mod X" 600
+amx_scrollmsg "Welcome to %hostname% -- This server is using AMX Mod X" 600
+
+// Center typed colored messages (last parameter is a color in RRRGGGBBB format)
+//
+// Default values: "Welcome to %hostname%" "000255100"
+// "This server is using AMX ModX\nVisit http://www.amxmodx.org" "000100255"
+amx_imessage "Welcome to %hostname%" "000255100"
+amx_imessage "This server is using AMX Mod X\nVisit http://www.amxmodx.org" "000100255"
+
+// Frequency in seconds of colored messages
+//
+// Default value: 180
+amx_freq_imessage 180
+
+// Ban times for the main ban menu (amx_banmenu)
+// Use 0 for permanent ban
+// Default values: 0 5 10 15 30 45 60
+amx_plmenu_bantimes 0 5 10 15 30 45 60
+
+// Slap damage amounts for the main slap menu (amx_slapmenu)
+// Slay is automaticall inserted as the first option
+// Default values: 0 1 5
+amx_plmenu_slapdmg 0 1 5
+
+// Set in seconds how fast players can chat (chat-flood protection)
+//
+// Default value: 0.75
+amx_flood_time 0.75
+
+// Amount of slots to reserve.
+//
+// Default value: 0
+amx_reservation 0
+
+// If you set this to 1, you can hide slots on your server.
+// If server "full" of public slots and slots hidden, you must manually connect with connect console command
+//
+// Default value: 0
+amx_hideslots 0
+
+// Displaying of time remaining
+// a - display white text on bottom
+// b - use voice
+// c - don't add "remaining" (only in voice)
+// d - don't add "hours/minutes/seconds" (only in voice)
+// e - show/speak if current time is less than this set in parameter
+//
+// Default value: "ab 1200" "ab 600" "ab 300" "ab 180" "ab 60" "bcde 11"
+amx_time_display "ab 1200" "ab 600" "ab 300" "ab 180" "ab 60" "bcde 11"
+
+// Announce "say thetime" and "say timeleft" with voice, set to 0 to disable.
+//
+// Default value: 1
+amx_time_voice 1
+
+// Minimum delay in seconds between two voting sessions
+//
+// Default value: 10
+amx_vote_delay 10
+
+// How long voting session goes on
+//
+// Default value: 10
+amx_vote_time 10
+
+// Display who votes for what option, set to 0 to disable, 1 to enable.
+//
+// Default value: 1
+amx_vote_answers 1
+
+// Some ratios for voting success
+
+// Default value: 0.40
+amx_votekick_ratio 0.40
+
+// Default value: 0.40
+amx_voteban_ratio 0.40
+
+// Default value: 0.40
+amx_votemap_ratio 0.40
+
+// Default value: 0.02
+amx_vote_ratio 0.02
+
+// Max. time to which map can be extended
+//
+// Default value: 90
+amx_extendmap_max 90
+
+// Step for each extending
+//
+// Default value: 15
+amx_extendmap_step 15
+
+// If you set this to 0, clients cannot chose their language, instead they use
+// whatever language the server is configured to use.
+//
+// Default value: 1
+amx_client_languages 1
+
+// Plugin Debug mode
+// 0 - No debugging (garbage line numbers)
+// 1 - Plugins with "debug" option in plugins.ini are put into debug mode
+// 2 - All plugins are put in debug mode
+// Note - debug mode will affect JIT performance
+//
+// Default value: 1
+amx_debug 1
+
+// Plugin MultiLingual Debug
+// To debug a language put its 2 letter code between quotes ("en", "de", etc)
+// "" means disabled
+//
+// Default value: ""
+amx_mldebug ""
+
+//
+// Beginning of Counter-Strike package specific configurations.
+//
+
+// Rank mode
+// 0 - by nick
+// 1 - by authid
+// 2 - by ip
+//
+// Default value: 1
+csstats_rank 1
+
+// Max size of the stats file
+//
+// Default value: 3500
+csstats_maxsize 3500
+
+// Whether or not to rank bots with csstats - set to 1 to rank bots, 0 otherwise.
+//
+// Default value: 0
+csstats_rankbots 0
+
+// Duration of HUD-statistics
+//
+// Default value: 12.0
+amx_statsx_duration 12.0
+
+// HUD-statistics display limit relative round freeze end
+// Negative time will clear the HUD-statstics before the round freeze time has ended
+//
+// Default value: -2.0
+amx_statsx_freeze -2.0
diff --git a/src/csserver/serverfiles/cstrike/addons/amxmodx/configs/clcmds.ini b/src/csserver/serverfiles/cstrike/addons/amxmodx/configs/clcmds.ini
new file mode 100644
index 0000000..e0c2f9e
--- /dev/null
+++ b/src/csserver/serverfiles/cstrike/addons/amxmodx/configs/clcmds.ini
@@ -0,0 +1,17 @@
+; Menu configuration file
+; Default File location: $moddir/addons/amxmodx/configs/clcmds.ini
+; To use with Players Menu plugin
+
+; NOTE: By default in all settings the access level is set to "u".
+; However you can change that, to limit the access to some settings.
+
+; Client Commands Menu: ; < description > < command > < flags > < access level >
+; "a" - execute from server console
+; "b" - execute from admin console
+; "c" - execute on selected player
+; "d" - back to menu when executed
+
+"Kick player" "amx_kick #%userid%" "b" "u"
+"Slay player" "amx_slay #%userid%" "bd" "u"
+"Slap with 1 dmg." "amx_slap #%userid% 1" "bd" "u"
+"Ban for 5 minutes" "amx_ban #%userid% 5" "b" "u"
diff --git a/src/csserver/serverfiles/cstrike/addons/amxmodx/configs/cmds.ini b/src/csserver/serverfiles/cstrike/addons/amxmodx/configs/cmds.ini
new file mode 100644
index 0000000..554d4f9
--- /dev/null
+++ b/src/csserver/serverfiles/cstrike/addons/amxmodx/configs/cmds.ini
@@ -0,0 +1,16 @@
+; Menu configuration file
+; File location: $moddir/addons/amxmodx/configs/cmds.ini
+; To use with Commands Menu plugin
+
+; NOTE: By default in all settings the access level is set to "u".
+; However you can change that, to limit the access to some settings.
+
+; Commands Menu: ; < description > < command > < flags > < access level >
+; "a" - execute from server console
+; "b" - execute from admin console
+; "c" - execute on all clients
+; "d" - back to menu when executed
+
+"Pause" "amx_pause" "ad" "u"
+" " "-" "" "u"
+"Restart Round" "sv_restartround 1" "a" "u"
diff --git a/src/csserver/serverfiles/cstrike/addons/amxmodx/configs/configs.ini b/src/csserver/serverfiles/cstrike/addons/amxmodx/configs/configs.ini
new file mode 100644
index 0000000..27bbdd1
--- /dev/null
+++ b/src/csserver/serverfiles/cstrike/addons/amxmodx/configs/configs.ini
@@ -0,0 +1,22 @@
+; Menu configuration file
+; File location: $moddir/addons/amxmodx/configs/configs.ini
+; To use with Commands Menu plugin
+
+; NOTE: By default in all settings the access level is set to "u".
+; However you can change that, to limit the access to some settings.
+
+; Commands Menu:
+; < description > < command > < flags > < access level >
+; "a" - execute from server console
+; "b" - execute from admin console
+; "c" - execute on all clients
+; "d" - back to menu when executed
+
+;"PUBLIC Settings" "servercfgfile server.cfg;exec server.cfg" "a" "u"
+;"Clanbase" "exec clanbase.cfg;servercfgfile \'\'" "a" "u"
+;"Clanbase Charges Only" "exec clanbase_co.cfg;servercfgfile \'\'" "a" "u"
+;"Official CAL Match" "exec cal.cfg;servercfgfile \'\'" "a" "u"
+;"ProvingGrounds Server Config" "exec leagues/pg.cfg;servercfgfile \'\'" "a" "u"
+;"OGL CS Server Config" "exec ogl.cfg;servercfgfile \'\'" "a" "u"
+;"OGL CS FF Server Config" "exec ogl_ff.cfg;servercfgfile \'\'" "a" "u"
+;"OGL CS Advanced Server Config" "exec ogl_adv.cfg;servercfgfile \'\'" "a" "u"
diff --git a/src/csserver/serverfiles/cstrike/addons/amxmodx/configs/core.ini b/src/csserver/serverfiles/cstrike/addons/amxmodx/configs/core.ini
new file mode 100644
index 0000000..ab40bc9
--- /dev/null
+++ b/src/csserver/serverfiles/cstrike/addons/amxmodx/configs/core.ini
@@ -0,0 +1,42 @@
+; Configuration file for AMX Mod X
+amxx_logs addons/amxmodx/logs
+amxx_configsdir addons/amxmodx/configs
+amxx_datadir addons/amxmodx/data
+amxx_modules addons/amxmodx/configs/modules.ini
+amxx_plugins addons/amxmodx/configs/plugins.ini
+amxx_pluginsdir addons/amxmodx/plugins
+amxx_modulesdir addons/amxmodx/modules
+amxx_vault addons/amxmodx/data/vault.ini
+; It is important that "csstats" comes before "csstats_score"
+csstats addons/amxmodx/data/csstats.dat
+csstats_score addons/amxmodx/data/csstats.amxx
+
+; Logging mode
+; 0 - no logging
+; 1 - one logfile / day
+; 2 - one logfile / map
+; 3 - HL Logs
+amxx_logging 1
+
+; Binary logging level
+; add these up to get what you want
+; these only work with bin logging binaries
+; 1 - default
+; 2 - log internal string sets/gets
+; 4 - log internal formats
+; 8 - log all native params
+; 16 - log internal function calls (only in debug mode)
+; 32 - log line number accesses (only in debug mode)
+bin_logging 49
+
+; Maximum binary log size, in megs
+max_binlog_size 20
+
+; Plugin optimization flags - add these up to get what you want
+; lowering these may stop crashes on very old CPUs
+; set 65536 to disable optimizer, NOT 0!
+;-------------
+; 1 - float arithmetic
+; 2 - float comparisons
+; 4 - float rounding
+optimizer 7
diff --git a/src/csserver/serverfiles/cstrike/addons/amxmodx/configs/custommenuitems.cfg b/src/csserver/serverfiles/cstrike/addons/amxmodx/configs/custommenuitems.cfg
new file mode 100644
index 0000000..cb6f2aa
--- /dev/null
+++ b/src/csserver/serverfiles/cstrike/addons/amxmodx/configs/custommenuitems.cfg
@@ -0,0 +1,19 @@
+// Here you can add menu items from any plugin to Menus Front-End plugin, aka "amxmodmenu".
+// You can also add menu items to the normal non-admin client menu "amx_menu".
+//
+// Adding to "amxmodmenu":
+// Usage: "amx_addmenuitem