cobblemon-gateway
새 플레이어 PC를 코블몬 서버에 자동 연결. Tailscale + Fabric + Cobblemon 설치.
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
새 플레이어 PC를 코블몬 서버에 자동 연결. Tailscale + Fabric + Cobblemon 설치.
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
| name | cobblemon-gateway |
| description | 새 플레이어 PC를 코블몬 서버에 자동 연결. Tailscale + Fabric + Cobblemon 설치. |
"너의 여정은 지금부터다."
이 스킬은 새 플레이어의 PC에서 실행된다. 목표: 서버 접속에 필요한 모든 클라이언트 세팅을 자동화한다. 사용자는 공유 링크와 서버 주소를 입력하는 것만 하면 된다.
호스트가 서버를 이미 구축해두었다. 서버 구축 세부 사항은 이 스킬의 범위 밖이다.
HOST.md참고.
S 번호는 식별자일 뿐 실행 순서가 아니다. 아래 의존성 웨이브에 따라 실행한다.
| 웨이브 | 기준 | 체크항목 | 검증 방법 | 선행 조건 |
|---|---|---|---|---|
| W1-A | S1 | Tailscale 설치됨 | tailscale version이 버전을 반환 | 없음 |
| W1-B | S4 | Fabric Loader 설치됨 | 런처 프로필에 fabric-loader-*1.21.1 존재 | Java 21, Minecraft 경로 |
| W1-B | S5 | Cobblemon mod 설치됨 | mods/에 Cobblemon jar 존재 | Minecraft 경로 |
| W1-B | S6 | Fabric API 설치됨 | mods/에 Fabric API jar 존재 | Minecraft 경로 |
| W2 | S2 | Tailscale 로그인 + 공유 수락 | BackendState=Running, 공유 노드 peer 표시 | S1, 공유 링크 |
| W3 | S3 | 서버 접근 가능 | tailscale ping + TCP 25565 연결 성공 | S2, 서버 주소 |
| W4 | S7 | 실행 안내 완료 | 서버 주소 전달 | S3, S4, S5, S6 |
W0 시작
├─ W1-A: S1 ──→ W2: S2 ──→ W3: S3 ──┐
└─ W1-B: S4 + S5 + S6 ───────────────┴─→ W4: S7
S1~S7 전부 PASS = 🎫 게이트 오픈.
스킬 로드 즉시 출력:
🎫 코블몬 게이트웨이 시작!
포켓몬 세계로 가는 3단계:
1️⃣ Tailscale — 보이지 않는 다리를 놓는다
2️⃣ Fabric — 마인크래프트에 새 영혼을 심는다
3️⃣ Cobblemon — 포켓몬을 불러온다
준비 됐어? 출발한다.
| 완료 시점 | 출력 문구 |
|---|---|
| W1 작업 시작 | ⚙️ 필요한 설치를 먼저 백그라운드에서 시작했다. 설치하는 동안 연결 정보만 받을게. |
| S4-S6 완료 | ✨ 마인크래프트에 새 영혼이 깃들었다! |
| S1-S3 완료 | 🌍 다리가 완성됐다! 네 PC가 포켓몬 세계와 연결됐다. |
| S7 완료 | 🎫 게이트 오픈! 이제 서버 주소만 치면 돼. |
| 실패 | 💢 무슨 일이야! 로켓단이 방해하고 있어! [에러] |
접속 정보가 없어도 가능한 작업부터 시작한다. 질문 때문에 설치를 늦추지 않는다.
import os, platform
os_name = platform.system() # Windows / Darwin / Linux
mc_dir = {
"Windows": os.path.join(os.environ.get("APPDATA", ""), ".minecraft"),
"Darwin": os.path.expanduser("~/Library/Application Support/minecraft"),
"Linux": os.path.expanduser("~/.minecraft"),
}.get(os_name)
if mc_dir is None:
# 미지 OS (WSL, FreeBSD 등): 사용자에게 .minecraft 경로 직접 입력 요청
mc_dir = input(".minecraft 폴더 경로를 입력하세요: ").strip()
assert os.path.isdir(mc_dir), f"경로가 존재하지 않음: {mc_dir}"
nohup 또는 에이전트 도구의 지속 실행 세션 사용.Start-Process -PassThru 사용.설치 시작 후 다음 정보의 제공 여부를 확인한다:
TAILSCALE_SHARE_URL=<device-share-link>
SERVER_ADDRESS=100.x.x.x:25565
누락된 정보만 한 번에 질문한다:
⚙️ 설치는 이미 뒤에서 진행 중이야. 🎫 게이트를 연결하려면 호스트한테 받아야 할 게 있어:
- 코블몬 서버 노드 공유 링크
- 서버 주소 (100.x.x.x:25565 형식) 이것만 보내줘. 기다리는 동안 설치는 계속된다.
정보가 이미 제공되었으면 질문하지 않는다.
W1-A와 W1-B를 안전한 범위에서 병렬 실행한다. 같은 패키지 관리자를 사용하는 Tailscale과 Java 설치는 한 작업 안에서 직렬 실행해 잠금 충돌을 피한다.
이미 설치되었으면 건너뛴다.
Windows:
winget install tailscale.tailscale
macOS:
brew install --cask tailscale
Linux:
curl -fsSL https://tailscale.com/install.sh | sh
S1 검증:
tailscale version
Java 설치와 독립적이므로 Minecraft 경로가 확인되는 즉시 시작한다. 두 파일 다운로드는 병렬 실행해도 된다.
Modrinth API의 /v2/project/<project>/version에서 game_versions=["1.21.1"], loaders=["fabric"] 조건으로 최신 호환 버전을 조회한다. primary: true인 파일을 우선 선택하고, 없으면 첫 번째 파일을 mc_dir/mods/에 다운로드한다.
cobblemonfabric-apiimport os
os.makedirs(os.path.join(mc_dir, "mods"), exist_ok=True)
S5/S6 검증: mods/에 각 API 응답의 파일명과 일치하는 jar가 있고 크기가 0보다 큰지 확인한다.
java -version
Java 21이 없으면 설치한다:
winget install Microsoft.OpenJDK.21brew install openjdk@21sudo apt install openjdk-21-jreFabric Meta API에서 최신 stable Installer와 Loader 버전을 동적 조회한다:
import urllib.request, json
meta = "https://meta.fabricmc.net/v2/versions"
# 최신 stable installer
inst = json.loads(urllib.request.urlopen(f"{meta}/installer").read())[0]
installer_url = inst["url"] # maven URL
# 1.21.1 호환 stable loader
loader = json.loads(urllib.request.urlopen(f"{meta}/loader/1.21.1").read())["loader"]
loader_version = loader["version"]
S4 검증을 먼저 실행하여 Fabric Loader 프로필이 이미 존재하면 설치를 건너뛴다. 없으면 다운로드 후 설치한다:
curl -o <TEMP_DIR>/fabric-installer.jar <installer_url>
java -jar <TEMP_DIR>/fabric-installer.jar client -dir "<MC_DIR>" -mcversion 1.21.1 -loader <loader_version>
S4 검증:
import json, os, re
with open(os.path.join(mc_dir, "launcher_profiles.json"), encoding="utf-8") as f:
profiles = json.load(f).get("profiles", {}).values()
assert any(
re.fullmatch(r"fabric-loader-.+-1\.21\.1", p.get("lastVersionId", ""))
for p in profiles
)
S4-S6가 모두 PASS이면 ✨ 마인크래프트에 새 영혼이 깃들었다!를 출력한다.
S1과 공유 링크가 준비되는 즉시 시작한다. S4-S6 완료를 기다리지 않는다.
TAILSCALE_SHARE_URL을 브라우저에서 열어 공유된 Cobblemon 서버 노드를 수락한다.tailscale up으로 자기 계정에 로그인한다.tailscale up --qr을 사용한다.S2 검증: 문자열 Logged in as에 의존하지 말고 구조화된 상태를 검사한다.
import json, subprocess
status = json.loads(subprocess.check_output(
["tailscale", "status", "--json"], text=True
))
assert status.get("BackendState") == "Running"
status의 peer 목록에서 SERVER_ADDRESS의 IP가 공유 노드로 표시되는지 확인한다. 다른 호스트 장비가 보인다면 Device Sharing이 아니라 tailnet 초대일 수 있으므로 진행을 중단하고 링크 종류를 확인한다.S2와 SERVER_ADDRESS가 준비되면 실행한다.
tailscale ping --c=3 --timeout=10s <SERVER_IP>
nc -vz <SERVER_IP> 25565
Windows에서는 TCP 검증에 Test-NetConnection <SERVER_IP> -Port 25565를 사용한다.
Tailscale ping과 TCP 25565 연결이 모두 성공하면 S3 PASS다. 다른 포트를 능동적으로 스캔하지 않는다. 실패하면 tailscale status --json에서 공유 노드와 서버 온라인 상태를 확인한다.
S1-S3가 모두 PASS이면 🌍 다리가 완성됐다! 네 PC가 포켓몬 세계와 연결됐다.를 출력한다.
S3, S4, S5, S6가 모두 PASS일 때만 실제 서버 주소를 포함해 출력한다:
🎫 게이트 오픈!
이제 마인크래프트를 켜고:
1. 런처 왼쪽 → Minecraft 1.21.1용 Fabric Loader 프로필 선택
2. PLAY 클릭
3. 메인 메뉴 → Multiplayer → Add Server
4. 서버 주소: <SERVER_ADDRESS>
5. Join Server!
포켓몬 세계에 오신 걸 환영한다 🎫
Fabric 프로필 선택, Multiplayer 절차, 실제 서버 주소를 모두 전달하면 S7 PASS다.
| 문제 | 해결 |
|---|---|
| 백그라운드 설치가 멈춤 | 로그와 권한 프롬프트 확인 후 해당 작업만 전면 재시도 |
tailscale up 안 됨 | OS 재부팅, Tailscale 서비스 수동 시작 |
| GitHub OAuth 안 열림 | tailscale up --qr로 자기 계정 로그인 |
| 공유 노드가 안 보임 | 공유 링크 수락 여부와 서버 온라인 상태 확인 |
| 다른 서버 장비가 보임 | tailnet 초대일 수 있음. 호스트에게 공유 링크 재발급 요청 |
| Fabric Installer 실패 | Java 21과 명시한 -dir 경로 확인 |
| Cobblemon 버전 안 맞음 | Modrinth API 필터와 게임 버전 재확인 |
| 서버 접속 실패 | tailscale status --json, tailscale ping, TCP 25565 순서로 확인 |
| Incompatible mod list | 두 mod가 Minecraft 1.21.1 Fabric용인지 확인 |
| RAM 부족 | JVM 인수에 -Xmx4G -Xms2G 설정 |
| 모드 폴더 위치 모름 | OS별 mc_dir/mods/ 사용, 버전 하위 폴더에 넣지 않음 |
| 항목 | 버전 |
|---|---|
| Minecraft | 1.21.1 |
| Java | 21 |
Cobblemon, Fabric Loader, Fabric API는 Modrinth/Fabric Meta API에서 동적 조회하여 최신 호환 버전을 사용한다.