Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gregorycomer/librbxl
An open source library for reading and writing Roblox rbxl files.
https://github.com/gregorycomer/librbxl
Last synced: 15 days ago
JSON representation
An open source library for reading and writing Roblox rbxl files.
- Host: GitHub
- URL: https://github.com/gregorycomer/librbxl
- Owner: GregoryComer
- License: mit
- Created: 2016-09-25T09:54:29.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2016-10-29T20:57:48.000Z (about 8 years ago)
- Last Synced: 2024-12-13T16:06:44.027Z (25 days ago)
- Language: C#
- Size: 236 KB
- Stars: 15
- Watchers: 4
- Forks: 4
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE-LZ4NET.txt
Awesome Lists containing this project
README
# LibRbxl - A software library for working with .rbxl files.
[![Build Status](https://travis-ci.org/GregoryComer/LibRbxl.svg?branch=master)](https://travis-ci.org/GregoryComer/LibRbxl)
## About
LibRbxl is software library targeting .NET 4.5 and that provides an easy way to read and write Roblox .rbxl files.## Usage Examples
Add a script to an existing place.
```csharp
var doc = RobloxDocument.FromFile("Example.rbxl");
var serverScriptService = doc:FindFirstChild("ServerScriptService");
var script = new Script();
script.Source = "print(\"Hello, World!\")";
script.Parent = serverScriptService;
doc.Save("Example.rbxl");
```
Open a file and count the number of parts.
```csharp
var doc = RobloxDocument.FromFile("Example2.rbxl");
var partCount = doc.Instances.Count(n => n Is Part);
```
Create document from scratch.
```csharp
var doc = new RobloxDocument();
var workspace = new Workspace();
doc.Children.Add(workspace);
var model = new Model();
model.Name = "ExampleModel";
model.Parent = workspace; // Setting the parent property automatically adds the instance as a child of the parent
doc.Save("Example3.rbxl");
```
## Build
LibRbxl is a stand-alone DLL. To compile it, you will need Visual Studio. Clone the repository locally and build it using the solution file.
## Contribute
Contributions are welcome! If you're not inclined to dig into the code yourself, but encounter an issue, feel free to submit an issue using the GitHub issue tracker.
## Major Open Tasks
* Solid Modeling - Currently, solid modeling data is supported only through unmanaged properties (no parsing is done). Further work is needed to understand the format of solid modeling data and support it through the use of strongly typed properties on Instance classes.
* Terrain - Similar to Solid Modeling, no parsing is done on terrain data. Further understanding of the format of terrain data is needed to implement proper support for the terrain data in the library.
* Additional Instance Types and Properties - While the majority of Roblox classes and properties have a matching .NET class in the LibRbxl.Instances namespace, a number do not, particularly those that do not show up in the Roblox Studio Object Browser. These need to be documented and implemented.## Contributors
* Gregory Comer - Author
* [DanDevPC](https://github.com/DanDevPC)## License
LibRbxl is open source, and is licensed under the MIT License. The full text is included in the repository.