The basic configuration for the game is stored at $(XDG_CONFIG_HOME)/voxelgarden.cfg and by default looks like this:
[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_usThis is a detailed explanation of each field:
| 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 |
| 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 |
| 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’ |
| 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 |
| key | type | default | explanation |
|---|---|---|---|
| language | string | en_us | prefix used when loading string files |