feat: add crafting recipe functionality to item creation and editing commands
This commit is contained in:
490
Mas Ejemplos.md
490
Mas Ejemplos.md
@@ -1,6 +1,133 @@
|
||||
# Guía rápida para el staff: crear y ajustar contenido desde Discord
|
||||
|
||||
Este documento reúne## Mutaciones y encantamientos
|
||||
Este documento reúne ejemplos prácticos y flujos de trabajo completos **para el equipo de staff**. Todo lo que ves aquí se realiza directamente con los comandos del bot (prefijo `!`), sin tocar código ni ejecutar scripts. Los comandos viven en `src/commands/messages/admin` y `src/commands/messages/game`, pero no necesitas abrir esos archivos: la idea es que puedas hacerlo todo desde Discord siguiendo estos pasos.
|
||||
|
||||
---
|
||||
|
||||
## Tabla de contenidos
|
||||
|
||||
1. [Antes de empezar](#antes-de-empezar)
|
||||
2. [Items: creación, edición y revisión](#items-creación-edición-y-revisión)
|
||||
3. [Crafteos y materiales](#crafteos-y-materiales) ⭐ **¡Ahora con editor integrado!**
|
||||
4. [Fundición y refinado](#fundición-y-refinado)
|
||||
5. [Mutaciones y encantamientos](#mutaciones-y-encantamientos)
|
||||
6. [Mobs: enemigos y NPCs](#mobs-enemigos-y-npcs)
|
||||
7. [Áreas y niveles](#áreas-y-niveles)
|
||||
8. [Misiones (Quests)](#misiones-quests)
|
||||
9. [Logros (Achievements)](#logros-achievements)
|
||||
10. [Workflows completos de ejemplo](#workflows-completos-de-ejemplo)
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Flujo rápido: Crear un ítem con receta de crafteo
|
||||
|
||||
**Nuevo proceso (2025)** - Todo desde Discord, sin código:
|
||||
|
||||
```
|
||||
1. !item-crear iron_ingot → Crear ingrediente 1
|
||||
2. !item-crear wood_plank → Crear ingrediente 2
|
||||
3. !item-crear iron_sword → Crear producto
|
||||
├─ Pulsar "Base" → Nombre, descripción, etc.
|
||||
├─ Pulsar "Props" → Agregar {"craftable": {"enabled": true}}
|
||||
├─ Pulsar "Receta" ⭐ NUEVO → Escribir: iron_ingot:3, wood_plank:1
|
||||
└─ Pulsar "Guardar" → ¡Listo! Receta activa
|
||||
4. !craftear iron_sword → Los jugadores pueden craftear
|
||||
```
|
||||
|
||||
**Antes (2024)**: Había que pedirle al equipo dev que ejecutara scripts de Prisma 🚫
|
||||
|
||||
---
|
||||
|
||||
## Antes de empezar
|
||||
|
||||
> ⭐ **¡NUEVO!** Ahora puedes crear y editar recetas de crafteo directamente desde Discord sin necesidad del equipo dev. Usa el botón **Receta** en los comandos `!item-crear` e `!item-editar`. Ver [sección de Crafteos](#crear-nuevas-recetas-de-crafteo-directo-desde-discord) para más detalles.
|
||||
|
||||
- Asegúrate de tener el permiso `Manage Guild` o el rol de staff configurado; varios comandos lo revisan con `hasManageGuildOrStaff`.
|
||||
- Siempre usa claves (`key`) en minúsculas y sin espacios. Son únicas por servidor y no se pueden repetir.
|
||||
- Todos los editores funcionan con botones + modales. Si cierras la ventana o pasa más de 30 min sin responder, el editor caduca y debes reabrirlo.
|
||||
- Cuando un modal pida JSON, puedes copiar los ejemplos de esta guía y ajustarlos. Si el JSON no es válido, el bot te avisará y no guardará los cambios.
|
||||
|
||||
---
|
||||
|
||||
## Items: creación, edición y revisión
|
||||
|
||||
### Crear un ítem nuevo — `!item-crear <key>`
|
||||
1. Escribe `!item-crear piedra_mistica` (usa la key que necesites).
|
||||
2. Pulsa **Base** y completa:
|
||||
- **Nombre** y **Descripción**: lo que verán los jugadores.
|
||||
- **Categoría** (opcional) para agrupar en listados (`weapon`, `material`, `consumible`, etc.).
|
||||
- **Icon URL** si tienes una imagen.
|
||||
- **Stackable y Máx inventario** en formato `true,10`. Ejemplos: `true,64`, `false,1`, o deja vacío para infinito.
|
||||
3. Pulsa **Tags** y agrega etiquetas separadas por coma (`rare, evento`); sirven para filtrar en `!items-lista`.
|
||||
4. Pulsa **Props (JSON)** y pega solo lo que necesites. Ejemplo rápido para una herramienta que también cura al uso:
|
||||
|
||||
```json
|
||||
{
|
||||
"tool": { "type": "pickaxe", "tier": 2 },
|
||||
"breakable": { "enabled": true, "maxDurability": 120 },
|
||||
"food": { "healHp": 25, "cooldownSeconds": 180 }
|
||||
}
|
||||
```
|
||||
|
||||
5. Pulsa **Receta** (⭐ nuevo) si quieres que el ítem sea crafteable. Ver [sección de Crafteos](#crear-nuevas-recetas-de-crafteo-directo-desde-discord) para más detalles.
|
||||
6. Cuando todo esté listo, pulsa **Guardar**. El bot confirmará con "✅ Item creado".
|
||||
|
||||
### Editar, listar y borrar
|
||||
|
||||
- `!item-editar` abre el mismo editor, pero cargando un ítem existente.
|
||||
- `!item-eliminar <key>` borra la versión local (solicita confirmación).
|
||||
- `!items-lista` y `!item-ver <key>` sirven para revisar lo que ya existe.
|
||||
|
||||
> 💡 Tip: si solo quieres revisar las propiedades de un ítem, usa `!item-ver <key>`; mostrará los `props` formateados en JSON.
|
||||
|
||||
### Preparar ítems especiales
|
||||
|
||||
- **Consumibles**: en Props agrega
|
||||
|
||||
```json
|
||||
"food": {
|
||||
"healHp": 40,
|
||||
"healPercent": 10,
|
||||
"cooldownKey": "food:pocion_epica",
|
||||
"cooldownSeconds": 120
|
||||
}
|
||||
```
|
||||
|
||||
Luego prueba con `!comer pocion_epica` (usa la key real) para ver el mensaje de curación y el cooldown.
|
||||
|
||||
- **Cofres**: añade
|
||||
|
||||
```json
|
||||
"chest": {
|
||||
"enabled": true,
|
||||
"consumeOnOpen": true,
|
||||
"rewards": [
|
||||
{ "type": "coins", "amount": 500 },
|
||||
{ "type": "item", "itemKey": "token_evento", "qty": 3 }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Después abre el cofre con `!abrir <key>`.
|
||||
|
||||
- **Armas/armaduras**: usa `damage`, `defense` o `maxHpBonus`. Si quieres limitar mutaciones, agrega `mutationPolicy` (ver sección más abajo).
|
||||
|
||||
---
|
||||
|
||||
## Crafteos y materiales
|
||||
|
||||
El crafteo permite combinar materiales para crear ítems más valiosos. A diferencia de la fundición, el crafteo es instantáneo y no requiere tiempo de espera.
|
||||
|
||||
### Cómo funciona el crafteo
|
||||
|
||||
1. El jugador ejecuta `!craftear <productKey>`.
|
||||
2. El bot verifica que tenga todos los ingredientes.
|
||||
3. Si los tiene, los descuenta del inventario y entrega el producto inmediatamente.
|
||||
4. Las estadísticas del jugador se actualizan (`itemsCrafted`).
|
||||
|
||||
---
|
||||
|
||||
## Mutaciones y encantamientos
|
||||
|
||||
Las mutaciones permiten mejorar ítems agregándoles bonificaciones especiales. Son consumibles permanentes que se aplican a un ítem específico.
|
||||
|
||||
@@ -111,11 +238,11 @@ Decide qué mutaciones puede recibir cada ítem editando sus **Props**:
|
||||
| `vampire_core` | Vampirismo | +10 damage, lifesteal | Armas |
|
||||
| `thorns_enchant` | Espinas | refleja daño | Armaduras |
|
||||
|
||||
> 💡 **Tip**: las mutaciones con efectos custom (como `fortune_enchant` que aumenta drops) requieren lógica adicional en el código. Consulta con el equipo dev antes de anunciarlas.ados **para el equipo de staff**. Todo lo que ves aquí se realiza directamente con los comandos del bot (prefijo `!`), sin tocar código ni ejecutar scripts. Los comandos viven en `src/commands/messages/admin` y `src/commands/messages/game`, pero no necesitas abrir esos archivos: la idea es que puedas hacerlo todo desde Discord siguiendo estos pasos.
|
||||
> 💡 **Tip**: las mutaciones con efectos custom (como `fortune_enchant` que aumenta drops) requieren lógica adicional en el código. Consulta con el equipo dev antes de anunciarlas.
|
||||
|
||||
---
|
||||
|
||||
## Antes de empezar
|
||||
## Mobs: enemigos y NPCs
|
||||
|
||||
- Asegúrate de tener el permiso `Manage Guild` o el rol de staff configurado; varios comandos lo revisan con `hasManageGuildOrStaff`.
|
||||
- Siempre usa claves (`key`) en minúsculas y sin espacios. Son únicas por servidor y no se pueden repetir.
|
||||
@@ -199,7 +326,9 @@ El crafteo permite combinar materiales para crear ítems más valiosos. A difere
|
||||
3. Si los tiene, los descuenta del inventario y entrega el producto inmediatamente.
|
||||
4. Las estadísticas del jugador se actualizan (`itemsCrafted`).
|
||||
|
||||
### Crear nuevas recetas de crafteo
|
||||
### Crear nuevas recetas de crafteo (¡directo desde Discord!)
|
||||
|
||||
Ya **NO necesitas al equipo dev** para crear recetas. Ahora puedes configurarlas directamente al crear o editar un ítem.
|
||||
|
||||
#### Paso 1: Crear todos los ítems involucrados
|
||||
|
||||
@@ -220,7 +349,7 @@ El crafteo permite combinar materiales para crear ítems más valiosos. A difere
|
||||
- Stackable: true,999
|
||||
- Props: `{"craftingOnly": true}`
|
||||
|
||||
2. **Producto final**:
|
||||
2. **Producto final con receta**:
|
||||
```
|
||||
!item-crear iron_sword
|
||||
```
|
||||
@@ -237,32 +366,116 @@ El crafteo permite combinar materiales para crear ítems más valiosos. A difere
|
||||
}
|
||||
```
|
||||
|
||||
#### Paso 2: Enviar receta al equipo dev
|
||||
#### Paso 2: Configurar la receta (¡NUEVO!)
|
||||
|
||||
**Receta: Espada de Hierro**
|
||||
- **Product**: `iron_sword`
|
||||
- **Product Quantity**: 1
|
||||
- **Ingredientes**:
|
||||
- `iron_ingot`: 3
|
||||
- `wood_plank`: 1
|
||||
Antes de guardar el ítem, pulsa el botón **Receta** en el editor. Aparecerá un modal como este:
|
||||
|
||||
El equipo dev ejecutará:
|
||||
```typescript
|
||||
await prisma.itemRecipe.create({
|
||||
data: {
|
||||
productItemId: ironSwordItem.id,
|
||||
productQuantity: 1,
|
||||
ingredients: {
|
||||
create: [
|
||||
{ itemId: ironIngotItem.id, quantity: 3 },
|
||||
{ itemId: woodPlankItem.id, quantity: 1 }
|
||||
]
|
||||
}
|
||||
}
|
||||
});
|
||||
```
|
||||
┌─────────────────────────────────────────┐
|
||||
│ 📝 Receta de Crafteo │
|
||||
├─────────────────────────────────────────┤
|
||||
│ Habilitar receta? (true/false) │
|
||||
│ [ true ] │
|
||||
├─────────────────────────────────────────┤
|
||||
│ Cantidad que produce │
|
||||
│ [ 1 ] │
|
||||
├─────────────────────────────────────────┤
|
||||
│ Ingredientes (itemKey:qty, ...) │
|
||||
│ ┌───────────────────────────────────┐ │
|
||||
│ │ iron_ingot:3, wood_plank:1 │ │
|
||||
│ │ │ │
|
||||
│ └───────────────────────────────────┘ │
|
||||
│ │
|
||||
│ [Enviar] [Cancelar] │
|
||||
└─────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
#### Paso 3: Probar la receta
|
||||
**Campos del modal:**
|
||||
|
||||
1. **Habilitar receta?**: escribe `true` para activar, `false` para desactivar
|
||||
2. **Cantidad que produce**: cuántas unidades del producto se crean (ej. `1` espada, `3` lingotes, `10` flechas)
|
||||
3. **Ingredientes**: lista separada por comas en formato `itemKey:cantidad`
|
||||
|
||||
El formato de ingredientes es: `itemKey:cantidad, itemKey:cantidad, ...`
|
||||
|
||||
**Ejemplos válidos:**
|
||||
- `iron_ingot:3, wood_plank:1` → necesita 3 lingotes y 1 tablón
|
||||
- `leather:8, string:2` → necesita 8 cueros y 2 cuerdas
|
||||
- `ruby:1, gold_ingot:5, magic_dust:2` → necesita 1 rubí, 5 lingotes de oro y 2 polvos mágicos
|
||||
|
||||
El bot automáticamente:
|
||||
- ✅ Valida que las claves (`itemKey`) existan en tu servidor
|
||||
- ✅ Convierte las claves a IDs de base de datos
|
||||
- ✅ Guarda la receta junto con el ítem
|
||||
- ❌ Rechaza ingredientes que no existen con mensaje de error claro
|
||||
|
||||
Finalmente pulsa **Guardar** y listo. ¡La receta ya está activa!
|
||||
|
||||
#### 📋 Ejemplo JSON completo de un ítem con receta
|
||||
|
||||
Después de guardar, el ítem quedará estructurado así en la base de datos:
|
||||
|
||||
**EconomyItem (iron_sword)**:
|
||||
```json
|
||||
{
|
||||
"id": "uuid-123",
|
||||
"key": "iron_sword",
|
||||
"guildId": "guild-456",
|
||||
"name": "Espada de Hierro",
|
||||
"description": "Espada básica de hierro forjado",
|
||||
"stackable": false,
|
||||
"maxInventory": 1,
|
||||
"props": {
|
||||
"craftable": {"enabled": true},
|
||||
"tool": {"type": "sword", "tier": 2},
|
||||
"damage": 15,
|
||||
"breakable": {"enabled": true, "maxDurability": 200}
|
||||
},
|
||||
"tags": ["weapon", "tier2"],
|
||||
"itemRecipe": {
|
||||
"id": "recipe-789",
|
||||
"productItemId": "uuid-123",
|
||||
"productQuantity": 1,
|
||||
"ingredients": [
|
||||
{
|
||||
"id": "ing-001",
|
||||
"recipeId": "recipe-789",
|
||||
"itemId": "uuid-iron-ingot",
|
||||
"quantity": 3
|
||||
},
|
||||
{
|
||||
"id": "ing-002",
|
||||
"recipeId": "recipe-789",
|
||||
"itemId": "uuid-wood-plank",
|
||||
"quantity": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
> 💡 **Nota**: No necesitas escribir este JSON manualmente. El editor lo crea automáticamente cuando pulsas "Receta" y guardas.
|
||||
|
||||
#### Paso 3: Editar recetas existentes
|
||||
|
||||
Si ya creaste un ítem y quieres agregar/modificar su receta:
|
||||
|
||||
```
|
||||
!item-editar iron_sword
|
||||
```
|
||||
|
||||
Pulsa **Receta** y edita:
|
||||
- Para **agregar** una receta nueva: pon `true` y escribe los ingredientes
|
||||
- Para **modificar** ingredientes: cambia el texto (ej. `iron_ingot:5, wood_plank:2`)
|
||||
- Para **deshabilitar** la receta: pon `false` en "Habilitar receta?"
|
||||
- Para **eliminar** completamente: pon `false` y deja ingredientes vacío
|
||||
|
||||
Cuando guardas, el bot:
|
||||
- 🔄 Actualiza la receta si cambió
|
||||
- ➕ Crea la receta si es nueva
|
||||
- 🗑️ Elimina la receta si la deshabilitaste
|
||||
|
||||
#### Paso 4: Probar la receta
|
||||
|
||||
1. Asegúrate de tener los ingredientes en tu inventario.
|
||||
2. Ejecuta:
|
||||
@@ -273,6 +486,133 @@ await prisma.itemRecipe.create({
|
||||
- ✅ Si tienes todo: "✨ Crafteaste **Espada de Hierro** x1"
|
||||
- ❌ Si falta algo: "No tienes suficientes ingredientes: necesitas 3 iron_ingot, 1 wood_plank"
|
||||
|
||||
### 📦 Ejemplos de Props JSON para diferentes tipos de crafteo
|
||||
|
||||
#### Arma crafteable con durabilidad
|
||||
```json
|
||||
{
|
||||
"craftable": {"enabled": true},
|
||||
"tool": {"type": "sword", "tier": 2},
|
||||
"damage": 15,
|
||||
"breakable": {
|
||||
"enabled": true,
|
||||
"maxDurability": 200,
|
||||
"repairItem": "iron_ingot",
|
||||
"repairAmount": 20
|
||||
}
|
||||
}
|
||||
```
|
||||
**Receta sugerida**: `iron_ingot:3, wood_plank:1`
|
||||
|
||||
---
|
||||
|
||||
#### Armadura crafteable con bonificaciones
|
||||
```json
|
||||
{
|
||||
"craftable": {"enabled": true},
|
||||
"wearable": {
|
||||
"slot": "chest",
|
||||
"visual": "https://example.com/iron_chestplate.png"
|
||||
},
|
||||
"defense": 12,
|
||||
"maxHpBonus": 20,
|
||||
"breakable": {
|
||||
"enabled": true,
|
||||
"maxDurability": 300
|
||||
}
|
||||
}
|
||||
```
|
||||
**Receta sugerida**: `iron_ingot:8, leather:2`
|
||||
|
||||
---
|
||||
|
||||
#### Consumible crafteable (pociones)
|
||||
```json
|
||||
{
|
||||
"craftable": {"enabled": true},
|
||||
"food": {
|
||||
"healHp": 50,
|
||||
"healPercent": 0,
|
||||
"cooldownKey": "potion:health",
|
||||
"cooldownSeconds": 60
|
||||
},
|
||||
"stackable": true,
|
||||
"maxInventory": 10
|
||||
}
|
||||
```
|
||||
**Receta sugerida**: `red_herb:2, water_bottle:1, magic_dust:1`
|
||||
|
||||
---
|
||||
|
||||
#### Material de crafteo (produce múltiples unidades)
|
||||
```json
|
||||
{
|
||||
"craftable": {"enabled": true},
|
||||
"craftingOnly": true,
|
||||
"description": "Material refinado usado en crafteo avanzado",
|
||||
"stackable": true,
|
||||
"maxInventory": 999
|
||||
}
|
||||
```
|
||||
**Receta sugerida**: `iron_ore:2, coal:1` → **Produce 3 unidades** (configurar en "Cantidad que produce": `3`)
|
||||
|
||||
---
|
||||
|
||||
#### Herramienta con efectos especiales
|
||||
```json
|
||||
{
|
||||
"craftable": {"enabled": true},
|
||||
"tool": {
|
||||
"type": "pickaxe",
|
||||
"tier": 3,
|
||||
"efficiency": 1.5,
|
||||
"fortune": true
|
||||
},
|
||||
"breakable": {
|
||||
"enabled": true,
|
||||
"maxDurability": 500,
|
||||
"unbreaking": 2
|
||||
}
|
||||
}
|
||||
```
|
||||
**Receta sugerida**: `steel_ingot:3, diamond:2, enchanted_core:1`
|
||||
|
||||
---
|
||||
|
||||
#### Ítem decorativo/coleccionable
|
||||
```json
|
||||
{
|
||||
"craftable": {"enabled": true},
|
||||
"collectible": true,
|
||||
"rarity": "legendary",
|
||||
"tradeable": false,
|
||||
"description": "Trofeo único obtenido al craftear materiales legendarios",
|
||||
"stackable": false,
|
||||
"maxInventory": 1
|
||||
}
|
||||
```
|
||||
**Receta sugerida**: `mythril_ingot:10, dragon_scale:5, phoenix_feather:3`
|
||||
|
||||
---
|
||||
|
||||
#### Cofre crafteable con recompensas
|
||||
```json
|
||||
{
|
||||
"craftable": {"enabled": true},
|
||||
"chest": {
|
||||
"enabled": true,
|
||||
"consumeOnOpen": true,
|
||||
"rewards": [
|
||||
{"type": "coins", "amount": 1000},
|
||||
{"type": "item", "itemKey": "rare_gem", "qty": 2}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
**Receta sugerida**: `wood_plank:8, iron_ingot:2, gold_ingot:1`
|
||||
|
||||
---
|
||||
|
||||
### Categorías de recetas sugeridas
|
||||
|
||||
#### 🛠️ Herramientas
|
||||
@@ -398,6 +738,63 @@ Nivel 5 (Legendario)
|
||||
| Cristal de Lava | `lava_crystal` | Área volcánica | Crafteo legendario |
|
||||
| Mythril | `mythril_ingot` | Fundir mythril_ore | Armas/armor tier 4 |
|
||||
|
||||
### Verificar y solucionar problemas con recetas
|
||||
|
||||
#### Ver información de una receta
|
||||
|
||||
Para verificar si un ítem tiene receta activa, usa:
|
||||
|
||||
```
|
||||
!item-ver iron_sword
|
||||
```
|
||||
|
||||
En el editor aparecerá:
|
||||
- **Receta**: `Habilitada (3 ingredientes → 1 unidades)` ← tiene receta activa
|
||||
- **Receta**: `Deshabilitada` ← no tiene receta o está desactivada
|
||||
|
||||
#### Errores comunes y soluciones
|
||||
|
||||
**Error**: "No se encontró el ítem `xxx_ingot` en este servidor"
|
||||
- **Causa**: La clave (`itemKey`) del ingrediente no existe o tiene un typo
|
||||
- **Solución**: Verifica con `!items-lista` que todos los ingredientes existan. Crea los que falten con `!item-crear`
|
||||
|
||||
**Error**: "No tienes suficientes ingredientes"
|
||||
- **Causa**: El jugador no tiene todos los materiales en su inventario
|
||||
- **Solución**: Usa `!inventario` para verificar qué falta. Añade ítems con `!give @usuario itemKey cantidad`
|
||||
|
||||
**Problema**: La receta no se guarda
|
||||
- **Causa**: El prop `craftable.enabled` está en `false` o falta
|
||||
- **Solución**: En Props (JSON) asegúrate de tener: `"craftable": {"enabled": true}`
|
||||
|
||||
**Problema**: La receta desapareció después de editar el ítem
|
||||
- **Causa**: No marcaste "Habilitar receta?" como `true` al editar
|
||||
- **Solución**: Vuelve a `!item-editar`, pulsa **Receta**, pon `true` y reingresa los ingredientes
|
||||
|
||||
#### Workflow de debug para recetas
|
||||
|
||||
1. **Verificar que el producto existe**:
|
||||
```
|
||||
!item-ver iron_sword
|
||||
```
|
||||
Debe aparecer en la lista y tener `craftable.enabled: true` en props.
|
||||
|
||||
2. **Verificar que todos los ingredientes existen**:
|
||||
```
|
||||
!items-lista
|
||||
```
|
||||
Busca `iron_ingot` y `wood_plank` en la lista.
|
||||
|
||||
3. **Probar con admin**:
|
||||
- Añádete los ingredientes: `!give @tuUsuario iron_ingot 10`
|
||||
- Intenta craftear: `!craftear iron_sword`
|
||||
- Si funciona: la receta está bien configurada
|
||||
- Si falla: revisa los errores del bot
|
||||
|
||||
4. **Verificar la base de datos (solo si todo lo anterior falló)**:
|
||||
- Pide al equipo dev que revise la tabla `ItemRecipe`
|
||||
- Debe haber un registro con `productItemId` apuntando al ítem correcto
|
||||
- Los `RecipeIngredient` deben tener `itemId` y `quantity` correctos
|
||||
|
||||
### Cadenas de crafteo complejas
|
||||
|
||||
**Ejemplo: Espada Legendaria**
|
||||
@@ -438,6 +835,45 @@ Para materiales que **solo** sirven para craftear y no tienen uso directo:
|
||||
|
||||
Esto ayuda a los jugadores a entender que deben combinarlo con otros ítems para obtener valor.
|
||||
|
||||
### 💡 Tips y mejores prácticas para recetas
|
||||
|
||||
#### Organización de recetas
|
||||
|
||||
- **Nombra consistentemente**: Usa sufijos como `_ingot`, `_ore`, `_plank` para que sean fáciles de identificar
|
||||
- **Agrupa por tier**: Crea materiales tier 1, tier 2, tier 3... para facilitar progresión
|
||||
- **Documenta ingredientes raros**: Si una receta usa ítems de eventos o bosses, menciónalo en la descripción del producto
|
||||
|
||||
#### Balance de economía
|
||||
|
||||
- **Recetas básicas**: 2-3 ingredientes, cantidades bajas (< 5 unidades)
|
||||
- **Recetas intermedias**: 3-5 ingredientes, algunas de tier anterior
|
||||
- **Recetas avanzadas**: 5+ ingredientes, incluyen materiales raros y crafteos previos
|
||||
- **Recetas legendarias**: Cadenas complejas que requieren múltiples pasos de fundición y crafteo
|
||||
|
||||
#### Productividad del staff
|
||||
|
||||
- **Crea plantillas**: Guarda en un documento los props JSON comunes para copiar/pegar rápidamente
|
||||
- **Batch creation**: Crea todos los ingredientes primero, luego todos los productos
|
||||
- **Usa el mismo editor**: No cierres el editor entre ítems similares, solo cambia la key y ajusta valores
|
||||
- **Prueba inmediatamente**: Después de crear una receta, añádete los ingredientes y prueba `!craftear` para validar
|
||||
|
||||
#### Errores a evitar
|
||||
|
||||
- ❌ **No crear los ingredientes primero**: Si creas el producto con receta pero los ingredientes no existen, la receta fallará
|
||||
- ❌ **Typos en itemKeys**: `iron_ingott` vs `iron_ingot` - el bot no encontrará el ítem
|
||||
- ❌ **Olvidar craftable.enabled**: Si el prop no está en `true`, la receta no funcionará aunque esté guardada
|
||||
- ❌ **Cantidades desbalanceadas**: 100 unidades de un material común no debe producir 1 ítem legendario
|
||||
|
||||
#### Ejemplos de recetas balanceadas
|
||||
|
||||
| Tier | Ingredientes Típicos | Output Typical | Ejemplo |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 (Común) | 2-3 materiales básicos x2-5 | 1-5 unidades | 3 wood + 2 stone → 1 basic_axe |
|
||||
| 2 (Poco común) | 3-4 materiales, algunos refinados x3-10 | 1-3 unidades | 5 iron_ingot + 2 leather → 1 iron_sword |
|
||||
| 3 (Raro) | 4-5 materiales, crafteos tier 2 x5-15 | 1-2 unidades | 8 steel_ingot + 3 ruby + 1 iron_sword → 1 steel_sword |
|
||||
| 4 (Épico) | 5-7 materiales, incluye raros x10-30 | 1 unidad | 10 mythril + 5 magic_dust + 3 dragon_scale → 1 mythril_sword |
|
||||
| 5 (Legendario) | 6+ materiales, cadenas complejas x20+ | 1 unidad | 15 divine_ore + 10 phoenix_feather + 1 mythril_sword → 1 godslayer |
|
||||
|
||||
---
|
||||
|
||||
## Mutaciones y encantamientos
|
||||
|
||||
Reference in New Issue
Block a user