Skip to content
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

Draft
wants to merge 81 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 8 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
64 changes: 64 additions & 0 deletions docs/modding/suitmodding/addingblobs.md
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.

Choose a reason for hiding this comment

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

similiar -> similar, Suggest -> suggest


---

# Part 1: Blobs

Choose a reason for hiding this comment

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

Part 1?

Copy link
Author

@NeetBux-Hash NeetBux-Hash Oct 28, 2024

Choose a reason for hiding this comment

The 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**

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
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

(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.

Choose a reason for hiding this comment

The 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

Copy link
Author

Choose a reason for hiding this comment

The 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

---

186 changes: 186 additions & 0 deletions docs/modding/suitmodding/addinglocals.md
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:

Choose a reason for hiding this comment

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

That's great ChattyG but irrelevant to this article

Copy link
Author

Choose a reason for hiding this comment

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

This shouldn't be part of the article


---

# Part 2: Localisation Overrides

Choose a reason for hiding this comment

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

Part 2?

Copy link
Author

Choose a reason for hiding this comment

The 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.

Choose a reason for hiding this comment

The 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.

Choose a reason for hiding this comment

The 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

Choose a reason for hiding this comment

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

Hash is a more accurate term than number

Copy link
Author

Choose a reason for hiding this comment

The 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",

Choose a reason for hiding this comment

The 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
Loading