Saltar al contenido principal

Gemas — 8 niveles XP

Componente: block_xp Community v19.0 (plugin de comunidad, sin modificaciones de código) Alcance: 1 — Gamificación Estado: Aplicado a nivel sitio (defaults de admin); los cursos heredan salvo personalización

Propósito

Sistema de progresión por experiencia: el estudiante acumula XP por su actividad en el curso y asciende por 8 niveles temáticos ("Gemas"), cada uno con imagen propia.

Los 8 niveles

Método de cálculo flat: umbrales fijos con incrementos constantes de 500 XP (sin curva).

NivelNombreXP mínimo
1Gema Alba0
2Gema Aqua500
3Gema Violeta1.000
4Gema Esmeralda1.500
5Gema Solar2.000
6Gema Coral2.500
7Gema Índigo3.000
8Gema Prisma3.500

Dónde vive la configuración

A nivel sitio (aplicado): mdl_config_plugins, plugin block_xp, clave levelsdata. Los cursos cuya fila en mdl_block_xp_config tenga levelsdata vacío heredan estos defaults (fallback verificado en blocks/xp/classes/local/factory/levels_factory.php:94-116). Por eso no se necesita UPDATE por curso: basta con no personalizar niveles en el curso.

JSON aplicado (formato v2 de block_xp):

{
"v": 2,
"xp": [0, 500, 1000, 1500, 2000, 2500, 3000, 3500],
"algo": {"method": "flat", "base": 500, "coef": 1.3, "incr": 500},
"name": {"1": "Gema Alba", "2": "Gema Aqua", "3": "Gema Violeta",
"4": "Gema Esmeralda", "5": "Gema Solar", "6": "Gema Coral",
"7": "Gema Índigo", "8": "Gema Prisma"}
}
Formato de los metadatos

En el formato v2, xp es un array plano (0-based) pero name/desc se indexan por número de nivel (1-based) — ver levels_info_writer::construct_finaldata(). Si name se guarda como array plano, los nombres quedan corridos un nivel (la Gema Alba aparecería en el nivel 2).

La edición normal es vía Admin UI: Administración del sitio → Level Up XP → Niveles por defecto (/blocks/xp/index.php?_r=/admin/levels) e imágenes en .../admin/visuals.

Imágenes

8 PNG (requierments/assets/niveles/1.png … 8.png), fondo transparente, cargadas por nivel desde la Admin UI de visuals a nivel sitio. Los cursos que heredan los niveles también heredan las imágenes.

Verificación

-- Defaults del sitio
SELECT value FROM mdl_config_plugins WHERE plugin = 'block_xp' AND name = 'levelsdata';
-- Cursos que heredan (levelsdata vacío = hereda)
SELECT courseid, levels, levelsdata FROM mdl_block_xp_config WHERE enabled = 1;

En la UI: el bloque XP del curso debe mostrar "Nivel 1 / Gema Alba" para un estudiante nuevo y el próximo nivel a 500 XP. La presentación rediseñada (Card 1 del sidebar) se documenta en la guía del sidebar.