PlayerCoordsAPI
Lightweight Fabric mod exposing locally MC player coords through HTTP API
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
PlayerCoordsAPI
PlayerCoordsAPI
A lightweight Fabric mod that exposes your Minecraft player coordinates via a local HTTP API.
📋 Overview
PlayerCoordsAPI provides real-time access to your Minecraft player coordinates through a simple HTTP endpoint. This enables external applications to track your position without needing to read Minecraft's memory or capture the screen.
✨ Features
- Lightweight HTTP server running only on localhost providing your coordinates - Client-side only - no server-side components needed - Works in singleplayer and multiplayer - Mod menu integration allowing you to enable/disable the API, change its port, and configure requests with or without an `Origin` header
🚀 Installation
1. Install Fabric Loader for a supported Minecraft version 2. Download the latest `playercoordsapi-x.x.x+mcx.x.x.jar` from the releases page 3. Place the jar in your `.minecraft/mods` folder 4. Launch Minecraft with the Fabric profile
⚙️ Configuration
The API is read-only and only accepts loopback connections such as `127.0.0.1` and `::1`. From Mod Menu, you can configure: - Whether the API is enabled - Which port it listens on (default: `25565`) - How requests without a CORS `Origin` header are handled - How requests with a CORS `Origin` header are handled
Requests with an `Origin` can be handled in three different modes: - `Allow all` - `Local origins` - `Whitelist`
In `Whitelist` mode, you can configure each allowed origin with a scheme, host/IP, and optional port.
🔌 API Usage
| Endpoint | Method | Description | |---------------|-----------------|----------------------------------------------------------| | `/api/coords` | `GET`, `OPTIONS` | Returns the player's current coordinates and world infos |
Response Fields
| Field | Type | Description | |------------|----------|-------------------| | `x` | `number` | East-West | | `y` | `number` | Height | | `z` | `number` | North-South | | `yaw` | `number` | Horizontal rotation (degrees) | | `pitch` | `number` | Vertical rotation (degrees) | | `world` | `string` | Minecraft world registry ID | | `biome` | `string` | Minecraft biome registry ID | | `uuid` | `string` | Player UUID | | `username` | `string` | Player username |
Error Responses
| Status | Message | |--------|---------------------| | `403` | Access denied / Origin not allowed | | `404` | Player not in world | | `405` | Method not allowed |
Response Format Example
```json { "x": 123.45, "y": 64.00, "z": -789.12, "yaw": 180.00, "pitch": 12.50, "world": "minecraft:overworld", "biome": "minecraft:plains", "uuid": "550e8400-e29b-41d4-a716-446655440000", "username": "PlayerName" } ```
🛠️ Examples
Replace `25565` with your configured port if you changed it in the Mod Menu.
cURL
```bash curl http://localhost:25565/api/coords ```
Python
```python import requests
response = requests.get("http://localhost:25565/api/coords") data = response.json() print(f"Player {data['username']} (UUID: {data['uuid']}) at X: {data['x']}, Y: {data['y']}, Z: {data['z']}") ```
JavaScript
```javascript fetch("http://localhost:25565/api/coords") .then(response => response.json()) .then(data => console.log(`Player ${data.username} (UUID: ${data.uuid}) at X: ${data.x}, Y: ${data.y}, Z: ${data.z}`)); ```
---