-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Article suit parts: blobs #32
base: main
Are you sure you want to change the base?
Changes from 8 commits
1a627b5
f54bac3
be8d3b2
32f0eb4
6cf5283
3375cea
11dd32e
4ba39ea
bbcd488
ea2c57f
56f1302
d3335d9
96fcc5b
58378a6
d6befcc
c7c5f63
75869a0
b1d87c0
e3e9a1b
8bd7586
8721fe2
8e6887a
9993271
42ea6d9
237b2a3
48bc225
3768c16
9444269
59d5838
309bed8
1c38d6b
7706319
e32068c
1d0c5ae
d438067
787752b
b62962b
c521f3e
9a04add
fb1a9fa
2ad9f14
028e54d
b5cae6f
cb527fe
948b6d7
9675d15
e1040cc
cc29415
2061888
fcf4a97
08316e9
4456994
65487d3
5a9d930
f51eecb
8989a5c
551961b
7b4d774
438589d
3aac650
cc2b254
b16c2be
947d68e
e1edae3
13b5b17
67254fe
735f139
de64613
e93260d
1446add
139f03d
4c99bf3
3b4c3f7
c6d70bf
603dabe
4ce084a
6649b7e
675914f
e806e6f
d32488a
1c8294e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
--- | ||
sidebar_position: 3 | ||
description: Modifying an image in the menu | ||
--- | ||
To continue on the adding parts page, you'll likely also want to modify the image in the menu to show the difference, change the suit's name and even add in your own suit's descritpion of it. I'll also mention a potential issue that arises when adding parts to your suit that dont come from a similiar chunk which will have to be addressed in the manifest. If you haven't read the documentation on manifest and other things in SMF (the little book icon on the left that shows up when you enable developer mode), I Suggest you read that and come back for bettter clarification after. I also advise to go back and forth between reading that, the tutorial pages on this site and modding yourself over time, so things start making more sense and you can practice in the meanwhile. | ||
|
||
--- | ||
|
||
# Part 1: Blobs | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Part 1? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes for the article after this one. My introduction up top was meant to prepare you for multiple articles that are somewhat tied in together. |
||
|
||
## Step 1: Locate the Suit in RPKG | ||
|
||
1. Open **RPKG** | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I would recommend GlacierKit over RPKG wherever possible There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 |
||
(or **GlacierKit**, but for this guide, we’ll stick with RPKG for convenience. The repo's file hash is 00204D1AFD76AB13 if you are a bit familiar with Glacier already). | ||
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"** button next to **"Resource Overview"**. | ||
5. Then, click **"Load REPO from RPKGS folder"**. Now you’ll see everything neatly ordered with a good overview. | ||
|
||
## Step 2: Find Your Suit | ||
|
||
1. Expand the **Outfits** section. | ||
2. Find the suit you modified, the one for which you want to change the picture in the game menu. Type in a keyword (example: "bloodmoney") | ||
3. Click on the suit, and look at the text box on the right-hand side. | ||
There will be a code starting with **"Image:"**. For example: | ||
```json | ||
"Image": "images/unlockables_override/47_outfits_bloodmoney_gloves.jpg" | ||
``` | ||
4. Remember the **file name** and **file path** ("images/unlockables_override/" in this case). | ||
|
||
> Keep RPKG open, you’ll need it in the next steps. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There are proper admonition blocks you can use instead of markdown quotes, examples in basicretexture There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'll take a look at them after I know what admonition is |
||
|
||
--- | ||
|
||
## Step 3: Set Up the Blobs Folder | ||
|
||
1. Open your mod folder and create a folder called **"blobs"** in the root directory (where your manifest is located). | ||
2. In **"blobs"** (or whatever you want to name it), create folders that match the path you found in RPKG. | ||
- For example, if the path was `"images/unlockables_override/"`, the folder structure should look like this: | ||
`blobs/images/unlockables_override/` | ||
3. Place your custom image inside this folder. | ||
- The file must have the **exact same name** and file **type** as the original. | ||
- For example: | ||
`blobs/images/unlockables_override/47_outfits_bloodmoney_gloves.jpg` | ||
|
||
> You can use any image you like, as long as it’s in `.jpg` format (no `.png` or other formats allowed). Change the file extension manually if needed to `.jpg`. | ||
|
||
--- | ||
|
||
## Step 4: Update the Manifest | ||
|
||
1. Open your mod’s **manifest** file. | ||
2. Add the following line to refer to the **blobs** folder: | ||
```json | ||
"blobsFolders": ["blobs"] | ||
``` | ||
3. If you named your "blobs" folder something else (e.g., "MyCustomImages"), you’ll need to adjust this line accordingly, but make sure the internal folder structure and file names match exactly. You can do this for any image in the game, as long as you find the image path and the image's name. If there are multiple images with the same mapping, you can just add them in there alongside the bloodmoney image. Just follow the naming convention too. | ||
|
||
--- | ||
|
||
That's it! You’ve successfully replaced the suit’s image in the game with your own custom picture. Now, when you deploy your mod and load up the game, your new image will appear in place of the default one. Don't close RPKG yet if you already are moving on to the next article. It'll make things alot quicker | ||
|
||
--- | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,186 @@ | ||
To improve clarity and structure in the article, I’ll organize the information in a more logical flow. The goal will be to avoid overwhelming the reader with too much technical detail upfront and to guide them step-by-step, with each section focusing on one aspect of the process. Here's a revised version: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. That's great ChattyG but irrelevant to this article There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This shouldn't be part of the article |
||
|
||
--- | ||
|
||
# Part 2: Localisation Overrides | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Part 2? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'll just remove the parts maybe. The point was to smooth the reader from the adding parts to the next articles |
||
|
||
In this section, we'll focus on changing the **suit name and description** in the game by modifying the localisation files. You will need **GlacierKit** and a mod folder with a manifest file, but no content files are required. Everything will be handled through the manifest. | ||
|
||
If you’re editing the manifest using **GlacierKit**, it will auto-suggest code to keep things clean and help reduce errors. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. VS Code does the same thing if you have the manifest schema line |
||
|
||
### Prerequisites | ||
|
||
Before we begin, there are a few tools and optional recommendations that will make this process easier: | ||
|
||
1. **Required Tools**: | ||
- **GlacierKit** for editing your mod. | ||
- A mod folder that contains a **manifest** file. | ||
|
||
2. **Recommended Tools** (optional but helpful): | ||
- **Visual Studio Code (VS Code)**: This makes editing files easier and cleaner. | ||
- **Manifest Schema**: Adding this to your manifest file will allow VS Code to check for errors automatically. Add this schema at the top of your manifest: | ||
```json | ||
"$schema": "https://raw.githubusercontent.com/atampy25/simple-mod-framework/main/Mod%20Manager/src/lib/manifest-schema.json" | ||
``` | ||
- If you’re using GlacierKit, it will handle much of the code suggestions and format checks. | ||
|
||
> **Note:** It might seem overkill to install Visual Studio Code for this tutorial, but you’ll appreciate the cleaner interface and error-checking features as you continue modding. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Same as before with admonition blocks |
||
|
||
--- | ||
|
||
## Overview of the Process | ||
|
||
Here’s a simple summary of what we’ll be doing: | ||
|
||
1. **Identify the suit** you want to modify by locating the appropriate LOCR file. | ||
2. **Find the string** representing the suit's name and description. | ||
3. **Convert the string** into a decimal number using GlacierKit. | ||
4. **Modify the manifest** by adding a localisation override for the new name and description. | ||
5. **Save and deploy** your changes. | ||
|
||
--- | ||
|
||
## Step 1: Find the LOCR File for Your Suit | ||
|
||
Most suit names and descriptions are stored in **LOCR files**. These files hold all the text for different items in the game, including reward suits. | ||
|
||
Each season has its own LOCR file, and we’ve already narrowed down the ones you’ll need: | ||
- **Season 3 Suits**: `004B8C5124A49543` | ||
- **Season 2 Suits**: `009F430D046716BE` | ||
- **Season 1 Suits**: `00985A1100E5EDDC` | ||
|
||
> **Tip**: If you’re not sure which season your suit belongs to, either make an educated guess or do a quick online search. | ||
|
||
### Finding the Suit | ||
|
||
1. Open **GlacierKit** and click the **"Open Project"** button. | ||
2. Navigate to your mod folder inside the **SMF folder** in your game’s contents. | ||
3. Use the **"Game Contents"** tab to paste one of the hashes above in the search bar. This will bring up the relevant LOCR file. For example, if you’re modifying a suit from Season 1, use the hash `00985A1100E5EDDC`. | ||
4. When the search completes, you’ll see a file tree ending in a file with a **language icon** (e.g., `randomwords.sweetmenutext].pc_localized-textlist`). This is your LOCR file. | ||
|
||
--- | ||
|
||
## Step 2: Extracting the Suit’s Name and Description | ||
|
||
Now that you have the LOCR file, you need to find the specific string representing the suit you want to modify. | ||
|
||
### Finding the Suit in the LOCR File | ||
|
||
1. **Open** the LOCR file in GlacierKit, and a **preview text box** will appear on the right side. | ||
2. Scroll through the text or use `Ctrl + F` to search for the suit’s name (for example, "Blood Money Suit"). | ||
|
||
You will see the suit's name appear multiple times in different languages, but the important part is the **string** associated with the name, which will look something like this: | ||
```json | ||
"989928F2-06D6-42F3-871A-353F07DEF969_LEGACY_HERO_BLOODMONEYSUIT_M_HPA2293_NAME_": "Blood Money Suit" | ||
``` | ||
The string before the `:` is the same for each language. **Copy** this string (without the quotation marks), as it will be needed for the next step. | ||
|
||
--- | ||
|
||
## Step 3: Convert the String to a Decimal Number | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hash is a more accurate term than number There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ill stick to using "strings" for now just to clearly differentiate the locr hash and the hash inside the locr that needs to be converted by calling it a "string". Itll make sense if you read the full article. I will change it later if needed |
||
|
||
Now that you have the string, the next step is to convert it into a decimal number. | ||
|
||
1. Go to the **Text Tools** tab in GlacierKit. | ||
2. Paste the string into the **Localisation Hash Calculator**. This will generate two codes: a **hex code** and a **decimal code**. | ||
3. **Copy** the **decimal number** (not the hex). We’ll use this in the manifest. | ||
|
||
--- | ||
|
||
## Step 4: Modify the Manifest | ||
|
||
Now that you have the decimal number, we can begin modifying the manifest. | ||
|
||
1. **Open your manifest file** in GlacierKit or Visual Studio Code. | ||
2. In the manifest, add the following block of code to create a **localisation override**: | ||
```json | ||
"localisationOverrides": {} | ||
``` | ||
Hit **Enter** to keep your code readable. | ||
|
||
3. **Insert the LOCR file hash** from the file you opened earlier. It will look something like this: | ||
```json | ||
"localisationOverrides": { | ||
"00985A1100E5EDDC": {} | ||
} | ||
``` | ||
|
||
4. Now, specify the **language** you want to override (e.g., `"english"`). Inside the language block, insert your **decimal number** and the **new suit name** in quotation marks: | ||
```json | ||
"localisationOverrides": { | ||
"00985A1100E5EDDC": { | ||
"english": { | ||
"1047194709": "New Suit Name" | ||
} | ||
} | ||
} | ||
``` | ||
|
||
5. If you also want to change the **suit description**, repeat the process by adding the decimal and the new text for the description. | ||
|
||
Here’s an example of both a name and description override: | ||
```json | ||
"localisationOverrides": { | ||
"00985A1100E5EDDC": { | ||
"english": { | ||
"1047194709": "Blood Money Suit with Drip", | ||
"3718104824": "The Blood Money suit but with extra style." | ||
} | ||
} | ||
} | ||
``` | ||
|
||
--- | ||
|
||
## Step 5: Add Multiple Languages or LOCR Files (Optional) | ||
|
||
If you want to add overrides for multiple languages, follow the same structure. For example, here’s how you can add French translations: | ||
|
||
```json | ||
"localisationOverrides": { | ||
"00985A1100E5EDDC": { | ||
"english": { | ||
"1047194709": "Blood Money Suit with Drip", | ||
"3718104824": "The Blood Money suit but with extra style." | ||
}, | ||
"french": { | ||
"1047194709": "Costume d'argent du sang avec goutte à goutte", | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This line means "Blood money suit with IV drip" I believe |
||
"3718104824": "Le costume de l'argent du sang mais avec un style supplémentaire." | ||
} | ||
} | ||
} | ||
``` | ||
|
||
### Adding Another LOCR File | ||
|
||
If you want to modify another LOCR file, you can add additional entries in the `"localisationOverrides"` section. Simply separate them with a comma. Here’s an example of adding another LOCR file: | ||
|
||
```json | ||
"localisationOverrides": { | ||
"00985A1100E5EDDC": { | ||
"english": { | ||
"1047194709": "Blood Money Suit with Drip", | ||
"3718104824": "The Blood Money suit but with extra style." | ||
} | ||
}, | ||
"004B8C5124A49543": { | ||
"english": { | ||
"987654321": "Another Suit Name" | ||
} | ||
} | ||
} | ||
``` | ||
|
||
--- | ||
|
||
## Step 6: Save and Deploy | ||
|
||
After you’ve made all your changes, save the manifest file and deploy the mod as you normally would. Your suit names and descriptions will now be updated in-game. | ||
|
||
--- | ||
|
||
With these steps, you should be able to modify suit names, descriptions, and other localisation text easily. Don’t hesitate to experiment with other text in the game once you’re comfortable! | ||
|
||
--- | ||
|
||
This version is more structured, gradually introducing the steps with clear explanations. Let me know if this feels clearer and easier to follow! | ||
NeetBux-Hash marked this conversation as resolved.
Show resolved
Hide resolved
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
similiar
->similar
,Suggest
->suggest