# How To Edit The Geyser Packs

> **Difficulty:&#x20;**<mark style="color:red;">**Hard**</mark>

## 1. How The Bedrock Texturepack Works

Our Bedrock texturepack is included in the Geyser Addon. All the texturepack files for Bedrock are located in the Geyser plugins folder. In your Geyser plugins folder, you should have 2 folders which are relevant to the Bedrock texturepack. The *packs* and *custom\_mappings* folders like shown below:

<figure><img src="https://4208562348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLH36a1c02mhUj85u12af%2Fuploads%2FiAJKB2MBDTQAeXoIYEK8%2Fimage.png?alt=media&#x26;token=794f93aa-17ed-410a-8026-74d110d7868e" alt=""><figcaption></figcaption></figure>

The *packs* folder is where the Bedrock texturepacks are located. The *custom\_mappings* folder includes a *geyser\_mappings.json* file, which is used to assign all the items from the NitroSetupsBedrockItems pack a custom model data number. So the *custom\_mappings* folder is only used for the item textures.

<details>

<summary>Explaining the 3 bedrock texturepacks</summary>

The Bedrock texturepacks are split into 3 different packs.&#x20;

* NitroSetupsBedrockGlyphs
* NitroSetupsBedrockMenus
* NitroSetupsBedrockItems

The NitroSetupsBedrockGlyphs pack includes all the font textures that are not part of menus. Some examples of what this pack includes would be the rank prefixes and the icons used for the scoreboards.

The NitroSetupsBedrockMenus pack includes all of the custom GUI.

The NitroSetupsBedrockItems included all of the custom item textures, which are then linked to a custom model data number in the *geyser\_mappings.json* file.

<img src="https://4208562348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLH36a1c02mhUj85u12af%2Fuploads%2FU46Ve3i6MODodJPfu1Ts%2Fimage.png?alt=media&#x26;token=1c6686be-8a7e-4411-88a4-97750df08ed0" alt="" data-size="original">

</details>

***

## 2. Unzip the texturepacks&#x20;

The first step of editing one of the Bedrock texturepacks is to unzip the texturepack. All of the Bedrock texturepacks have the .mcpack file format. However they are still just ZIP files which you can unzip like any regular ZIP file. So first step of editing one of the texturepacks is to unzip it.

## 3. Editing the texturepacks

In the tabs below, you can see how to edit each of the 3 Bedrock texturepacks.

{% tabs %}
{% tab title="Glyphs" %}

## Editing Glyphs Texturepack

This guide will explain how you can edit the NitroSetupsBedrockGlyphs texturepack.

As mentioned in step 3, you should start by unzipping the NitroSetupsBedrockGlyphs.mcpack file. When you have unzipped it, you should have something looking like this:

<figure><img src="https://4208562348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLH36a1c02mhUj85u12af%2Fuploads%2FYZlZYgKtHkaTsxXRfZKU%2Fimage.png?alt=media&#x26;token=06b34b26-7676-47f9-aeeb-e04ff1325d7b" alt=""><figcaption></figcaption></figure>

The *font* folder is where all of the custom textures are located. The *manifest.json* is not relevant until we have edited the texturepack and wish to save the changes.

If you open the *font* folder, you will see a lot of PNG sheets with all of the custom textures. These are named glyph\_E0, glyph\_E1, glyph\_E2 etc. The names of these sheets are important for how we call the custom textures ingame for Bedrock.

The way that the glyph sheets work is that Bedrock divides these sheets into 16x16 squares like shown in the picture below. Each of these squares have an ID. The ID for each square is shown below. So the ID of the square in the bottom right is always FF.

<figure><img src="https://4208562348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLH36a1c02mhUj85u12af%2Fuploads%2FPMYAdElwChcwzc4x1kub%2Fimage.png?alt=media&#x26;token=b2852946-7c94-4a2d-9c81-b87c93f6e0ad" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Want to learn more? Read about Bedrock glyphs yourself on the Bedrock documentation page: <https://wiki.bedrock.dev/concepts/emojis.html>
{% endhint %}

Now lets say that we wanted to recall the texture on square 02 in the sheet. (This square is almost top left). We know that the ID of this square is 02. Then lets say that this was sheet glyph\_E1 in the texturepack. This means that our final ID for the texture is E102.

You now have to go to the Bedrock documentation website and convert E102 to the unicode symbol that you can use to display that texture ingame: <https://wiki.bedrock.dev/concepts/emojis.html>

<figure><img src="https://4208562348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLH36a1c02mhUj85u12af%2Fuploads%2FTSUDlAcF7cUALoGXlPWa%2Fimage.png?alt=media&#x26;token=b7075d86-268c-423c-97f9-29889189446a" alt=""><figcaption><p>Converting the E102 ID to the equevalent unicode symbol.</p></figcaption></figure>

We now have the symbol which is connected to the E102 square in the texturepack sheet. When we paste this ingame on Bedrock, it should show this symbol.

***

## Saving your changes

When you have applied all the changes you want to apply to the NitroSetupsBedrockGlyphs pack, it is now time to ZIP it back and apply it to your server. But this is a bit tricky to do.

First you have to open the *manifest.json* file. The only thing you have to edit ever in this file are the 2 UUID values marked with yellow below:

![](https://4208562348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLH36a1c02mhUj85u12af%2Fuploads%2F1cdf2GHU8GohXup1cMhC%2Fimage.png?alt=media\&token=f3134b4e-35ac-4632-994c-ead1a5d892a7)

Every time that you re-ZIP the Bedrock resourcepack, you have to generate new UUID values and replace the old values with the new ones. You can generate new random UUID values here: <https://www.uuidtools.com/v4>

If you don't do this, the changes you made wont be applied. The reason for this is that Bedrock stores the resourcepack based on the UUID value. So if you don't change it, it wont think that it is a new pack.

When you have changed the UUID values in the *manifest.json* file, you can go ahead and ZIP back the texturepack. Remember that when zipping it, you have to mark the font folder and *manifest.json* file for it to ZIP correctly.&#x20;

![](https://4208562348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLH36a1c02mhUj85u12af%2Fuploads%2FRg6jvFUZzHB9h4b7pQsM%2Fimage.png?alt=media\&token=e2f2c20e-7874-494a-974b-f90368fd0b39)

When you have zipped the texturepack, it would be named .zip like shown below. You have to manually change the name of the file to *.mcpack* so that the file format changes.

![](https://4208562348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLH36a1c02mhUj85u12af%2Fuploads%2FuTcdEl5yMkb77fzeK6Y6%2Fimage.png?alt=media\&token=22784fd0-0d62-41d9-9867-e8116232a15c)\
\
When you have done this, you can replace the NitroSetupsBedrockGlyphs pack from your server with your new pack. You can do "/geyser reload" to apply the changes.

<details>

<summary>Adding your own glyph texture</summary>

In this small guide, we will go through how you can add your own glyph texture to the texturepack.

In this example, we will add a new pink "test" prefix to the prefix sheet. So we start by adding the new texture to the PNG sheet like shown in the picture below.

<img src="https://4208562348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLH36a1c02mhUj85u12af%2Fuploads%2FzQZxUDR04xEM2IVEhCNB%2Fimage.png?alt=media&#x26;token=3730b8f4-834e-4737-b3f8-cec2678e1222" alt="" data-size="original">

When you have added the texture like this, you have done everything necessary in the texturepack. You should now save the changes and apply them to your server like explained.

To recall your new texture, we have to check what the ID of the square is. Based on the sheet with the IDs earlier in this guide, we see that the ID of the square is 28. The file name of the sheet is glyph\_E4, so our final ID is E428. Now we can put E428 in the converter:

<img src="https://4208562348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLH36a1c02mhUj85u12af%2Fuploads%2Foo84rxeNwQfT6aBvcXhs%2Fimage.png?alt=media&#x26;token=bdc3eb7e-2d1e-412a-a0a5-dc8ae136bd82" alt="" data-size="original">

If we paste this symbol in the chat on Bedrock, our new custom glyph texture should display.

</details>
{% endtab %}

{% tab title="Menus" %}

## Editing Menus Texturepack

This guide will explain how you can edit the NitroSetupsBedrockMenus texturepack.

As mentioned in step 3, you should start by unzipping the NitroSetupsBedrockMenus.mcpack file. When you have unzipped it, you should have something looking like this:

<figure><img src="https://4208562348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLH36a1c02mhUj85u12af%2Fuploads%2FxeJVud0qUB5gl5VnHxjn%2Fimage.png?alt=media&#x26;token=d5d8e4c7-8f95-46cc-92c0-5f465964cab4" alt=""><figcaption></figcaption></figure>

The *textures* folder is where all of the custom textures are located. The *ui* folder is where all of the textures are linked to a font symbol. The *manifest.json* is not relevant until we have edited the texturepack and wish to save the changes.

If you open the *textures* folder, you can see that this is just where all of the custom textures are stored. This works much like a JAVA resourcepack.

Then if you open the *ui* folder, you should see a *chest\_screen.json* file. This is the file where you can link all of the textures from the *textures* folder to a unicode symbol. This works almost exactly like JAVA resourcepacks does.

You can apply all the changes you want to the textures in here or add new ones. When you have made the edits you want to make, you can proceed to the "Saving your changes" step.

***

## Saving your changes

When you have applied all the changes you want to apply to the NitroSetupsBedrockMenus pack, it is now time to ZIP it back and apply it to your server. But this is a bit tricky to do.

First you have to open the *manifest.json* file. The only thing you have to edit ever in this file are the 2 UUID values marked with yellow below:

<figure><img src="https://4208562348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLH36a1c02mhUj85u12af%2Fuploads%2FJu3YDADQhlIh4rVleK0L%2Fimage.png?alt=media&#x26;token=99c4c347-1acc-4ca0-9e6f-230dc073f321" alt=""><figcaption></figcaption></figure>

Every time that you re-ZIP the Bedrock resourcepack, you have to generate new UUID values and replace the old values with the new ones. You can generate new random UUID values here: <https://www.uuidtools.com/v4>

If you don't do this, the changes you made wont be applied. The reason for this is that Bedrock stores the resourcepack based on the UUID value. So if you don't change it, it wont think that it is a new pack.

When you have changed the UUID values in the *manifest.json* file, you can go ahead and ZIP back the texturepack. Remember that when zipping it, you have to mark the folders and *manifest.json* file for it to ZIP correctly.&#x20;

<figure><img src="https://4208562348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLH36a1c02mhUj85u12af%2Fuploads%2Fp1wYiD5L8nif4Lejw9vb%2Fimage.png?alt=media&#x26;token=e7ab53af-f14f-4a56-8a9f-bc0e5aeb0fc9" alt=""><figcaption></figcaption></figure>

When you have zipped the texturepack, it would be named .zip like shown below. You have to manually change the name of the file to *.mcpack* so that the file format changes.

![](https://4208562348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLH36a1c02mhUj85u12af%2Fuploads%2FCAJUicVdWx93E6Ds7wTF%2Fimage.png?alt=media\&token=95bc4a29-a61d-400c-b9f5-ecf0ef5e3740)\
\
When you have done this, you can replace the NitroSetupsBedrockMenus pack from your server with your new pack. You can do "/geyser reload" to apply the changes.
{% endtab %}

{% tab title="Items" %}

## Editing Items Texturepack

This guide will explain how you can edit the NitroSetupsBedrockItems texturepack.

As mentioned in step 3, you should start by unzipping the NitroSetupsBedrockItems.mcpack file. When you have unzipped it, you should have something looking like this:

<figure><img src="https://4208562348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLH36a1c02mhUj85u12af%2Fuploads%2FJL3Or2fTaA2ZoEH45MfN%2Fimage.png?alt=media&#x26;token=cb3d9d49-ad7e-40ee-9115-1c1f8878b5dd" alt=""><figcaption></figcaption></figure>

The only files/folders you need to edit here is the *textures* folder and the *manifest.json* file. The *textures* folder is where all of the custom textures are located. The *manifest.json* is not relevant until we have edited the texturepack and wish to save the changes.

Now for the Items texturepack, there is a *geyser\_mappings.json* file aswell. This file is in the *custom\_mappings* folder in your Geyser plugins folder. We will come back to this later.

In the *textures* folder, you can see all of the custom textures. Here you can edit all of the existing custom textures or add new ones. You should also see a *item\_texture.json* file which is the file where all of the custom items are defined and connected to the textures.

***

## Saving your changes

When you have applied all the changes you want to apply to the NitroSetupsBedrockItems pack, it is now time to ZIP it back and apply it to your server. But this is a bit tricky to do.

First you have to open the *manifest.json* file. The only thing you have to edit ever in this file are the 2 UUID values marked with yellow below:

<figure><img src="https://4208562348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLH36a1c02mhUj85u12af%2Fuploads%2FwiFXmbRoe4IHMcI2x4DS%2Fimage.png?alt=media&#x26;token=2247ab9b-0fb4-4bc8-b4a8-891135adfd0b" alt=""><figcaption></figcaption></figure>

Every time that you re-ZIP the Bedrock resourcepack, you have to generate new UUID values and replace the old values with the new ones. You can generate new random UUID values here: <https://www.uuidtools.com/v4>

If you don't do this, the changes you made wont be applied. The reason for this is that Bedrock stores the resourcepack based on the UUID value. So if you don't change it, it wont think that it is a new pack.

When you have changed the UUID values in the *manifest.json* file, you can go ahead and ZIP back the texturepack. Remember that when zipping it, you have to mark the folders and *manifest.json* file for it to ZIP correctly.&#x20;

<figure><img src="https://4208562348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLH36a1c02mhUj85u12af%2Fuploads%2FkxzkQXUGwUxr6xrHMgZP%2Fimage.png?alt=media&#x26;token=93201fec-cfce-41e2-95ef-3c19a8a4fad1" alt=""><figcaption></figcaption></figure>

When you have zipped the texturepack, it would be named .zip like shown below. You have to manually change the name of the file to *.mcpack* so that the file format changes.

![](https://4208562348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLH36a1c02mhUj85u12af%2Fuploads%2F3DeoXpxVSNzx9G1BTu6S%2Fimage.png?alt=media\&token=138f8287-d406-4508-ac6e-e781fd722bf1)\
\
When you have done this, you can replace the NitroSetupsBedrockItems pack from your server with your new pack. You can do "/geyser reload" to apply the changes.

***

## Assigning custom model data

If you have added a new item texture to the NitroSetupsBedrockItems pack, you have to add that item to the *geyser\_mappings.json* file aswell and assign a new CustomModelData number to it.

You can find the *geyser\_mappings.json* file in the *custom\_mappings* folder in your Geyser plugins folder.
{% endtab %}
{% endtabs %}
