All Mods Resource Packs Data Packs Shaders Modpacks Plugins
MapEngine

MapEngine

by Unknown • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

MapEngine

logo

GitHub tag (latest by date) AGPLv3 License Status Beta

Description

MapEngine is a map library plugin for paper servers. It provides a simple API to create maps with custom content. Using lightweight and asynchronous techniques, MapEngine has a very low impact on server performance.

Features

  • Pipelined API for custom pipelines
  • Asynchronous rendering
  • Completely packet based
  • Optional dithering (Floyd-Steinberg)
  • Groups as z-layer interpretation for saving immense network traffic
  • Per player buffering, only the changed pixels are sent to the player
  • Optional packet bundling prevents tearing
  • Drawing utilities (text, components, lines, triangles, rectangles, circles, ellipses, polygons)
Color Conversion Cache Performance Graph

Performance Graph

Live streaming via RTMP on maps This is an example of a live stream on a map. The stream is played on a 7x4 map array. The Stream source is 1920x1080@20 streamed with OBS.

Watch it here

Floyd Sternberg dithering This is an example of a map with Floyd-Steinberg dithering enabled. The stream is played on a 7x4 map array. The Stream source is 1920x1080@20 streamed with OBS.

Watch it here

Javadoc

A hosted version of the javadoc can be found here.

Support

Server Version Supported
Paper 1.21.11 ✔️
Paper 1.21.10 ✔️
Paper 1.21.9 ✔️
Paper 1.21.8 ✔️
Paper 1.21.7 ✔️
Paper 1.21.6 ✔️
Paper 1.21.5 ✔️
Paper 1.21.4 ✔️
Paper 1.21.3 ✔️
Paper 1.21.2 ✔️
Paper 1.21.1 ✔️
Paper 1.21 ✔️
Paper 1.20.x ✔️
Paper 1.19.4 ✔️
Paper 1.19.3 ✔️

Usage

MapEngine has to be added as a dependency to the plugin.yml regardless of the build system used.

Maven
<repositories>
    <repository>
        <id>minceraft</id>
        <url>https://repo.minceraft.dev/releases/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>de.pianoman911</groupId>
        <artifactId>mapengine-api</artifactId>
        <version>1.8.11</version>
        <scope>provided</scope>
    </dependency>
</dependencies>
Gradle (groovy)
repositories {
    maven {
        url = 'https://repo.minceraft.dev/releases/'
        name = 'minceraft'
    }
}

dependencies {
    compileOnly 'de.pianoman911:mapengine-api:1.8.11'
}
Gradle (kotlin)
repositories {
    maven("https://repo.minceraft.dev/releases/") {
        name = "minceraft"
    }
}

dependencies {
    compileOnly("de.pianoman911:mapengine-api:1.8.11")
}

Example

public class Bar {

    // getting the api instance
    private static final MapEngineApi MAP_ENGINE = Bukkit.getServicesManager().load(MapEngineApi.class);

    public void foo(BufferedImage image, BlockVector cornerA, BlockVector cornerB, BlockFace facing, Player viewer) {
        // create a map display instance
        IMapDisplay display = MAP_ENGINE.displayProvider().createBasic(cornerA, cornerB, facing);
        display.spawn(viewer); // spawn the map display for the player

        // create an input pipeline element
        // this object can also be used to draw simple shapes and text
        IDrawingSpace input = MAP_ENGINE.pipeline().createDrawingSpace(display);

        // draw the image to the input pipeline element
        input.image(image,0,0);

        // draw a triangle
        input.triangle(0, 0, 10, 10, 20, 0, 0xff0000ff);

        // add a player to the pipeline context,
        // making the player receive the map
        input.ctx().receivers().add(viewer);

        // enable floyd-steinberg dithering
        input.ctx().converter(Converter.FLOYD_STEINBERG);

        // enable per player buffering
        input.ctx().buffering(true);

        // flush the pipeline
        // the drawing space can be reused
        input.flush();
    }
}

More detailed examples can be found in the MinceraftMC/MapEngineExamples repository.

Building

  1. Clone the project (git clone https://github.com/MinceraftMC/MapEngine.git)
  2. Go to the cloned directory (cd MapEngine)
  3. Build the Jar (./gradlew build on Linux/MacOS, gradlew build on Windows)

The plugin jar can be found in the build → libs directory

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
26.1.x 1.21.x 1.20.x
Paper Purpur
13h ago 1
1.21.x 1.20.x 1.19.x
Paper Purpur
13h ago 1
1.21.x 1.20.x 1.19.x
Paper Purpur
13h ago 1
1.21.x 1.20.x 1.19.x
Paper Purpur
13h ago 1
1.21.x 1.20.x 1.19.x
Paper Purpur
13h ago 1
1.21.x 1.20.x 1.19.x
Paper Purpur
13h ago 1
1.21.x 1.20.x 1.19.x
Paper Purpur
13h ago 1
1.21.x 1.20.x 1.19.x
Paper Purpur
13h ago 1
1.21.x 1.20.x 1.19.x
Paper Purpur
13h ago 1
1.21.x 1.20.x 1.19.x
Paper Purpur
13h ago 1
1.21.x 1.20.x 1.19.x
Paper Purpur
13h ago 1
1.21.x 1.20.x 1.19.x
Paper Purpur
13h ago 1
1.20.x 1.19.x
Paper Purpur
13h ago 1
1.20.x 1.19.x
Paper Purpur
13h ago 1
1.20.x 1.19.x
Paper Purpur
13h ago 1
1.20.x 1.19.x
Paper Purpur
13h ago 1
1.20.x 1.19.x
Paper Purpur
13h ago 1
1.20.x 1.19.x
Paper Purpur
13h ago 1
1.20.x 1.19.x
Paper Purpur
13h ago 1
1.20.x 1.19.x
Paper Purpur
13h ago 1
1.20.x 1.19.x
Paper Purpur
13h ago 1
1.20.x 1.19.x
Paper Purpur
13h ago 1
1.20.x 1.19.x
Paper Purpur
13h ago 1
1.20.x 1.19.x
Paper Purpur
13h ago 1
1.20.x 1.19.x
Paper Purpur
13h ago 1
1.20.x 1.19.x
Paper Purpur
13h ago 1
1.19.x
Paper Purpur
13h ago 1
1.19.x
Paper Purpur
13h ago 1
1.19.x
Paper Purpur
13h ago 1
1.19.x
Paper Purpur
13h ago 1
1.19.x
Paper Purpur
13h ago 1
1.19.x
Paper Purpur
13h ago 1
1.19.x
Paper Purpur
13h ago 1
1.19.x
Paper Purpur
13h ago 1
1.19.x
Paper Purpur
13h ago 1
1.19.x
Paper Purpur
13h ago 1
1.19.x
Paper Purpur
13h ago 1
1.19.x
Paper Purpur
13h ago 1
1.19.x
Paper Purpur
13h ago 1
1.19.x
Paper Purpur
13h ago 1
[1.8.12] MapEngine 1.8.12 by Unknown on Oct 15, 2026
Download

[1.8.11] MapEngine 1.8.11 by Unknown on Oct 15, 2026
Download


[1.8.7] MapEngine 1.8.7 by Unknown on Oct 15, 2026
Download
  • Added utility methods for map ids

[1.8.4] MapEngine 1.8.4 by Unknown on Oct 15, 2026
Download

[1.8.3] MapEngine 1.8.3 by Unknown on Oct 15, 2026
Download
  • Added 1.21.2/1.21.3 Support

[1.8.2] MapEngine 1.8.2 by Unknown on Oct 15, 2026
Download
  • Added entity id utilities

[1.8.0] MapEngine 1.8.0 by Unknown on Oct 15, 2026
Download

[1.7.3] MapEngine 1.7.3 by Unknown on Oct 15, 2026
Download
  • Improved multiline component rendering
  • Huge performance increase of drawing utilities

[1.7.2] MapEngine 1.7.2 by Unknown on Oct 15, 2026
Download
  • Fixed pass through mode
  • Fixed geometry utilities and added ellipse draw utility
  • Fixed inconsistent method naming in the map click event

[1.7.1] MapEngine 1.7.1 by Unknown on Oct 15, 2026
Download
  • Added passthrough mode for map click events
  • Breaking Change: MapClickEvents can not be cancelled now

[1.7.0] MapEngine 1.7.0 by Unknown on Oct 15, 2026
Download
  • Added optional packet bundling
  • Removed api exposed update data

[1.6.3] MapEngine 1.6.3 by Unknown on Oct 15, 2026
Download
  • Added 1.20.3/1.20.4 support
  • Fixed several rare issues with per player buffering

[1.6.1] MapEngine 1.6.1 by Unknown on Oct 15, 2026
Download
  • Added location and distance parameters for click/tracing

[1.6.0] MapEngine 1.6.0 by Unknown on Oct 15, 2026
Download

[1.5.4] MapEngine 1.5.4 by Unknown on Oct 15, 2026
Download
  • Actually use distance parameter in ray tracer getter

[1.5.3] MapEngine 1.5.3 by Unknown on Oct 15, 2026
Download
  • Reactivate previous buffer logic for manual buffering
  • Reuse executor in floyd steinberg dithering
  • Removed some debug messages

[1.5.2] MapEngine 1.5.2 by Unknown on Oct 15, 2026
Download
  • Add component utility draw methods to drawing space
  • Fixed method to get new layers on layered drawing spaces
  • Fixed clearing drawing spaces

[1.5.1] MapEngine 1.5.1 by Unknown on Oct 15, 2026
Download
  • Added 1.20 support
  • Added item rotation api

[1.5.0] MapEngine 1.5.0 by Unknown on Oct 15, 2026
Download
  • First beta release
  • Added optional per player buffering
  • Added javadoc
  • Added rotation and visual direction api

[1.4.8] MapEngine 1.4.8 by Unknown on Oct 15, 2026
Download
  • Precise color blending
  • Add method to create sub buffers

[1.4.7] MapEngine 1.4.7 by Unknown on Oct 15, 2026
Download
  • Added update notifier
  • Fixed display if facing up or down
  • Make interaction boxes responsive (1.19.4+)

MapEngine Icon
Download MapEngine
Select game version
Select platform