-
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 27 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,234 @@ | ||||||
--- | ||||||
sidebar_position: 3 | ||||||
description: Modifying an image in the menu | ||||||
|
||||||
--- | ||||||
# Adding "Blobs" | ||||||
|
||||||
|
||||||
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 the 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** | ||||||
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 |
||||||
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. | ||||||
|
||||||
>You can 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 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***. | ||||||
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 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 copy the ***assembly path*** | ||||||
|
||||||
The **assembly path** is the line after **"image":"...**" inside the quotation. | ||||||
|
||||||
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 | ||||||
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 is not an assembly path, it's a blob path. The assembly path for this blob is much longer because blobs are inside the 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. Also this should not be a JSON code block |
||||||
``` | ||||||
|
||||||
- Paste that in the search bar 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're all set for the next step and you can go back to your **repository** file. (Where you saw your code). | ||||||
|
||||||
>You can 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, so practicing in **GlacierKit** is encouraged for efficient 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. 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 remember its ***assembly path***. | ||||||
:::note | ||||||
You already did this step in the **GlacierKit** method but follow along | ||||||
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. 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":"....` | ||||||
|
||||||
:::example | ||||||
NeetBux-Hash marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
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` | ||||||
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. 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 it in the next steps. | ||||||
::: | ||||||
|
||||||
--- | ||||||
|
||||||
## STEP 3: **SET UP A BLOBSFOLDER** | ||||||
In this step, you’ll create a custom folder structure to replace the game’s default image. | ||||||
|
||||||
### 1. Make a blobsfolder | ||||||
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.
Suggested change
|
||||||
|
||||||
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`). | ||||||
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 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). 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, 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** of the image you're replacing. | ||||||
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 Tips | ||||||
- **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**. | ||||||
- **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"***). | ||||||
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 is a huge amount of bold and italic. 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. 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: | ||||||
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.
Suggested change
|
||||||
Add the following line that will make **SMF** do a blobs operation and have it refer to your ***`blobs`*** folder | ||||||
```json | ||||||
"blobsFolders": ["blobs"] | ||||||
``` | ||||||
### 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 your final step complete, below are additional options and tips for managing **blobs** in your mod. | ||||||
|
||||||
--- | ||||||
## More on Blobs | ||||||
These tips will help you manage multiple images and **blobsfolders**. | ||||||
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.
Suggested change
|
||||||
|
||||||
|
||||||
### 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: | ||||||
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.
Suggested change
|
||||||
|
||||||
| **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 use the same **assembly path**, simply place them within the same folders (e.g., images under `unlockables_override`). Don't forget to rename them too. | ||||||
|
||||||
|
||||||
### 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** these essential steps: | ||||||
|
||||||
- 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! | ||||||
::: |
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.
Quotes are not necessary, blobs are what they are called
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.
I did that to introduce an unfamiliar term. I'll change it