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.
- 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)
Option | Explanation |
---|---|
-i --input | Input RBXLX file to convert |
-o --output | (optional) Output file, default: "./rbxlx_out.vmf" |
--texture-output | (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 | Selects which version of source engine to generate map for |
- Run
cargo build --release
in top level project directory
- Run
build.bat
orbuild.sh
shell 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"