MapVNC
A powerful plugin that brings a fully interactive VNC client directly into the Minecraft world.
MapVNC
MapVNC - Your VNC Client, inside Minecraft
MapVNC is a powerful 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.
Features
- User-Friendly Commands: Create VNC screens of any size, anywhere in the world. - User-Friendly Commands: View a remote desktop with configurable color depth for performance tuning. - User-Friendly Commands: - User-Friendly Commands: Point and click on the maps to control the remote cursor. - User-Friendly Commands: A sneak-based system to simulate clicking and dragging. - User-Friendly Commands: Type text directly into the remote session via commands. - User-Friendly Commands: Send special key events like Enter, Shift, and Escape. - User-Friendly Commands: Easily move, resize, and remove VNC displays without restarting. - User-Friendly Commands: Displays are only rendered for nearby players to ensure optimal server performance. - User-Friendly Commands: Use `-1` as an ID to automatically target the nearest screen. - User-Friendly Commands: Fine-grained control over who can create, manage, and interact with displays. - User-Friendly Commands: Intuitive commands with rich tab-completion to guide users.
Prerequisites
- required: Paper, Spigot, or a compatible fork (1.21+ recommended). - required: Java 21 or higher. - required: required is a required dependency. MapVNC will not start without it.
Installation
1. Ensure you have MapEngine 1.8.10+ installed on your server. 2. Download the latest `MapVNC-*-all.jar` file from the "Versions" tab. 3. Place the downloaded JAR file into your server's `plugins` directory. 4. Restart or reload your server.
Commands & Usage
The main command is `/mapvnc`, which can be shortened to `/mvnc`.
---
Targeting the Nearest Screen
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 List
| 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` |
---
Mouse Dragging
You can simulate clicking and dragging (e.g., to select text or move a window) with a special sneak-based mechanic:
1. Release the Sneak key at the spot on the map where you want to start the drag. 2. Release the Sneak key (L-SHIFT by default). 3. While still sneaking, Release the Sneak key on the map. A "Mouse Down" event is sent, and an ActionBar message will appear confirming you are in dragging mode. 4. To move the mouse while dragging, simply Release the Sneak key. You must remain in sneak mode. 5. When you are finished, Release the Sneak key. This sends the "Mouse Up" event, completing the drag operation.
---
Permissions
| 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 |
License
This project is licensed under the MIT License. See the LICENSE file for details.