This is a modified version of MapChooserExtended intended for KZ Servers with support for dynamic map lists, tier display and KZTimer skillgroup limits for RTVing. This allows you to maintain several servers using a central-hosted map-pool - For KZTimer, this allows you to maintain skill-groups across servers even with different local map-pools!
It requires a database table with entries for all maps you want to track, along with tier information and LJ Room availability.
- Sourcemod 1.10
- MySQL Database Server
- KZTimer/GOKZ installed and set up correctly.
- Grab the latest release and extract it to your csgo server directory.
- Create a database entry in
databases.cfg
calledkzMaps
. You may copy the same config you use for thekztimer
orgokz
database configurations for convenience sake. - Create a table "kz_maps" in your selected database. This depends on what you set in the previous step (whether you set kzMaps to your KZTimer/GOKZ databases or if you're using something else)
CREATE TABLE IF NOT EXISTS `kz_maps` (`mapname` VARCHAR(50) NOT NULL PRIMARY KEY, `tier` TINYINT NOT NULL, `ljroom` TINYINT);
Use maplist.sql to create the table and import all global maps into your database. This may not always be up-to-date!
- Fill it with all the maps you are tracking.
- Ensure you have all the maps you want in
mapcycle.txt
on your server. - If you are hosting several servers and would like to sync the ranks system between them (kztimer), list all maps you host across all servers in
mapcycle.txt
- and specify the tiers you want per server in nominations.cfg! - Open nominations.cfg and ensure you have specified what map tiers you are hosting. This will allow you to divide your servers in terms of difficulty.
- sm_rtv_skillgroup_requirement -- Specify the minimum skillgroup a player must be to allow use of RTV. Only works for KZTimer! Set to 0 to disable or if you are using GOKZ. (0 = Unranked)
- sm_server_tier -- Specify the map tiers you intend to host on the server. For a tier 1-2 server, you should specify "1.2". For only tier 7s, specify "7.0"
Let's say you host several KZ Climb servers, separated by difficulty tiers - A Tier1-2 server and a Tier3-7 server. Put all the maps you host (in total, tier1-7) in both the server's local mapcycle.txt file. Then, populate the kz_maps table in the kztimer/gokz database with all the maps - you can use the maplist.sql in this repository.
All you need to then do is specify the local server's map tiers using the sm_server_tier CVar to host only those maps, while syncing skillgroups across all your servers!
I do update the maplist.sql file when new maps are released, but I cannot guarantee it'll be updated very quickly! You can re-import newer maplist.sql files to update the map-pool on the database. In the case I haven't updated maplist.sql, you can update it yourself - see below.
A drawback of this plugin is that you may have to manually update/insert entries any time a new map is released. That is, with every global release, you will need to insert entries for the newly released maps with their tier and LJ room info. I might develop a way to have the LJ room info be automatically collected, however I have no ETA on that.
You can insert maps into the kz_maps table with:
INSERT INTO `kz_maps` (`mapname`, `tier`, `ljroom`) VALUES
('kz_MAPNAME',1,0),
('kz_MAPNAME',1,1);
Where,
mapname = Name of the map file (eg: kz_sexmachine64)
tier = Tier number (1,2,3,4,5,6,7)
ljroom = LJRoom availability (1 = true, 0 = false)
IP: gokz.gflclan.com:27015