How do we trigger a re-render for missed mapblocks?
Hi there,
New to this mapserver and have an issue where the Ground level missed a bunch of map blocks during a /emergeblocks here 3000 from spawn.
This is what the world map looks like for the ground layer:
At first I thought it may have been an issue with the /emergeblocks command itself, wherein during the render there were errored map blocks that failed to emerge. Further runs of /emergeblocks failed to change it.
Then I noticed that the Sky layer was completely rendered without missing mapblocks:
Which got me thinking, so I added a new layer. Initially this did not do anything, even after a restart. I have the initial "enableinitialrendering": true flag set. My config for reference:
{
"configversion": 1,
"port": 30100,
"enableprometheus": true,
"enablerendering": true,
"enablesearch": true,
"enableinitialrendering": true,
"enabletransparency": true,
"enablemediarepository": false,
"webdev": false,
"webapi": {
"enablemapblock": true,
"secretkey": "Ar40ltcMtiBmd7W"
},
"layers": [
{
"id": 0,
"name": "Ground",
"from": -1,
"to": 10
},
{
"id": 1,
"name": "Sky",
"from": 11,
"to": 24
},
{
"id": 2,
"name": "Cave Level -1",
"from": -50,
"to": -2
},
{
"id": 3,
"name": "Cave Level -50",
"from": -100,
"to": -51
},
{
"id": 4,
"name": "Cave Level -100",
"from": -150,
"to": -101
},
{
"id": 5,
"name": "Cave Level -150",
"from": -200,
"to": -151
}
],
"renderingfetchlimit": 500,
"renderingjobs": 8,
"renderingqueue": 10,
"incrementalrenderingtimer": "5s",
"mapobjects": {
"areas": true,
"bones": true,
"protector": true,
"xpprotector": true,
"privprotector": true,
"technic_quarry": true,
"technic_switch": true,
"technic_anchor": true,
"technic_reactor": true,
"luacontroller": true,
"digiterms": true,
"digilines": true,
"travelnet": true,
"mapserver_player": true,
"mapserver_poi": true,
"mapserver_label": true,
"mapserver_trainline": true,
"mapserver_border": true,
"tileserverlegacy": true,
"mission": true,
"jumpdrive": true,
"smartshop": true,
"fancyvend": true,
"atm": true,
"train": true,
"trainsignal": true,
"minecart": false,
"locator": false,
"signs": true,
"mapserver_airutils": true,
"phonograph": true,
"um_area_forsale": true
},
"mapblockaccessor": {
"expiretime": "10s",
"purgetime": "15s",
"maxitems": 50
},
"defaultoverlays": [
"mapserver_poi",
"mapserver_label",
"mapserver_player"
],
"skins": {
"enableskinsdb": true,
"skinspath": "/var/games/luanti/data/.minetest/games/asuna/mods/skinsdb/textures"
},
"worldpath": "./",
"datapath": "./",
"colorstxtpath": "/var/games/luanti/data/.minetest/colors"
}
I decided to poke around in the database and in the settings table, lo-and-behold: initial_run, false - So I flipped that to true, restarted the service - and it actually started to render.
I checked it this morning and the first Cave layer has rendered in full without missed blocks so far in it's progress.
This seems to confirm that these map blocks did in fact emerge, however the mapserver does not seem to be aware it needs to render them for the Ground layer. I don't see any way to force a rerender of a layer as I have in other tools. Have I missed something, or does this need to be a feature request? What can I do in the mean time? Anything to look at for problems with the game map - or is the best option going scorched earth on the map server DB and let it start all over from scratch and maybe it will get the missing areas?