Skip to content
Open
Show file tree
Hide file tree
Changes from 12 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
465a58e
added and finshed MRVN Radient texture section
Berdox Jul 28, 2025
c69281c
fixed spelling error
Berdox Jul 28, 2025
7237876
fixed a info error
Berdox Jul 28, 2025
45c069c
Changes stuff about rpak and starpak so it is more clear
Berdox Jul 29, 2025
cc7f9b8
fixed typo
Berdox Jul 29, 2025
c888dfc
Fixed a grammer error
Berdox Jul 30, 2025
afe288a
Merge branch 'main' into main
uniboi Jul 30, 2025
abc3d01
Fixed formatting issue of trailing whitespace
Berdox Jul 30, 2025
5c44d80
Merge branch 'main' of github.com:Berdox/NorthstarDocs
Berdox Jul 30, 2025
61de203
Moved two sentences to a new line below the heading
Berdox Aug 3, 2025
1c14d0e
Merge branch 'main' into main
Alystrasz Aug 3, 2025
895c331
Merge branch 'main' into main
Berdox Sep 4, 2025
4a17083
Merge branch 'main' into main
Alystrasz Dec 3, 2025
5dedbf7
Update textures.md
Berdox Feb 24, 2026
40ead4f
Update textures.md
Berdox Feb 24, 2026
5336f4e
Update textures.md
Berdox Feb 24, 2026
4be5bd9
Merge branch 'R2Northstar:main' into main
Berdox Feb 25, 2026
4811685
Added info the textures section and added a shaders section
Berdox Feb 25, 2026
a718ea2
changed path
Berdox Feb 25, 2026
61bdbb0
trim whitespace
Berdox Feb 25, 2026
89e679f
spelling mistake
Berdox Feb 25, 2026
851c0ab
fix grammar mistake
Berdox Feb 25, 2026
f63b533
Delete docs/_static/images/mrvn/textures/rpak_example_folder.jpg
Berdox Feb 25, 2026
78d8752
Delete docs/_static/images/mrvn/textures/vmt_vtf_example_folder.jpg
Berdox Feb 25, 2026
a4af502
Delete docs/_static/images/mrvn/textures/vmt_vtf_vpk_example_folder.jpg
Berdox Feb 25, 2026
60b11d1
Merge branch 'main' into main
Berdox Jun 15, 2026
eddcd10
Merge branch 'main' into main
Alystrasz Jul 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/Modding/guides/tools/VTFModding.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ When we use vtf textures, we can only use the albedo and normal. Learn more abou

## VTFEdit

[VTFEdit](https://nemstools.github.io/pages/VTFLib-Download.html) is a tool to edit, view, and create .vtf files.
[VTFEdit](https://nemstools.github.io/pages/VTFLib-Download.html) or it's newer version [VTFEdit Reloaded](https://github.com/Sky-rym/VTFEdit-Reloaded/releases) is a tool to edit, view, and create .vtf files.


Launch [VTFEdit](https://nemstools.github.io/pages/VTFLib-Download.html). Top left, click `File`, `Import`, find and Import your custom texture(s).
Expand Down
202 changes: 202 additions & 0 deletions docs/Modding/mapping/MRVN-Radiant/textures.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@
# Textures

MRVN Radiant is a brush-based level editor used for creating custom maps for Titanfall 2. In MRVN, most surfaces such as floors,
walls, and ceilings are made up of brushes. These brushes are textured using image files mapped onto their surfaces.

---

## Setting Up Texture Paths

Proper texture paths are important because both MRVN and Titanfall 2 rely on these paths to locate texture files.

In MRVN, textures are referenced relative to the `textures/` directory. When you apply a texture to a brush, MRVN looks inside this folder to match the path.
Titanfall 2 expects those same textures to be defined either by `.vmt/.vtf` materials (VMT method) or embedded in `.rpak` files (RPAK method) using the exact same relative path.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not the same path, depending on wether its prop or word geo there needs to be an appended _skn / _fix / _wld in the materials name in the rpak (not appended on the map, just in the rpak)


---

### Step 1: Folder Structure

First, create a folder for your custom assets. The simplest structure looks like this:

```
<your_custom_folder>/
└── textures/
```

MRVN looks for textures inside the `textures/` folder, so this folder is required.

A more complete structure may look like:

```
<your_custom_folder>/
├── textures/
│ ├── world/ # Textures for brush geometry
│ │ ├── dev/ # Developer grid and debug textures
│ │ ├── walls/ # Wall textures
│ │ └── floor/ # Floor textures
│ ├── model/ # Model-specific textures (not commonly used)
│ └── skybox/ # Skybox textures (currently not implemented in MRVN)
└── model/ # 3D models (OBJ or mdl format) used in MRVN
```

It is strongly recommend downloading the [MRVN Resource Pack](https://github.com/MRVN-Radiant/MRVN-Resource-Pack).
The pack includes helpful assets such as spawnpoint models, other entity models, and utility textures commonly used in Source Engine
and Titanfall development. It also provides a reference for proper folder structure.

---

### Step 2: Add Resource Path in MRVN

1. Launch MRVN Radiant.
2. Press `P` to open **Preferences**.
3. Navigate to the **Games/Paths** section.
![Preferences Image](../../../_static/images/mrvn/textures/mrvn_preferences.jpg)
4. Click the folder icon next to "Extra Resource Path".
5. Select the folder you created in Step 1.

**Important:** Add the **parent folder** (the one that contains the `textures/` folder), not the `textures/` folder itself.

![Folder Path Image](../../../_static/images/mrvn/textures/folder_example.jpg)

---

After adding your custom folder and the MRVN Resource Pack, your list of resource paths should resemble this:

![Path Example Image](../../../_static/images/mrvn/textures/mrvn_path_example.jpg)

---

The only textures you should have right now is the ones added in the MRVN Resource pack and your MRVN Radiant should look like this.

![Path Example Image](../../../_static/images/mrvn/textures/mrvn_resource_pack_show.jpg)

---
### Step 3: Add Textures to the `textures/` Folder

MRVN supports multiple image formats such as `.png`, `.dds`, and other image formats. These image files are used to apply textures to
geometry within the editor.

However, **Titanfall 2 requires that the in-game material file (either a `.vmt` or a compiled `.rpak` material) matches the texture path
exactly as used in MRVN.** This path must reflect everything after the `textures/` folder.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

once again, in an rpak its not exactly as that, keep in mind the name in rpaks (the one u see via rsx) is not used to lookup the material. the game hashes the material path to get a guid which is looks up with.

the rpak json (main map, and the filename ofthe material submap) has to end with the sufix of the materialtype for guids to properly match its material type (and also adds .rpak for some reason)

in marvin

material/MODELS/ANGEL_CITY/GLASS_WINDOW_TALL

would become

material/MODELS/ANGEL_CITY/GLASS_WINDOW_TALL_skn.rpak


#### Example Full File Path:

```
G:\MRVN textures\textures\world\dev
```

Only this portion is relevant to MRVN and Titanfall 2:

```
world\dev
```

If your paths do not match, Titanfall 2 will not be able to locate and apply the correct texture during runtime.

#### Example Usage

Used in MRVN:
```
world/dev/generic_grey.png
```

Used in Titanfall 2 (VMT method):
```
world/dev/generic_grey.vmt
```

Ensure the filename (excluding file extension) and folder structure are **exactly the same** for both the texture file and the material file.

---

#### Example Folder and MRVN Preview

Here is an example of a correctly structured texture folder and how it appears inside MRVN:

![Texture Folder Example](../../../_static/images/mrvn/textures/mrvn_texture_example.jpg)
![In-Editor Texture Example](../../../_static/images/mrvn/textures/mrvn_texture_example_in_mrvn.jpg)

---

### Step 4: Loading Textures in Game

There are two main methods for loading textures into the game for use in your custom map: the **VMT method** and the **RPAK method**.

The **VMT method** is quicker and easier to set up, making it ideal for testing or simple projects. However, it offers limited
control over how textures appear in-game, and the visual quality may be lower.

The **RPAK method** requires more setup, as it involves using [RePak](../../repak/map.md) and creating a JSON file to compile
Comment thread
Berdox marked this conversation as resolved.
Outdated
your textures into an `.rpak` file. While this method is more complex, it provides greater control over texture behavior and appearance.

---

#### VMT Method

The VMT method uses `.vmt` (Valve Material Type) and `.vtf` (Valve Texture Format) files to define and load materials. You will need to
convert your `.dds` or other image texture file into a `.vtf`
using [VTFEdit Reloaded](https://github.com/Sky-rym/VTFEdit-Reloaded/releases) or other tools. There are two main ways to use this method:

1. **Using a `materials/` folder in your mod (recommended)**

The simplest approach is to create a `materials/` folder inside your mod folder.

```
ExampleMod/mod/materials
```
Place your `.vmt` and `.vtf` files there, following the correct folder structure that matches the paths used in MRVN.

Example folder structure:
![VMT and VTF Folder Example](../../../_static/images/mrvn/textures/vmt_vtf_example_folder.jpg)

2. **Using a VPK file**

Alternatively, you can package your `.vmt` and `.vtf` files into a `.vpk` (Valve Pak) file and have your mod load it at runtime.

Example VPK setup:
![VMT, VTF, and VPK Example](../../../_static/images/mrvn/textures/vmt_vtf_vpk_example_folder.jpg)

---

Here is an example of a simple `.vmt` file:

```vmt
LightmappedGeneric
{
$basetexture "world/dev/generic_gray"
$surfaceprop "concrete"
}
```

The `$basetexture` line defines the path to your `.vtf` texture file, relative to the `materials/` folder if you use method 1. In this
example, it refers to `materials/world/dev/generic_gray.vtf`.


---

#### RPAK Method
Comment thread
Berdox marked this conversation as resolved.
Outdated

The RPAK method involves using [RePak](../../repak/map.md) to compile your `.dds` texture files into material entries into a `.rpak` based
on a JSON configuration.

After generating the `.rpak` file make sure the `.rpak` is named the same as your bsp map file. This makes sure the `.rpak` loads properly
with the map.
Place the `.rpak` file(s) into the `pak/` folder within your mod directory. The game will automatically load them from there.

Example folder layout:
![RePak Folder Example](../../../_static/images/mrvn/textures/rpak_example_folder.jpg)

---

##### Optional: Using `rpak.json` for Custom `.rpak` Load Behavior
Comment thread
Berdox marked this conversation as resolved.
Outdated

You can optionally include an `rpak.json` file in your `pak/` folder to control how your RPAK files are handled by the game.
This allows you to specify preload and postload behavior, or set up aliases for existing RPAK files.

For more details, see the [RPAK Modding Guide](../../guides/tools/rpakmodding.md).

## Common Problems

- Applying a texture in MRVN using one path, but placing the material in a different one for titanfall 2.
- Forgetting to include a `.vmt` or material definition for the texture when packaging the map.
- Using spaces or capital letters inconsistently between image and material paths.
- Not including the correct `pak/`, `materials/`, or `textures/` folders in your mod structure.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Comment thread
Berdox marked this conversation as resolved.
Outdated
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.