Skip to content

Map Updater

GOKZ.TOP provides a map updater for server operators. It compares the validated map catalog with the BSP files on your server, downloads only missing or changed maps, and refreshes maplist.txt and mapcycle.txt.

Requirements

  • Linux with curl, Python 3, and flock
  • Write access to the server's csgo/maps directory
  • Optional: 7z or 7zz for faster large initial installations

Run every command as the Linux user that owns and runs the game server.

Test a manual update

Change to the server's csgo/ directory—not csgo/maps/—and run:

curl -fsSL https://gokz.top/install/maps.sh | sh

Confirm the detected directory when prompted and make sure the update finishes successfully before scheduling it.

Schedule hourly updates

Open the game-server user's crontab:

crontab -e

Add this line:

0 * * * * /usr/bin/flock -n "$HOME/.gokz-map-update.lock" /bin/sh -c 'export GOKZ_MAPS_YES=1; /usr/bin/curl -fsSL https://gokz.top/install/maps.sh | /bin/sh' >> "$HOME/map-update.log" 2>&1

The job checks at the start of every hour, so a newly validated map may take up to one hour to arrive. The lock prevents overlapping runs, and unattended confirmation is enabled for the updater process.

Standard LinuxGSM installations at $HOME/serverfiles/csgo are detected automatically.

Use a custom server path

If your csgo directory is elsewhere, add an explicit cd before export:

0 * * * * /usr/bin/flock -n "$HOME/.gokz-map-update.lock" /bin/sh -c 'cd /path/to/serverfiles/csgo || exit 1; export GOKZ_MAPS_YES=1; /usr/bin/curl -fsSL https://gokz.top/install/maps.sh | /bin/sh' >> "$HOME/map-update.log" 2>&1

Replace /path/to/serverfiles/csgo with the absolute path to your server's csgo/ directory.

Check logs or remove the schedule

View recent output with:

tail -n 100 "$HOME/map-update.log"

To stop automatic updates, run crontab -e, delete the GOKZ map updater line, and save the file. The lock and log files can remain safely; they do not run anything by themselves.