Improve Minetest Gameplay Experience & Performance (Guide)
Improve Minetest Gameplay Experience & Performance (Guide)

Introduction

This is a collection of Guides & Best Practices for Setting up Minetest ~ and for Playing Games, of course 😉


Contents

Setting Up Minetest

Game Optimization

Gameplay Enhancements


Frequently Asked Questions (FAQs)

Q: Is Minetest a Game?A: No. Minetest is a Game Engine that interprets Lua - Scripts & Configuration Files
~ and together with the Game Assets (mostly Images, Models & Audio), it »creates« the entire Game Experience for the given/played Game.

Q: Minetest takes up a lot of Storage Space ~ What can I do about it?A: High Storage Usage can have Multiple Causes ~ depending on which the Solution is different:
  • → Lots of Games, Mods or Texturepacks installed → Check whether You actually really need them
    ~ and remove the ones You don't need from within Minetest.
    You can also look in the ContentDB for smaller Alternatives.
  • → Lots of Screenshots → Delete those You don't need.
    You can also Convert them to a more Compact Format¹
  • → Large Logfiles → Default Maximum Size is 50MB!
    ~ And Minetest even makes a Second File if one reached the 50MB.
    → I Reccommend disabling Logging alltogether since why would you need it if everything works fine?

.
.
.

Q: Why do you Capitalize the Words wrongly?
A: It's to Improve Text Readability and Emphasis of Key Components.

Q: Your Question ❓
A: My or Someone Else's Answer 🐾

¹ More Info on Converting Files: [1]


Installation Options

  • Distribution Repositories
  • Arch User Repository (AUR)
  • Flatpak
  • AppImage
  • Manual Installation

Initial Optimizations

Since there's so much to explain, I'll just share my (mostly) Important Configuration Changes [2] so You can use them. (currently my entire config ~ so just use what you want)
I played Minecraft before, so the default keys have changed as well.
(The Default Keys aren't really user friendly anyways if you have a normal German (QWERTZ), English (QWERTY) or similar Keyboard)


Troubleshooting

Topics are arranged in a timely manner.

1. → Application Start
  • Minetest does not start.
  • Minetest crashes after start.
  • Minetest is laggy after start.
2. → Basic Navigation & Settings
  • Help me Fill this Guide!
3. → Browsing the ContentDB (CDB) and Installing Content
  • Help me Fill this Guide!
4. → Starting & Playing a Local Game
  • Help me Fill this Guide!
5. → Starting & Playing an Online Game
  • Help me Fill this Guide!

Extra Topics:

1. → Ingame Issues (while playing)
  • Mapblock Border Lines are Dim and Thin when Node Highlighting is set to »halo«
  • Help me Fill this Guide!
2. → Ingame Crashes (while playing)
  • Help me Fill this Guide!

Change Ingame Fonts

Change Fonts to Ubuntu, Source Code Pro/Variable, and more. (WIP)
Montserrat is also a great choice ~ but not as optimized as Source Code Pro for low-res resolution screens.


Multiple Accounts on Multiple Servers

Platform: GNU/Linux
Target: Frequent Players
Tags: #multiplayer #gameplay #server #optimize #enhance

Warning

Do Not Change any Settings in Flatseal you do not fully understand ~ otherwise things can really go south.
Not just with Minetest!

  1. Install Minetest both as Native & Flatpak - Application.
  2. Install Flatseal (Flatpak).
  3. Open Flatseal, select Minetest and change the following Settings: [3]
    • Required Section »Filesystem« ~ enable All user files
      • I enabled everything in this section since Minetest can be trusted and it might be helpful sometimes to have access.
    • Optional: Section »Device« ~ enable GPU acceleration & Shared memory
      • Idk if Minetest will actually use it - but it doesn't cause issues either ¯\_(ツ)_/¯
    • Optional: Section »Allow« ~ enable Application Shared Memory
      • Same as above. Might save memory if the native application and Flatpak run together.
  4. Create all the needed Symbolic Links ~ that help You save lots of Storage space, improve Performance and reduce Network Data Usage:
    • Required Link between ~/.cache/minetest/ and ~/.var/app/net.minetest.Minetest/cache/minetest/
    • Optional Link between ~/.minetest/screenshots/ and ~/.var/app/net.minetest.Minetest/.minetest/screenshots/
      • Benefit: Have all Screenshots at One Place.
    • Optional Link between ~/.minetest/textures/ and ~/.var/app/net.minetest.Minetest/.minetest/textures/
      • Benefit: Have Access to all Textures in Both Clients ~ and only download them once.
    • You could also link the Configuration File & Serverlist ~ but I wouldn't reccommend it since it causes issues when the files are changed by one application while another is open and accesses them as well.

For your Convenience, I made a command that creates All Symbolic Links in one go:

ln -s ~/.cache/minetest/ ~/.var/app/net.minetest.Minetest/cache/minetest/ && ln -s ~/.minetest/screenshots/ ~/.var/app/net.minetest.Minetest/.minetest/screenshots/ && ln -s ~/.minetest/textures/ ~/.var/app/net.minetest.Minetest/.minetest/textures/

Additional Tips:

  • If you use Client Side Mods (CSM), you can link the ~/.minetest/clientmods/ folder as well.
    ln -s ~/.minetest/clientmods/ ~/.var/app/net.minetest.Minetest/.minetest/clientmods/
    
  • If you want to play Local Games in the Flatpak Version, you can link the ~/.minetest/games/, ~/.minetest/mods/ and ~/.minetest/worlds/ folder as well.
    ln -s ~/.minetest/games/ ~/.var/app/net.minetest.Minetest/.minetest/games/ && ln -s ~/.minetest/mods/ ~/.var/app/net.minetest.Minetest/.minetest/mods/ && ln -s ~/.minetest/worlds/ ~/.var/app/net.minetest.Minetest/.minetest/worlds/ 
    
Warning

The previous Tip suggests linking Data that is Actively being Read AND Written while the Game runs.
Whenever both Applications (Native & Flatpak) would Access the Same Resource, it would create issues:

  • The games as well as the mods folder contain configuration files that are read and written by the application.
    • ~ as long as you only change the settings while only one game is open, you're fine.
    • ~ you can also close all instances and edit them manually.
  • The worlds folder contains all worlds for every local game you have installed.
  • Loading the same world in two instances at the same time will very likely cause data corruption and errors.
  • So: Always be Mindful of that if You play with this Setup.
  • And: Make Regular Backups! [4]

.
.


  1. For easily Converting Files, I highly reccommend CloudConvert
    It's a German Company which is over 12y in Buisness and Handles Things really well 😊
    Aside from that, it might or might not be advisable to use WebP as a target Format.
    For Image Optimization, I highly reccommend Curtail, which can compress many different formats with both lossy & lossless compression (even SVG Vector Graphics).↩︎

  2. This is my configuration.
    Just Copy & Paste it into the ~/.minetest/minetest.conf file and ensure that there are no duplicate entries.
    Minetest wil rearrange the Entries in the File as soon as you Change a Setting in the Application.

    free_move = true
    pitch_move = false
    enable_fog = false
    autojump = true
    aux1_descends = false
    keymap_cmd_local = KEY_PERIOD
    keymap_increase_viewing_range_min = KEY_PLUS
    keymap_decrease_viewing_range_min = KEY_MINUS
    keymap_inventory = KEY_KEY_E
    menu_last_game = voxelgarden
    enable_waving_plants = false
    autosave_screensize = true
    fast_move = true
    doubletap_jump = true
    enable_waving_water = false
    keymap_aux1 = KEY_KEY_Q
    creative_mode = true
    maintab_LAST = online
    enable_damage = false
    enable_waving_leaves = true
    mainmenu_last_selected_world = 2
    selected_world_path = /home/YOUR_USERNAME/.minetest/worlds/Labyrinth
    enable_build_where_you_stand = true
    noclip = true
    cinematic = true
    always_fly_fast = true
    menu_clouds = false
    world_config_selected_mod = 32
    texture_path = /home/YOUR_USERNAME/.minetest/textures/Xray/
    time_speed = 0
    wieldview_update_time = 2
    wieldview_node_tiles = false
    movement_acceleration_fast = 20
    movement_speed_fast = 40
    movement_speed_walk = 6.5
    movement_speed_crouch = 2.5
    movement_speed_climb = 5
    main_menu_technical_settings = false
    enable_3d_clouds = true
    font_size = 14
    mono_font_size = 14
    mono_font_path = /usr/share/fonts/ubuntu/UbuntuMono-R.ttf
    mono_font_path_bold = /usr/share/fonts/ubuntu/UbuntuMono-B.ttf
    mono_font_path_italic = /usr/share/fonts/ubuntu/UbuntuMono-RI.ttf
    mono_font_path_bold_italic = /usr/share/fonts/ubuntu/UbuntuMono-BI.ttf
    mcl_generate_fallen_logs = true
    remote_port = 30001
    address = joesworld.zapto.org
    show_entity_selectionbox = true
    keymap_toggle_block_bounds = KEY_KEY_X
    keymap_autoforward = KEY_KEY_K
    keymap_increase_volume = KEY_UP
    keymap_decrease_volume = KEY_DOWN
    keymap_freemove = KEY_KEY_F
    continuous_forward = false
    font_shadow = 0
    font_path = /usr/share/fonts/ubuntu/Ubuntu-R.ttf
    font_size_divisible_by = 2
    font_path_bold = /usr/share/fonts/ubuntu/Ubuntu-B.ttf
    font_path_italic = /usr/share/fonts/ubuntu/Ubuntu-RI.ttf
    font_path_bold_italic = /usr/share/fonts/ubuntu/Ubuntu-BI.ttf
    mono_font_size_divisible_by = 2
    shadow_levels = 0
    tooltip_append_itemname = true
    tooltip_show_delay = 250
    show_technical_names = false
    secure.trusted_mods = electricity
    cloudlands_bioluminescence = true
    cloudlands_generate_ores = true
    keymap_drop = KEY_KEY_Y
    fullscreen = true
    fog_start = 0.6
    chat_weblink_color = #DABB60
    enable_local_map_saving = true
    debug_log_level = 
    minimap_shape_round = false
    viewing_range = 20
    fps_max = 24
    fps_max_unfocused = 1
    vsync = true
    enable_clouds = false
    display_gamma = 3.0
    ambient_occlusion_gamma = 4
    keymap_minimap = KEY_KEY_C
    keymap_camera_mode = KEY_KEY_V
    shadow_filters = 0
    shadow_map_texture_32bit = true
    shadow_map_texture_size = 512
    shadow_map_color = false
    shadow_map_max_distance = 62
    update_last_known = 5008000
    mgflat_np_filler_depth = {
    	flags = 
    	lacunarity = 0
    	persistence = 0
    	seed = 0
    	spread = (0,0,0)
    	scale = 0
    	octaves = 0
    	offset = 0
    }
    keymap_rangeselect = KEY_KEY_R
    screen_w = 1920
    screen_h = 1080
    enable_bloom = true
    console_alpha = 141
    contentdb_flag_blacklist = 
    screen_dpi = 96
    techage_collider_min_depth = 50
    enable_server = false
    near_plane = 0.25
    fov = 82
    no_mtg_notification = true
    show_advanced = true
    selectionbox_color = (156,34,0)
    window_maximized = true
    opaque_water = true
    console_height = 0.8
    connected_glass = true
    server_announce = false
    mip_map = false
    
    ↩︎
  3. ↩︎

  4. I reccommend using BTRFS as FileSystem for your Computer ~ and Timeshift as Snapshot Utility ~ IF:
    → You have Flash Storage such as an SSD or NVME or UFS installed.
    → You use a proper OS - Installer to Setup BTRFS ~ OR ~ have decent knowledge about the things you do if you do it manually.
    → If you do, the Arch Linux Wiki and BTRFS - Documentation have your back 😉↩︎

Share Note for Obsidian 🌓