The basic configuration for the game is stored at $(XDG_CONFIG_HOME)/voxelgarden.cfg and by default looks like this:

Click to expand
[window]
width = -1
height = -1
fullscreen = false
vsync = 1
ui_scale = 3

[audio]
frequency = 44100
format = 32784
channels = 2
chunksize = 1024
music_volume = 128
sfx_volume = 128

[input]
left = scancode 4
right = scancode 7
front = scancode 26
back = scancode 22
run = scancode 225
crouch = scancode 224
jump = scancode 44
interact = scancode 8
inventory = scancode 43
erase = mbutton 0 1
paint = mbutton 0 3
pick = mbutton 0 2

[server]
chunk_op_time = 15
view_distance = 48 4 48
quality_drop = 128
high_def_radius = 8
multithreading = false

[language]
language = en_us

This is a detailed explanation of each field:

Window

key type default explanation
width int -1 width of the game window; -1 takes the full screen
height int -1 height of the game window; -1 takes the full screen
fullscreen bool false if true, fullscreen
vsync int 1 0: no, 1: yes, -1: adaptive
ui_scale int 3 scale of the GUI

Audio

key type default explanation
frequency int 44100 the frequency to playback audio at (in Hz)
format int 32768 see SDL audio format identifiers
channels int 2 number of audio channels (1: mono, 2: stereo, …)
chunksize int 1024 audio buffer size in sample FRAMES (total samples divided by channel count)
music_volume int 128 volume of the music in a 0-128 scale
sfx_volume int 128 volume of the sounds in a 0-128 scale

Input

key type default explanation
left Input scancode 4 strafe left
right Input scancode 7 strafe right
front Input scancode 26 move forward
back Input scancode 22 move backward
run Input scancode 225 toggle running
crouch Input scancode 224 toggle crouching
interact Input scancode 8 interact with cell/mob
inventory Input scancode 43 toggle inventory
erase Input mbutton 0 1 remove cell/mob
paint Input mbutton 0 3 place cell/mob
pick Input mbutton 0 2 yoink cell/mob

The input format supports the following options:

format description
keycode CODE keyboard key with keycode ‘CODE’
scancode CODE keyboard key with scancode ‘CODE’
mbutton WHICH BUTTON button ‘BUTTON’ of mouse ‘WHICH’
cbutton WHICH BUTTON button ‘BUTTON’ of controller ‘WHICH’
caxis WHICH AXIS POSITIVE axis ‘AXIS’ of controller ‘WHICH’ [1]
jbutton WHICH BUTTON button ‘BUTTON’ of joystick ‘WHICH’
jaxis WHICH AXIS POSITIVE axis ‘AXIS’ of joystick ‘WHICH’ [1]
jhat WHICH HAT VALUE hat ‘HAT’ of joystick ‘WHICH’
  1. axis inputs have a ‘POSITIVE’ field that determines if the input is enabled when the axis has a positive value or disabled otherwise; or enabled when the axis has a negative value or disabled otherwise. A value of 0 always means disabled.

Server

key type default explanation
chunk_op_time int 15 milliseconds per frame dedicated to chunk operations
view_distance int int int 48 4 48 radius of the loaded world around the player, in chunks
quality_drop int 128 chevysheb distance until cells start being merged, in chunks
high_def_radius int 8 radius around the player where chunk rendering is not optimized for distance, in chunks
multithreading bool false enables multithreading for chunk and mob operations; at this point, it might cause random crashes

Language

key type default explanation
language string en_us prefix used when loading string files