Explicación de la Estructura del Archivo de Guardado de RPG Maker - Análisis Técnico
Introducción
Para los desarrolladores y entusiastas de la edición de guardados, entender el formato .rpgsave es crucial. A diferencia de los motores que utilizan bases de datos binarias complejas, RPG Maker MV y MZ utilizan un enfoque basado en web, aprovechando JSON para el almacenamiento de datos.
Este artículo proporciona una inmersión técnica profunda en cómo RPG Maker estructura sus datos de guardado, maneja la compresión y organiza el estado del juego.

Compresión y Codificación de Archivos
Antes de llegar a los datos JSON reales, el motor aplica varias capas de transformación:
1. Capa de Compresión (LZString)
El objeto JSON crudo se convierte primero en una cadena y luego se comprime utilizando el algoritmo LZString. LZString es una biblioteca de compresión rápida basada en LZW diseñada específicamente para almacenar grandes cantidades de datos en localStorage (que tiene límites estrictos de tamaño).
Nota: RPG Maker MZ a menudo omite este paso y almacena JSON más directo, pero MV lo utiliza mucho.
2. Capa de Codificación (Base64)
La cadena binaria comprimida se codifica luego en Base64 para hacerla segura para el transporte y el almacenamiento de texto.
El Flujo de Guardado:
Objeto JSON -> Cadena JSON -> LZString (Comprimido) -> Base64 -> .rpgsave
El Flujo de Carga:
.rpgsave -> Decodificar Base64 -> Descomprimir LZString -> Analizar JSON -> Objeto de Juego
La Estructura JSON Raíz
Una vez decodificado, el objeto de guardado raíz contiene varias claves de nivel superior que dividen el estado del juego:
{
"system":Object,
"screen":Object,
"timer":Object,
"switches":Object,
"variables":Object,
"selfSwitches":Object,
"actors":Object,
"party":Object,
"map":Object,
"player":Object
}
1. System ($gameSystem)
Almacena configuraciones a nivel de sistema.
_versionId: ID aleatorio verificado contra los archivos de datos del juego para asegurar la compatibilidad._saveCount: Número de veces que se ha guardado el juego._bgmOnSave: Música de fondo reproduciéndose en el momento del guardado.
2. Switches ($gameSwitches)
Una matriz (array) simple de valores booleanos.
- Índice: ID del Interruptor (como se ve en el editor).
- Valor:
true(ON) ofalse(OFF/null).
Consejo de Edición: Establecer un índice específico a true puede omitir misiones o desbloquear contenido.
3. Variables ($gameVariables)
Una matriz de valores numéricos o de cadena.
- Índice: ID de la Variable.
- Valor: Típicamente un entero, pero puede ser cualquier tipo.
4. Party ($gameParty)
Gestiona el estado “global” del grupo del jugador.
_gold: Cantidad actual de moneda._steps: Pasos totales dados._items: Objeto{ID_Objeto: Cantidad}._weapons: Objeto{ID_Arma: Cantidad}._armors: Objeto{ID_Armadura: Cantidad}._actors: Matriz de IDs de Actores actualmente en el grupo activo.
5. Actors ($gameActors)
Almacena el estado individual de cada personaje.
_classId: ID de la clase actual del actor._level: Nivel actual._exp: Objeto que mapea IDs de Clase a puntos de Experiencia totales._skills: Matriz de IDs de Habilidades aprendidas._equips: Matriz de IDs de objetos equipados (Arma, Escudo, Cabeza, Cuerpo, Accesorio).
6. Map ($gameMap)
El estado del mapa actual.
_mapId: ID del mapa en el que se encuentra el jugador._events: Estado de los eventos que se están ejecutando actualmente.
Diferencias: MV vs MZ
Aunque la estructura de datos lógica es casi idéntica, el formato de archivo difiere ligeramente:
| Característica | RPG Maker MV | RPG Maker MZ |
|---|---|---|
| Extensión | .rpgsave | .rmmzsave |
| Compresión | LZString (Casi siempre) | A menudo solo JSON puro o Zip |
| Encabezado | Ninguno (Comienza con contenido) | Ninguno |
Manejo de Scripts Personalizados
Muchos juegos de RPG Maker utilizan complementos (plugins) (Yanfly, VisuStella). Estos complementos a menudo inyectan sus propios datos en el archivo de guardado.
- Plugin Managers: A menudo almacenan datos en
Systemo en un objeto separado completamente nuevo. - Alias de Propiedades: Los complementos pueden añadir sufijos como
_GoldMaxo_ClassLevel_2a objetos existentes.
Advertencia: Si editas un guardado y eliminas datos requeridos por un complemento, el juego probablemente fallará al cargar.
Guía de Implementación para Desarrolladores de Herramientas
Si estás construyendo tu propio editor de guardados:
- Detección: Comprueba si el archivo es JSON válido. Si no, intenta decodificar Base64.
- Descompresión: Si el resultado JSON parece basura binaria, intenta descomprimir con LZString.
- Seguridad: Nunca uses
eval()en los datos guardados. Siempre usaJSON.parse(). - Re-codificación: Debes aplicar exactamente las mismas transformaciones (LZString -> Base64) al guardar, o el juego no reconocerá el archivo.
Conclusión
La arquitectura de guardado de RPG Maker es robusta y flexible, basándose en tecnologías web estándar. Esto la hace una de las estructuras de guardado más fáciles de analizar y modificar, siempre que manejes las capas de compresión correctamente.
Para ver esta estructura en acción, carga cualquier archivo .rpgsave en nuestro Editor de RPG Maker y cambia a la “Vista Avanzada” para explorar el árbol JSON crudo.
Última actualización: Enero 2026
Artículos Relacionados
¿Listo para editar tu partida?
Usa nuestro editor online gratuito para modificar tus juegos al instante.
Iniciar EditorArtículos Relacionados
Cómo Editar Archivos de Guardado de RPG Maker (.rpgsave & .rvdata2) Online
Aprende a modificar oro, estadísticas y objetos en juegos de RPG Maker MV, MZ, VX Ace y XP usando nuestro editor de guardado online gratuito.
Edición de Guardados de GameMaker: Guía Completa de Archivos INI y JSON
Domina el arte de editar archivos de guardado de GameMaker Studio. Aprende a modificar configuraciones INI, guardados JSON y formatos binarios para juegos como Undertale, Deltarune y más.