; Global Configuration Settings
;
; **************************************************************
; * DO NOT EDIT THIS FILE if you want personal customisations: *
; * create a text file called "local.cfg" instead, and copy    *
; * the lines from this file that you want to change.          *
; *                                                            *
; * If a setting is part of a section (for instance [hotkey])  *
; * you need to append the section name at the beginning of    *
; * your custom line (for instance you need to write           *
; * "hotkey.pause = Space" if you want to change the pausing   *
; * hotkey to the spacebar).                                   *
; *                                                            *
; * On Linux, create:                                          *
; *   $XDG_CONFIG_HOME/0ad/config/local.cfg                    *
; *   (Note: $XDG_CONFIG_HOME defaults to ~/.config)           *
; *                                                            *
; * On OS X, create:                                           *
; *   ~/Library/Application\ Support/0ad/config/local.cfg      *
; *                                                            *
; * On Windows, create:                                        *
; *   %appdata%\0ad\config\local.cfg                           *
; *                                                            *
; **************************************************************

; Enable/disable windowed mode by default. (Use Alt+Enter to toggle in the game.)
windowed = false

; Switches between real fullscreen and borderless window on a full display size.
borderless.fullscreen = true
; Hides a window border in the windowed mode.
borderless.window = false

; Constrain mouse in the fullscreen mode to a window boundaries.
window.mousegrabinfullscreen = true
; The same but for the window mode.
window.mousegrabinwindowmode = false

; Show detailed tooltips (Unit stats)
showdetailedtooltips = false

; Pause the game on window focus loss (Only applicable to single player mode)
pauseonfocusloss = true

; Persist settings after leaving the game setup screen
persistmatchsettings = true

; Default player name to use in multiplayer
; playername = "anonymous"

; Default server name or IP to use in multiplayer
multiplayerserver = "127.0.0.1"

; Force a particular resolution. (If these are 0, the default is
; to keep the current desktop resolution in fullscreen mode or to
; use 1024x768 in windowed mode.)
xres = 0
yres = 0

; Force a non-standard bit depth (if 0 then use the current desktop bit depth)
bpp = 0

; Preferred display (for multidisplay setups, only works with SDL 2.0)
display = 0

; Enable Hi-DPI where supported, currently working only for testing.
hidpi = false

; Allows to force GL version for SDL
forceglversion = false
forceglprofile = "compatibility" ; Possible values: compatibility, core, es
forceglmajorversion = 3
forceglminorversion = 3

; Big screenshot tiles
screenshot.tiles = 8
screenshot.tilewidth = 480
screenshot.tileheight = 270

; Emulate right-click with Ctrl+Click on Mac mice
macmouse = false

; System settings:

; if false, actors won't be rendered but anything entity will be.
renderactors = true

watereffects=true ; When disabled, force usage of the fixed pipeline water. This is faster, but really, really ugly.
waterfancyeffects = false
waterrealdepth = true
waterrefraction = true
waterreflection = true

shadows = true
shadowquality = 0      ; Shadow map resolution. (-1 - Low, 0 - Medium, 1 - High, 2 - Very High)
                       ; High values can crash the game when using a graphics card with low memory!
shadowpcf = true
; Increases details closer to the camera but decreases performance
; especially on low hardware.
shadowscascadecount = 1
shadowscascadedistanceratio = 1.7
; Hides shadows after the distance.
shadowscutoffdistance = 300.0
; If true shadows cover the whole map instead of the camera frustum.
shadowscovermap = false

renderer.scale = 1.0
renderer.upscale.technique = "fsr"

vsync = false
particles = true
fog = true
silhouettes = true
showsky = true

; Uses a synchonized call to a GL driver to get an error state. Useful
; for a debugging of a system without GL_KHR_debug.
gl.checkerrorafterswap = false

; Different ways to draw a cursor, possible values are "sdl" and "system".
; The "system" one doesn't support a visual change of the cursor.
cursorbackend = "sdl"

; Backends for all graphics rendering:
;   glarb - GL with legacy assembler-like shaders, might used only for buggy drivers.
;   gl - GL with GLSL shaders, should be used by default.
;   dummy - backend that does nothing, allows to check performance without backend drivers.
;   vulkan - Vulkan with SPIR-V shaders.
rendererbackend = "gl"

; Enables additional debug information in renderer backend.
renderer.backend.debugcontext = false
renderer.backend.debugmessages = false
renderer.backend.debuglabels = false
renderer.backend.debugscopedlabels = false

renderer.backend.gl.enableframebufferinvalidating = false

renderer.backend.vulkan.disabledescriptorindexing = false
renderer.backend.vulkan.deviceindexoverride = -1

renderer.backend.vulkan.debugbarrierafterframebufferpass = false
renderer.backend.vulkan.debugwaitidlebeforeacquire = false
renderer.backend.vulkan.debugwaitidlebeforepresent = false
renderer.backend.vulkan.debugwaitidleafterpresent = false

; Should not be edited. It's used only for preventing of running fixed pipeline.
renderpath = default

; (0 - low, 1 - medium, 2 - high), higher quality means worse performance.
textures.quality = 2

; (1, 2, 4, 8 and 16)
textures.maxanisotropy = 2

; GPU skinning via compute shaders, requires up-to-date drivers
gpuskinning = true

; Use smooth LOS interpolation
smoothlos = true

; Use screen-space postprocessing filters (HDR, bloom, DOF, etc). Incompatible with fixed renderpath.
postproc = true

; Use anti-aliasing techniques.
antialiasing = "disabled"

; Use sharpening techniques.
sharpening = "disabled"
sharpness = 0.3

; Quality used for actors.
max_actor_quality=200

; Whether or not actor variants are selected randomly, possible values are "full", "limited", "none".
variant_diversity = "full"

; Quality level of shader effects (set to 10 to display all effects)
materialmgr.quality = 10.0

;;;;;;;;;;;;;;;;;;;;;;;;

[adaptivefps]
session = 60         ; Throttle FPS in running games (prevents 100% CPU workload).
menu = 60            ; Throttle FPS in menus only.

[profiler2]
server = "127.0.0.1"
server.port = "8000"                      ; Use a free port on your machine.
server.threads = "6"                      ; Enough for the browser's parallel connection limit

[hotkey]
; Each one of the specified keys will trigger the action on the left
; for multiple-key combinations, separate keys with '+'.
; See keys.txt for the list of key names.

; > SYSTEM SETTINGS
exit = ""                                ; 'Custom' exit to desktop, SDL handles the native command via SDL_Quit.
cancel = Escape                          ; Close or cancel the current dialog box/popup
confirm = Return                         ; Confirm the current command
pause = Pause, "Shift+Space"             ; Pause/unpause game
screenshot = F2                          ; Take PNG screenshot
bigscreenshot = "Shift+F2"               ; Take large BMP screenshot
togglefullscreen = "Alt+Return"          ; Toggle fullscreen/windowed mode
screenshot.watermark = "Alt+K"           ; Toggle product/company watermark for official screenshots
wireframe = "Alt+Shift+W"                ; Toggle wireframe mode
silhouettes = "Alt+Shift+S"              ; Toggle unit silhouettes

; > DIALOG HOTKEYS
summary = "Ctrl+Tab"                     ; Toggle in-game summary
lobby = "Alt+L"                          ; Show the multiplayer lobby in a dialog window.
structree = "Alt+Shift+T"                ; Show structure tree
civinfo = "Alt+Shift+H"                  ; Show civilization info

; > CLIPBOARD CONTROLS
copy = "Ctrl+C"                       ; Copy to clipboard
paste = "Ctrl+V"                      ; Paste from clipboard
cut = "Ctrl+X"                        ; Cut selected text and copy to the clipboard

; > CONSOLE SETTINGS
console.toggle = BackQuote, F9        ; Open/close console

; > OVERLAY KEYS
fps.toggle = "Alt+F"                  ; Toggle frame counter
realtime.toggle = "Alt+T"             ; Toggle current display of computer time
timeelapsedcounter.toggle = "F12"     ; Toggle time elapsed counter
ceasefirecounter.toggle = ""          ; Toggle ceasefire counter

; > HOTKEYS ONLY
chat = Return                         ; Toggle chat window
teamchat = "T"                        ; Toggle chat window in team chat mode
privatechat = "L"                     ; Toggle chat window and select the previous private chat partner

; > QUICKSAVE
quicksave = "Shift+F5"
quickload = "Shift+F8"

[hotkey.camera]
reset = "R"                                   ; Reset camera rotation to default.
follow = ""                                   ; Follow the first unit in the selection
rallypointfocus = ""                          ; Focus the camera on the rally point of the selected building
lastattackfocus = "Space"                     ; Focus the camera on the last notified attack
zoom.in = Plus, NumPlus                       ; Zoom camera in (continuous control)
zoom.out = Minus, NumMinus                    ; Zoom camera out (continuous control)
zoom.wheel.in = WheelUp                       ; Zoom camera in (stepped control)
zoom.wheel.out = WheelDown                    ; Zoom camera out (stepped control)
rotate.up = "Ctrl+UpArrow", "Ctrl+W"          ; Rotate camera to look upwards
rotate.down = "Ctrl+DownArrow", "Ctrl+S"      ; Rotate camera to look downwards
rotate.cw = "Ctrl+LeftArrow", "Ctrl+A", Q     ; Rotate camera clockwise around terrain
rotate.ccw = "Ctrl+RightArrow", "Ctrl+D", E   ; Rotate camera anticlockwise around terrain
rotate.wheel.cw = "Shift+WheelUp", MouseX1    ; Rotate camera clockwise around terrain (stepped control)
rotate.wheel.ccw = "Shift+WheelDown", MouseX2 ; Rotate camera anticlockwise around terrain (stepped control)
pan = MouseMiddle                             ; Enable scrolling by moving mouse
left = A, LeftArrow                           ; Scroll or rotate left
right = D, RightArrow                         ; Scroll or rotate right
up = W, UpArrow                               ; Scroll or rotate up/forwards
down = S, DownArrow                           ; Scroll or rotate down/backwards
scroll.speed.increase = "Ctrl+Shift+S"        ; Increase scroll speed
scroll.speed.decrease = "Ctrl+Alt+S"          ; Decrease scroll speed
rotate.speed.increase = "Ctrl+Shift+R"        ; Increase rotation speed
rotate.speed.decrease = "Ctrl+Alt+R"          ; Decrease rotation speed
zoom.speed.increase = "Ctrl+Shift+Z"          ; Increase zoom speed
zoom.speed.decrease = "Ctrl+Alt+Z"            ; Decrease zoom speed

[hotkey.camera.jump]
1 = F5                       ; Jump to position N
2 = F6
3 = F7
4 = F8
;5 =
;6 =
;7 =
;8 =
;9 =
;10 =
[hotkey.camera.jump.set]
1 = "Ctrl+F5"                ; Set jump position N
2 = "Ctrl+F6"
3 = "Ctrl+F7"
4 = "Ctrl+F8"
;5 =
;6 =
;7 =
;8 =
;9 =
;10 =

[hotkey.profile]
toggle = "F11"               ; Enable/disable real-time profiler
save = "Shift+F11"           ; Save current profiler data to logs/profile.txt
[hotkey.profile2]
toggle = "Ctrl+F11"          ; Enable/disable HTTP/GPU modes for new profiler

[hotkey.selection]
cancel = Esc                            ; Un-select all units and cancel building placement
add = Shift                             ; Add units to selection
militaryonly = Alt                      ; Add only military units to the selection
nonmilitaryonly = "Alt+Y"               ; Add only non-military units to the selection
idleonly = "I"                          ; Select only idle units
woundedonly = "O"                       ; Select only wounded units
remove = Ctrl                           ; Remove units from selection
idlebuilder = Semicolon                 ; Select next idle builder
idleworker = Period, NumDecimal         ; Select next idle worker
idlewarrior = Slash, NumDivide          ; Select next idle warrior
idleunit = BackSlash                    ; Select next idle unit
offscreen = Alt                         ; Include offscreen units in selection
singleselection = "" ; Modifier to select units individually, opposed to per formation.
[hotkey.selection.group.add]
1 = "Shift+1", "Shift+Num1"
2 = "Shift+2", "Shift+Num2"
3 = "Shift+3", "Shift+Num3"
4 = "Shift+4", "Shift+Num4"
5 = "Shift+5", "Shift+Num5"
6 = "Shift+6", "Shift+Num6"
7 = "Shift+7", "Shift+Num7"
8 = "Shift+8", "Shift+Num8"
9 = "Shift+9", "Shift+Num9"
10 = "Shift+0", "Shift+Num0"
[hotkey.selection.group.save]
1 = "Ctrl+1", "Ctrl+Num1"
2 = "Ctrl+2", "Ctrl+Num2"
3 = "Ctrl+3", "Ctrl+Num3"
4 = "Ctrl+4", "Ctrl+Num4"
5 = "Ctrl+5", "Ctrl+Num5"
6 = "Ctrl+6", "Ctrl+Num6"
7 = "Ctrl+7", "Ctrl+Num7"
8 = "Ctrl+8", "Ctrl+Num8"
9 = "Ctrl+9", "Ctrl+Num9"
10 = "Ctrl+0", "Ctrl+Num0"
[hotkey.selection.group.select]
1 = 1, Num1
2 = 2, Num2
3 = 3, Num3
4 = 4, Num4
5 = 5, Num5
6 = 6, Num6
7 = 7, Num7
8 = 8, Num8
9 = 9, Num9
10 = 0, Num0

[hotkey.gamesetup]
mapbrowser.open = "M"

[hotkey.session]
kill = Delete, Backspace     ; Destroy selected units
stop = "H"                   ; Stop the current action
backtowork = "Y"             ; The unit will go back to work
unload = "U"                 ; Unload garrisoned units when a building/mechanical unit is selected
unloadturrets = "U" ; Unload turreted units.
leaveturret = "U" ; Leave turret point.
move = ""                    ; Modifier to move to a point instead of another action (e.g. gather)
capture = "C"                ; Modifier to capture instead of another action (e.g. attack)
attack = "F"                 ; Modifier to attack instead of another action (e.g. capture)
attackmove = Ctrl            ; Modifier to attackmove when clicking on a point
attackmoveUnit = "Ctrl+Q"    ; Modifier to attackmove targeting only units when clicking on a point
garrison = Ctrl              ; Modifier to garrison when clicking on building
occupyturret = Ctrl ; Modifier to occupy a turret when clicking on a turret holder.
autorallypoint = Ctrl        ; Modifier to set the rally point on the building itself
guard = "G"                  ; Modifier to escort/guard when clicking on unit/building
patrol = "P"                 ; Modifier to patrol a unit
repair = "J"                 ; Modifier to repair when clicking on building/mechanical unit
queue = Shift                ; Modifier to queue unit orders instead of replacing
pushorderfront = ""          ; Modifier to push unit orders to the front instead of replacing.
orderone = Alt               ; Modifier to order only one entity in selection.
batchtrain = Shift           ; Modifier to train units in batches
massbarter = Shift           ; Modifier to barter bunch of resources
masstribute = Shift          ; Modifier to tribute bunch of resources
noconfirmation = Shift       ; Do not ask confirmation when deleting a building/unit
fulltradeswap = Shift        ; Modifier to put the desired trade resource to 100%
unloadtype = Shift           ; Modifier to unload all units of type
deselectgroup = Ctrl         ; Modifier to deselect units when clicking group icon, instead of selecting
rotate.cw = RightBracket     ; Rotate building placement preview clockwise
rotate.ccw = LeftBracket     ; Rotate building placement preview anticlockwise
snaptoedges = Ctrl           ; Modifier to align new structures with nearby existing structure
toggledefaultformation = ""  ; Switch between null default formation and the last default formation used (defaults to "box")
flare = K                    ; Modifier to send a flare to your allies
flareactivate = ""           ; Modifier to activate the mode to send a flare to your allies
calltoarms = ""              ; Modifier to call the selected units to the arms.
focusfire = "F"              ; Modifier to control exclusively a building's arrows if it can attack
; Overlays
showstatusbars = Tab         ; Toggle display of status bars
devcommands.toggle = "Alt+D" ; Toggle developer commands panel
highlightguarding = PageDown ; Toggle highlight of guarding units
highlightguarded = PageUp    ; Toggle highlight of guarded units
diplomacycolors = "Alt+X"    ; Toggle diplomacy colors
toggleattackrange = "Alt+C"  ; Toggle display of attack range overlays of selected defensive structures
toggleaurasrange = "Alt+V"   ; Toggle display of aura range overlays of selected units and structures
togglehealrange = "Alt+B"    ; Toggle display of heal range overlays of selected units

[hotkey.session.gui]
toggle = "Alt+G"             ; Toggle visibility of session GUI
menu.toggle = "F10"          ; Toggle in-game menu
diplomacy.toggle = "Ctrl+H"  ; Toggle in-game diplomacy page
barter.toggle = "Ctrl+B"     ; Toggle in-game barter/trade page
objectives.toggle = "Ctrl+O" ; Toggle in-game objectives page
tutorial.toggle = "Ctrl+P"   ; Toggle in-game tutorial panel

[hotkey.session.savedgames]
delete = Delete, Backspace    ; Delete the selected saved game asking confirmation
noconfirmation = Shift        ; Do not ask confirmation when deleting a game

[hotkey.session.queueunit]   ; > UNIT TRAINING
1 = "Z"            ; add first unit type to queue
2 = "X"            ; add second unit type to queue
3 = "C"            ; add third unit type to queue
4 = "V"            ; add fourth unit type to queue
5 = "B"            ; add fivth unit type to queue
6 = "N"            ; add sixth unit type to queue
7 = "M"            ; add seventh unit type to queue
8 = Comma          ; add eighth unit type to queue

[hotkey.session.timewarp]
fastforward = "Ctrl+Space"         ; If timewarp mode enabled, speed up the game
rewind = "Shift+Backspace"        ; If timewarp mode enabled, go back to earlier point in the game

[hotkey.tab]
next = "Tab", "Alt+S"             ; Show the next tab
prev = "Shift+Tab", "Alt+W"       ; Show the previous tab

[hotkey.item]
next = "RightArrow"               ; Show the next item of a list
prev = "LeftArrow"                ; Show the previous item of a list

[hotkey.text]    ; > GUI TEXTBOX HOTKEYS
delete.left = "Ctrl+Backspace"    ; Delete word to the left of cursor
delete.right = "Ctrl+Del"         ; Delete word to the right of cursor
move.left = "Ctrl+LeftArrow"      ; Move cursor to start of word to the left of cursor
move.right = "Ctrl+RightArrow"    ; Move cursor to start of word to the right of cursor

[gui]
cursorblinkrate = 0.5             ; Cursor blink rate in seconds (0.0 to disable blinking)
scale = 1.0                       ; GUI scaling factor, for improved compatibility with 4K displays

[gui.gamesetup]
enabletips = true                 ; Enable/Disable tips during gamesetup (for newcomers)
assignplayers = everyone          ; Whether to assign joining clients to free playerslots. Possible values: everyone, buddies, disabled.
aidifficulty = 3                  ; Difficulty level, from 0 (easiest) to 5 (hardest)
aibehavior = "random"             ; Default behavior of the AI (random, balanced, aggressive or defensive)
settingsslide = true              ; Enable/Disable settings panel slide

[gui.loadingscreen]
progressdescription = false       ; Whether to display the progress percent or a textual description

[gui.session]
dragdelta = 4                     ; Number of pixels the mouse can move before the action is considered a drag
camerajump.threshold = 40         ; How close do we have to be to the actual location in order to jump back to the previous one?
timeelapsedcounter = false        ; Show the game duration in the top right corner
ceasefirecounter = false          ; Show the remaining ceasefire time in the top right corner
batchtrainingsize = 5             ; Number of units to be trained per batch by default (when pressing the hotkey)
scrollbatchratio = 1              ; Number of times you have to scroll to increase/decrease the batchsize by 1
flarelifetime = 6                 ; How long the flare markers on the minimap are displayed in seconds
woundedunithotkeythreshold = 33   ; The wounded unit hotkey considers the selected units as wounded if their health percentage falls below this number
attackrange = true                ; Display attack range overlays of selected defensive structures
aurasrange = true                 ; Display aura range overlays of selected units and structures
healrange = true                  ; Display heal range overlays of selected units
rankabovestatusbar = true         ; Show rank icons above status bars
experiencestatusbar = true        ; Show an experience status bar above each selected unit
respoptooltipsort = 0             ; Sorting players in the resources and population tooltip by value (0 - no sort, -1 - ascending, 1 - descending)
snaptoedges = "disabled"          ; Possible values: disabled, enabled.
snaptoedgesdistancethreshold = 15 ; On which distance we don't snap to edges
disjointcontrolgroups = "true"    ; Whether control groups are disjoint sets or entities can be in multiple control groups at the same time.
defaultformation = "special/formations/box" ; For walking orders, automatically put units into this formation if they don't have one already.
formationwalkonly = "true"                  ; Formations are disabled when giving gather/attack/... orders.
howtoshownames = 0 ; Whether the specific names are show as default, as opposed to the generic names. And whether the secondary names are shown. (0 - show both; specific names primary, 1 - show both; generic names primary, 2 - show only specific names, 3 - show only generic names)
selectformationasone = "true" ; Whether to select formations as a whole by default.

[gui.session.minimap]
; Icons that are displayed for some entities on a minimap.
icons.enabled = "true"
icons.opacity = 1.0
icons.sizescale = 1.0
blinkduration = 1.7               ; The blink duration while pinging
pingduration = 50.0               ; The duration for which an entity will be pinged after an attack notification

[gui.session.notifications]
attack = true                     ; Show a chat notification if you are attacked by another player
tribute = true                    ; Show a chat notification if an ally tributes resources to another team member if teams are locked, and all tributes in observer mode
barter = true                     ; Show a chat notification to observers when a player bartered resources
flare = always                    ; Show a chat notification when a player sends a flare. Possible values: never, observer, always.
phase = completed                 ; Show a chat notification if you or an ally have started, aborted or completed a new phase, and phases of all players in observer mode. Possible values: none, completed, all.

[gui.splashscreen]
enable = true                     ; Enable/disable the splashscreen
version = 0                       ; Splashscreen version (MD5 hash of file content). By default, 0 to force splashscreen to appear at first launch

[gui.session.diplomacycolors]
self = "21 55 149"                ; Color of your units when diplomacy colors are enabled
ally = "86 180 31"                ; Color of allies when diplomacy colors are enabled
neutral = "231 200 5"             ; Color of neutral players when diplomacy colors are enabled
enemy = "150 20 20"               ; Color of enemies when diplomacy colors are enabled

[joystick]        ; EXPERIMENTAL: joystick/gamepad settings
enable = false
deadzone = 8192

[chat]
timestamp = true                    ; Show at which time chat messages have been sent

[chat.session]
extended = true                     ; Whether to display the chat history

[lobby]
history = 0                         ; Number of past messages to display on join
room = "arena27"                    ; Default MUC room to join
server = "lobby.wildfiregames.com"  ; Address of lobby server
tls = true                          ; Whether to use TLS encryption when connecting to the server.
verify_certificate = false          ; Whether to reject connecting to the lobby if the TLS certificate is invalid (TODO: wait for Gloox GnuTLS trust implementation to be fixed)
terms_url = "https://gitea.wildfiregames.com/0ad/0ad/src/branch/main/binaries/data/mods/public/gui/prelobby/common/terms/"; Allows the user to save the text and print the terms
terms_of_service = "0"              ; Version (hash) of the Terms of Service that the user has accepted
terms_of_use = "0"                  ; Version (hash) of the Terms of Use that the user has accepted
privacy_policy = "0"                ; Version (hash) of the Privacy Policy that the user has accepted
xpartamupp = "wfgbot27"             ; Name of the server-side XMPP-account that manage games
echelon = "echelon27"               ; Name of the server-side XMPP-account that manages ratings
buddies = ","                       ; Comma separated list of playernames that the current user has marked as buddies
rememberpassword = true             ; Whether to store the encrypted password in the user config

[lobby.columns]
gamerating = false                  ; Show the average rating of the participating players in a column of the gamelist

[lobby.stun]
enabled = true                       ; The STUN protocol allows hosting games without configuring the firewall and router.
                                     ; If STUN is disabled, the game relies on direct connection, UPnP and port forwarding.
server = "lobby.wildfiregames.com"   ; Address of the STUN server.
port = 3478                          ; Port of the STUN server.
delay = 10                           ; Duration in milliseconds that is waited between checking for retrieved STUN responses.
                                     ; Smaller numbers speed up joins but may make them less stable, if max_tries isn't increased proportionally as well.
max_tries = 100                      ; Maximum number of tries for receiving STUN responses.

[lobby.fw_punch]
delay = 200                          ; Duration in milliseconds between sending hole punching messages.
num_msg = 3                          ; Number of hole punching messages to send.

[mod]
enabledmods = "mod public"

[modio]

public_key = "RWQv2alKl8D0zMDJR766jpYvPy4u3y77HL/iKb/lsT1Fnf6ezoMb2x8+" ; Public key corresponding to the private key valid mods are signed with
disclaimer = "0"                     ; Version (hash) of the Disclaimer that the user has accepted

[modio.v1]
baseurl = "https://g-5.modapi.io/v1"
api_key = "23df258a71711ea6e4b50893acc1ba55"
name_id = "0ad"

[network]
duplicateplayernames = false      ; Rename joining player to "User (2)" if "User" is already connected, otherwise prohibit join.
lateobservers = everyone          ; Allow observers to join the game after it started. Possible values: everyone, buddies, disabled.
observerlimit = 8                 ; Prevent further observer joins in running games if this limit is reached
observermaxlag = -1               ; Make clients wait for observers if they lag more than X turns behind. -1 means "never wait for observers".
autocatchup = true        ; Auto-accelerate the sim rate if lagging behind (as an observer).
enetmtu = 1372            ; Lower ENet protocol MTU in case packets get further fragmented on the UDP layer which may cause drops.

[overlay]
fps = "false"                     ; Show frames per second in top right corner
realtime = "false"                ; Show current system time in top right corner
netwarnings = "true"              ; Show warnings if the network connection is bad

[profiler2]
autoenable = false                ; Enable HTTP server output at startup (default off for security/performance)
gpu.arb.enable = true             ; Allow GL_ARB_timer_query timing mode when available.

[rlinterface]
address = "127.0.0.1:6000"

[sound]
mastergain = 0.9
musicgain = 0.2
ambientgain = 0.6
actiongain = 0.7
uigain = 0.7
mindistance = 1
maxdistance = 350
maxstereoangle = 0.62 ; About PI/5 radians

[sound.notify]
nick = true                       ; Play a sound when someone mentions your name in the lobby or game
gamesetup.join = false            ; Play a sound when a new client joins the game setup

[tinygettext]
debug = false                     ; Print error messages each time a translation for an English string is not found.

[userreport] ; Opt-in online user reporting system
url_upload = "https://feedback.wildfiregames.com/report/upload/v1/" ; URL where UserReports are uploaded to
url_publication = "https://feedback.wildfiregames.com/"             ; URL where UserReports were analyzed and published
url_terms = "https://gitea.wildfiregames.com/0ad/0ad/src/branch/main/binaries/data/mods/public/gui/userreport/Terms_and_Conditions.txt"; Allows the user to save the text and print the terms
terms = "0"                       ; Version (hash) of the UserReporter Terms that the user has accepted

[view] ; Camera control settings
scroll.speed = 120.0
scroll.speed.modifier = 1.05      ; Multiplier for changing scroll speed
scroll.mouse.detectdistance = 3
rotate.x.speed = 1.2
rotate.x.min = 28.0
rotate.x.max = 60.0
rotate.x.default = 35.0
rotate.y.speed = 2.0
rotate.y.speed.wheel = 0.45
rotate.y.default = 0.0
rotate.speed.modifier = 1.05      ; Multiplier for changing rotation speed
drag.speed = 0.5
zoom.speed = 256.0
zoom.speed.wheel = 32.0
zoom.min = 50.0
zoom.max = 200.0
zoom.default = 120.0
zoom.speed.modifier = 1.05        ; Multiplier for changing zoom speed
pos.smoothness = 0.1
zoom.smoothness = 0.4
rotate.x.smoothness = 0.5
rotate.y.smoothness = 0.3
near = 2.0                        ; Near plane distance
far = 4096.0                      ; Far plane distance
fov = 45.0                        ; Field of view (degrees), lower is narrow, higher is wide
height.smoothness = 0.5
height.min = 16
