English | 简体中文
MapVNC is a powerful Spigot/Paper plugin that brings a fully interactive VNC client directly into the game world. Using the robust MapEngine API, it renders a remote desktop onto a dynamic grid of in-game maps, allowing players to view and control a remote computer from within Minecraft.
Whether for server administration, remote monitoring, or just for fun, MapVNC provides a seamless and unique integration between Minecraft and any VNC-enabled machine.
- Dynamic Display Creation: Create VNC screens of any size, anywhere in the world.
- Real-Time Rendering: View a remote desktop with configurable color depth for performance tuning.
- Full Interactivity:
- Mouse Control: Point and click on the maps to control the remote cursor.
- Mouse Dragging: A sneak-based system to simulate clicking and dragging.
- Text Input: Type text directly into the remote session via commands.
- Key Presses: Send special key events like Enter, Shift, and Escape.
- In-Game Management: Easily move, resize, and remove VNC displays without restarting.
- Proximity-Based Rendering: Displays are only rendered for nearby players to ensure optimal server performance.
- Quick Target Selector: Use
-1as an ID to automatically target the nearest screen. - Detailed Permission System: Fine-grained control over who can create, manage, and interact with displays.
- User-Friendly Commands: Intuitive commands with rich tab-completion to guide users.
- Server Software: Paper, Spigot, or a compatible fork (1.21+ recommended).
- Java: Java 21 or higher.
- Dependency: MapEngine 1.8.10+ is a required dependency. MapVNC will not start without it.
- Ensure you have MapEngine 1.8.10+ installed on your server.
- Download the latest
MapVNC-*-all.jarfile from the Releases page. - Place the downloaded JAR file into your server's
pluginsdirectory. - Restart or reload your server.
The main command is /mapvnc, which can be shortened to /mvnc.
For convenience, you don't always need to know a display's specific ID. For any command that requires an <id>, you can use -1 as a special placeholder.
When you use -1, the plugin will automatically find and target the nearest VNC display within a 16-block radius of your location. The distance is measured from the display's anchor point (its top-left corner).
Example: Stand near a screen and type /mvnc connect -1 to connect it, without ever needing to run /mvnc list.
This feature works for: remove, set, connect, disconnect, input, and key.
| Command | Description | Permission |
|---|---|---|
/mvnc create <x> <y> <z> <width> <height> |
Creates a new VNC display at the specified coordinates. | mapvnc.command.create |
/mvnc remove <id> |
Removes the VNC display with the given ID. | mapvnc.command.remove |
/mvnc list |
Lists all active VNC displays. | mapvnc.command.list |
/mvnc set <id> address <ip> <port> |
Sets the VNC server address for a display. | mapvnc.command.set |
/mvnc set <id> password [password] |
Sets or clears the password for a display. | mapvnc.command.set |
/mvnc set <id> colordepth <8|16|24> |
Sets the connection quality (bits per pixel). | mapvnc.command.set |
/mvnc set <id> pos <x> <y> <z> |
Moves a display to a new location. | mapvnc.command.set |
/mvnc set <id> size <width> <height> |
Resizes a display. | mapvnc.command.set |
/mvnc connect <id> |
Connects the display to its configured VNC server. | mapvnc.command.connect |
/mvnc disconnect <id> |
Disconnects the display from the VNC server. | mapvnc.command.disconnect |
/mvnc input <id> <text...> |
Types the given text into the connected display. | mapvnc.command.input |
/mvnc key <id> <keyName> |
Sends a single key press (e.g., ENTER, SHIFT). |
mapvnc.command.key |
You can simulate clicking and dragging (e.g., to select text or move a window) with a special sneak-based mechanic:
- Aim at the spot on the map where you want to start the drag.
- Hold down your Sneak key (L-SHIFT by default).
- While still sneaking, Left-Click on the map. A "Mouse Down" event is sent, and an ActionBar message will appear confirming you are in dragging mode.
- To move the mouse while dragging, simply click on other parts of the map. You must remain in sneak mode.
- When you are finished, Release the Sneak key. This sends the "Mouse Up" event, completing the drag operation.
| Permission Node | Description | Default |
|---|---|---|
mapvnc.* |
Grants access to all MapVNC features and commands. | OP |
mapvnc.command.* |
Grants access to all MapVNC subcommands. | OP |
mapvnc.command.base |
Allows using MapVNC's main command. | OP |
mapvnc.command.create |
Allows creating new VNC displays. | OP |
mapvnc.command.remove |
Allows removing VNC displays. | OP |
mapvnc.command.list |
Allows listing active VNC displays. | OP |
mapvnc.command.set |
Allows modifying display properties (address, size, etc.). | OP |
mapvnc.command.connect |
Allows connecting a display to a VNC server. | OP |
mapvnc.command.disconnect |
Allows disconnecting a display. | OP |
mapvnc.command.input |
Allows typing text into a display. | OP |
mapvnc.command.key |
Allows sending key presses to a display. | OP |
To compile the plugin yourself, you'll need Git and JDK 21+.
- Clone the repository:
git clone https://github.com/Steve3184/MapVNC.git
- Navigate to the project directory:
cd MapVNC - Run the Gradle
shadowJartask to build the plugin and include its dependencies:./gradlew shadowJar
- The compiled JAR file will be located in
build/libs/.
This project is licensed under the MIT License. See the LICENSE file for details.
- MapEngine: For the incredible API that makes the in-game rendering possible.
- Vernacular: For the lightweight and easy-to-use Java VNC client library.
