#####################
# BOT CONFIGURATION #
#####################
### the log file
bot_log = ghost.log
### the language file
bot_language = language.cfg
### the path to your local Warcraft III directory
### this path must contain war3.exe, storm.dll, and game.dll
### if this path contains War3Patch.mpq the bot will attempt to extract "Scripts\common.j" and "Scripts\blizzard.j" on startup and write them to bot_mapcfgpath (which is defined later in this file)
### common.j and blizzard.j are only required for automatically calculating map_crc, you do not need them if your map config files already contain map_crc
bot_war3path = C:\Program Files\Warcraft III\
### the address GHost++ will bind to when hosting games (leave it blank to bind to all available addresses)
### if you don't know what this is just leave it blank
bot_bindaddress =
### the port GHost++ will host battle.net games on (this must be different from your admingame_port)
bot_hostport = 6112
### maximum number of games to host at once
bot_maxgames = 5
### command trigger for ingame only (battle.net command triggers are defined later)
bot_commandtrigger = !
### the path to the directory where you keep your map config files
### this directory can also contain common.j and blizzard.j (extracted from War3Patch.mpq)
### common.j and blizzard.j are only required for automatically calculating map_crc, you do not need them if your map config files already contain map_crc
bot_mapcfgpath = C:\Program Files\Warcraft III\mapcfgs\
### the path to the directory where you keep your savegame files
bot_savegamepath = savegames\
### the path to the directory where you keep your map files
### GHost++ doesn't require map files but if it has access to them it can send them to players and automatically calculate most map config values
### GHost++ will search [bot_mappath + map_localpath] for the map file (map_localpath is set in each map's config file)
bot_mappath = C:\Program Files\Warcraft III\Maps\Download\
### whether to save replays or not
bot_savereplays = 0
### the path to the directory where you want GHost++ to save replays
bot_replaypath = replays
### the Warcraft 3 version to save replays as
replay_war3version = 24
### the Warcraft 3 build number to save replays as (this is specific to each Warcraft 3 version)
### patch 1.23: war3version 23, buildnumber 6058
### patch 1.24: war3version 24, buildnumber 6059
### patch 1.24b: war3version 24, buildnumber 6059
replay_buildnumber = 6059
### the bot's virtual host name as it appears in the game lobby
### colour codes are defined by the sequence "|cFF" followed by a six character hexadecimal colour in RRGGBB format (e.g. 0000FF for pure blue)
### the virtual host name cannot be longer than 15 characters including the colour code, if you try to go over this limit GHost++ will use the default virtual host name
bot_virtualhostname = |cFF4080C0GHost
### whether to hide each player's IP address from other players or not
bot_hideipaddresses = 0
### whether to check for multiple IP address usage or not
bot_checkmultipleipusage = 1
### whether to do automatic spoof checks or not
### you can always manually spoof check by whispering the bot (and in fact this is required before running admin commands)
### set to 0 to disable automatic spoof checks
### set to 1 to enable automatic spoof checks on all players
### set to 2 to enable automatic spoof checks on potential admins only
bot_spoofchecks = 1
### whether to require spoof checks or not
### this controls whether the bot will require players to spoof check before starting the game
### it does NOT control whether the bot will require players to spoof check before running admin commands - spoof checks are ALWAYS required for admin status
### if you require spoof checks, players will be kicked from the lobby if they haven't spoof checked within 20 seconds of joining (autohosted games only)
bot_requirespoofchecks = 1
### whether to display game refresh messages by default
### this can always be changed for a particular game with the !refresh command
bot_refreshmessages = 0
### whether to automatically lock games when the owner joins
bot_autolock = 0
### whether to automatically save games when a player disconnects
### this can always be changed for a particular game with the !autosave command
bot_autosave = 0
### whether to allow map downloads or not
### set to 0 to disable map downloads
### set to 1 to enable map downloads
### set to 2 to enable conditional map downloads (an admin must start each map download with the !download or !dl command)
bot_allowdownloads = 1
### whether to ping players during map downloads or not
### GHost++ will always stop pinging any players who are downloading the map
### this config value determines whether GHost++ should stop pinging *all* players when at least one player is downloading the map
bot_pingduringdownloads = 0
### the maximum number of players allowed to download the map at the same time
bot_maxdownloaders = 3
### the maximum combined download speed of all players downloading the map (in KB/sec)
bot_maxdownloadspeed = 100
### use LC style pings (divide actual pings by two)
bot_lcpings = 1
### auto kick players with ping higher than this
bot_autokickping = 400
### the ban method
### if bot_banmethod = 1, GHost++ will automatically reject players using a banned name
### if bot_banmethod = 2, GHost++ will automatically reject players using a banned IP address
### if bot_banmethod = 3, GHost++ will automatically reject players using a banned name or IP address
### if bot_banmethod is anything else GHost++ will print a message when a banned player joins but will not automatically reject them
bot_banmethod = 1
### the IP blacklist file
bot_ipblacklistfile = ipblacklist.txt
### automatically close the game lobby if a reserved player (or admin) doesn't join it for this many minutes
### games which are set to automatically start when enough players join are exempt from this limit (e.g. autohosted games)
bot_lobbytimelimit = 10
### the game latency
### this can always be changed for a particular game with the !latency command (which enforces a minimum of 50 and a maximum of 500)
bot_latency = 100
### the maximum number of packets a player is allowed to get out of sync by before starting the lag screen
### before version 8.0 GHost++ did not have a lag screen which is the same as setting this to a very high number
### this can always be changed for a particular game with the !synclimit command (which enforces a minimum of 10 and a maximum of 10000)
bot_synclimit = 50
### whether votekicks are allowed or not
bot_votekickallowed = 1
### the percentage of players required to vote yes for a votekick to pass
### the player starting the votekick is assumed to have voted yes and the player the votekick is started against is assumed to have voted no
### the formula for calculating the number of votes needed is votes_needed = ceil( ( num_players - 1 ) * bot_votekickpercentage / 100 )
### this means it will round UP the number of votes required
### if you set it to 100 it will require 2/3, 3/4, 4/5, 5/6, 6/7, 7/8, 8/9, 9/10, 10/11, and 11/12 votes to pass
### if you set it to 90 it will require 2/3, 3/4, 4/5, 5/6, 6/7, 7/8, 8/9, 9/10, 9/11, and 10/12 votes to pass
### if you set it to 80 it will require 2/3, 3/4, 4/5, 4/6, 5/7, 6/8, 7/9, 8/10, 8/11, and 9/12 votes to pass
### if you set it to 70 it will require 2/3, 3/4, 3/5, 4/6, 5/7, 5/8, 6/9, 7/10, 7/11, and 8/12 votes to pass
### if you set it to 60 it will require 2/3, 2/4, 3/5, 3/6, 4/7, 5/8, 5/9, 6/10, 6/11, and 7/12 votes to pass
bot_votekickpercentage = 100
### the default map config (the ".cfg" will be added automatically if you leave it out)
bot_defaultmap = Civilization Wars v2.30 Op Beta 14
### the MOTD file
### the first 8 lines of this file will be displayed when a player joins the game
### if this file doesn't exist a default MOTD will be used
bot_motdfile = motd.txt
### the gameloaded file
### the first 8 lines of this file will be displayed when the game finished loading (after the player loading times are displayed)
bot_gameloadedfile = gameloaded.txt
### the gameover file
### the first 8 lines of this file will be displayed when the game is over
### this only works when using a stats class - note: at the time of this writing the only stats class is for DotA maps
bot_gameoverfile = gameover.txt
### whether to use regular expressions when loading map configs and maps or not
bot_useregexes = 0
### the "TCP no delay" flag
### this controls whether or not your operating system should use the "no delay" algorithm on game sockets
### the algorithm is designed to reduce latency by sending data in small packets as soon as possible rather than waiting to send a single larger packet
### enabling this algorithm requires additional bandwidth because it is a less efficient way of sending data
### however, it may reduce game latencies in some cases
tcp_nodelay = 0
### the matchmaking method
### this controls how the bot matches players when they join the game when using !autohostmm
### set it to 0 to disable matchmaking (first come first served, even if their scores are very different)
### set it to 1 to use the "furthest score" method (the player with the furthest score from the average is kicked to make room for another player)
### set it to 2 to use the "lowest score" method (the player with the lowest score is kicked to make room for another player)
bot_matchmakingmethod = 1
############################
# ADMIN GAME CONFIGURATION #
############################
### whether to create the admin game or not (see readme.txt for more information)
admingame_create = 0
### the port GHost++ will host the admin game on (this must be different from your bot_hostport)
admingame_port = 6113
### the admin game password
admingame_password =
### the default map config to use in the admin game
### if this value is blank the bot will use a hardcoded map instead
### it's recommended that you use the hardcoded map instead of specifying a different one
### this value exists because the hardcoded map is specific to Warcraft 3 versions and you may wish to use a previous or newer version
### the ".cfg" will be added automatically if you leave it out
admingame_map =
#####################
# LAN CONFIGURATION #
#####################
### the Warcraft 3 version to use when broadcasting LAN games
lan_war3version = 24
### the UDP broadcast target
### if this value is blank the bot will try to broadcast LAN games on the default interface which is chosen by your operating system
### sometimes your operating system will choose the wrong interface when more than one exists
### therefore you can use this value to force the bot to use a specific interface
### for example you may set it to "192.168.1.255" to broadcast LAN games to the 192.168.1.x subnet
udp_broadcasttarget =
### the UDP "don't route" flag
udp_dontroute = 0
##########################
# AUTOHOST CONFIGURATION #
##########################
### this section of the config file is for enabling autohost when the bot starts up without having to issue a command
### you can activate the autohost feature without changing anything here by using the !autohost command
autohost_maxgames = 0
autohost_startplayers = 0
autohost_gamename =
autohost_owner =
##########################
# DATABASE CONFIGURATION #
##########################
### database type
### use "sqlite3" for a local SQLite database
### use "mysql" for any MySQL database
db_type = sqlite3
### sqlite3 database configuration
### this is only used if your database type is SQLite
db_sqlite3_file = ghost.dbs
### mysql database configuration
### this is only used if your database type is MySQL
db_mysql_server = localhost
db_mysql_database = ghost
db_mysql_user = YOUR_USERNAME
db_mysql_password = YOUR_PASSWORD
db_mysql_port = 0
### the bot ID is included each time the bot adds data to the MySQL database
### it is used to identify where each row of data came from when you configure multiple bots to connect to the same MySQL database
### GHost++ does not use the bot ID number itself, it's just to help you keep track of the data in your database
db_mysql_botid = 1
############################
# BATTLE.NET CONFIGURATION #
############################
### which battle.net server to connect to
### 1.) useast.battle.net
### 2.) uswest.battle.net
### 3.) asia.battle.net
### 4.) europe.battle.net
### note that each banned player is tied to the realm it was created on and the realm is case sensitive
### so if you change your realm from useast.battle.net to USEAST.BATTLE.NET it'll still connect but anyone previously banned will not be counted as banned until you change it back
bnet_server = server.eurobattle.net
### the server alias
### this name will be used to identify the battle.net server in the GHost++ console
### if you leave it blank it will use a short name such as "USEast" for official battle.net servers or it will use the actual server address
bnet_serveralias = USEast
### your Warcraft III: Reign of Chaos CD key
### you cannot use the same CD key here that you yourself use to login to battle.net if you plan to login at the same time as your bot
bnet_cdkeyroc = FFFFFFFFFFFFFFFFFFFFFFFFFF
### your Warcraft III: The Frozen Throne CD key
### you cannot use the same CD key here that you yourself use to login to battle.net if you plan to login at the same time as your bot
bnet_cdkeytft = FFFFFFFFFFFFFFFFFFFFFFFFFF
### your battle.net username
### you cannot use the same username here that you yourself use to login to battle.net if you plan to login at the same time as your bot
bnet_username = Ghost910
### your battle.net password
bnet_password = 123
### the first channel to join upon entering battle.net
bnet_firstchannel = W3-Bots
### the root admin on this battle.net server only
bnet_rootadmin = Ryder910
### command trigger for this battle.net server only
bnet_commandtrigger = !
### whether to automatically add your friends list to each game's reserved list
bnet_holdfriends = 0
### whether to automatically add your clan members list to each game's reserved list
bnet_holdclan = 0
### whether to allow anonymous users (non admins) to use public commands such as !stats and !statsdota on this battle.net connection
### if you are having trouble with spammers causing your bot to flood the server you should disable this
bnet_publiccommands = 1
### BNLS server information for Warden handling (see readme.txt for more information)
### you will need to use a valid BNLS server here if you are connecting to an official battle.net realm or you will be disconnected every two minutes
bnet_bnlsserver = localhost
bnet_bnlsport = 9367
bnet_bnlswardencookie = 1
### you will need to edit this section of the config file if you're connecting to a PVPGN server
### your PVPGN server operator will tell you what to put here
bnet_custom_war3version = 24
bnet_custom_exeversion = 230 1 24 1
bnet_custom_exeversionhash = 48 158 165 202
bnet_custom_passwordhashtype = pvpgn
###
### example configuration for connecting to a second official battle.net server
###
# bnet2_server = uswest.battle.net
# bnet2_serveralias = USWest
# bnet2_cdkeyroc = FFFFFFFFFFFFFFFFFFFFFFFFFF
# bnet2_cdkeytft = FFFFFFFFFFFFFFFFFFFFFFFFFF
# bnet2_username =
# bnet2_password =
# bnet2_firstchannel = The Void
# bnet2_rootadmin =
# bnet2_commandtrigger = !
# bnet2_holdfriends = 1
# bnet2_holdclan = 1
# bnet2_publiccommands = 1
# bnet2_bnlsserver = localhost
# bnet2_bnlsport = 9367
# bnet2_bnlswardencookie = 2
###
### example configuration for connecting to a third PVPGN battle.net server
###
# bnet3_server = server.eurobattle.net
# bnet3_serveralias = EuroBattle
# bnet3_cdkeyroc = FFFFFFFFFFFFFFFFFFFFFFFFFF
# bnet3_cdkeytft = FFFFFFFFFFFFFFFFFFFFFFFFFF
# bnet3_username =
# bnet3_password =
# bnet3_firstchannel = The Void
# bnet3_rootadmin =
# bnet3_commandtrigger = !
# bnet3_holdfriends = 1
# bnet3_holdclan = 1
# bnet3_publiccommands = 1
# bnet3_custom_war3version = 24
# bnet3_custom_exeversion = 184 0 22 1
# bnet3_custom_exeversionhash = 219 152 153 144
# bnet3_custom_passwordhashtype = pvpgn
# bnet3_custom_pvpgnrealmname = PvPGN Realm