All Projects → rojo-rbx → rbx-dom

rojo-rbx / rbx-dom

Licence: MIT license
Roblox DOM and (de)serialization implementation in Rust

Programming Languages

rust
11053 projects
lua
6591 projects
shell
77523 projects

Labels

Projects that are alternatives of or similar to rbx-dom

Fabric
Fabric provides infrastructure for representing the state of things in your game.
Stars: ✭ 59 (-22.37%)
Mutual labels:  roblox
roblox-js
!!!THIS PROJECT IS NO LONGER MAINTAINED!!! Execute ROBLOX website actions in node.js
Stars: ✭ 46 (-39.47%)
Mutual labels:  roblox
RobloxLsp
Roblox Luau Language Server based on Lua by sumneko.
Stars: ✭ 150 (+97.37%)
Mutual labels:  roblox
awesome-roblox
A curated list of ROBLOX resources, plugins and frameworks!
Stars: ✭ 76 (+0%)
Mutual labels:  roblox
Roblox-Miscellaneous
A set of ROBLOX based utilities
Stars: ✭ 21 (-72.37%)
Mutual labels:  roblox
EvLightning
EvLightning is a Roblox Lua library. Its purpose is to generate realistic-looking lightning bolts. This could be used to easily add lightning strike effects to any game
Stars: ✭ 34 (-55.26%)
Mutual labels:  roblox
bypass-captcha-examples
Different complex captcha bypass examples: Steam, Netflix, Data Dome, Adobe, etc.
Stars: ✭ 62 (-18.42%)
Mutual labels:  roblox
Bloxlink
Roblox Verification bot written in Python. Open-source as of 12/19/2020.
Stars: ✭ 62 (-18.42%)
Mutual labels:  roblox
roact-material
Material design in Roblox w/ Roact!
Stars: ✭ 18 (-76.32%)
Mutual labels:  roblox
Quicksave
DataStore abstraction library. Looking for a new maintainer.
Stars: ✭ 26 (-65.79%)
Mutual labels:  roblox
StudioComponents
(WIP) Roact implementations of Roblox Studio components.
Stars: ✭ 35 (-53.95%)
Mutual labels:  roblox
Lua-Obfuscator
A Lua Obfuscator made for Roblox, but should work on most Lua applications
Stars: ✭ 84 (+10.53%)
Mutual labels:  roblox
Roblox
Some of mine and other people's old codes that we used to run them in Script Builder.
Stars: ✭ 32 (-57.89%)
Mutual labels:  roblox
TopbarPlus
Construct dynamic and intuitive topbar icons. Enhance the appearance and behaviour of these icons with features such as themes, dropdowns and menus.
Stars: ✭ 51 (-32.89%)
Mutual labels:  roblox
qbot
Qbot is an advanced, easy to setup, free, and unbranded Discord-Roblox ranking bot. If at any time during setting it up you need assistance, you can join the support server.
Stars: ✭ 56 (-26.32%)
Mutual labels:  roblox
rojo.space
Rojo website
Stars: ✭ 32 (-57.89%)
Mutual labels:  roblox
luacheck-roblox
Luacheck specifications for Roblox Lua
Stars: ✭ 36 (-52.63%)
Mutual labels:  roblox
studio-bridge
Automatic syncing of files to Roblox Studio
Stars: ✭ 12 (-84.21%)
Mutual labels:  roblox
plasma
A declarative, immediate mode UI widget library for Roblox.
Stars: ✭ 35 (-53.95%)
Mutual labels:  roblox
Lua-Obfuscator
Obfuscate your lua code because it's so easy to steal!
Stars: ✭ 69 (-9.21%)
Mutual labels:  roblox

rbx-dom

rbx-dom is a collection of cross-platform libraries that enables any software to interact with Roblox instances.

Documentation about the project is hosted at dom.rojo.space.

rbx_dom_weak

rbx_dom_weak on crates.io rbx_dom_weak docs

Weakly-typed Roblox DOM implementation. Defines types for representing instances and properties on them.

rbx_types

rbx_types on crates.io rbx_types docs

Contains Roblox's value types like Vector3 and NumberSequence. Used by crates like rbx_dom_weak and a future rbx_dom_strong crate to let them share types and conversions.

rbx_xml

rbx_xml on crates.io rbx_xml docs

Serializer and deserializer for for Roblox's XML model and place formats, rbxmx and rbxlx.

rbx_binary

rbx_binary on crates.io rbx_binary docs

Serializer and deserializer for for Roblox's binary model and place formats, rbxm and rbxl.

rbx_reflection

rbx_reflection on crates.io rbx_reflection docs

Roblox reflection types for working with Instances in external tooling.

rbx_reflection_database

rbx_reflection_database on crates.io rbx_reflection_database docs

Bundled reflection database using types from rbx_reflection. Intended for users migrating from rbx_reflection 4.x and users who need reflection information statically.

rbx_util

Command line utility to convert and debug Roblox model files.

rbx_dom_lua

Roblox Lua implementation of DOM APIs, allowing Instance reflection from inside Roblox. Uses a data format that's compatible with rbx_dom_weak to facilitate communication with applications outside Roblox about instances.

Property Type Coverage

Property Type Example Property rbx_types rbx_dom_lua rbx_xml rbx_binary
Axes ArcHandles.Axes
BinaryString Terrain.MaterialColors
Bool Part.Anchored
BrickColor Part.BrickColor
CFrame Camera.CFrame
Color3 Lighting.Ambient
Color3uint8 Part.BrickColor
ColorSequence Beam.Color
Content Decal.Texture
Enum Part.Shape
Faces Handles.Faces
Float32 Players.RespawnTime
Float64 Sound.PlaybackLoudness
Int32 Frame.ZIndex
Int64 Player.UserId
NumberRange ParticleEmitter.Lifetime
NumberSequence Beam.Transparency
OptionalCoordinateFrame Model.WorldPivotData
PhysicalProperties Part.CustomPhysicalProperties
ProtectedString ModuleScript.Source
Ray RayValue.Value
Rect ImageButton.SliceCenter
Ref Model.PrimaryPart
Region3 N/A
Region3int16 Terrain.MaxExtents
SharedString N/A
String Instance.Name
UDim UIListLayout.Padding
UDim2 Frame.Size
Vector2 ImageLabel.ImageRectSize
Vector2int16 N/A
Vector3 Part.Size
Vector3int16 TerrainRegion.ExtentsMax
QDir Studio.Auto-Save Path
QFont Studio.Font

Implemented | Unimplemented | Partially Implemented | Never

Outcome

This project has unveiled a handful of interesting bugs and quirks in Roblox!

  • GuiMain.DisplayOrder is uninitialized, so its default value isn't stable
  • MaxPlayersInternal and PreferredPlayersInternal on Players are scriptable and accessible by the command bar
  • Instantiating a NetworkClient will turn your edit session into a game client and stop you from sending HTTP requests
  • ContentProvider.RequestQueueSize is mistakenly marked as serializable
  • Trying to invoke game:GetService("Studio") causes a unique error: singleton Studio already exists
  • Color3 properties not serialized as Color3uint8 would have their colors mistakenly clamped in the XML place format. This was bad for properties on Lighting.
  • ColorSequence's XML serialization contains an extra value per keypoint that was intended to be used as an envelope value, but was never implemented.

Minimum Rust Version

rbx-dom supports Rust 1.59.0 and newer. Updating the minimum supported Rust version will only be done when necessary, but may happen as part of minor version bumps.

License

rbx-dom is available under the MIT license. See LICENSE.txt for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].