diff --git a/kif_minetest_mapserver/README.md b/kif_minetest_mapserver/README.md
index dccf04697d021c32d1ee71c7cad7cc06bb9487b5..7be278590e20fc706c7852ba65abeb367990edc8 100644
--- a/kif_minetest_mapserver/README.md
+++ b/kif_minetest_mapserver/README.md
@@ -25,8 +25,8 @@ Variables for the `kif_minetest_server` role:
 * `mapserver_url`: string, default: `http://127.0.0.1:{{ mapserver_port }}`. URL over which the mapserver companion mod to should exchange in-game data with the mapserver.
 * `mapserver_key`: string, default: `CHANGE_TO_PROPER_PASSWORD`. Secret for exchanging in-game data from the companion mod with the mapserver. Please, please always have this be something different than the default.
 * `use_production_secrets`: bool, default: `false`. Whether to use secrets for production from the vault file. Requires you to know and supply the password.
-* `minetest_version`: string, default: `5.3.0`. Which minetest version to use. Refers to the commit, tag or branch of the official git repository where minetest is compiled from.
-* `minetest_game_version`: string, default: `5.3.0`. Which minetest game version to use. Refers to the commit, tag or branch of the official git repository.
+* `minetest_version`: string, default: `5.4.1`. Which minetest version to use. Refers to the commit, tag or branch of the official git repository where minetest is compiled from.
+* `minetest_game_version`: string, default: `5.4.1`. Which minetest game version to use. Refers to the commit, tag or branch of the official git repository.
 * `mods_version`: string, default: `master`. Refers to the commit, tag or branch of the repository holding the mods.
 * `mods_git_repo`: string, default: `'https://gitlab.fachschaften.org/minetest/minetest_mods.git'`. URL of the repository holding the mods that should be used.
 * `update_mods_cron_job`: bool, default: `true`. Whether to create a cron job to update mods automatically each day. Refers cron to `update.sh` which must be present at the root of the mods repository.
diff --git a/kif_minetest_mapserver/defaults/main.yml b/kif_minetest_mapserver/defaults/main.yml
index b9e2230e7102dc508ff0ae6c34f0c90232ab0da7..c0762cac9158416413421570f8c98f26b1868d96 100644
--- a/kif_minetest_mapserver/defaults/main.yml
+++ b/kif_minetest_mapserver/defaults/main.yml
@@ -1,7 +1,7 @@
 ---
 use_production_secrets: false
 
-mapserver_key: CHANGE_TO_PROPER_PASSWORD
+mapserver_key: CHANGE_TO_PROPER_MAPSERVER_KEY
 
 mapserver_version: 4.2
 
diff --git a/kif_minetest_server/README.md b/kif_minetest_server/README.md
index 3d819a17dc8c4707948327dfa92af43bd5681f40..ae1657d754e1b8fb700e658a8a4ace93c179a329 100644
--- a/kif_minetest_server/README.md
+++ b/kif_minetest_server/README.md
@@ -16,8 +16,8 @@ TODO: complete documentation
 Most important variables:
 
 * `use_production_secrets`: bool, default: `false`. Whether to use secrets for production from the vault file. Requires you to know and supply the password.
-* `minetest_version`: string, default: `5.3.0`. Which minetest version to use. Refers to the commit, tag or branch of the official git repository where minetest is compiled from.
-* `minetest_game_version`: string, default: `5.3.0`. Which minetest game version to use. Refers to the commit, tag or branch of the official git repository.
+* `minetest_version`: string, default: `5.4.1`. Which minetest version to use. Refers to the commit, tag or branch of the official git repository where minetest is compiled from.
+* `minetest_game_version`: string, default: `5.4.1`. Which minetest game version to use. Refers to the commit, tag or branch of the official git repository.
 * `mods_version`: string, default: `master`. Refers to the commit, tag or branch of the repository holding the mods.
 * `mods_git_repo`: string, default: `'https://gitlab.fachschaften.org/minetest/minetest_mods.git'`. URL of the repository holding the mods that should be used.
 * `update_mods_cron_job`: bool, default: `true`. Whether to create a cron job to update mods automatically each day. Refers cron to `update.sh` which must be present at the root of the mods repository.
diff --git a/kif_minetest_server/defaults/main.yml b/kif_minetest_server/defaults/main.yml
index da0dddd5092994974f38dcf9c76d26a14c33f765..9a48c539a78e62c9639c6e17e3c478a763573699 100644
--- a/kif_minetest_server/defaults/main.yml
+++ b/kif_minetest_server/defaults/main.yml
@@ -1,8 +1,8 @@
 ---
 use_production_secrets: false
 
-minetest_version: 5.3.0
-minetest_game_version: 5.3.0
+minetest_version: 5.4.1
+minetest_game_version: 5.4.1
 mods_version: master
 
 minetest_base_dir: /var/lib/minetest
@@ -26,7 +26,7 @@ server_language: de
 server_name: KIF Minetest Server
 server_description: Minetest-Server für die Konferenz der Informatikfachschaften
 server_motd: KIF Minetest Server
-server_kick_msg_shutdown: WIR SCHLIESSEN! Der Server ist für den Dauerbetrieb gedacht, also ist es vermutlich ein Neustart. Im Normalfall, wenn keine größeren Wartungsarbeiten stattfinden oder ein Admin was kaputt gemacht hat, dürfte er in genauuu...... DIESEM Moment wieder laufen. Ansonsten versuch es in den nächsen Minuten doch nochmal!
+server_kick_msg_shutdown: WIR SCHLIESSEN! Der Server ist für den Dauerbetrieb gedacht, also ist es vermutlich ein Neustart. Im Normalfall, wenn keine größeren Wartungsarbeiten stattfinden oder ein Admin was kaputt gemacht hat, dürfte er in genauuu....... DIESEM Moment wieder laufen. Ansonsten versuch es in den nächsen Minuten doch nochmal!
 server_kick_msg_crash: Ups! Das war wohl nichts. Uns ist tatsächlich der Server abgeschmiert. Bitte melde das den Admins, falls die nicht schon dran tüfteln...
 
 minetest_seed: 3374822340961073250
@@ -73,6 +73,7 @@ server_active_object_send_range_blocks: 7
 server_active_block_range: 6
 server_secure_http_mods:
   - mapserver
+  - ak_announcer
 
 mapserver_enable_crafting: true
 mapserver_url: http://127.0.0.1:{{ mapserver_port }}
@@ -89,9 +90,9 @@ load_mods:
   - 3d_armor_stand
   - 3d_armor_ui
   - advtrains
+  - advtrains_assets
   - advtrains_freight_train
   - advtrains_interlocking
-  - advtrains_itrainmap
   - advtrains_line_automation
   - advtrains_luaautomation
   - advtrains_railbus
@@ -103,6 +104,7 @@ load_mods:
   - advtrains_train_steam
   - advtrains_train_subway
   - advtrains_train_track
+  - ak_announcer
   - ambience
   - areas
   - assets
@@ -118,6 +120,7 @@ load_mods:
   - character_creator
   - coloredwood
   - computer
+  - computers
   - death_markers
   - digilines
   - digiterms
@@ -131,6 +134,9 @@ load_mods:
   - food_basic
   - hbarmor
   - hbhunger
+  - home_workshop_common
+  - home_workshop_machines
+  - home_workshop_misc
   - homedecor_3d_extras
   - homedecor_bathroom
   - homedecor_bedroom
@@ -236,6 +242,7 @@ load_mods:
   - pipeworks
   - plasmascreen
   - protector
+  - serialize_lib
   - shields
   - signs
   - signs_api
@@ -258,5 +265,6 @@ load_mods:
   - wield3d
   - wieldview
 disabled_mods:
+  - advtrains_itrainmap
   - skinsdb
   - snowdrift
diff --git a/kif_minetest_server/templates/map_meta.txt.j2 b/kif_minetest_server/templates/map_meta.txt.j2
index 49ff1a4a17bc4eda2e64a37b0cdcf726c2655252..d307cc79f7b199642c8d9ae127441722fc6eedc0 100644
--- a/kif_minetest_server/templates/map_meta.txt.j2
+++ b/kif_minetest_server/templates/map_meta.txt.j2
@@ -71,7 +71,7 @@ mgvalleys_np_inter_valley_fill = {
 	octaves = 6
 	offset = 0
 }
-mg_flags = caves, dungeons, light, decorations, biomes
+mg_flags = caves, dungeons, light, decorations, biomes, ores
 mg_name = valleys
 mgvalleys_river_depth = 4
 mgvalleys_np_valley_depth = {
diff --git a/testing.yml b/testing.yml
index cd27340460da120a2f406fd6543a1f5702efef57..d95723707f1464590d1d5cc9dfbb82155d4d8e18 100644
--- a/testing.yml
+++ b/testing.yml
@@ -3,6 +3,268 @@
   roles:
     - role: kif_minetest_mapserver
       vars:
+        mods_version: testing
         server_player_backend: sqlite3
         server_backend: sqlite3
         server_announce: false
+        load_mods:
+          - 3d_armor
+          - 3d_armor_ip
+          - 3d_armor_sfinv
+          - 3d_armor_stand
+          - 3d_armor_ui
+          - advtrains
+          - advtrains_assets
+          - advtrains_freight_train
+          - advtrains_interlocking
+          - advtrains_line_automation
+          - advtrains_luaautomation
+          - advtrains_railbus
+          - advtrains_signals_ks
+          - advtrains_train_industrial
+          - advtrains_train_japan
+          - advtrains_train_jre231
+          - advtrains_train_rocket
+          - advtrains_train_steam
+          - advtrains_train_subway
+          - advtrains_train_track
+          - ak_announcer
+          - ambience
+          - areas
+          - assets
+          - bakedclay
+          - basic_materials
+          - basic_signs
+          - beacons
+          - bike
+          - biome_lib
+          - boards
+          - bonemeal
+          - building_blocks
+          - character_creator
+          - coloredwood
+          - computer
+          - computers
+          - death_markers
+          - digilines
+          - digiterms
+          - display_api
+          - elevators
+          - fake_fire
+          - farming
+          - font_api
+          - font_metro
+          - food
+          - food_basic
+          - hbarmor
+          - hbhunger
+          - home_workshop_common
+          - home_workshop_machines
+          - home_workshop_misc
+          - homedecor_3d_extras
+          - homedecor_bathroom
+          - homedecor_bedroom
+          - homedecor_books
+          - homedecor_climate_control
+          - homedecor_clocks
+          - homedecor_cobweb
+          - homedecor_common
+          - homedecor_doors_and_gates
+          - homedecor_electrical
+          - homedecor_electronics
+          - homedecor_exterior
+          - homedecor_fences
+          - homedecor_foyer
+          - homedecor_furniture
+          - homedecor_furniture_medieval
+          - homedecor_gastronomy
+          - homedecor_kitchen
+          - homedecor_laundry
+          - homedecor_lighting
+          - homedecor_misc
+          - homedecor_office
+          - homedecor_pictures_and_paintings
+          - homedecor_roofing
+          - homedecor_seating
+          - homedecor_tables
+          - homedecor_trash_cans
+          - homedecor_wardrobe
+          - homedecor_windows_and_treatments
+          - hudbars
+          - ilights
+          - illumination
+          - inbox
+          - itemframes
+          - kif_custom
+          - kiffood
+          - lavalamp
+          - led_marquee
+          - mapserver
+          - mesecar
+          - mesecons
+          - mesecons_alias
+          - mesecons_blinkyplant
+          - mesecons_button
+          - mesecons_commandblock
+          - mesecons_delayer
+          - mesecons_detector
+          - mesecons_doors
+          - mesecons_extrawires
+          - mesecons_fpga
+          - mesecons_gates
+          - mesecons_hydroturbine
+          - mesecons_insulated
+          - mesecons_lamp
+          - mesecons_lightstone
+          - mesecons_luacontroller
+          - mesecons_materials
+          - mesecons_microcontroller
+          - mesecons_movestones
+          - mesecons_mvps
+          - mesecons_noteblock
+          - mesecons_pistons
+          - mesecons_powerplant
+          - mesecons_pressureplates
+          - mesecons_random
+          - mesecons_receiver
+          - mesecons_solarpanel
+          - mesecons_stickyblocks
+          - mesecons_switch
+          - mesecons_torch
+          - mesecons_walllever
+          - mesecons_wires
+          - mobkit
+          - mokapi
+          - moreblocks
+          - morelights
+          - morelights_extras
+          - morelights_modern
+          - morelights_vintage
+          - moreores
+          - moretrains_basic
+          - moretrains_industrial
+          - moretrains_japan
+          - moretrains_steam
+          - moretrains_vintage
+          - moretrees
+          - my_castle_doors
+          - my_cottage_doors
+          - my_default_doors
+          - my_door_wood
+          - my_fancy_doors
+          - my_future_doors
+          - my_garage_door
+          - my_hidden_doors
+          - my_misc_doors
+          - my_old_doors
+          - my_saloon_doors
+          - my_sliding_doors
+          - ontime_clocks
+          - orienteering
+          - petz
+          - pie
+          - pipeworks
+          - plasmascreen
+          - protector
+          - serialize_lib
+          - shields
+          - signs
+          - signs_api
+          - signs_lib
+          - signs_road
+          - stained_glass
+          - steles
+          - street_signs
+          - streetlights_api
+          - streetlights_lamps
+          - streetlights_poles
+          - streets
+          - tfl_s7stock
+          - travelnet
+          - ts_workshop
+          - unified_inventory
+          - unifiedbricks
+          - unifieddyes
+          - waffles
+          - wield3d
+          - wieldview
+        disabled_mods:
+          - advtrains_itrainmap
+          - skinsdb
+          - snowdrift
+
+  tasks:
+    - name: Stop minetest
+      systemd:
+        name: "{{ item }}"
+        state: stopped
+      become: true
+      with_items:
+        - minetest
+        - mapserver
+
+    - name: Copy local world
+      ansible.builtin.copy:
+        src: "/home/peter/.minetest/worlds/kifserver/{{ item }}"
+        dest: "/var/lib/minetest/world/{{ item }}"
+        mode: u=rw,g=r,o=r
+        owner: minetest
+        group: minetest
+      become: true
+      with_items:
+        - advtrains_atc
+        - advtrains_interlocking_influence_points
+        - advtrains_interlocking_npr_rails
+        - advtrains_interlocking_rs_callbacks
+        - advtrains_interlocking_rs_locks
+        - advtrains_interlocking_signalass
+        - advtrains_interlocking_tcbs
+        - advtrains_interlocking_ts
+        - advtrains_lines
+        - advtrains_luaautomation
+        - advtrains_ndb
+        - advtrains_ndb2
+        - advtrains_ptmap
+        - advtrains_trains
+        - advtrains_version
+        - advtrains_wagon_save
+        - areas.dat
+#        - auth.sqlite
+        - beds_spawns
+        - death_markers.json
+        - env_meta.txt
+        - force_loaded.txt
+        - homes
+        - ipban.txt
+        - luaentities
+        - map.sqlite
+        - map_meta.txt
+#        - mapserver.json
+        - mapserver.sqlite
+        - mesecon_actionqueue
+        - mod_travelnet.data
+        - players.sqlite
+        - teleport_tubes
+        - unified_inventory_home.home
+#        - world.mt
+      register: world
+
+    - name: Copy mods stuff and map tiles
+      ansible.posix.synchronize:
+        src: "/home/peter/.minetest/worlds/kifserver/{{ item }}"
+        dest: "/var/lib/minetest/world/{{ item }}"
+        recursive: true
+        checksum: true
+      become: true
+      with_items:
+        - mod_storage
+        - mapserver.tiles
+
+    - name: Start minetest
+      systemd:
+        name: "{{ item }}"
+        state: started
+      become: true
+      with_items:
+        - minetest
+        - mapserver