How to Remix Run the Block

Run the Block is our first ever copyable and fully changeable Rec Room Original. So, we’ve written out a guide that explains the various systems in the game and how you can modify them when you clone the room. Everything in this room can be built by a creator in the Rec Room community. You can also use a lot of the concepts here to understand how to clone and remix some of our other new copyable games like ^EvergrownPVP and ^BonkysInferno.

First things first, Run The Block is complex. If all you want to do is add shapes or props from the maker pen palette to the room, that is very simple. However, to make major modifications to the room, you should be familiar with Circuits, and you’ll likely need to have access to Rec Room Studio. To get started, navigate to the Run The Block room in the game and make your own copy of it.


Press the circled copy button in the upper right corner of the room details page

Map Modifications

With the maker pen you can add shapes on top of what already exists in Run The Block. However, if you want to do extensive modification to the map, you’ll need Rec Room Studio. Once you open your copy of the room in Rec Room Studio you can move and alter anything you see in the Unity scene. A large portion of the map is built using ProBuilder, which you would use to edit specific objects like buildings, bridges etc.

How to edit a building
  1. If you want to edit a building, click on one, navigate to the inspector, and then press the circled “Edit” button on the “ProBuilder Optimization (Rec Room Studio)” component.

  1. From here, if you look at the top of the Unity navigation bar and go to Tools → ProBuilder → ProBuilder Window you can use all the tools in this window to modify various aspects of the map, delete them, or add even more!

  1. We will not go in-depth on how to use ProBuilder here but you can get started with the tutorials and Unity documentation you can find here**

Note: Once you edit a ProBuilder mesh you will need to optimize it again, or you can simply remove the Optimization component if you don’t want to. This is used to reduce the overall size of the scene by breaking out the mesh into a separate asset. This is useful if you’re hitting the Rec Room Studio size upload limit.

Bounce Pads

Bounce Pads can be added to your room without the use of Rec Room Studio. To do this, you can create a shape from the Maker Pen and simply add the “BouncePad” tag to it.

Anything you want to be a bounce pad must be configured to the “Environment” physics mode.

How to add SFX for bounces

If you want to play the SFX for bouncing on cars or umbrellas you can add the “Car” or “Umbrella” tag respectively.

How to modify locations of existing bounce pads

If you would like to modify specific locations of the car or umbrella bounce pads that are already in the map you will need Rec Room Studio. Though you can also remove them entirely by unfreezing them and deleting them with the Maker Pen.

To modify specific bounce pad locations already in the map, edit either the (CarBouncePads) or (UmbrellaBouncePads) prefab in context using these buttons.

From here you can simply move the cars or umbrellas around and save the room from Rec Room Studio.

Graffiti

All of the Run the Block graffiti art is based on inventory items. You can find these in This Room → Room Settings → Inventory items.

With the maker pen, you can edit a few aspects of graffiti: editing graffiti tag art, adding new graffiti, and changing their locations.

How to change Graffiti

If you want to change the art on one of the graffiti tags you can hit the gear button to edit the image of the graffiti with an image from the Sharecam.

How to add Graffiti
  1. If you want to add more graffiti tags, you can make another inventory item with the same settings as the other graffiti tags.

  1. Then, add the inventory item to players in Circuits using the Add Inventory Item chip

  1. Add another entry to this list by the graffiti circuits circled in the image below.


  1. You should now be able to walk up to a graffiti spot and press the reload button while holding the spray can to cycle through all the graffiti tags that are in your inventory.

How to change Graffiti spots and add new locations

To change the location of a graffiti spot that is already in the game, you simply move the location with the Maker Pen. No other changes are needed.

To make a new spot you should clone a graffiti that already exists and move it to the new locations. Once you have it in a spot you like, you will want to alter one of the tags on it. When you configure the (GraffitiTag) you will notice the tag #graffiti, which you will want to keep, but you should remove the tag with the number and put in a new number by clicking the “+”. This is the ID of the graffiti.

It is important to ensure that no graffiti tags have the same number and that these are in a linear order. For example, you cannot have the following IDs: 1,2,3,6 or you will encounter errors. In the previous example, the ID 6 would need to be removed and replaced with 4.

Climbable Surfaces

To add a new climbable surface to RTB, simply add new shapes and use the configure menu to turn on the “Is Climbable” toggle.

The ladders in RTB are configurable with the Maker Pen but were added inside of Rec Room Studio. If you want to modify any of their locations/meshes you will need Rec Room Studio.

Grind Rails

To add or edit grind rails you will need Rec Room Studio. However, you can tune how a player interacts with the grind rails with the maker pen - see the locomotion section in this post for details on how that works.

How to add a Grind Rail

In Rec Room Studio navigate to the (RailSystem) prefab to make the following edits:

  1. Make a new object under (RailSystem). In this image, you can see we created a new object called “Rail”. Only Rails can be direct children because we calculate indices based on that.
  • Your new rail needs to be last in the hierarchy so that we don’t break existing indices
  • You’ll need to add an object to hold your meshes (like the Meshes object in the picture).
    You can have single or multiple meshes
  • You’ll need another object to hold your points (like the Points object in the picture). The points are each point on the grind rail that a player would go along.

  1. Now we need to hook up our new Rail to our existing circuit system using Studio Functions on the prefab. Add a case to GetPointCountForRail that returns the GetChildCount for your rail.

  1. Add a new switch instruction to GetSegmentExtentsFromRail for your rail.

  1. Add Points to your new Rail. For every pair of points, add an entry to GetSegmentExtentsFromRail. This returns the positions of the two points.

Challenges

To add new Challenges to your copy of Run The Block, you’ll need to do a few different things in a particular order, none of which require Rec Room Studio.

How to add your challenge using the Challenge Index data table

The Challenge Index Data Table is found near the Challenge graph above the Sewer Manhole.

  1. There are two Data Tables in this graph: Challenge Index (above the Time Trial Manager board) and Challenge Checkpoints (below it). For now, edit the Challenge Index Data Table; we’ll return to Challenge Checkpoints shortly!

  1. Add a new Row to this Data Table and add the name of your new Challenge to the first Column. You can use a placeholder name for now, but remember to correct it later if you choose to change it!

You’ll notice that this Data Table has more columns than just the Name for the Challenge - it also describes the:

  • Start Transform (split into separate Position and Rotation columns): describing the point the Player is moved to when they start a Challenge
  • Return Transform: describing the point the player is moved to when they complete a Challenge
  1. If you already have the Transform data for your Start/Return points ready, you can add them to the Challenge Index now, but you can also save this for later.

One more note on these columns: both the Position and the Rotation columns are configured as Strings, not Vector3s. This makes the data quite a bit easier to edit, both manually as well as by copying Transform data from Unity/RRS, but you should be mindful of maintaining Vector3 formatting in the String, as the Strings go through a Parse Vector3 function that attempts to convert the String value into a valid Vector3. As long as your cells look something like traditional Vector3 notation, e.g. “(x, y, z)”, you should be set!

How to set checkpoints using the Challenge Checkpoints data table

Similar to how we define the Start and Return points via their Transform data, the Challenge Checkpoints Data Table exists to define the position and rotation of the Checkpoints for each Challenge the same way.

  1. Start by clicking the Challenge Checkpoints Data Table

  1. This image below shows the Challenge Checkpoints Data Table, specifically the rows that define the route of Gazebo, the first Challenge in Run The Block!

  1. You can alter these columns to set your checkpoint
  • Challenge Name: contains the name of the Challenge that these Checkpoints belong to
    • This name should match the name you added to the Challenge Index Data Table, and it should be an exact match in all cells!
  • Checkpoint Position and Checkpoint Rotation: define the Transform data for the placement of the Checkpoint in the Challenge.
    • Use standard Vector3 notation (X,Y,Z) to define the Position and Rotation here.
  • Stomp: define whether that Checkpoint will use the Stomp visuals rather than the standard Checkpoint arrow.
    • We use this in a few Challenges in Run The Block to encourage players to Stomp at a particular point in the route, but the Player is never required to Stomp in order to hit a Checkpoint.

Here’s a tip: we recommend placing a temporary Vector Component in the Room to figure out the ideal Position and Rotation for your Checkpoints! If you Configure the Vector Component in Advanced Creation Mode on PC or by using a “Get Position”/”Get Rotation” and a “To String”, copying the Position and Rotation data from the Transform section to the Challenge Checkpoints Data Table will result in a Checkpoint that is placed and rotated exactly the same way your Vector Component is in the Room! You can use this method to find the Start and Return points for the Challenge Index as well.

  1. The last thing to note about this Data Table is that the order of the Checkpoints in a Challenge is the same as the order of the rows in the Data Table; if you want to reorder your Checkpoints, all you need to do is move the row in the Data Table!
How to create the Challenge Object

Now, we come to the last step of making a new Challenge, which is the Challenge Object itself!

  1. Duplicate any of the Challenges in the Room. Here, we’ve copied Challenge: Upward (the original is on the left, the copy is on the right).

  1. Access the Circuit Board for the new Challenge, which has a few things we’ll want to edit and hook up.

  1. Title your challenge’s name and ensure that it’s an exact match to the matching entries in both the Data Tables we’ve edited so far. We have our Challenge’s name as “Upward” in the String called Trial Name. If you want to confirm that your Challenge name matches one that exists in the Challenge Index, you can hover over the Challenge ID integer output; if you see a -1, then the name does not exist in the Challenge Index!

  2. The next String input is Required Abilities, which works as a list of abilities the Player needs in order to unlock the Challenge. If you don’t want your Challenge to hook directly into Run The Block’s locomotion features, then you can leave this input empty, but you could also list as many of the following abilities as you’d like, split up by commas and spaces: Dash, Air Dash, Stomp, Wall Run.

  3. We have three Float inputs for the Gold, Silver, and Bronze times for the Challenge. In Run The Block, these are used to gate different rewards like Upgrade Points and Cash behind higher tiers of success. As such, the Gold Time should be smaller than the Silver Time, and the Silver Time shorter than the Bronze Time.

  4. Hook the Best Times Cloud List input to the corresponding Cloud variable in the Challenge Board, which can be found here. Hooking into this Cloud list is what allows a Player’s time on your new Challenge to be saved to the Player’s cloud data, so the time stays the same across sessions!

Player Locomotion Upgrades & Costs

One of the biggest parts of Run The Block is its Player Locomotion graph, which defines all of the numerous abilities and upgrades Players can acquire as they play through the game. This graph exists above the park, and there are many ways you can modify the circuits to change your Room’s locomotion feel, all with the maker pen!

How to modify Abilities and Upgrades using Data Tables

Near the top of the Player Locomotion graph, there’s a big stack of Event Definitions and a couple of very important Data Tables. You can edit the variables within these tables to change a player’s locomotion. Here’s what each of these tables edit.

Movement Stats Data Table: defines the speed (in meters per second) of various Locomotion states/abilities in the game based on the Player’s current Move Speed Level (with the exception of Jump Height). Your Move Speed Level is an Integer with a value between 0 and 5, and we use that value to read a particular row on this Data Table when referencing, say, your Sprint Speed or your Slide Speed. If you want to change the speed of any ability, you can do so by modifying its speed value here!

Movement Stats Level-Up Costs Data Table: dictates how many Upgrade Points are required to purchase the subsequent upgrades of any given ability. (As a treat, you’ll see some columns in this Data Table for upgradeable abilities that we didn’t end up incorporating into the final game!) The value in any cell represents the cost to move from that level of the ability up to the next, so the value 6 in the cell at column Jump Height Cost, row 1 means that you must spend 6 Upgrade Points to go from Jump Height Level 1 to Level 2. As with the previous Data Table, you can make modifications here to tweak upgrade costs in Run The Block!

Upgrade Rank Requirements Table: Allows you to lock ability upgrades behind a particular Rank. In Run The Block, your Runner Rank is stored as an Integer value from 0 to 5, corresponding to the letters F, D, C, B, A, and S. In practice, this means that, for example, Stomp requires the Player to be at Runner Rank D, because the value in column Stomp Rank Req, row 0 is 1. If you wanted to increase the Rank requirement to S, you could change the value to 5!

You can also edit some of the specific Locomotion mechanics that were implemented so you can make your own tweaks to the game feel! However, let me remind you once again that Run The Block’s circuits are fairly complicated; these graphs ain’t for the faint of heart!

The screenshots provided in each of these guides show you where each of these locomotion boards and graphs are so you can edit into them.

How to edit Jump

Below and slightly to the right of the Data Tables we just looked at is the Jump Logic Board, where you can tweak things about all of our various jumps, including the Basic Jump, Double Jump, Grind Jump, Wall Jump, and the Jump Boost! Lots going on in this one, but one thing to note is that Run The Block’s jump really has two components; the initial force of the jump, using the Locomotion Request Jump chip, and the following Jump Boost, which allows you to extend the height of your Jump by holding the Jump input. You can modify both components of this Jump!

How to edit Air Control

Below the Data Tables, near the Steering circuits, you can find the Air Control board, which has tweakables for the acceleration time on the Player’s Locomotion Steering Requests. Higher values here equate to slower acceleration towards the desired speed, so if you want a higher degree of air control, lower the value!

How to edit Dash

Further below the Steering section is the Dash Logic Board, which dictates how both the basic Ground Dash operates as well as the Air Dash. The main out-of-board tweakable here is Air Dash Time, which defines how long you remain suspended at full velocity in the direction of your Air Dash. Inside the board, you can change how the Ground Dash vector is calculated, the strength of the Ground Dash, and more!

How to Edit Bump

Here’s a fun one! Below the Dash Logic Board is the Player Bumping Board, which defines how you impulse other Players when you bump into them with a Dash, a Slide, or on a Grind Rail. None of these tweakables exist outside the board, but inside the board you can change the bump vectors however you please!

How to Edit Bounce

Down and to the left of the Data Tables is the Bounce Pad Logic V2 board, which controls how Bounce Pads like the Cars and Umbrellas bounce you back into the air. The first two tweakables define the range of the bounce force for a normal bounce, but the third tweakable allows you to set a value directly for how high a Stomp will send you off of a Bounce Pad.

How to edit Rail Grind
  1. All of the rail grind circuits are located here, with a significant amount of the tunables in the lower left corner that is circled in green.

  1. Looking at the Grind Logic Board, there’s a number of simple things you can change all from the default values of the ports. For example, if you wanted to disable the balancing minigame completely, you can simply change the “Balance Enabled” value from True to False. It’s important to note that the player’s move speed level affects how fast you move on a Rail Grind and that your Rail Grind level influences how big the balancing zone is. Being “in the zone” while balancing makes you move faster on the grind and is further tunable inside this board if you wish to modify that.

  1. Inside the board, close to the input bus, is where you will find various tunings for min/max speed while grinding based on your Move Speed/Rail Grind level

  1. The “Balance” animation state for your avatar is new with Run The Block and you can use it in your own creations outside this room! These two chips pictured below can be used to trigger entering the balance state and for setting the which direction the avatar is leaning.

We are excited to see what creators achieve using these new chips…skateboarding and surfing perhaps?

How to add New Abilities (Advanced)

If you want to add new abilities or change already existing properties of abilities in the game, you will need Rec Room Studio.

  1. All of the work you would do here is located in the (UpgradeMenuUI) prefab pictured below.

  1. The various upgrade UI elements are located in this hierarchy of the prefab:

Within these already existing elements, you can:

  • Change the names by modifying the text mesh pro strings
  • Change the icons
  • Add more separation lines for further upgrade levels to abilities
  1. If you want to add new abilities, you will want to duplicate one of these already existing abilities in the hierarchy and adjust all the above how you like. Once you’ve done that you will want to make another studio function that copies the same exact functionality as the others. An example being “[Upgrade Menu] DashChargesSetData”. All abilities use the same function definition for ease of hooking up into circuits. Again, make sure all instructions match exactly and look at other examples in the set of already in place functions to verify.

  1. Lastly, on the Upgrade Button and Info button, make sure to change the name of the circuit event you are sending out so you can listen for it in circuits. If you don’t do this, upgrading this ability will upgrade the original ability you copied in the hierarchy.

  1. Once you’ve completed these steps in Rec Room Studio, you’ll want to jump into the game to add circuitry to support your new ability. You will need a new int variable for tracking the level of the ability and in addition, make another one of these UI Button Boards that use the function you added in Rec Room Studio.

  1. To hook up our upgrade button and info buttons, navigate to the Upgrade Menu circuits and edit into the board.

  1. Once inside, create event definitions with the same name that you made in RRS and matching event receivers. You should pipe the output of the upgrade button pressed event into the circuits that grant you the upgrade. Then finally, use the example below to hook up the text you want for your new ability using the “SetInfoOverlayActive” function.

Storefront

The storefront is already set up to allow for selling vouchers that can start various public events early. There’s many things you can do to modify the Run the Block storefront with the maker pen.

  1. Your own unlockables that you can sell or give away for inventory items or tokens
  2. If you craft your own public event, you can sell additional voucher types, or modify the existing ones to start your new event early
  3. VIP access to new areas of the map

If you would like to create your own Storefront, follow our guide here!

How to modify the current Run the Block Storefront
  1. The items circled below are what are modifiable when cloning the room and are all linked to Room Offers. To see the Room Offers, go to This Room → Settings → Offers in the watch.

  1. From here, you can modify the cost/names/description/linked Inventory Item(s) of all the Offers, and even add new ones. To modify one that already exists, click the gear button on one of the offers to open up the details.

  1. From here, you can modify everything about what is being sold:
  • Name
  • Description
  • Price
  • Currency
  • Image
  • Product

  1. It’s important to note upfront that this storefront visual is made using RRS. If you want to significantly modify the store/images we recommend using the Storefront V2 in the palette which has all the features you need to get your store up and running.

Public Events (Advanced Circuits)

Public Events are another big and complicated system in Run The Block, and each one (1v1 Races, Free-For-All Race, and Last One Standing) works considerably different from the others! For that reason, this post won’t go into detail on how each one works or how you can change them or create your own from scratch; we’re going to leave that to the veteran Circuiteers out there! However, one thing we can show you how to do is modify the Data Table for Public Event Races, so you can incorporate any of your environment/level changes into these Public Events!

How to modify the Data Table for Public Event Races
  1. The Public Event graph is above the Stage

  1. You can find the Public Event Authored Races Data Table near the top left, by the circuits algorithm which generates the list of Checkpoints that define a Public Event Race.

  1. The rows in this Data Table define the various points that can be added to that list, so by adding points to the Data Table, you can expand the possibilities of the 1v1 Races and the Free-For-All Race!

Let’s go through the columns!

  • Title column: helpful for recalling where the point you’re adding is located.
  • Associated Event Column: helpful for recalling what event the points are associated with.

The first two columns are technically not necessary for creating a valid point (you’ll notice that none of our rows contain data for the Associated Event column). Both of these columns use Strings, but neither is incorporated into the algorithm in any way; add whatever you like here!

  • Minimum Rank column (configured as an Integer): When a Race is generated, we find the player with the lowest Runner Rank, then we use that to only select points with a Minimum Rank value equal to or less than that Rank to ensure that everyone can reach every Checkpoint in a Race. This value corresponds with the Runner Rank we’ve discussed above; 0 is F Rank, 1 is D Rank, etc.

    • Generally, the more difficult-to-reach points should have a higher Minimum Rank; we use the abilities you have access to at each Rank to roughly determine whether a point is more accessible (0-1) versus less accessible (3-4). Use your best judgment!
  • Finish Line Position: the point itself! Defined here as just a Position, we use the same String to Vector3 pipeline that our Challenge Checkpoints Data Table used if you read the Challenges section. As such, this should be pretty straightforward; find a point in the world you want to add to this list (we recommend using a temporary Vector Component), then copy its Position here in valid Vector3 notation (X, Y, Z).

  • Valid Start: If the checkbox here is marked as True, then the corresponding point could be chosen as the Start position in a Race. This isn’t relevant to the Free-For-All Race since that always starts in front of the Stage, but in 1v1 Races, we randomize your Start point along with the rest of the Race.

    • There are two major considerations to keep in mind when deciding whether your point is a Valid Start: the first is that it should be close to the ground, no more than 1 meter or so; the second is that there should be enough empty space around your point for both Players to be Respawned there with some distance between each other. If these conditions aren’t met, when your point is chosen as the start, one or both Players might be spawned in the Park as a fallback.

Wrap Up

As you can see, there’s so much that can be done both through the Maker Pen and Rec Room Studio with Run the Block. And now we’re so excited to see what you can do with this information! We hope this guide will help you along the way, and if you have feedback/questions we would love to hear it! Leave a comment below and let us know what you think.

8 Likes