# Arquitectura

ScoobCoding tiene tres piezas principales.

## 1. Servidor Forge

El servidor usa Forge 1.20.1 y carga el mundo, mods, configs y librerias. El panel
macOS lo arranca y lo controla, pero Minecraft sigue siendo el proceso autoritativo.

Responsabilidades:

- Mantener `server.properties`.
- Cargar `mods/` y `config/`.
- Exponer el puerto local `25565`.
- Guardar mundo y datos de jugadores.

## 2. Tunel publico

Playit permite publicar el servidor sin abrir puertos del router. La app guarda la
direccion publica en un archivo local que no debe subirse a Git.

Responsabilidades:

- Conectar Internet con `127.0.0.1:25565`.
- Mantener direccion estable para los amigos.
- Evitar tocar configuracion del router.

## 3. Cliente portable

El launcher Windows crea una instalacion aislada:

```text
ScoobCodingLauncher.exe
ScoobCodingClient/
  conf/
    launcher.json
    minecraft/
    payload/
    cache/
    logs/
```

Responsabilidades:

- Leer nombre de usuario.
- Elegir RAM segura.
- Validar payload.
- Preparar Minecraft/Forge/mods/config.
- Abrir Minecraft apuntando al servidor ScoobCoding.

## Por que esta separacion importa

El amigo no toca su `.minecraft`; el servidor no depende del PC del amigo; y la
persona que mantiene el proyecto puede reconstruir todo desde manifiestos.

