ServerMinimap
This plugin is not in active development anymore. I might update it for a new Minecraft version from time to time, but don't expect feature updates. The source code is available on GitHub, though. ;)
ServerMinimap
This plugin allows you to provide a minimap to your users, without any client mod by using the vanilla maps.
You can configure the scale, updatetime and colors at which blocks are rendered. There is also a option to show other players on the minimap.
It also features a simple waypoint system and custom events to display own cursors on the map. (E.g. for more advanced waypoint systems)
The plugin is based on a idea from toxictroop and the team at: http://www.crossfiregaming.net. Request Thread
This plugin will break with every Minecraft update. It currently supports 1.5.2 to 1.10
Beta Notice
This plugin is in beta state. If you find bugs, please report them.
Also, this plugin can use big amounts of CPU, Bandwidth and RAM, depending on your settings.
Usage
Installing is, as every Bukkit plugin, just downloading and moving into the plugins folder.
After the first run, the plugin should create a default config with default values.
When you start up the server, it'll tell you which mapID the plugin uses together with a command to obtain the map a OP.
Configuration
scale
Defines the scale of the map. 1 map pixel is scale*scale blocks. Biggers scales need more CPU to render the map in the first run, while using less RAM to cache the values.
runPerTicks
After how much ticks (1/20 sec) the plugin should calculate the current renderer queue. Higher values give the server more time to recover from lag, lower values allow the server to distribute the load more evenly. (I recommend lower values)
chunksPerRun
This value determins who much 16x16 pixelblocks (map chunks) and block changes are rendered per run. Higher values will speed up the rendering of new areas, while using more CPU resources in a shorter timespan (if there is enough to render). Every map chunk is only rendered once after a server start. Make sure this value is not too low, otherwise the renderer may be slower than the queue is filled.
fastTicks
This value allows you to set the time in ticks (1/20 sec) after which users with the permission "minimap.fastupdate" get a complete update of the map. The additional bandwidth usage of every complete send is about 16KiB per Update, per player.
canSeeOthers
When activated, every player can see other player's on their minimap. This may be changed when plugins modify the MinimapPlayerCursorEvent.
mapID
This is the id of the map, the plugin uses. It will be shown every server startup in log. It is no recommended to change this id unless you know that a map with the new id already exists.
showDistantWaypoints
Sets whether waypoints, that are out of range, shall be displayed on the cornor of the map.
mysql
Under this section you need to put all needed information to connect to your MySQL server and if you want to use it. The host, port, username, password and the target database are needed.
worlds
This section allows you to set several things per world. It follows the format: <worldname>: <key>: <value>
possible keys are: enabled
Allows you to disable the map renderer in certain worlds. The renderer is enabled by default.
scale
Same as above but overrides the default value.
drawHeight
Allows you to set the upper border of the rendering algorythm. (Default the worlds max height - 255)
Use this for things like cave mapping. (e.g. Nether)
Default Configuration
scale: 1 chunksPerRun: 4 runPerTicks: 5 fastTicks: 20 canSeeOthers: true showDistantWaypoints: false mysql: enabled: false host: localhost port: 3306 user: user pass: password database: database worlds: world_nether: enabled: true drawHeight: 75 scale: 2
Commands
Permissions for the commands can be found below
/minimap - gives you the minimap item
/waypoint help [command] - gives you information about this command
/waypoint add [x] [z] - adds a waypoint either on your current location, or to the specified x and z coordinates.
/waypoint list - lists all your waypoints together with their index
/waypoint remove <index> - removes the waypoint with the index <index>. Note: indcies change, when removing waypoints.
/waypoint hide <index> [true|false] - either toggles visibility of a waypoint, or sets it to the given boolean.
Permissions
minimap.fastupdate
Makes a full update of the player's minimap every defined amount of ticks. Uses big amounts of Bandwidth. Player's without this node may need to stand still for about 5 seconds to have a clear map.
minimap.command.minimap
Allows you to use the /minimap command.
minimap.command.waypoint.help
Allows you to use the /waypoint help command
minimap.command.waypoint.list
Allows you to use the /waypoint list command
minimap.command.waypoint.add
Allows you to use the /waypoint add command
minimap.command.waypoint.remove
Allows you to use the /waypoint remove command
minimap.command.waypoint.hide
Allows you to use the /waypoint hidecommand
Metrics
This plugin utilises Hidendra's plugin metrics system. You can opt-out under <yourPluginFolder>/PluginMetrics/config.yml
The following informations will be collected:
- A unique identifier
- The server's version of Java
- Whether the server is in offline or online mode
- The plugin's version
- The server's implementation and game version
- The OS version/name and architecture
- The core count for the CPU
- The number of players online
- The Metrics version
- Your online-mode
- Your server location
- Your config values for scale, runPerTicks, fastTicks, and chunksPerRun
@Moni32
Give players the 'minimap.fastupdate' permission node if you want them to update faster. You can set the update intervall in config in 1/20 seconds, but beware reducing the value increases bandwidth usage and very low values might even cause mayor lag to the client.
When i use this the map takes like 10 seconds to refresh when i walk. Any help?
@jhicks32917
After some tests on my server I observed the memory behaviour in both cases, with map on and off. So I would say it's the Java GC, which does only clean the memory every x seconds. However, I'll make further investigations in this.
Recommended settings are hard to say, as they can have huge impacts on the performance. Basicly I would recommend a low runPerTicks to let the server work with new data fast. Also a fastTicks about 20 (1s) should work well for most people to allow a constantly updated map, while not affecting FPS and Bandwidth too much.
However, chunksPerRun and scale should be balanced based on your servers hardware. If you occur TPS lag when the map is rendering, you should either decrease your scale or the chunksPerRun.
A pre-render may be something I look into, but maybe more in a way of a restart persistant cache to simplify the code change as well as allowing maps to grow dynamicly while still having a benefit from this feature...
I think the current version has a memory leak. When I hold the map after letting it load, the free memory on my server is drained constantly and when I put the map away the memory is returns to free.
Also, do you have any recommended settings for the config? I tried some slightly more aggressive settings and anytime I pull the map out, TPS drops from 20 to 16-18, then normalizes once the map has been rendered. Would it be possible to pre-render the entire game map once using a command? This would allow for faster rendering and less CPU usage, right?
@SydMontague
Okey, and what do you think of adding like the owners can set some warps. So you put: /waypoint Shop And its like a GPS, or it shows where the Shop is....
And okey, please try to look about this of groups! Because it will be perfect!
@xtomyserrax
I'll will look into that, however I can't promise anything.
Actually all this features are technically supported and can be accessed via the 2 events that the plugin provides. However, I image it very hard to implement these features in my plugin in a way that it fits most of the users needs, because it might need to work together with external plugins. (E.g. show only member of your own Faction/Town)
Sorry, another idea i forgot to say....
Could you do that you can create groups?
Like, i saw that you can see other users in your map. So could you do like you can see them, but of different colours? Like: The green one is a team, and the blue one is another team. And you can see which team is going and where?
Thanks! And if its added sorry i didnt saw it!
Hey, i have this idea...
I have seen the /waypoint plugin!
Could you add that but that the admins set the waypoints? Like a warp, that the admin set a warp and you teleport to it! The admin set the waypoints and in the waypoints you have too the Admin waypoints so it GPS you there!!!!!
Obviously they have to have names!
I wish you add it! Thanks!
First, sorry for my English.
In the world/data folder is not map_0.dat file.
But v0.7.1 work without error.
Video Tutorial on the Plugin
https://www.youtube.com/watch?v=_631slDlXns
Credits: (AbsintoJ/ServerMinimap)
@matze135
Can you post the contents of your config.yml? Also, could you check if there is a map_0.dat in your world/data folder?
Hi.
The Plugin Work fine, but i have this error in the Log.
Ich have Spigot 1.7.2 Build 1394 and Server Minimap v0.6.0.
http://pastebin.com/i1tVvMB7
@CommodoreAlpha
I'll look into that, it's a nice idea. The rendering should be rather simple. The current renderer gets the highest block up to y=255. For a rendering of y=100 I would change the max block height to 100 and the algorythm does the rest.
However, the management of multiple maps will require some refactoring of my code, so I would not expect it too soon, as I work on other projects at the moment.
@TheSigler49
I'll adress this in the next update, but it would be a too small change for a update. Up to then you could adress this issue by yourself by adding
<<code>>
aliases: [alias] <</code> to the waypoint command in the plugin.yml of my plugin. You need to open the .jar file with a programm like WinRAR for that.I'm interested in using this (well, of course I am! :)), but the issue is that people may rather use Rei's Minimap or some other minimap mod over this plugin, defeating its purpose in the first place.
I think it would be rather neat, if you could have special variants of the minimap that would function like the normal minimap, but only display the terrain at a "y=<integer>" level (in other words, at only ONE y-altitude) - perfect for people who like building maze-y underground dungeons. Because these minimaps only display one altitude level, you should allow the admin to be able to create multiple "dungeon" minimaps, each with their own altitude, unlike the "standard" minimap which has only one type. (I am aware these minimaps would work outside of dungeons too and in other dungeons of the same altitude; this would be an intended feature.)
You could go about this by getting two layers of blocks - one at the specified y-level, and one right below it. If the block at the specified y-level is "AIR", the map displays the block below it. If the block at the specified y-level is some other block that isn't completely transparent, the map displays that block.
There are two interesting side effects that could possibly happen with creative dungeon builders:
The possibilities, really, are endless, and this could be the perfect, non-exploiting alternative to Rei's underground minimap.
@SydMontague
Any chance you can add an alias for it?
It seems Citizens has a /waypoint and /wp command. Possibly make it /mwp or /miniwaypoint or /miniwp, or something slightly different please! <3
@SydMontague
Didn't even know it was for approval until I read the perms and stuff, lol. Thanks again, testing it now! :D
@TheSigler49
It most likely conflicts with Essentials, as it overrides the vanilla /give command. I believe it was something like /give <player> MAP:<id> 1 in Essentials.
However, I added a /minimap command for obtaining the map in 0.6.0 but it still waits for approval. (But it sound like you found a way to download it anyways)
@SydMontague
08.01 14:00:13 [Server] INFO Created Minimap with ID 0. Use /give <name> MAP 1 0 to get the map as item. 08.01 14:00:13 [Server] INFO Enabling ServerMinimap v0.5.1
Thats what it shows in console. I use /give <player> MAP 1 0 and it doesn't show the minimap? I get a map but its a blank one you right click. Is it conflicting with something? Is it because I am using essentials?
EDIT: Just downloaded v0.6, will test it and hopefully since theres commands it will work, and thanks for waypoint system! <3
@TheSigler49
As long as you use the right data value, it should work. If you hover of the map it should show "Map #<id>". If <id> it the same number as the last number in the /give command it should work.
Are there any error messages in your serverlog?
@TheSigler49
Could it be that I am using essentails not vanilla give command?