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. |
usingSystem;usingSystem.Linq;usingSystem.Threading.Tasks;usingRobloxScriptExplorer.Logica;classProgram{staticasyncTaskMain(){// 1. Inicializar el motor y cargar el archivo .rbxlvarmanager=newRbxlPlaceManager();awaitmanager.LoadAsync(@"C:\RobloxPlaces\MiJuego.rbxl",(status,progress)=>{Console.WriteLine($"[{progress*100:F0}%] {status}");});// 2. Inyectar Script en ReplicatedStoragevarrepStorage=manager.Instances.Values.FirstOrDefault(i =>i.Name=="ReplicatedStorage"&&i.IsService);if(repStorage!=null){varmoduleScript=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 ServerScriptServicevarserverScripts=manager.Instances.Values.FirstOrDefault(i =>i.Name=="ServerScriptService"&&i.IsService);if(serverScripts!=null){varserverScript=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ónstringbackupCreado=awaitmanager.SaveAsync(@"C:\RobloxPlaces\MiJuego.rbxl");Console.WriteLine($"🎉 Guardado con éxito. Backup seguro en: {backupCreado}");}}varmanager=newRbxlPlaceManager();awaitmanager.LoadAsync(@"C:\RobloxPlaces\MiJuego.rbxl");// Buscar el script por su nombrevarscript=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";awaitmanager.SaveAsync();}varmanager=newRbxlPlaceManager();awaitmanager.LoadAsync(@"C:\RobloxPlaces\MiJuego.rbxl");// Genera una estructura completa de carpetas con archivos .luau, modelos .rbxmx y un manifest JSONstringcarpetaDestino=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.