RBXLX2VMF
RBXLX2VMF copied to clipboard
Roblox to Source Engine map converter
Roblox to Source Engine map converter
Converts Roblox XML-format maps (.rbxlx) to source engine (.vmf) maps.
Web App version found here
Note: The web-app runs entirely in your local browser, performance is dependant on your device.
Feel free to open issues/discussions for feature requests or other improvements.
Recommended process
- Design or open Roblox map
- Add StringValue with name or value 'func_detail' to detail models, or set the name of the model itself to 'func_detail' (Note: Nested models are also marked detail)
(This step may also be done after conversion, in hammer) - Save map in XML (*.rbxlx) format
- Run conversion tool
- Move VTF and VMT texture files to game material folder (E.g. 'Map.zip/rbx' -> 'Team Fortress 2\tf\materials\rbx')
- Open VMF File in hammer or hammer++
What you get:
- Part geometry converted to brushes.
- Basic support for func_detail
- Textures (VMT + VTF)
- (Optional) Basic optimization by joining adjacent parts
- (Optional) bounding box skybox
(Note: No support for Meshes or terrain. Cylindrical and truss parts get converted into cuboid brushes. Spherical parts get converted into displacements)
Command-line options
| Option | Explanation |
|---|---|
| -i --input <FILE> | Input RBXLX file to convert |
| -o --output <FILE> | (optional) Output file, default: "./rbxlx_out.vmf" |
| --texture-output <FOLDER> | (optional) Texture output folder, default: "./textures-out/" |
| --dev-textures | (optional) Use source engine developer textures instead of generating map textures |
| --map-scale |
(optional) Scale conversion from Roblox studs to Source Engine Hammer Units, default: 15.0 HU/stud |
| --no-textures | Disables texture generation & output |
| --auto-skybox | Include automatically generated skybox |
| --skybox-height |
Adds margin space between the top of the map and the skybox, height in Roblox studs |
| --optimize | Enables part-count optimization by joining identical adjecent parts into a single map brush WARNING: This may take a very long time on large maps |
| -g --game <GAME> | Selects which version of source engine to generate map for |
Building
CLI Version
- Run
cargo build --releasein top level project directory
Webassembly Version
- Run
build.batorbuild.shshell script with 'rbxlx2vmf-web' as current-directory.
Or manually, in 'rbxlx2vmf-web' directory:
- Run
cargo build --target wasm32-unknown-unknown --release - Run
wasm-bindgen --target web --no-typescript --out-dir . "./target/wasm32-unknown-unknown/release/rbxlx2vmf_web.wasm" - Run
wasm-gc "./rbxlx2vmf_web_bg.wasm" - Move
"./rbxlx2vmf_web_bg.wasm"to"./html/rbxlx2vmf_web_bg.wasm" - Move
"./rbxlx2vmf_web.js"to"./html/rbxlx2vmf_web.js"