Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
1a627b5
Rough Blobs intro
NeetBux-Hash Oct 27, 2024
f54bac3
Blobs article done
NeetBux-Hash Oct 27, 2024
be8d3b2
Refining blobs
NeetBux-Hash Oct 27, 2024
32f0eb4
Article no advanced search
NeetBux-Hash Oct 28, 2024
6cf5283
Needs way more refinement like blobs
NeetBux-Hash Oct 28, 2024
3375cea
Halfway nowhere
NeetBux-Hash Oct 28, 2024
11dd32e
Replacing this next
NeetBux-Hash Oct 28, 2024
4ba39ea
Good but needs checking and Sidebar
NeetBux-Hash Oct 28, 2024
bbcd488
Finished Blobs.
NeetBux-Hash Oct 28, 2024
ea2c57f
minor typo
NeetBux-Hash Oct 28, 2024
56f1302
Blobs done. Maybe too much adminations
NeetBux-Hash Oct 28, 2024
d3335d9
More Blobs article refining
NeetBux-Hash Oct 28, 2024
96fcc5b
More refining of blobs article
NeetBux-Hash Oct 28, 2024
58378a6
Ignore locals
NeetBux-Hash Oct 28, 2024
d6befcc
blobs refining
NeetBux-Hash Oct 28, 2024
c7c5f63
Finishing blobs and adding raw local article
NeetBux-Hash Oct 29, 2024
75869a0
blobs refining
NeetBux-Hash Oct 29, 2024
b1d87c0
Blobs refining
NeetBux-Hash Oct 29, 2024
e3e9a1b
Blobs considered done
NeetBux-Hash Oct 29, 2024
8bd7586
adding raw locals back in
NeetBux-Hash Oct 29, 2024
8721fe2
deleting old raw non md
NeetBux-Hash Oct 29, 2024
8e6887a
More refining when looking on mobile
NeetBux-Hash Oct 29, 2024
9993271
blobs refining
NeetBux-Hash Oct 29, 2024
42ea6d9
blobs refining
NeetBux-Hash Oct 29, 2024
237b2a3
refing blobs
NeetBux-Hash Oct 29, 2024
48bc225
Startting on locals
NeetBux-Hash Oct 30, 2024
3768c16
return locals ai
NeetBux-Hash Oct 30, 2024
9444269
Update addingblobs.md removing example admonition
NeetBux-Hash Oct 30, 2024
59d5838
Blobs refining
NeetBux-Hash Oct 30, 2024
309bed8
locals update
NeetBux-Hash Oct 30, 2024
1c38d6b
needs way more restructuring of info
NeetBux-Hash Oct 31, 2024
7706319
AI airticle is clean but no advanced search
NeetBux-Hash Oct 31, 2024
e32068c
MDX file attempt
NeetBux-Hash Nov 1, 2024
1d0c5ae
commit this
NeetBux-Hash Nov 1, 2024
d438067
Before css fix attempt
NeetBux-Hash Nov 1, 2024
787752b
Good tooltips text set
NeetBux-Hash Nov 1, 2024
b62962b
Before adding css icon class
NeetBux-Hash Nov 1, 2024
c521f3e
Working tooltip icon
NeetBux-Hash Nov 1, 2024
9a04add
Commiting before changing java
NeetBux-Hash Nov 1, 2024
fb1a9fa
refinig locals
NeetBux-Hash Nov 2, 2024
2ad9f14
half baked attempt of a dynamical tooltip
NeetBux-Hash Nov 2, 2024
028e54d
white border tooltip
NeetBux-Hash Nov 2, 2024
b5cae6f
green border, grey bg tooltip
NeetBux-Hash Nov 2, 2024
cb527fe
subtle glow
NeetBux-Hash Nov 2, 2024
948b6d7
tooltip dynamic refining
NeetBux-Hash Nov 2, 2024
9675d15
tooltip always bottom
NeetBux-Hash Nov 2, 2024
e1040cc
tooltip back to top
NeetBux-Hash Nov 2, 2024
cc29415
removed icon by accident in css
NeetBux-Hash Nov 2, 2024
2061888
before removing locals overview
NeetBux-Hash Nov 2, 2024
fcf4a97
cleaning redundant tooltips, adding checkered glossary
NeetBux-Hash Nov 3, 2024
08316e9
darker check padding
NeetBux-Hash Nov 3, 2024
4456994
Proper glossary
NeetBux-Hash Nov 3, 2024
65487d3
Forgot a key example in part 2
NeetBux-Hash Nov 3, 2024
5a9d930
fixed simplified locr
NeetBux-Hash Nov 3, 2024
f51eecb
adding ai adv search. To be fixed
NeetBux-Hash Nov 3, 2024
8989a5c
adding extra advanced link at suits. Might remove hash
NeetBux-Hash Nov 3, 2024
551961b
correctliy imported tippy.js
NeetBux-Hash Nov 3, 2024
7b4d774
Updated tooltip
NeetBux-Hash Nov 3, 2024
438589d
Updated tooltip in css and js to use custom style
NeetBux-Hash Nov 3, 2024
3aac650
added underline back
NeetBux-Hash Nov 3, 2024
cc2b254
Updated tooltip style to rounded
NeetBux-Hash Nov 3, 2024
b16c2be
refining locals article
NeetBux-Hash Nov 3, 2024
947d68e
Committing before restructuring part 2
NeetBux-Hash Nov 3, 2024
e1edae3
Much shorter and consice version RAW
NeetBux-Hash Nov 3, 2024
13b5b17
shorter guide refining base
NeetBux-Hash Nov 3, 2024
67254fe
SHortened copy refining
NeetBux-Hash Nov 3, 2024
735f139
refinig mini locals
NeetBux-Hash Nov 3, 2024
de64613
refining mini locals
NeetBux-Hash Nov 4, 2024
e93260d
refining locals mini
NeetBux-Hash Nov 4, 2024
1446add
refining custom tooltip exclam icon
NeetBux-Hash Nov 4, 2024
139f03d
More icon refining
NeetBux-Hash Nov 4, 2024
4c99bf3
refining locals
NeetBux-Hash Nov 4, 2024
3b4c3f7
commiting locals
NeetBux-Hash Nov 4, 2024
c6d70bf
refining locals
NeetBux-Hash Nov 4, 2024
603dabe
refining locqls
NeetBux-Hash Nov 5, 2024
4ce084a
refining locals
NeetBux-Hash Nov 5, 2024
6649b7e
refinig locals
NeetBux-Hash Nov 5, 2024
675914f
refining local
NeetBux-Hash Nov 5, 2024
e806e6f
adding condensed draft of short locals
NeetBux-Hash Nov 5, 2024
d32488a
backup before deleting package lock
NeetBux-Hash Nov 6, 2024
1c8294e
deleted package lock json
NeetBux-Hash Nov 6, 2024
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: 2 additions & 0 deletions .yarnrc.yml
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
nodeLinker: node-modules
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Should the node linker be changed? Currently the website seems to be using yarn PnP


yarnPath: .yarn/releases/yarn-3.6.4.cjs
253 changes: 253 additions & 0 deletions docs/modding/suitmodding/addingblobs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,253 @@
---
sidebar_position: 3
description: Modifying an image in the menu

---
# Adding "Blobs"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Quotes are not necessary, blobs are what they are called

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

I did that to introduce an unfamiliar term. I'll change it



To continue on the previous adding/patching of parts article from before, you'll likely also want to;
- modify the image in the menu to reflect the changes you've made
- change the suit's name in the menu
- and even add in your own custom description for your suit.

I'll also be mentioning a potential issue that arises when you're trying to
- add parts to your suit that don't come from a reward suit chunk (chunk0) which will have to be solved in the manifest.



:::note Documentation
If you haven’t reviewed SMF’s documentation resources (the book icon on the left when you enable developer mode in SMF), consider skimming these then return here. I also made a little tutorial on adding parts with screenshots. Use it in combination with the previous article (because the code is unreadable). Here’s another excellent resource worth bookmarking for later:

- [Hitman Resources Documentation](https://hitman-resources.netlify.app/documentation) - An advanced look at WOA’s engine systems.
- [Adding Suit Parts guide](https://www.nexusmods.com/hitman3/articles/63) - A guide on adding parts with screenshots.
:::

>First up, let's try changing just the image in the menu with your custom image. These are called **"blobs"**

---

## STEP 1: **LOCATE YOUR FILE**
First, let's locate your suit within the **repository**, using either RPKG or GlacierKit.

There are 2 methods for this part. I'll do **RPKG** first since it's a bit more easier to find and confirm your image directly. I still suggest you try the **GlacierKit** method too for reasons I will explain later on.


### Method 1: Using RPKG

1. Open **RPKG**
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I would recommend GlacierKit over RPKG wherever possible

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

That's what I'm gonna do in my next article concerning overrides. The only reason why rpkg was used is bc of the user friendly oversight of the repo with the pictures. I'll add a second method with glacier to the article to use glacier that nicely flows into the next article. Might make it easier to stay on glacier too

2. In **RPKG**, click on *Import* in the top left corner.
3. Select *Import RPKGs folder* and locate your Hitman 3 runtimes folder (it usually looks like this: `D:\SteamLibrary\steamapps\common\HITMAN 3\Runtime`).
4. Once the folder is imported, click on the big **REPO** tab button next to *Resource Overview*.
5. Then, click *Load REPO from RPKGS folder*. Now you’ll see everything neatly ordered with a good overview of each category. This is the **Repository**.
6. Expand the *Outfits* section below. Search for your outfit there. Or use the search bar on top.

>Leave your **RPKG** program open after finding your suit

### Method 2: Using GlacierKit

1. Open **GlacierKit**
2. Select the *game contents* tab on the left.
3. - Copy the following **repository's** file hash ```00204D1AFD76AB13``` and paste it on the search bar there and hit enter.
- Or simply type ***pro.repo*** on the search bar and hit enter.
Both methods should bring you to a single file called ***pro.repo***.
4. Open it by clicking on it (obviously) and then click on *Open in editor* in the new menu that popped up on the right. This is the **repository** but in **Glacierkit**

:::tip
You now know the exact name of the **repository** file. Next time you want to open the **repository** in **GlacierKit** just type ***pro.repo***.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This tip is just restating step 3 but saying not to do part of step 3, you can just make step 3 "search pro.repo" instead of "copy this hash and then paste and hit enter but actually don't do that use pro.repo instead"

:::

5. You can then start searching for your suit below in the *Unmodified section*.
6. Double check if you have the right suit selected by looking up the image in **GlacierKit**.
To do so, simply

- find the correct image code line on the right that starts with ``"Image":".....``

- and locate its **assembly path**



>The **assembly path** is the line after ``"Image":"..."`` inside the quotation marks.

Example of a full image code:
```json
"Image": "images/unlockables_override/47_outfits_bloodmoney_gloves.jpg"
```
and its **assembly path**
```json
images/unlockables_override/47_outfits_bloodmoney_gloves.jpg
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This is not an assembly path, it's a blob path. The assembly path for this blob is much longer because blobs are inside the cloudstorage folder

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Also this should not be a JSON code block

```

- Copy it and paste the **assembly path** in the search bar on top in the *game contents* tab on the left
- and hit enter on your keyboard.


If the image you found matches the suit you want to modify, you can go back to your **repository** file. (Where you saw the **repository** code).

>Leave open your **GlacierKit** program

:::info GlacierKit vs. RPKG
While **RPKG** is helpful for viewing images in the **repository**, it’s best to work primarily in **GlacierKit**, as it will be your main modding tool. The **repository code lines** in both tools are identical for each file, so practicing in **GlacierKit** is encouraged for efficient modding.
:::
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I do think it'll be a little confusing to show two separate tools for doing something and then say "it's best to not do the first one we told you to do"



---
## STEP 2: **FIND THE IMAGE**
In this step we will have to look for the correct image code and find its **assembly path**.
:::note
You already did this step in the **GlacierKit** method but follow along
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

What? Why is this repeated then

:::
### 1. Open your file
Click on your suit and you should see its **repository** code on the right

### 2. Locate the assembly path
There will be a line of code starting with `"Image":"....`

For example:
```json
"Image": "images/unlockables_override/47_outfits_bloodmoney_gloves.jpg"
```

It consists of a
- **file path** `images/unlockables_override/`
- **file name** `47_outfits_bloodmoney_gloves.jpg`
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The whole thing, including the file name, is the file path


These 2 together are called the **assembly path** of your file's image.

:::warning
Keep **RPKG** and/or **GlacierKit** open, you’ll need to view the **assembly paths**.
:::

---

## STEP 3: **SET UP A BLOBSFOLDER**
In this step, you’ll create a custom folder structure that ***recreates*** the default image's **assembly path**.

### 1. Make a blobsfolder
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggested change
### 1. Make a blobsfolder
### 1. Make a blobs folder


Create a new folder called ***`blobs`*** in your mod's root directory, where the manifest file is located. You can do this in **GlacierKit** or **File Explorer**.

### 2. Recreate the file path

Create folders that match the **file path** of the image you want to replace.
For example, if the **file path** is `images/unlockables_override/`, your `blobs` folder structure should look like this:
```
blobs/images/unlockables_override/
```
### 3. Add your custom image
- Place your image in the last folder you created (in this example, `unlockables_override`).
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I can't see this fully previewed obviously but I feel like this formatting will look odd, having a big size-3 heading with a dot point; usually you'd just have body text instead of placing the step in a dot point (also the previous steps don't use dot points).

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Yes, not being able to preview the site is a problem. Lots of choices are made aren't reflected properly from reviewing the MD file. I was looking into showing and sharing a link to a build version

### 4. Recreate the file name
- Make sure the custom image has the exact same **file name** and **file type** as the original by changing it, for example:
```
blobs/images/unlockables_override/47_outfits_bloodmoney_gloves.jpg
```
### 5. Confirm the assembly path
This fully recreates the **assembly path** above of the image you're replacing.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Blob path

Your final folder structure should look like this:
```
📁YourModFolder
├── 📁blobs
│ └── 📁images
│ └── 📁unlockables_override
│ └── 47_outfits_bloodmoney_gloves.jpg
├── 📁content
├── manifest.json
└── project.json
```
:::danger Important
- **Aspect Ratio**: Match the aspect ratio of your replacement image with the original to avoid distortion.
>*Example*: The Blood Money suit image has a 4:3 ratio (resolution 696x520), which you can check in **GlacierKit**.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This can just be "for example", you don't really need so much emphasis and a separate quote block

- **File Corruption**: If changing the **file type** manually corrupts your image, use an image converter tool (Photoshop, GIMP, online, etc.).
:::

---

## STEP 4: **UPDATE MANIFEST**

### 1. Open your manifest
Recommended to do so in **GlacierKit** (or in **VS code** with a ***"schema"***).
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

There is a huge amount of bold and italic.
Also quotes around schema are not necessary, that is what it's called (might be a good idea to add a tooltip explaining what a schema is? or a link to somewhere else it's explained?)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Agree, Blobs article will need a rework with a tooltip. That's the copy of the locals article. A draft for the current locals artoce but condensing it and changing the flow of information


### 2. Add your blobsfolder:
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggested change
### 2. Add your blobsfolder:
### 2. Add your blobs folder

Add the following line that will make **SMF** do a ***blobs operation*** and have it refer to your ***`blobs`*** folder
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This line is just words

Suggested change
Add the following line that will make **SMF** do a ***blobs operation*** and have it refer to your ***`blobs`*** folder
Add the following line, so that SMF recognises your blobs folder and adds the image to the game:

```json
"blobsFolders": ["blobs"]
```
>Here’s how your full manifest file might look with a `blobsFolders` line added:
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Quote?

```json
{
"$schema": "https://raw.githubusercontent.com/atampy25/simple-mod-framework/main/Mod%20Manager/src/lib/manifest-schema.json",
"version": "0.3.0",
"id": "Yourname.Yourmod",
"name": "YourCustomSuit",
"description": "Your description of what your mod does",
"authors": ["YourName"],
"frameworkVersion": "2.33.20",
"contentFolders": ["content"],
"blobsFolders": ["blobs"]
}
```
:::info Schema
Notice the `$schema` line at the top. This line helps **VS Code** recognize the structure and options available for the manifest, providing error-checking and code suggestions as you edit. **GlacierKit** includes these features by default, but installing **VS Code** is highly recommended for better flexibility and ease in editing complex files.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Oh schemas are explained here, then you don't need to link/quote it earlier

:::
### 3. Save & Deploy
Simply click the little save icon on top or click **ctrl+S** on your keyboard. Deploy your mod in **SMF** and your new image will appear in place of the default one.

:::success
That's it! You’ve successfully replaced the suit’s image in the game with your own custom picture. Now, when you load up the game, your new image will appear in place of the default one. Don't close **GlacierKit** yet if you already are moving on to the next article or want to try the test below. It'll make things alot quicker.
:::

---

With this final step complete, you’re all set! There are additional tips and options for managing **blobs** in your mod below if you’d like to explore further.

---
## More on Blobs
These tips will help you manage multiple images and **blobsfolders**.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggested change
These tips will help you manage multiple images and **blobsfolders**.
These tips will help you manage multiple images and blobs folders.



### More Blobs images

- If you want to add more images, remember to recreate the **file paths** by making more folders.
And place each image in its relevant folder

examples:
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggested change
examples:
Some examples:


| **Assembly Path** (in-game) | Your **BlobsFolder** Structure |
|--------------------------------------------|---------------------------------------------|
| `images/unlockables_override/absolution_suit.jpg` | `blobs/images/unlockables_override/absolution_suit.jpg` |
| `images/characters/male_suits/caruso_idk.png` | `blobs/images/characters/male_suits/caruso_idk.png` |
| `icons/equipment/distraction_device_old.jpg` | `blobs/icons/equipment/distraction_device_old.jpg` |

- For multiple images that have the same **file path** in their **assembly path**, simply place them within the same folders (e.g., images under `unlockables_override`). Don't forget to **rename them too**.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This line basically doesn't make sense (file path? assembly path?) unless you have the definitions earlier, which are not correct. Also rename them to what?



### Renaming ***"blobs"***
You can name your `blobsfolder` whatever you like (e.g., "MyCustomImages"), just update the manifest too after.:
```json
"blobsFolders": ["MyCustomImages"]
```
### Adding Multiple Blobsfolders
You can even add more **blobsfolders** in your mod. This is useful if your mod will have multiple options that can be selected in your mod's settings.
The same rules apply to them;
- set **file paths** by making folders
- and use correct **file name(s)**

You can then add them to the manifest by simply adding a comma and the name of the new folder in quotation marks.

```json
"blobsFolders": ["blobs","MyCustomImages","MoreBlobs"]
```

---
:::info challenge
*Up for a challenge?*

Reinforce what you learned by replacing more images in the game using **only** the steps below:

- Locate image(s) in the **repository**
- Set up a new **blobs folder** and recreate **file paths**
- Add your images and ensure **file names** match
- Update the **manifest**, deploy, and test in-game

Repeat steps you struggled with until they’re familiar—if you can complete these steps without looking at the tutorial, you’re ready for the next article!
:::
92 changes: 92 additions & 0 deletions docs/modding/suitmodding/addinglocals copy 2.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
---
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I'm gonna assume these copy files are just drafts written by ChatGPT and not intended to be on the website?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

The copy files are me making some changes to when new information gets introduced. Like in the blobs folder it's all over the place so as not to overwhelm the user with technical jargon and kind of reel them in the process while they're learning stuff

sidebar_position: 6
description: Changing tsdvmore
---

import './customhover.css';
import Tooltip from './tooltip';

# Adding Shorter locals CONDENSED
---

### Part 1: Setting Up & Finding Your LOCR

1. **LOCR Introduction**:
- *All game text is stored in LOCR files.* These files contain game text in various languages, linked to identifiers called **HASHES**.

2. **Introducing Hashes for Suits**:
- Example hashes for common suits:
- *Season 1 suits*: `00985A1100E5EDDC`
- *Season 2 suits*: `009F430D046716BE`
- *Season 3 suits*: `004B8C5124A49543`
- **Copy the HASH** that matches your suit.

*Insert* **Help: Hash** *admonition here.*

3. **Navigate to the LOCR File and Open It**:
- *Paste your HASH into the search bar in GlacierKit and open the LOCR file.*

4. **LOCR Breakdown**:
- *Before diving deeper, let's understand how a LOCR file is organized.*

*Insert* **LOCR Breakdown** *collapsible here.*
- *This breakdown will help you understand why we structure the manifest in the next part.*

5. **Confirm Your Text Using Ctrl + F**:
- Use `Ctrl + F` inside the LOCR file to find and confirm the text you want to change.
- *This ensures you're editing the correct piece of text.*

6. **Notice and Copy the String**:
- *Each piece of text is linked to a string.*
- **Copy the string** (without quotes) that appears before the text you want to modify.

*Add a short collapsible explanation for strings if needed.*

7. **Advanced Search (Optional)**:
- *For finding additional text, see the Advanced Search guide.*

*Insert* **Advanced Search** *collapsible here.*

---

### Part 2: Modifying the Manifest

1. **Open Your Manifest File**:
- *Navigate to your manifest file in GlacierKit.*

2. **Add This Line**:
```json
"localisationOverrides": {}
```

3. **Add Your LOCR Hash and Language**:
- *Insert the LOCR hash and specify the language.*
- *(This recreates the LOCR file’s structure.)*

4. **Explain the Detour to Text Tools**:
- *Before using our string in the manifest, we need to convert it.*

5. **Convert the String Using Text Tools**:
- *Open the Text Tools tab and paste your string into the Localisation Hash Calculator.*
- *Copy the decimal number (ignore the hex code).*

6. **Finish Your Manifest**:
- *Return to the manifest and paste the decimal number with your custom text.*
- **Example**:
```json
"localisationOverrides": {
"yourLOCRhash": {
"english": {
"yourconverteddecimal": "Your new text"
}
}
}
```

---

### Extras and Optional Chapters

*Include optional content, like adding more languages or advanced techniques, in collapsible sections.*

---
Loading