# Cahier des charges — MondeLent

> **Nom :** **MondeLent** (validé le 28/08/2026)  
> **Date :** 28 août 2026  
> **Statut :** infra OK — port 25565 ouvert — **prochaine étape : installer Paper + plugins**  
> **Version document :** 0.4  
> **Site :** `https://mondelent.watys.fr/`  
> **Jeu :** Minecraft **Java** + **Paper** — survie douce, adultes débutants  
> **Dev :** agent Cursor sur le LXC (piloté via Telegram / Contrôle Distant)

---

## Pour l’agent LXC (lire en premier)

```
Projet : MondeLent
Dossier app / site : /var/www/app
Dossier jeu prévu : /var/www/app/minecraft (ou /opt/minecraft — documenter le choix)
User SSH : dev
Stack site : PHP 8 natif + HTML5 + CSS + JS vanilla + Nginx (PAS de framework)
Stack jeu : Paper (Java 17 déjà installé) + plugins
Règles produit : ZÉRO pub tierce, ZÉRO pay-to-win, PAS de PvP monde ouvert en V1
Quêtes : l’utilisateur décrit en français → tu configures le plugin
Events : 1 thème / mois (voir calendrier) = quêtes + petite déco + concours build optionnel
Ne pas inventer de rank OP / items payants qui cassent l’équilibre
```

---

## 0. Identité du projet

| Élément | Valeur |
|---------|--------|
| **Nom** | **MondeLent** |
| **Sens** | Un monde où l’on prend son temps |
| **URL site** | `https://mondelent.watys.fr/` |
| **IP LXC** | `10.10.11.193` |
| **CTID** | 9033 |
| **SSH** | `dev@10.10.11.193` |
| **RAM / CPU** | 8192 Mo / 12 cœurs |
| **Java** | OpenJDK 17 (installé) |
| **Port jeu** | **25565** TCP → forward **fait** vers `10.10.11.193:25565` |
| **Adresse joueurs** | `mondelent.watys.fr` (ou IP publique) **:25565** si besoin |
| **Telegram projet** | à brancher (`telegramChatId` dans projects.json) |

Noms écartés : LentCraft, SurvieDouce, CalmCraft, BlocABloc, PaxCraft, « Minecraft Lent ».

---

## 1. En une phrase

**MondeLent** = serveur Minecraft **survie douce** pour **adultes qui ont peu joué** : tutoriel, quêtes, **événements mensuels**, concours de build optionnels — **sans publicité**, **sans pay-to-win**.

---

## 2. Pourquoi ce projet

- Serveurs classiques souvent toxiques, pubards, pay-to-win  
- Débutants adultes décrochent  
- Besoin d’un endroit **calme**, pédagogique, avec un rythme (events du mois)  
- Objectif secondaire : revenus **propres** (cosmétiques / confort / pass saison), pas enrichissement magique

---

## 3. Public cible

| Qui | Besoin |
|-----|--------|
| Adultes débutants / de retour sur Minecraft | Apprendre sans humiliation |
| Famille / potes peu Minecraft | Jouer ensemble tranquillement |
| Joueurs fatigués du tryhard | Survie cosy + builds |

**Hors cible V1 :** PvP compétitif, factions, Skyblock classique, public enfant très jeune (modération / RGPD à traiter à part si un jour).

---

## 4. Expérience de jeu

### 4.1 Base (V1)

| Règle | Détail |
|-------|--------|
| Édition | Minecraft **Java** uniquement |
| Logiciel serveur | **Paper** (performance) |
| Mode | Survie |
| Difficulté | **Easy** par défaut (modifiable si demandé) |
| PvP | **Désactivé** sur le monde ouvert |
| Grief | **Interdit** — plugin protection / claims obligatoire |
| Économie | Pas obligatoire en V1 (plus tard si utile) |
| Mods lourds / Forge | **Hors V1** |

### 4.2 Quêtes débutant

- **5–10 quêtes** « premiers pas » livrées en V1 (bois, pierre, craft, lit, abri, etc.)  
- Plugin type **Quests** / équivalent fiable Paper (choix à l’install, documenté dans REPRISE)  

**Répartition des rôles :**

| Qui | Fait quoi |
|-----|-----------|
| Utilisateur | Décrit les quêtes / le thème **en français** (phrases simples) |
| Agent LXC | Installe le plugin, écrit les configs, teste |

L’utilisateur **ne code pas** et n’édite pas les YAML lui-même sauf s’il le demande.

### 4.3 Events mensuels (prévu dès le départ)

Chaque mois = **au plus 3 briques** :

1. **2–5 quêtes** thématiques  
2. **Petite déco / zone** (même modeste)  
3. **Option :** 1 concours build (voir §4.4)

**Calendrier indicatif :**

| Mois | Thème |
|------|--------|
| Septembre | Rentrée |
| Octobre | Halloween **doux** (pas horreur hardcore) |
| Novembre | Récolte / préparation hiver / cocooning |
| Décembre | Noël + calendrier de l’avent léger (1 mini-récompense / jour possible) |
| Janvier | Neige / bonnes résolutions |
| Février | Amitié / quêtes duo |
| Mars | Printemps / jardins |
| Avril | Poisson d’avril **gentil** (1 blague max, pas méchante) |
| Mai | Chantier communal (build collectif) |
| Juin | Été / plage |
| Juillet–août | Vacances (events plus légers, trésor mensuel) |

Principe : **petit et régulier** > gros event abandonné.

### 4.4 Concours build (greffe de l’idée « jury web »)

- Fréquence : **≤ 1 / mois**  
- Supports : photos + visite in-game  
- Vote : sur le **site web** MondeLent  
- Prix : cosmétique / titre / îlot déco — **jamais** items OP  

---

## 5. Monétisation (propre)

| Offre | Contenu autorisé | Interdit |
|--------|------------------|----------|
| Don soutien | Badge « Mécène » | — |
| Rang **Confort** (abo ~4–6 €/mois indicatif) | Couleur pseudo, /home ×N, particules cosmétiques | Avantages combat, farm, XP |
| **Pass saison** (ex. automne sept–nov) | Cosmétiques du thème + titre | Pay-to-win |
| Pack event (Halloween, Noël) | Gadgets cosmétiques temporaires | — |
| Concours | Gratuit ou micro-inscription 1–2 € | Items qui cassent l’équilibre |

**Règles d’or :**
- Zéro pub tierce sur le serveur / site  
- Zéro pay-to-win  
- Respecter les **règles Microsoft / Mojang** (boutique cosmétique / confort)

---

## 6. Site web

| Élément | Choix |
|---------|--------|
| URL | `https://mondelent.watys.fr/` (dédié, **pas** une fiche GameFactory) |
| Stack | PHP 8 natif + HTML5 + CSS + JS **vanilla** + Nginx |
| Dossier | `/var/www/app` |

**Contenu V1 / V1.1 :**
- Accueil + présentation MondeLent  
- Règles du serveur  
- Comment se connecter (Java, adresse, version)  
- Calendrier des events  
- Tutoriel débutant (texte)  
- Concours + votes (peut arriver juste après le socle jeu)  
- Liens communauté (Discord / Telegram joueurs)  
- Boutique (plus tard si besoin)

Page temporaire déjà en place + `/api/health.php`.

---

## 7. Qui fait quoi

| Tâche | Qui |
|--------|-----|
| Idées quêtes / thème du mois (quelques phrases FR) | Utilisateur |
| Install Paper, plugins, configs, quêtes, events in-game | **Agent LXC** |
| Site web (pages, concours, etc.) | **Agent LXC** |
| Modération quotidienne / bans | Utilisateur (+ staff plus tard) |
| Annonces communauté | Utilisateur |
| Ouverture port 25565 | Utilisateur (**fait**) |

---

## 8. Infrastructure (état réel)

| Élément | Valeur |
|---------|--------|
| Type | **LXC Debian 12** (pas de VM pleine — un LXC **suffit** pour Paper V1) |
| CTID | **9033** |
| IP | **10.10.11.193** |
| RAM / CPU | **8 Go / 12 cœurs** |
| User | `dev` |
| Site HTTPS | Reverse proxy Watys → LXC:80 (**OK**) |
| Jeu | Forward **TCP 25565 → 10.10.11.193:25565** (**fait** par l’utilisateur) |
| Java | OpenJDK **17** installé |
| Cursor CLI | Installé sur le LXC |
| Gateway | Projet `mondelent` dans `projects.json` |

### Décision réseau (rappel)

| Trafic | Chemin |
|--------|--------|
| Site web | Reverse proxy HTTP/HTTPS (comme les autres `*.watys.fr`) |
| Minecraft | **Port direct** 25565 vers le LXC (choix V1) |

**Plus tard** (plusieurs serveurs Minecraft) : SRV DNS et/ou proxy type Infrared / Velocity pour plusieurs domaines sur un port — **hors V1**.

Passer en **VM** seulement si mods très lourds / Docker-in-LXC / problème technique LXC.

---

## 9. Stack technique détail

| Couche | Choix |
|--------|--------|
| Serveur jeu | **Paper** (Minecraft Java) |
| Quêtes | Plugin Quests (ou équivalent documenté à l’install) |
| Protection | GriefPrevention / claims (ou équivalent) |
| Site | PHP 8 + Nginx + HTML/CSS/JS |
| Sauvegardes | **Quotidiennes** du monde (obligatoire) + test de restore une fois |
| Process jeu | systemd service recommandé (redémarrage propre) |

---

## 10. Périmètre

### Dans V1
- Paper qui démarre, joignable depuis Internet (25565)  
- Anti-grief + PvP off  
- Pack 5–10 quêtes débutant  
- Au moins **la structure** events (idéalement 1er mois branché)  
- Site : règles + comment rejoindre + health  
- Sauvegardes automatiques  

### Hors V1
- Bedrock / Geyser  
- Gros modpack Forge/Fabric  
- PvP / factions / Skyblock  
- Économie complexe  
- Multi-serveurs + Velocity  
- Boutique complète en ligne  
- Staff nombreux  

---

## 11. Critères de succès V1

1. L’utilisateur + 2–3 potes jouent **1 h** sans frustration  
2. Les quêtes débutant se terminent toutes  
3. Un event / thème du mois est visible (même minimal)  
4. Une sauvegarde a été **restaurée en test** une fois  
5. Aucune pub / aucun pay-to-win  

---

## 12. Ordre de travail pour l’agent (après ce CDC)

1. Installer **Paper** (version Minecraft stable récente) dans un dossier dédié  
2. `eula=true`, config : PvP off, motd MondeLent, online-mode selon décision (online-mode **true** recommandé)  
3. Service **systemd** + démarrage au boot  
4. Plugins : protection claims + quêtes  
5. Écrire **5–10 quêtes** débutant  
6. Enrichir le **site** (règles, IP/adresse de connexion, version MC)  
7. Sauvegardes cron quotidiennes  
8. Premier **event** du mois en cours (léger)  
9. Documenter dans `REPRISE.md` : chemins, commandes start/stop, version Paper  

---

## 13. Décisions

| Question | Statut |
|----------|--------|
| Nom | **MondeLent** ✅ |
| LXC vs VM | **LXC** ✅ |
| RAM/CPU | **8 Go / 12 cœurs** ✅ |
| Site | dédié `mondelent.watys.fr` ✅ |
| Port 25565 | forward **fait** ✅ |
| Difficulté | **Easy** (défaut) |
| online-mode | **true** (recommandé) sauf demande contraire |
| Telegram gateway | **ID groupe à fournir** par l’utilisateur |
| Discord joueurs | optionnel / plus tard |

---

## 14. Glossaire

| Mot | Sens |
|-----|------|
| **Paper** | Logiciel serveur Minecraft Java optimisé |
| **Pay-to-win** | Payer pour être plus fort — **interdit** ici |
| **Claim** | Zone protégée contre le grief |
| **Event** | Thème du mois (quêtes + déco + éventuel concours) |
| **Pass saison** | Pack cosmétique sur 2–3 mois |
