# Mapserver mod

* Repository: https://github.com/minetest-mapserver/mapserver_mod

If the `mapserver-mod` is installed and configured
you get more realtime-data from within your minetest-world:

* Current players with their positions
* Current time and max lag
* Planes using the [Airutils library](https://github.com/APercy/airutils) by APercy, if installed

You can use the `mapserver-mod` either passive or active:
* *Passive* Makes some additional markers available (POI, Labels, etc)
* *Active* Communicates with the mapserver and sends realtime data (players, lag, time)

## Installing and configuring the mapserver mod

Download or clone from https://github.com/minetest-mapserver/mapserver_mod

If you want to enable craftable mapobjects (poi, labels, trainblocks, etc) you
can enable the setting in your `minetest.conf` (defaults to false)

```
mapserver.enable_crafting = true
```

The update interval of the players on the map can be changed with:
```
mapserver.send_interval = 1
```

Default is `2`, means that the player, time and lag info get sent every 2 seconds.

## Passive mode

You don't have to set up anything, passive mode is the default.
There are some additional map objects you can use in this mode:

* **POI** Point of interest
* **Label** A street or city label
* **Border** A border for cities or regions
* **Train** To display train lines on the map, with stations and line-info

## Active mode

The mod communicates via http with the mapserver.
You need to configure the *url* and the *secretkey* in your `minetest.conf`

* Install the mapserver mod in your minetest instance
* Copy the `secretkey` from your `mapserver.json` (this is an autogenerated key)
* Enable http for the `mapserver` mod in your `minetest.conf`
* Configure your `minetest.conf` with the settings: `mapserver.url` and `mapserver.key`

Example config:
```
secure.http_mods = mapserver
mapserver.url = http://127.0.0.1:8080
mapserver.key = ZJoSpysiKGlYexof
```

### Hiding players from the map

If (for any reason) you want to hide players on the map, you can `/grant` them the following priv:
```
mapserver_hide_player
```

The player-position and data will not be sent to the mapserver