StableSMP
VANILLA
Long-term economy. no wipes planned.
BRAND-NEW Economy
Click anywhere to copy IP
IP copied ✔


StableSMP Live Status

Join StableSMP
click to copy
(function () { var buttons = document.querySelectorAll("[data-copy]"); var note = document.getElementById("join-note"); function show(text) { note.textContent = text; clearTimeout(show._t); show._t = setTimeout(function () { note.textContent = ""; }, 1600); } buttons.forEach(function (btn) { btn.addEventListener("click", async function () { var value = btn.getAttribute("data-copy"); try { await navigator.clipboard.writeText(value); show("copied " + value); } catch { var t = document.createElement("textarea"); t.value = value; document.body.appendChild(t); t.select(); document.execCommand("copy"); document.body.removeChild(t); show("copied " + value); } }); }); })();

About Us

StableSMP is a long-term survival world with no resets.it’s mostly vanilla. you can ignore the extra systems or use them if you want — economy, trading, progression. nothing forced.no claims, no strict metas. PvP and risk are optional.player-driven economy. no pay-to-win.java + bedrock both work.join, build something, let it last.

StableSMP Live Status

Rules

Click a section to expand it.

💰
Economy
The economy decides everything.

The economy decides everything.
All trades are final.
No refunds for scams, PvP, or market losses.

Fair Play
No hacked clients, dupes, x-ray, or exploits.

No hacked clients, dupes, x-ray, or exploits.
If it feels unintended, don’t use it.

👥
Alternate Accounts
Maximum 3 accounts per player.

Maximum 3 accounts per player.

🏴
Gameplay
PvP, raiding, stealing, scamming, and griefing are allowed.

PvP, raiding, stealing, scamming, and griefing are allowed.
Do not repeatedly target players to force them to quit.
Keep all conflict in-game.

🛡
Staff
Staff do not interfere with the economy or disputes.

Staff do not interfere with the economy or disputes.
Staff decisions are final.

💬
Chat
No harassment. No excessive profanity.

No harassment.
No excessive profanity.
Keep chat respectful.

Automation
AFK is fine. Automation isn’t.

No automation, macros, Baritone, or botting mods.
AFK is fine. automation isn’t.

🧱
Server Integrity
Do not lag, crash, or harm the server.

Do not lag, crash, or harm the server.
No entity spam, redstone abuse, or exploit builds.

📜
Common Sense
Not every situation is listed.

Not every situation is listed.
If you’re looking for loopholes, you’re already in the wrong.

(function(){ var cards = document.querySelectorAll('.rule-card'); cards.forEach(function(card){ var top = card.querySelector('.rule-top'); top.addEventListener('click', function(){ cards.forEach(function(other){ if(other !== card) other.classList.remove('open'); }); card.classList.toggle('open'); }); }); })();

Vote for StableSMP

Server Stats

Online
Total Players
Loading...
(function () { const API = "https://api.codetabs.com/v1/proxy?quest=" + encodeURIComponent( "http://15.235.31.67:23651/api/online-balances?token=smp_live_api_2026_x9F2kLm8QpZ7rT4vYw1H" ); const CACHE_KEY = "stable_cache_final_v4"; const TIME_KEY = "stable_cache_final_v4_t"; function loadCachedData() { try { const raw = localStorage.getItem(CACHE_KEY); return raw ? JSON.parse(raw) : null; } catch (e) { return null; } } function loadCachedTime() { try { return Number(localStorage.getItem(TIME_KEY) || 0); } catch (e) { return 0; } } function timeAgo() { const t = loadCachedTime(); if (!t) return "Updated just now"; const s = Math.floor((Date.now() - t) / 1000); if (s > 3600) return "Updated a while ago"; if (s < 2) return "Updated just now"; return "Updated " + s + "s ago"; } function render(data) { const players = Array.isArray(data && data.players) ? data.players : []; const onlineCount = data && data.onlineCount != null ? data.onlineCount : 0; document.getElementById("statOnline").textContent = onlineCount; document.getElementById("statTotal").textContent = players.length; document.getElementById("statUpdated").textContent = timeAgo(); } function renderFallback() { document.getElementById("statOnline").textContent = "0"; document.getElementById("statTotal").textContent = "0"; document.getElementById("statUpdated").textContent = "No cached data"; } const cached = loadCachedData(); if (cached) { render(cached); } else { renderFallback(); } function update() { fetch(API, { cache: "no-store" }) .then(r => r.text()) .then(text => { const data = JSON.parse(text); render(data); }) .catch(() => {}); } update(); setInterval(update, 30000); })();
loading...
loading players...
Leaderboard
Top players ranked by balance
loading...