Note: The replies to this thread are about the old version (V2), not V3. To see the replies regarding V3 please skip to this post.
Ro-Render is a tool designed to create a top-down orthographic projection of your maps. The primary use case for this tool is to create minimaps in game. This is the third iteration (technically fourth, since the original idea was built by @Widgeon) of this tool and it may be useful to look through old posts and documentations to understand how it works (do note that a lot of what you read in the old posts will no longer apply to V3, only some of it will). It is based on a tool originally created by @Widgeon and then modified for ease of use. The modified version is what is known as “RoRender” (V1 and V2).
Huge shoutout to @StrategicPlayZ for pushing Ro-Render to V3, this was a major undertaking the result of which is massive performance gains and an overall cleaner user experience.
V3 is a completely new version of this tool which matches little to nothing with V2. The main changes in this version are:
- Much faster than V2.
- According to a few quick tests I have done it is about 45 times faster than V2 on my machine. Proper benchmarks are not yet ready, but the speed-up is very significant and can be easily noticed by anyone who has used the V2 before.
- This version uses Parallel Luau V1, which was released by Roblox in June 2022. This makes the rendering much faster than V2 since all cores of your system are utilized to the maximum (the renderer now takes 85% - 100% of the CPU).
- In this version the data to be sent in each Http request is 65535 pixels (this is not a special number, just a normal number we chose, you shouldn’t change it though). Each actor also computes this same amount of pixels. This results in data being computed and sent much faster.
- No map size limits. You do not need to split large maps into pieces anymore.
- Simpler plugin. All settings are configured in a ModuleScript, this makes it very flexible as you can add your own code (if you wish) within the module to customize settings such as RaycastParams. It also reduces the amount of maintenance/bug-fixing we have to do in the plugin.
- No need to open extra Studio windows. You do not need to open multiple Studio windows to utilize multiple cores anymore, as that is done automatically by Parallel Luau.
- The ability to save and store rendering configurations. Since all the settings are contained inside a single ModuleScript, it is now possible to simply save the settings to your computer as a file and load them up later if you wish. (Right click → Save to file).
Firstly, it is highly recommended that you do the render in a local copy of your game as this will enable you to delete transparent and translucent parts (along with a few other adjustments you may want to make for the minimap) without affecting the main game.
- Make sure you have the plugin installed and the appropriate version of the Ro-Render Application (.dmg for Mac, .exe for Windows). We are aware of the large size of the application and have a few ideas which may be included in a future update. You will likely get a warning when you download and run the file, this is not because it is a virus, rather this is because it is an unsigned program, so you can simply ignore the warning. If you are super paranoid then you can check out the source code linked above and compile it yourself (follow the instructions on the link).
- We recommend creating a local copy of your game (no need to republish the game to a new place, just save it into a file).
- It is recommended to delete all transparent and translucent parts in the (copy) game (as transparent parts slow down the render while translucent parts are rendered as opaque).
- Also delete all the scripts in your (copy) game so that they do not possibly interfere with the rendering.
- If you have any large meshes or unions in the (copy) game which will take up a good portion of the render, you should set their CollisionFidelity to “Default”. Also color them with a color that matches with the texture the most (if any), since this plugin cannot render texture.
- Enable Http requests by running the following code in the command bar at the bottom:
game:GetService("HttpService").HttpEnabled = true
- The rendering will take a lot of your CPU usage, so make sure your CPU’s cooling system is working properly.
Now you’re all set for rendering your map.
- Open the place or game you want to render, and then open the Ro-Render V3 plugin.
- Now, click on “Create Settings” button. This will insert the default Ro-Render V3 settings into your game which you can modify.
Make sure to always load the settings in the plugin before messing with the draggers (the purple box and everything else inside the Draggers folder). You can edit the ModuleScript without loading the settings though, but when you want to move or resize the purple box, you should load the settings in the plugin first.
- Click on the “Load Settings” button, this will load the settings which you have currently selected in explorer.
Now that you have inserted and loaded the default settings, it is time to modify them according to the map and your own liking.
The purple box which you see is what specifies the area which you want the plugin to render. The bottom of the purple box should extend till a bit lower than the lowest point of the map’s surface which you want to render (auto configure may violate this, but do not follow auto configure, rather follow what is mentioned here). The top of the purple box should extend till a bit higher than the highest point of the map which you want to include in the render.
You can resize the purple box by moving the two spheres located at opposite corners of the purple box. In order to move or rotate the purple box, deselect everything, then select the settings ModuleScript (not the purple box) and then use Roblox’s move and rotate tools to move and rotate the purple box as you like. Make sure not to rotate an individual corner, select both of them before moving or rotating.
Which part of the purple box will show up at the top of the rendered image? You can find this out by selecting one of the corners, then right click and press “show orientation indicator”. This will show you where the front and the top of the purple box is facing. The front of the purple box will be rendered at the top of the image.
All other settings are located inside the ModuleScript and you can configure them from there. The explanation for each of the settings are also present inside the ModuleScript in the form of comments.
Now that all the settings have been configured, you may now close the plugin and start the rendering.
Make sure to recheck that the Ro-Render Application is running and that the “Start Server” button has been pressed.
It is recommended to open the task manager (on Windows) and activity monitor (on Mac) to monitor CPU and memory usage while rendering.
While rendering Studio may become unresponsive. Do not click on anything in the Studio window while it is unresponsive.
The rendering will take a lot of your CPU usage. If your PC starts to overheat, you can pause the render by setting the “PauseRender” attribute of the “Actors” folder. You can only set this while Studio is responsive, this happens every few seconds when the script temporarily pauses the rendering (to send the pixel data computed so far), so just wait until Studio is responsive then quickly set the “PauseRender” attribute of the “Actors” folder. (This attribute has not been very thoroughly tested so if bugs arise please report them here.)
Now, click the small arrow under the “Play” button in Studio, then press “Run”. This will run the game but will not load any players in, this is important because if you press the Play button your character will be rendered in the map as well (which is not good).
Once the rendering is complete, press the “Download Image” button in the Ro-Render Application to save the render as a .png image.
A major caveat of this plugin is that it cannot render texture. If your map uses a lot of textures especially on large meshes/unions/parts, then those textures will not show up in the final render, only the color of the part will show. You can attempt to fix this by coloring the part to a color that matches the most with the texture, or manually make a rough outline of the main features of the texture via parts and color them accordingly (tedious, I know).
This limitation is not from this plugin, rather it is from Roblox itself (there is no way to get what color of the texture is displayed on a specific point of a part, we can only find the color of the entire part or the color of the terrain’s materials set in the properties of Terrain).