MACRO_CONFIG_INT(Events,events,1,0,1,CFGFLAG_SAVE|CFGFLAG_CLIENT|CFGFLAG_SERVER,"Enable triggering of events, (eye emotes on some holidays in server, christmas skins in client).")
MACRO_CONFIG_INT(ClRefreshRate,cl_refresh_rate,0,0,10000,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Refresh rate for updating the game (in Hz)")
MACRO_CONFIG_INT(ClRefreshRateInactive,cl_refresh_rate_inactive,120,0,10000,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Refresh rate for updating the game when the window is inactive (in Hz)")
MACRO_CONFIG_INT(ClAutoDemoOnConnect,cl_auto_demo_on_connect,0,0,1,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Only start a new demo when connect while automatically record demos")
MACRO_CONFIG_INT(ClAutoDemoMax,cl_auto_demo_max,10,0,1000,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Maximum number of automatically recorded demos (0 = no limit)")
MACRO_CONFIG_INT(ClAutoScreenshot,cl_auto_screenshot,0,0,1,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Automatically take game over screenshot")
MACRO_CONFIG_INT(ClAutoScreenshotMax,cl_auto_screenshot_max,10,0,1000,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Maximum number of automatically created screenshots (0 = no limit)")
MACRO_CONFIG_INT(ClAutoCSV,cl_auto_csv,0,0,1,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Automatically create game over csv")
MACRO_CONFIG_INT(ClAutoCSVMax,cl_auto_csv_max,10,0,1000,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Maximum number of automatically created csvs (0 = no limit)")
MACRO_CONFIG_INT(ClResetWantedWeaponOnDeath,cl_reset_wanted_weapon_on_death,1,0,1,CFGFLAG_CLIENT|CFGFLAG_SAVE,"Reset wanted weapon on death")
MACRO_CONFIG_INT(BrFilterFull,br_filter_full,0,0,1,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Filter out full server in browser")
MACRO_CONFIG_INT(BrFilterEmpty,br_filter_empty,0,0,1,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Filter out empty server in browser")
MACRO_CONFIG_INT(BrFilterSpectators,br_filter_spectators,0,0,1,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Filter out spectators from player numbers")
MACRO_CONFIG_INT(BrFilterFriends,br_filter_friends,0,0,1,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Filter out servers with no friends")
MACRO_CONFIG_INT(BrFilterCountry,br_filter_country,0,0,1,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Filter out servers with non-matching player country")
MACRO_CONFIG_INT(BrFilterCountryIndex,br_filter_country_index,-1,-1,999,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Player country to filter by in the server browser")
MACRO_CONFIG_INT(BrFilterPw,br_filter_pw,0,0,1,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Filter out password protected servers in browser")
MACRO_CONFIG_STR(BrFilterGametype,br_filter_gametype,128,"",CFGFLAG_SAVE|CFGFLAG_CLIENT,"Game types to filter")
MACRO_CONFIG_STR(BrFilterServerAddress,br_filter_serveraddress,128,"",CFGFLAG_SAVE|CFGFLAG_CLIENT,"Server address to filter")
MACRO_CONFIG_INT(BrFilterUnfinishedMap,br_filter_unfinished_map,0,0,1,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Show only servers with unfinished maps")
MACRO_CONFIG_STR(BrFilterExcludeCountries,br_filter_exclude_countries,128,"",CFGFLAG_SAVE|CFGFLAG_CLIENT,"Filter out DDNet servers by country")
MACRO_CONFIG_STR(BrFilterExcludeTypes,br_filter_exclude_types,128,"",CFGFLAG_SAVE|CFGFLAG_CLIENT,"Filter out DDNet servers by type (mod)")
MACRO_CONFIG_INT(BrIndicateFinished,br_indicate_finished,1,0,1,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Show whether you have finished a DDNet map (transmits your player name to info2.ddnet.tw/info)")
MACRO_CONFIG_STR(BrLocation,br_location,16,"auto",CFGFLAG_SAVE|CFGFLAG_CLIENT,"Override location for ping estimation, available: auto, af, as, as:cn, eu, na, oc, sa (Automatic, Africa, Asia, China, Europe, North America, Oceania/Australia, South America")
MACRO_CONFIG_STR(BrCachedBestServerinfoUrl,br_cached_best_serverinfo_url,256,"",CFGFLAG_SAVE|CFGFLAG_CLIENT,"Do not set this variable, instead create a ddnet-serverlist-urls.cfg next to settings_ddnet.cfg to specify all possible serverlist URLs")
MACRO_CONFIG_INT(BrMaxRequests,br_max_requests,100,0,1000,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Number of concurrent requests to use when refreshing server browser")
MACRO_CONFIG_INT(GfxBackgroundRender,gfx_backgroundrender,1,0,1,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Render graphics when window is in background")
MACRO_CONFIG_INT(GfxTextOverlay,gfx_text_overlay,10,1,100,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Stop rendering textoverlay in editor or with entities: high value = less details = more speed")
MACRO_CONFIG_INT(GfxAsyncRenderOld,gfx_asyncrender_old,1,0,1,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Do rendering async from the the update")
MACRO_CONFIG_INT(GfxTuneOverlay,gfx_tune_overlay,20,1,100,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Stop rendering text overlay in tuning zone in editor: high value = less details = more speed")
MACRO_CONFIG_INT(GfxQuadAsTriangle,gfx_quad_as_triangle,0,0,1,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Render quads as triangles (fixes quad coloring on some GPUs)")
MACRO_CONFIG_INT(ClPort,cl_port,0,0,65535,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Port to use for client connections to server (0 to choose a random port, requires a restart)")
MACRO_CONFIG_INT(ClDummyPort,cl_dummy_port,0,0,65535,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Port to use for dummy connections to server (0 to choose a random port, requires a restart)")
MACRO_CONFIG_INT(ClContactPort,cl_contact_port,0,0,65535,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Port to use for serverinfo connections to server (0 to choose a random port, requires a restart)")
MACRO_CONFIG_INT(SvPort,sv_port,0,0,0,CFGFLAG_SERVER,"Port to use for the server (Only ports 8303-8310 work in LAN server browser, 0 to automatically find a free port in 8303-8310)")
MACRO_CONFIG_INT(SvMaxClients,sv_max_clients,MAX_CLIENTS,1,MAX_CLIENTS,CFGFLAG_SERVER,"Maximum number of clients that are allowed on a server")
MACRO_CONFIG_INT(SvMaxClientsPerIP,sv_max_clients_per_ip,4,1,MAX_CLIENTS,CFGFLAG_SERVER,"Maximum number of clients with the same IP that can connect to the server")
MACRO_CONFIG_INT(SvHighBandwidth,sv_high_bandwidth,0,0,1,CFGFLAG_SERVER,"Use high bandwidth mode. Doubles the bandwidth required for the server. LAN use only")
MACRO_CONFIG_INT(SvRegister,sv_register,1,0,1,CFGFLAG_SERVER,"Register server with master server for public listing")
MACRO_CONFIG_INT(SvRconBantime,sv_rcon_bantime,5,0,1440,CFGFLAG_SERVER,"The time a client gets banned if remote console authentication fails. 0 makes it just use kick")
MACRO_CONFIG_INT(SvTeeHistorian,sv_tee_historian,0,0,1,CFGFLAG_SERVER,"Activate the tee historian that writes complete gameplay data to disk (WARNING: This will use a lot of disk space)")
MACRO_CONFIG_INT(SvServerInfoPerSecond,sv_server_info_per_second,50,0,10000,CFGFLAG_SERVER,"Maximum number of complete server info responses that are sent out per second (0 for no limit)")
MACRO_CONFIG_INT(SvVanConnPerSecond,sv_van_conn_per_second,10,0,10000,CFGFLAG_SERVER,"Antispoof specific ratelimit (0 for no limit)")
MACRO_CONFIG_INT(EcBantime,ec_bantime,0,0,1440,CFGFLAG_ECON,"The time a client gets banned if econ authentication fails. 0 just closes the connection")
MACRO_CONFIG_STR(SvReservedSlotsPass,sv_reserved_slots_pass,32,"",CFGFLAG_SERVER|CFGFLAG_NONTEEHISTORIC,"The password that is required to use a reserved slot")
MACRO_CONFIG_INT(SvTestingCommands,sv_test_cmds,0,0,1,CFGFLAG_SERVER,"Turns testing commands aka cheats on/off (setting only works in initial config)")
MACRO_CONFIG_INT(SvFreezeDelay,sv_freeze_delay,3,1,30,CFGFLAG_SERVER|CFGFLAG_GAME,"How many seconds the players will remain frozen (applies to all except delayed freeze in switch layer & deepfreeze)")
MACRO_CONFIG_INT(ClDDRaceBindsSet,cl_race_binds_set,0,0,1,CFGFLAG_CLIENT|CFGFLAG_SAVE,"What level the DDRace binds are set to (this is automated, you don't need to use this)")
MACRO_CONFIG_INT(SvSaveWorseScores,sv_save_worse_scores,1,0,1,CFGFLAG_SERVER|CFGFLAG_GAME,"Whether to save worse scores when you already have a better one")
MACRO_CONFIG_INT(SvPauseable,sv_pauseable,0,0,1,CFGFLAG_SERVER|CFGFLAG_GAME,"Whether players can pause their char or not")
MACRO_CONFIG_INT(SvEmotionalTees,sv_emotional_tees,1,-1,1,CFGFLAG_SERVER,"Whether eye change of tees is enabled with emoticons = 1, not = 0, -1 not at all")
MACRO_CONFIG_INT(SvChatDelay,sv_chat_delay,1,0,9999,CFGFLAG_SERVER,"The time in seconds between chat messages")
MACRO_CONFIG_INT(SvTeamChangeDelay,sv_team_change_delay,3,0,9999,CFGFLAG_SERVER,"The time in seconds between team changes (spectator/in game)")
MACRO_CONFIG_INT(SvInfoChangeDelay,sv_info_change_delay,5,0,9999,CFGFLAG_SERVER,"The time in seconds between info changes (name/skin/color), to avoid ranbow mod set this to a very high time")
MACRO_CONFIG_INT(SvVoteYesPercentage,sv_vote_yes_percentage,50,1,100,CFGFLAG_SERVER,"The percent of people that need to agree or deny for the vote to succeed/fail")
MACRO_CONFIG_INT(SvVoteMajority,sv_vote_majority,0,0,1,CFGFLAG_SERVER,"Whether No. of Yes is compared to No. of No votes or to number of total Players ( Default is 0 Y compare N)")
MACRO_CONFIG_INT(SvVoteMaxTotal,sv_vote_max_total,0,0,MAX_CLIENTS,CFGFLAG_SERVER,"How many people can participate in a vote at max (0 = no limit by default)")
MACRO_CONFIG_INT(SvVoteVetoTime,sv_vote_veto_time,20,0,1000,CFGFLAG_SERVER,"Minutes of time on a server until a player can veto map change votes (0 = disabled)")
MACRO_CONFIG_INT(SvUseSQL,sv_use_sql,0,0,1,CFGFLAG_SERVER,"Enables MySQL backend instead of SQLite backend (sv_sqlite_file is still used as fallback write server when no MySQL server is reachable)")
MACRO_CONFIG_STR(SvSqliteFile,sv_sqlite_file,64,"ddnet-server.sqlite",CFGFLAG_SERVER,"File to store ranks in case sv_use_sql is turned off or used as backup sql server")
MACRO_CONFIG_INT(SvTeam,sv_team,1,0,3,CFGFLAG_SERVER|CFGFLAG_GAME,"Teams configuration (0 = off, 1 = on but optional, 2 = must play only with teams, 3 = forced random team only for you)")
MACRO_CONFIG_INT(SvMinTeamSize,sv_min_team_size,2,1,MAX_CLIENTS,CFGFLAG_SERVER|CFGFLAG_GAME,"Minimum team size (finishing in a team smaller than this size gives you no teamrank)")
MACRO_CONFIG_INT(SvMaxTeamSize,sv_max_team_size,MAX_CLIENTS,1,MAX_CLIENTS,CFGFLAG_SERVER|CFGFLAG_GAME,"Maximum team size")
MACRO_CONFIG_STR(SvAnnouncementFileName,sv_announcement_filename,24,"announcement.txt",CFGFLAG_SERVER,"file which will have the announcement, each one at a line")
MACRO_CONFIG_INT(SvAnnouncementInterval,sv_announcement_interval,300,1,9999,CFGFLAG_SERVER,"time(minutes) in which the announcement will be displayed from the announcement file")
MACRO_CONFIG_INT(SvOldLaser,sv_old_laser,0,0,1,CFGFLAG_SERVER|CFGFLAG_GAME,"Whether lasers can hit you if you shot them and that they pull you towards the bounce origin (0 for all new maps) or lasers can't hit you if you shot them, and they pull others towards the shooter")
MACRO_CONFIG_INT(ClReconnectTimeout,cl_reconnect_timeout,120,0,600,CFGFLAG_CLIENT|CFGFLAG_SAVE,"How many seconds to wait before reconnecting (after timeout, 0 for off)")
MACRO_CONFIG_INT(ClReconnectFull,cl_reconnect_full,5,0,600,CFGFLAG_CLIENT|CFGFLAG_SAVE,"How many seconds to wait before reconnecting (when server is full, 0 for off)")
MACRO_CONFIG_INT(ClShowOthersAlpha,cl_show_others_alpha,40,0,100,CFGFLAG_CLIENT|CFGFLAG_SAVE,"Show players in other teams (alpha value, 0 invisible, 100 fully visible)")
MACRO_CONFIG_INT(ClOverlayEntities,cl_overlay_entities,0,0,100,CFGFLAG_CLIENT|CFGFLAG_SAVE,"Overlay game tiles with a percentage of opacity")
MACRO_CONFIG_INT(ClBackgroundShowTilesLayers,cl_background_show_tiles_layers,0,0,1,CFGFLAG_CLIENT|CFGFLAG_SAVE,"Whether draw tiles layers when using custom background (entities)")
MACRO_CONFIG_INT(SvMaxAfkVoteTime,sv_max_afk_vote_time,300,0,9999,CFGFLAG_SERVER,"The time in seconds a player can be afk and his votes still count (0 = disabled)")
MACRO_CONFIG_STR(SvResetFile,sv_reset_file,128,"reset.cfg",CFGFLAG_SERVER,"File to execute on map change or reload to set the default server settings")
MACRO_CONFIG_INT(SvDDRaceTuneReset,sv_ddrace_tune_reset,1,0,1,CFGFLAG_SERVER,"Whether DDRace tuning (sv_hit, sv_endless_drag and sv_old_laser) is reset after each map change or not")
MACRO_CONFIG_INT(SvNamelessScore,sv_nameless_score,1,0,1,CFGFLAG_SERVER,"Whether nameless tee has a score or not")
MACRO_CONFIG_INT(SvDefaultTimerType,sv_default_timer_type,0,0,3,CFGFLAG_SERVER,"Default way of displaying time either game/round timer or broadcast. 0 = game/round timer, 1 = broadcast, 2 = 0+1, 3 = none")
MACRO_CONFIG_INT(SvChatPenalty,sv_chat_penalty,250,50,1000,CFGFLAG_SERVER,"chat score will be increased by this on every message, and decremented by 1 on every tick.")
MACRO_CONFIG_INT(SvChatThreshold,sv_chat_threshold,1000,50,10000,CFGFLAG_SERVER,"if chats core exceeds this, the player will be muted for sv_spam_mute_duration seconds")
MACRO_CONFIG_INT(SvSpamMuteDuration,sv_spam_mute_duration,60,0,3600,CFGFLAG_SERVER,"how many seconds to mute, if player triggers mute on spam. 0 = off")
MACRO_CONFIG_INT(SvShutdownWhenEmpty,sv_shutdown_when_empty,0,0,1,CFGFLAG_SERVER,"Shutdown server as soon as no one is on it anymore")
MACRO_CONFIG_INT(SvReloadWhenEmpty,sv_reload_when_empty,0,0,2,CFGFLAG_SERVER,"Reload map when server is empty (1 = reload once, 2 = reload every time server gets empty)")
MACRO_CONFIG_INT(SvSoloServer,sv_solo_server,0,0,1,CFGFLAG_SERVER|CFGFLAG_GAME,"Set server to solo mode (no player interactions, has to be set before loading the map)")
MACRO_CONFIG_STR(SvClientSuggestion,sv_client_suggestion,128,"Get DDNet client from DDNet.tw to use all features on DDNet!",CFGFLAG_SERVER,"Broadcast to display to players without DDNet client")
MACRO_CONFIG_STR(SvClientSuggestionOld,sv_client_suggestion_old,128,"Your DDNet client is old, update it on DDNet.tw!",CFGFLAG_SERVER,"Broadcast to display to players with an old version of DDNet client")
MACRO_CONFIG_STR(SvClientSuggestionBot,sv_client_suggestion_bot,128,"Your client has bots and can be remotely controlled!\nPlease use another client like DDNet client from DDNet.tw",CFGFLAG_SERVER,"Broadcast to display to players with a known botting client")
MACRO_CONFIG_INT(ClUnpredictedShadow,cl_unpredicted_shadow,0,-1,1,CFGFLAG_CLIENT|CFGFLAG_SAVE,"Show unpredicted shadow tee (0 = off, 1 = on, -1 = don't even show in debug mode)")
MACRO_CONFIG_INT(ClPredictDDRace,cl_predict_ddrace,1,0,1,CFGFLAG_CLIENT|CFGFLAG_SAVE,"Predict DDRace tiles and tunezones")
MACRO_CONFIG_INT(ClPredictFreeze,cl_predict_freeze,1,0,2,CFGFLAG_CLIENT|CFGFLAG_SAVE,"Predict freeze tiles (0 = off, 1 = on, 2 = partial (allow a small amount of movement in freeze)")
MACRO_CONFIG_INT(ClShowHookCollOther,cl_show_hook_coll_other,1,0,2,CFGFLAG_CLIENT|CFGFLAG_SAVE,"Show other players' hook collision line (2 to always show)")
MACRO_CONFIG_INT(ClShowHookCollOwn,cl_show_hook_coll_own,1,0,2,CFGFLAG_CLIENT|CFGFLAG_SAVE,"Show own players' hook collision line (2 to always show)")
MACRO_CONFIG_INT(ClHookCollAlpha,cl_hook_coll_alpha,100,0,100,CFGFLAG_CLIENT|CFGFLAG_SAVE,"Alpha of hook collision line (0 invisible, 100 fully visible)")
MACRO_CONFIG_COL(ClHookCollColorNoColl,cl_hook_coll_color_no_coll,65407,CFGFLAG_CLIENT|CFGFLAG_SAVE,"Specifies the color of a hookline that hits nothing.")
MACRO_CONFIG_COL(ClHookCollColorHookableColl,cl_hook_coll_color_hookable_coll,6401973,CFGFLAG_CLIENT|CFGFLAG_SAVE,"Specifies the color of a hookline that hits hookable tiles.")
MACRO_CONFIG_COL(ClHookCollColorTeeColl,cl_hook_coll_color_tee_coll,2817919,CFGFLAG_CLIENT|CFGFLAG_SAVE,"Specifies the color of a hookline that hits tees.")
MACRO_CONFIG_INT(ClHttpMapDownload,cl_http_map_download,1,0,1,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Try fast HTTP map download first")
MACRO_CONFIG_INT(ClOldGunPosition,cl_old_gun_position,0,0,1,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Tees hold gun a bit higher like in TW 0.6.1 and older")
MACRO_CONFIG_INT(ClConfirmDisconnectTime,cl_confirm_disconnect_time,20,-1,1440,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Confirmation popup before disconnecting after game time (in minutes, -1 to turn off, 0 to always turn on)")
MACRO_CONFIG_INT(ClConfirmQuitTime,cl_confirm_quit_time,20,-1,1440,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Confirmation popup before quitting after game time (in minutes, -1 to turn off, 0 to always turn on)")
MACRO_CONFIG_STR(ClTimeoutCode,cl_timeout_code,64,"",CFGFLAG_SAVE|CFGFLAG_CLIENT,"Timeout code to use")
MACRO_CONFIG_STR(ClDummyTimeoutCode,cl_dummy_timeout_code,64,"",CFGFLAG_SAVE|CFGFLAG_CLIENT,"Dummy Timeout code to use")
MACRO_CONFIG_INT(Gfx3DTextureAnalysisRan,gfx_3d_texture_analysis_ran,0,0,1,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Ran an analyzer to check if sampling 3D/2D array textures works correctly")
MACRO_CONFIG_STR(Gfx3DTextureAnalysisRenderer,gfx_3d_texture_analysis_renderer,128,"",CFGFLAG_SAVE|CFGFLAG_CLIENT,"The renderer on which the analysis was performed")
MACRO_CONFIG_STR(Gfx3DTextureAnalysisVersion,gfx_3d_texture_analysis_version,128,"",CFGFLAG_SAVE|CFGFLAG_CLIENT,"The version on which the analysis was performed")
MACRO_CONFIG_STR(GfxGPUName,gfx_gpu_name,256,"auto",CFGFLAG_SAVE|CFGFLAG_CLIENT,"The GPU's name, which will be selected by the backend. (if supported by the backend)")
MACRO_CONFIG_INT(GfxRenderThreadCount,gfx_render_thread_count,3,0,0,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Number of threads the backend can use for rendering. (note: the value can be ignored by the backend)")
MACRO_CONFIG_INT(GfxEnableTextureUnitOptimization,gfx_enable_texture_unit_optimization,1,0,1,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Use multiple texture units, instead of only one.")
MACRO_CONFIG_INT(GfxEnableTextureUnitOptimization,gfx_enable_texture_unit_optimization,0,0,1,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Use multiple texture units, instead of only one.")
MACRO_CONFIG_INT(GfxUsePreinitBuffer,gfx_use_preinitialized_buffer,0,0,1,CFGFLAG_SAVE|CFGFLAG_CLIENT,"Use only one buffer for data, that is uploaded to the GPU(might help when using an iGPUs).")