
Mentalitys | World Web Map
Minecraft 1.20.1 live web map for Fabric and Forge. Shows player markers and safely renders only terrain generated during normal gameplay, with incremental full rendering and persistent world-root tiles.
Оцените первым
223
0
Список изменений
Changelog
[0.1.0] — 2026-04-29
Added
Web Server
- Built-in HTTP server based on
com.sun.net.httpserver.HttpServer, port 8123 - Serving static files (index.html, app.js, style.css) from classpath
- Endpoint
/tiles/{dimension}/{zoom}/{x}/{z}.png— Serving PNG map tiles - API
/api/status— Mod status, queue size, number of rendered tiles - API
/api/players— List of online players with coordinates and dimensions - API
/api/config— Tile size, zoom range, available dimensions
Map Renderer
- Render a 2D top view with height shading (lighter) — higher, darker — lower)
- Snapshot system: world data is read on the main thread, PNG rendering is done in the background
- Dimension support: Overworld, Nether, The End
- Atomic tile writing (via temp file +
Files.move(ATOMIC_MOVE)) — the browser never receives a corrupted PNG - CRC32 change check — if the tile hasn't changed, the file is not overwritten
- Compositing: unloaded chunks take pixels from the previous version of the tile during re-rendering; already rendered areas never disappear
- Color palette for 60+ block types (
BlockColorResolver)
Automatic rendering when loading chunks
ChunkLoadListenerlistens toChunkEvent.Load— new chunks are automatically added to the render queue- Debounce system: tiles are rendered only via 5 seconds after the last chunk load in its area (avoids rendering with gray spots while the area is still loading)
chunkRenderDebounceMsparameter (default 5000 ms)
Commands (for operators only, level 2)
/webmap status— server, queue, and worker status/webmap render <tileX> <tileZ>— forced rendering of a single tile (loading chunks from disk)/webmap render-area <minX> <minZ> <maxX> <maxZ>— area render (max 10,000 tiles)/webmap fullrender <radius>— render a square around the spawn (radius 1–1000)/webmap stoprender— clear the render queue/webmap reload— reload the config without restarting Servers
Performance Optimizations
- Render worker threads run with priority 'MIN_PRIORITY'
- Tick throttling: the render queue is processed every N ticks (default 20 = 1 time/sec), parameter 'ticksBetweenRenders'
- Queue limit: maximum 100,000 tasks, de-replication by (dimension, tileX, tileZ, zoom)
- Team renderers load chunks from disk ('ChunkStatus.FULL'), automatic renderers do not
Configuration (config/forgewebmap-common.properties)
| Parameter | Default | Description |
|---|---|---|
enabled | true | Enable mod |
bindAddress | 0.0.0.0 | HTTP server address |
port | 8123 | HTTP server port |
tileSize | 256 | Tile size in blocks |
renderThreads | 1 | Number of background rendering threads |
maxTilesPerTick | 1 | Tiles processed per interval |
ticksBetweenRenders | 20 | Ticks between queue processing |
enableAutoRender | true | Render when loading chunks |
chunkRenderDebounceMs | 5000 | Chunk debounce delay (ms) |
enablePlayerMarkers | true | Player markers on the map |
logRenderProgress | true | Log rendering progress |
Web Interface
- Leaflet 1.9.4, custom CRS (
scale(zoom) = 2^zoom) - Dimension switcher (Overworld / Nether / End)
- Display coordinates under cursor/finger
- Player markers with names, updated every 2 seconds
- Server status indicator (green/red)
- Pixelated tile rendering (
image-rendering: pixelated) - Dark theme
Mobile Adaptation
- Bottom control panel for screens ≤640px
- Safe-area support (notch, home indicator on iOS)
- Larger buttons for touchscreens (minimum 36–40px)
touch-action: none,overscroll-behavior: none— gestures work correctly- Disable browser scaling (
user-scalable=no) in favor of zoom Leaflet - Landscape mode support on phones
- Meta tags for adding to the desktop (iOS/Android)
Файлы
forgewebmap-0.1.0.jar(57.68 KiB)
ОсновнойМетаданные
Канал релиза
Release
Номер версии
0.1.0
Загрузчики
Forge
Версии игры
1.20.1
Загрузок
16
Дата публикации
29.04.2026
