Librería y herramienta de alto rendimiento en C# (.NET 8) para leer, explorar, editar, inyectar scripts Luau, exportar y guardar archivos binarios de Roblox Studio (.rbxl / .rbxmx) con Preservación Quirúrgica del 100% de Chunks (mallas 3D, terrenos, físicas, uniones e iluminación intactos).
- ⚡ Preservación Quirúrgica de Chunks: Mantiene el 100% de los objetos 3D (
Part,MeshPart,Terrain,Weld,Lighting), editando e inyectando scripts sin corromper el mapa. - 📦 Inyección y Creación Dinámica de Scripts: Inserta
Script,LocalScriptyModuleScripten cualquier carpeta o servicio (ReplicatedStorage,ServerScriptService,Workspace,StarterGui, etc.). - 🛡️ Sistema de Backups Rotativo FIFO (Máximo 5): Crea copias de seguridad automáticas en
%LocalAppData%\RobloxScriptExplorer\Backups\antes de modificar cualquier archivo. - 🧊 Exportación a Modelos Roblox (
.rbxmx) y Luau (.luau): Exporta scripts, interfaces y modelos directamente a archivos Luau limpios y modelos arrastrables en Roblox Studio. - 🚀 Bajo Consumo de Memoria RAM (40 MB): Optimizado con purga automática del Working Set (
MemoryOptimizer.TrimMemory). - 💻 Arquitectura Desacoplada: El núcleo lógico (
Logica/) es 100% independiente de la interfaz gráfica y puede ser importado en herramientas de consola, scripts de automatización o bots.
| Módulo | Descripción |
|---|---|
RbxlPlaceManager.cs |
Fachada principal de alto nivel (LoadAsync, SaveAsync, CreateScript, DeleteInstance, ExportCompleteProject). |
RobloxBinaryFormat.cs |
Capa binaria de bajo nivel (Descompresión LZ4, decodificación/codificación zigzag de deltas, validación de encabezado mágico de 14 bytes <roblox!\x89\xff\r\n\x1a\n). |
PropChunkHelper.cs |
Serialización y escalado exacto de propiedades binarias (Source, Name, Capabilities, UniqueId, Enums). |
BackupService.cs |
Motor de copias de seguridad automáticas con límite rotativo de 5 versiones por mapa. |
MemoryOptimizer.cs |
Módulo de optimización y purga de memoria RAM en tiempo real vía APIs de Windows (EmptyWorkingSet). |
RobloxInstance.cs |
Modelo de datos y diagnóstico para instancias de Roblox. |
RobloxClassInfo.cs |
Metadatos y definición de clases del motor de Roblox Studio. |
using System;
using System.Linq;
using System.Threading.Tasks;
using RobloxScriptExplorer.Logica;
class Program
{
static async Task Main()
{
// 1. Inicializar el motor y cargar el archivo .rbxl
var manager = new RbxlPlaceManager();
await manager.LoadAsync(@"C:\RobloxPlaces\MiJuego.rbxl", (status, progress) => {
Console.WriteLine($"[{progress * 100:F0}%] {status}");
});
// 2. Inyectar Script en ReplicatedStorage
var repStorage = manager.Instances.Values
.FirstOrDefault(i => i.Name == "ReplicatedStorage" && i.IsService);
if (repStorage != null)
{
var moduleScript = manager.CreateScript("SharedConfig", "ModuleScript", repStorage.Id);
moduleScript.Properties["Source"] = "local Config = { Version = '1.0.0' }\nreturn Config\n";
Console.WriteLine($"✅ Módulo inyectado en ReplicatedStorage (ID: {moduleScript.Id})");
}
// 3. Inyectar Script en ServerScriptService
var serverScripts = manager.Instances.Values
.FirstOrDefault(i => i.Name == "ServerScriptService" && i.IsService);
if (serverScripts != null)
{
var serverScript = manager.CreateScript("AntiCheatService", "Script", serverScripts.Id);
serverScript.Properties["Source"] = "print('🛡️ Servicio de Seguridad Iniciado')\n";
Console.WriteLine($"✅ Script de Servidor inyectado en ServerScriptService (ID: {serverScript.Id})");
}
// 4. Guardar y Reemplazar con Auto-Verificación
string backupCreado = await manager.SaveAsync(@"C:\RobloxPlaces\MiJuego.rbxl");
Console.WriteLine($"🎉 Guardado con éxito. Backup seguro en: {backupCreado}");
}
}var manager = new RbxlPlaceManager();
await manager.LoadAsync(@"C:\RobloxPlaces\MiJuego.rbxl");
// Buscar el script por su nombre
var script = manager.Instances.Values
.FirstOrDefault(i => i.Name == "GameManager" && i.IsScript);
if (script != null)
{
script.Properties["Source"] = "-- Código Luau actualizado automáticamente\nprint('Actualizado!')\n";
await manager.SaveAsync();
}var manager = new RbxlPlaceManager();
await manager.LoadAsync(@"C:\RobloxPlaces\MiJuego.rbxl");
// Genera una estructura completa de carpetas con archivos .luau, modelos .rbxmx y un manifest JSON
string carpetaDestino = manager.ExportCompleteProject(@"C:\RobloxProyectos\Exportados");
Console.WriteLine($"Proyecto exportado en: {carpetaDestino}");roblox, rbxl, rbxm, roblox-studio, roblox-binary-format, luau, csharp, dotnet8, script-injection, roblox-parser, place-file-editor, roblox-tools
Los archivos exportados en formato .rbxmx son paquetes oficiales de Roblox que contienen modelos 3D, interfaces gráficas, sonidos y scripts Luau con su código integrado.
- Abre Roblox Studio con tu mapa cargado o una plantilla en blanco.
- En la ventana del Explorador (Explorer), localiza el servicio correspondiente (por ejemplo:
StarterGui,WorkspaceoReplicatedStorage). - Haz clic derecho sobre el servicio de destino.
- Selecciona
Insert from File...(Insertar desde archivo...). - Elige el archivo
.rbxmxexportado (ej:StarterGui.rbxmx). - ¡Listo! Todo el contenido, scripts e interfaces aparecerán instantáneamente en su lugar correcto.
- También puedes arrastrar el archivo
.rbxmxcon el ratón y soltarlo directamente sobre la ventana del visor 3D o el Explorador de Roblox Studio.
Este proyecto está bajo la Licencia MIT - eres libre de usarlo, modificarlo e integrarlo en tus propios proyectos personales o comerciales.