BlueMap vs Dynmap vs squaremap: jaka mape serwera wybrac w 2026

BlueMap vs Dynmap vs squaremap: jaka mape serwera wybrac w 2026

Mapa webowa serwera to nie tylko ozdoba. Gracze widzą, gdzie są, gdzie iść po surowce, gdzie znajomi mają bazy. Admin patrzy, jak świat rośnie, gdzie jest aktywność, a gdzie pustka. Mapa też jest mocnym marketingiem: zrzut ekranu twojej żywej mapy przyciąga uwagę w social media i na topkach.

W 2026 roku są trzy poważne opcje: BlueMap, Dynmap i squaremap. Rozwiązują ten sam problem, ale bardzo różnymi sposobami. Poniżej omawiamy każdą, porównujemy obciążenie i funkcje, oraz dajemy gotowe przepisy na instalację.

Po co serwerowi mapa webowa

Krótka lista powodów, żeby nie przekombinować:

  • Nawigacja dla graczy: link na Discordzie, otworzył mapę, znalazł biom lub bazę kolegi
  • Punkty zainteresowania: spawn, sklepy, warpy, areny, eventy
  • Śledzenie graczy w czasie rzeczywistym (opcjonalne, da się wyłączyć)
  • Zrzuty i promo: świeże spojrzenie na świat do publikacji
  • Moderacja: admin widzi strefy aktywne, podejrzane buildy, cave-claimy
  • Backup-wizualizacja: mapa pokazuje, jak było przed dużym eventem lub crashem

Mapa nie zastępuje narzędzi admina typu CoreProtect czy Plan, ale działa obok nich.

Trzech graczy na rynku

PluginOdStylPlatformaCharakter
BlueMap20203D HTML5 (three.js)Paper, Spigot, Fabric, Forge, SpongeWizualny, nowoczesny, ciężki przy pierwszym renderze
Dynmap20112D plus 3D izometriaPaper, Spigot, Forge, FabricKlasyk z max funkcji, stary UI
squaremap20222D top-downPaper, FoliaMinimum, szybkość, zero legacy

Każdy ma swoje miejsce. Nie ma obiektywnie najlepszego, jest pasujący do zadania.

BlueMap: pełne 3D spojrzenie na świat

BlueMap renderuje świat jako model 3D i pokazuje go w przeglądarce przez three.js. Gracz obraca kamerę, przybliżenie, oddalenie, z powierzchni do jaskiń - wygląda jak Google Earth dla twojego serwera.

Plusy

  • Prawdziwy widok 3D, nie płaski obrazek
  • Nowoczesny UI z płynną nawigacją
  • WebSocket dla pozycji graczy w czasie rzeczywistym
  • Działa na Paper, Fabric, Forge, Sponge
  • Dobra dokumentacja i aktywna społeczność
  • Markery przez API i pliki konfiguracyjne
  • Ładne oświetlenie i cienie z shaderami

Minusy

  • Render ciężki dla CPU, zwłaszcza pierwszy przebieg dużego świata
  • Kafelki zajmują dużo dysku (3-5x więcej niż squaremap dla tego samego obszaru)
  • Wymaga WebGL w przeglądarce (słabe urządzenia tną)
  • Wrażliwy na niestandardowe bloki i mody (niektóre tekstury mogą się nie wyrenderować)

Instalacja na Paperze

# 1. Najnowszy release dla Paper
cd /your/server/plugins
wget https://github.com/BlueMap-Minecraft/BlueMap/releases/latest/download/BlueMap-5.X-paper.jar

# 2. Start serwera, plugin tworzy config i sie zatrzymuje
# 3. Akceptacja licencji w config/core.conf
nano config/core.conf
# accept-download: true

# 4. Start ponownie, render rusza

Kluczowe ustawienia

Plik plugins/BlueMap/core.conf:

accept-download: true
metrics: false
data: "bluemap"
render-thread-count: 2

render-thread-count - ile wątków idzie na render. Na słabych serwerach 1-2, na mocnych 4-6. Nie dawaj wszystkich rdzeni, bo TPS siada.

Plik plugins/BlueMap/webserver.conf:

enabled: true
ip: "0.0.0.0"
port: 8100
webroot: "bluemap/web"

Pre-render świata

Duży świat (powiedzmy 10k bloków w każdą stronę od spawnu) renderuje się godzinami. Lepiej komendą:

/bluemap freeze <world>       # zatrzymaj live render
/bluemap fullrender <world>    # odpal pelny render
/bluemap unfreeze <world>

Podczas fullrender TPS może spaść. Rób to nocą lub w oknach maintenance.

Dynmap: klasyka z maksymalną ilością funkcji

Dynmap wystartował w 2011. Przez lata obrósł funkcjami, mostkami i addonami społeczności. Jeśli chcesz rzeczy typu "pokazuj regiony WorldGuard na mapie" lub "chat ingame na stronie" lub "claimy GriefPrevention na wyświetlaczu" - zwykle tylko Dynmap to ogarnie.

Plusy

  • Żywy od 13+ lat, przetestowany na tysiącach serwerów
  • Wspiera 2D flat, 3D izometria, surface, cave
  • Integracje: WorldGuard, Towny, Factions, GriefPrevention, Essentials
  • Wbudowany web-chat: gracze ingame i na mapie gadają w jednym chacie
  • Dynamic labels, pełne API dla plugin-ów trzecich
  • Działa na Paper, Spigot, Forge, Fabric

Minusy

  • UI wygląda staro - Leaflet z 2015
  • Render jest single-threaded na mapę, przez co wolny
  • Update'y nieregularne, nowe wersje Minecrafta z opóźnieniem
  • Brak wsparcia Folia (region-threading Papera)
  • Config rozwlekły, dużo YAML-a na proste rzeczy

Instalacja na Paperze

cd /your/server/plugins
wget https://dev.bukkit.org/projects/dynmap/files/latest -O Dynmap.jar

Restart serwera, Dynmap tworzy plugins/dynmap/ z konfigami.

Konfiguracja portu web

Plik plugins/dynmap/configuration.txt:

webserver-bindaddress: 0.0.0.0
webserver-port: 8123
allow-symlinks: true

Domyślny port to 8123, można ustawić dowolny. Pamiętaj, że port musi być dostępny z zewnątrz albo przez reverse proxy.

Typy renderów

worlds:
  - name: world
    title: "Main World"
    maps:
      - class: org.dynmap.hdmap.HDMap
        name: flat
        prefix: flat
        perspective: iso_S_60_lowres
      - class: org.dynmap.hdmap.HDMap
        name: surface
        prefix: surface
        perspective: iso_SE_30_lowres
      - class: org.dynmap.hdmap.HDMap
        name: cave
        prefix: cave
        perspective: cave

Trzy mapy naraz - flat top-down, izometria 60 stopni i tryb cave. Każda je swoje kafelki i swój budżet renderowy.

Pełny render

/dynmap fullrender world
/dynmap pause all
/dynmap pause none

Fullrender obciąża CPU mocno. Sprawdź wolne rdzenie przed startem.

squaremap: lekka mapa 2D dla Papera

squaremap to fork Pl3xMap skupiony na jednym celu: szybka mapa 2D top-down bez niepotrzebnych rzeczy. Autor (jpenilla) jest też developerem Papera, więc kod jest czysty i ogarnia nowe wersje od razu po premierze.

Plusy

  • Minimalne obciążenie CPU, render na osobnych wątkach, brak blokowania głównego wątku
  • Kafelki małe, tylko to co potrzebne
  • Czysty nowoczesny kod, zero bałaganu z 2011
  • Wsparcie Folii out of the box
  • Szybkie update'y pod nowe wersje Papera
  • Proste, jasne API dla markerów
  • Nowoczesny klient webowy w JavaScript

Minusy

  • Tylko Paper i forki (Purpur, Folia), brak Fabric i Forge
  • Tylko 2D, bez izometrii i bez 3D
  • Mniej gotowych integracji niż Dynmap
  • Minimalistyczny UI - dla jednych plus, dla drugich minus

Instalacja

cd /your/server/plugins
wget https://github.com/jpenilla/squaremap/releases/latest/download/squaremap-paper-mc1.21.X.jar

Restart, config w plugins/squaremap/config.yml.

Kluczowe ustawienia

settings:
  web-address: "auto"
  language-file: en_US.yml
  locale: en_US

  internal-webserver:
    enabled: true
    bind: 0.0.0.0
    port: 8080

world-settings:
  default:
    enabled: true
    background-render:
      enabled: true
      max-rate-per-second: 32

    render:
      max-render-threads: -1
      biome-blend: 3

max-rate-per-second: 32 - ile chunków na sekundę renderować w tle. 32 to konserwatywnie, mocny serwer udźwignie 128 albo więcej.

Pre-render

/squaremap fullrender world
/squaremap cancelrender world
/squaremap radiusrender world 5000

radiusrender renderuje tylko obszar wokół spawnu. Przydatne, gdy masz świat 30k, ale aktywną strefę 3k.

Porównanie według kluczowych metryk

Obciążenie serwera

MetrykaBlueMapDynmapsquaremap
CPU przy live renderŚrednieWysokieNiskie
CPU przy fullrenderWysokieWysokieŚrednie
RAM w spoczynku150-300 MB200-500 MB80-150 MB
Blokada głównego wątkuNieCzęściowaNie
Wpływ na TPSSłabyZauważalnyMinimalny

Na słabym serwerze z 2-4 rdzeniami i 4 GB RAM-u squaremap będzie najłagodniejszy. BlueMap udźwignie, ale pierwszy render dużego świata jest odczuwalny. Dynmap jest najbardziej wymagający, zwłaszcza z wieloma perspektywami.

Dysk

Rozmiar świataBlueMapDynmapsquaremap
5k x 5k bloków2-4 GB1-3 GB500-800 MB
10k x 10k bloków8-15 GB5-10 GB2-4 GB
30k x 30k bloków60-100 GB40-80 GB15-25 GB

BlueMap trzyma więcej danych na kafelek, bo 3D wymaga geometrii i tekstur. Dynmap z wieloma perspektywami też dużo zajmuje. squaremap jest oszczędny.

Funkcje

FunkcjaBlueMapDynmapsquaremap
MarkeryTak, API plus configTak, API plus configTak, API
Obszary (strefy, regiony)TakTakTak przez addon
Śledzenie graczyTak, WebSocketTakTak
Web chatNieTakNie
Webhook na eventyBrak wbudowanyTakNie
Tryb 3DTakCzęściowo (izometria)Nie
Jaskinie i podziemiaTak (przez nawigację)Tak (cave perspective)Nie
Integracja z WorldGuardPrzez addonNatywniePrzez addon

Jeśli twój serwer opiera się na WorldGuard lub Towny i chcesz regiony auto-rysowane - Dynmap jest najprostszy. Jeśli chcesz efektownego 3D - BlueMap. Jeśli po prostu mapę - squaremap.

Szybkość aktualizacji

  • BlueMap: przebudowa kafelka 5-30 sekund po zmianie chunka
  • Dynmap: 10-60 sekund zależnie od updaterate
  • squaremap: 5-15 sekund na zmianę

Wszystkie trzy wspierają live-updates. Pauza tylko jeśli wyłączysz background-render albo leci fullrender.

Zewnętrzny webserver i reverse proxy

Wszystkie trzy pluginy podnoszą własny wbudowany webserver. Działa, ale ma wady: brak HTTPS, brak cache'u, brak rate-limit. Na produkcji lepiej postawić nginx przed pluginem.

Przykład configu nginx dla BlueMap

server {
    listen 80;
    listen [::]:80;
    server_name map.example.com;

    # Przekierowanie na HTTPS
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name map.example.com;

    ssl_certificate /etc/letsencrypt/live/map.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/map.example.com/privkey.pem;

    # Wsparcie WebSocket dla BlueMap live updates
    location / {
        proxy_pass http://127.0.0.1:8100;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 3600s;
    }

    # Cache statycznych kafelkow
    location ~* \.(png|webp|json)$ {
        proxy_pass http://127.0.0.1:8100;
        proxy_cache_valid 200 1h;
        expires 1h;
        add_header Cache-Control "public, no-transform";
    }
}

Dla Dynmap i squaremap config jest podobny, tylko bez WebSocket-upgrade (używają zwykłego HTTP polling).

Zdobycie certyfikatu TLS

sudo certbot --nginx -d map.example.com

Po tym twoja mapa działa po HTTPS z TLS 1.3, w iframe'ach i na mobile.

Markery: automatyczne i ręczne

Markery to punkty na mapie. Spawn, sklep, dom gracza, event.

Statyczne markery przez config

BlueMap - plik plugins/BlueMap/marker-sets.conf:

"server-landmarks" {
    label: "Server Landmarks"
    toggleable: true
    default-hidden: false

    markers: {
        "spawn" {
            type: "poi"
            position: { x: 0, y: 64, z: 0 }
            label: "Spawn"
            icon: "assets/poi.svg"
        }
        "shop" {
            type: "poi"
            position: { x: 100, y: 65, z: 50 }
            label: "Server Shop"
        }
    }
}

Dynmap - komendy ingame:

/dmarker add id:spawn "Spawn" icon:redflag
/dmarker addset id:landmarks "Landmarks"
/dmarker add id:shop set:landmarks "Shop" icon:bighouse

squaremap - przez addon squaremap-region-visualizer lub własny plugin przez API.

Automatyczne markery

Dynmap potrafi auto-pokazywać regiony WorldGuard, miasta Towny, claimy Factions - podłączasz plugin-mostek i gotowe. BlueMap i squaremap wymagają addonów:

  • BlueMapMarkerManager - edytor markerów GUI dla BlueMap
  • BlueMapWorldGuard - automatyczne rysowanie regionów WG
  • BlueMapFloodgate - pokazuje graczy Bedrock z prefiksem
  • squaremap-region-visualizer - regiony WG dla squaremap

Bezpieczeństwo mapy webowej

Mapa to publiczny endpoint patrzący na twój serwer. Pomyśl, co pokazywać.

Co warto ukryć

  • Współrzędne spawnu i baz admin (offset mapy albo ukrycie strefy)
  • Prywatne regiony graczy, jeśli sobie tego życzą
  • Admin-warpy i tajne lokalizacje
  • Graczy pod vanish (wszystkie trzy pluginy to ogarniają przy dobrym configu)

Ukrycie graczy pod vanish

BlueMap - działa automatycznie z Essentials lub SuperVanish.

Dynmap:

# configuration.txt
player-info-protocol: hidden
hide-ops: true

squaremap przez player-tracker.yml:

player-tracker:
  enabled: true
  hidden-players: []
  nameplate:
    enabled: true
    show-head: true

Plus Essentials/CMI automatycznie chowa vanished.

Whitelist IP na endpointy admina

Jeśli mapa jest otwarta dla graczy, ale panel Dynmap ma niebezpieczne komendy, zabezpiecz go:

location /up/sendmessage {
    allow 192.168.1.0/24;
    allow your.admin.ip/32;
    deny all;
    proxy_pass http://127.0.0.1:8123;
}

Albo wyłącz webchat całkowicie, jeśli nie potrzebny:

# Dynmap configuration.txt
allowwebchat: false
webchat-interval: 5
webchat-requires-login: true

Rate-limit przeciw scraperom

Scraper może zassać wszystkie kafelki i zarżnąć serwer. W nginx:

limit_req_zone $binary_remote_addr zone=mapzone:10m rate=30r/s;

server {
    location / {
        limit_req zone=mapzone burst=50 nodelay;
        proxy_pass http://127.0.0.1:8100;
    }
}

30 requestów na sekundę jest ok dla interaktywnego przeglądania, ale zatrzyma agresywny scraping.

Kiedy co wybrać

Weź BlueMap jeśli:

  • Ważny jest ładny widok 3D, mapa jako narzędzie marketingowe
  • Masz mocny serwer (4+ rdzenie, 8+ GB RAM) i wolny dysk
  • Serwer na Paper, Fabric, Forge lub Sponge
  • Potrzebujesz efektownej wizualizacji do zrzutów i video
  • Nie zależy ci na zaawansowanych funkcjach web typu chat

Weź Dynmap jeśli:

  • Masz WorldGuard, Towny, Factions i chcesz automatyczne rysowanie regionów
  • Potrzebujesz web-chatu między stroną a serwerem
  • Serwer na Forge lub Fabric i opcji jest mało
  • Masz CPU i dysk na max funkcje
  • Nie przeszkadza ci stary UI

Weź squaremap jeśli:

  • Potrzebujesz prostej, szybkiej mapy 2D
  • Serwer na Paper lub Folia
  • Mało CPU lub słaby hosting
  • Nie chce ci się grzebać w configach i perspektywach
  • Ważny czysty, nowoczesny stack

Można postawić dwie

Nic nie stoi na przeszkodzie, żeby postawić squaremap do szybkiej nawigacji 2D i BlueMap do zrzutów 3D. Po prostu na osobne porty:

# squaremap
port: 8080

# BlueMap
port: 8100

I na osobne subdomeny w nginx. Obciążenie trochę większe, ale na dużym serwerze to żaden problem.

Integracja z Discordem

Mapy często pokazuje się przez Discord. Opcje:

  • Link w webhooku: wysyłasz update'y z linkiem do mapy przy ważnych eventach
  • Embed ze zrzutem: skrypt robi zrzut mapy i wrzuca na kanał
  • iFrame na stronie serwera: gracze otwierają mapę w sekcji "World Map"

DiscordSRV (popularny mostek Minecraft-Discord) może przenosić wiadomości z web-chatu Dynmap do kanału Discord i z powrotem. Ustawia się to w DiscordSRV config, sekcja DynmapHook.

Wydajność: rady z praktyki

Nie renderuj wszystkiego

Jeśli masz świat 60k x 60k, ale gracze kręcą się w promieniu 5k od spawnu, nie ma sensu renderować wszystkiego. Użyj radiusrender albo granic w configu:

# squaremap world-settings
world-settings:
  world:
    zoom:
      max-out: 3
      max-in: 5
    render:
      visible-areas:
        - center: [0, 0]
          radius: 5000

Nocny fullrender

Render jest czuły na TPS. Ustaw fullrender przez cron o 4 rano, kiedy online jest minimalny:

# crontab
0 4 * * * rcon -H localhost -p 25575 -P yourpass "bluemap fullrender world"

SSD na kafelki

Kafelki są stale czytane i zapisywane. HDD zamienia mapę w pokaz slajdów. SSD jest obowiązkowe dla aktywnej mapy.

Dedykowane wątki dla rendera

Na wielordzeniowym CPU daj 2-4 rdzenie na render, reszta dla gry. BlueMap:

render-thread-count: 4

Dynmap:

render-triggers:
  - chunkloaded
  - blockupdate
render-max-threads: 2

squaremap:

render:
  max-render-threads: 4

Częste problemy

BlueMap: biała strona

Zwykle znaczy, że przeglądarka nie może załadować zasobów WebGL. Sprawdź:

  • HTTPS zamiast HTTP (niektóre funkcje WebGL wymagają secure origin)
  • Konsolę przeglądarki (F12) na błędy ładowania kafelków
  • CORS: jeśli mapa jest na innej domenie, ustaw allow-origins: "*" w webserver.conf

Dynmap: mapa się nie aktualizuje

Sprawdź log na błędy "Render queue full". Znaczy, że serwer nie nadąża. Zmniejsz liczbę aktywnych map albo dostrój:

timesliceinterval: 0.5
maxchunkspertick: 200
parallelrendercnt: 2

squaremap: 404 na kafelkach

Webserver działa, ale kafelków brak. Sprawdź, czy świat jest enabled w plugins/squaremap/config.yml i czy puszczałeś chociaż raz /squaremap fullrender world.

Duże obciążenie po włączeniu

Pierwszy fullrender jest zawsze ciężki. Później update'y są inkrementalne i lekkie. Nie wyłączaj plugina w połowie, przy następnym włączeniu render zaczyna się od zera.

Krótka uwaga o DDoS

Twoja mapa webowa to publiczny endpoint HTTP/HTTPS. Można go zaatakować osobno od portu gry - nie Layer-4 UDP flood, a Layer-7 HTTP flood: tysiące requestów do kafelków na sekundę położą nginx i plugin.

Rozwiązuje się to Cloudflare przed nginx (za darmo, basic WAF) lub osobnym chronionym proxy. MineGuard chroni port gry Minecraft, ale mapa webowa wymaga ochrony warstwy HTTP. Miej to w głowie, jeśli mapa stanie się celem ataku albo po prostu bardzo popularną.

Podsumowanie

  • Potrzebujesz efektownej mapy 3D do promo - BlueMap
  • Chcesz maksymalnej liczby funkcji i integracji - Dynmap
  • Chcesz szybkiej minimalistycznej mapy 2D na Paperze - squaremap

Wszystkie trzy są darmowe, aktywne i mają duże społeczności. Wybierz ten, który pasuje do zadania, a nie najmodniejszy. Dobra mapa serwera to taka, która działa, nie zabija TPS i pokazuje graczom to, co chcesz żeby widzieli.


Chroń swój serwer przed atakami DDoS

Darmowa ochrona z konfiguracją w 5 minut. 1 TB ruchu w zestawie.

Wypróbuj za darmo


Powiązane artykuły