> ## Documentation Index
> Fetch the complete documentation index at: https://docs.markz3d.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Creating a new rail

Rails are the ledges and handrails players can grind on. They are not detected automatically, every rail is placed by hand and saved in `Config.Rails`.

The `/createrail` command does the placing for you.

<Steps>
  <Step title="Type `/createrail` in game">
    Nearby grindable lines get highlighted as you look around.
  </Step>

  <Step title="Place the points of the rail">
    Look at the rail and use these keys:

    * **E**: add the highlighted line to your rail
    * **G**: place a single point yourself, wherever you are aiming
    * **X**: freeze the highlighting, so you can move without losing the line you found
    * **H**: move a point you already placed
    * **BACKSPACE**: undo the last point
    * **Q**: smooth the rail, scroll to choose how much and press `Q` again to apply
    * **R**: even out the spacing, scroll to choose the spacing and press `R` again to apply
    * **F**: test ride the rail, press `F` again to stop
    * **ENTER**: print what you have so far, without finishing

    <Note>While smoothing or respacing, pressing `E` twice picks two points and only edits the stretch between them. `G` clears that selection.</Note>
  </Step>

  <Step title="Type `/createrail` again to finish">
    The rail is printed in your client console (`F8`), ready to copy:

    ```lua theme={null}
    rail: 4 points, 6.2m
    {
        vec3(718.701, -1223.461, 24.453),
        vec3(718.696, -1221.424, 25.012),
        vec3(718.699, -1216.567, 25.003),
        vec3(718.702, -1214.495, 24.436),
    }
    ```
  </Step>

  <Step title="Paste it into `Config.Rails`">
    Open the `config.lua`, scroll down to the section labeled `Config.Rails` and paste your rail in as a new entry.

    You can also add an `anims` field to choose which grind animations that rail uses:

    ```lua theme={null}
    {
        vec3(718.701, -1223.461, 24.453),
        vec3(718.702, -1214.495, 24.436),
        anims = {"grind_5050"}
    },
    ```

    `anims` *picks the grind animations played on this rail* <span className="text-yellow-400">(optional, default: `Config.RailAnims`)</span>
  </Step>
</Steps>

***

## Tips

The points go where the **skateboard** sits, on top of the rail, not inside it.

Adding more points than `R` leaves behind will not make a rail smoother, use `Q` if it still looks rough.

To check your work, type `/skate_rails` to draw every rail near you in the world, with its number, length and point count.
