Skip to Content
Importing Assets

Importing Assets

Once your weapon is modeled, textured, and animated in Blockbench, the next step is moving those exported files into your pack.

You should have 5 files:

gunname.geo.json This is the model file. This file goes in assets/pointblank/geo/item.

gunname.json This is the display file. This file goes in assets/pointblank/models/item.

gunname.animation.json This is the animation file. This file goes in assets/pointblank/animations/item.

gunname.png This is the texture png of the model. This file goes in assets/pointblank/textures/item.

gunname.icon.png This is the 2D icon png for the gun. You can create this texture however you want. 2D icons are necessary for making sure the inventory in game doesn’t lag when rendering many 3D models all at once. This file also goes in assets/pointblank/textures/item.

Point Blank expects assets to be split across a few folders. A typical setup looks like this:

packname/ assets/ pointblank/ geo/ item/ gunname.geo.json animations/ item/ gunname.animation.json textures/ item/ gunname.png gunname.icon.png models/ item/ gunname.json

Use the same naming convention everywhere. If your gun is called cw_m16a1, your exported files should also use cw_m16a1 so everything stays easy to track.

Setting Up the Display File

With the display file, a little bit more is done after inserting it in models/item. When it’s first exported, the file will look like this:

{ "credit": "Made with Blockbench", "parent": "builtin/entity", "texture_size": [ 256, 256 ], "display": { "thirdperson_righthand": { "translation": [ 0, -4.25, 1 ], "scale": [ 0.22, 0.22, 0.22 ] }, "thirdperson_lefthand": { "translation": [ 0, -4.25, 1 ], "scale": [ 0.22, 0.22, 0.22 ] }, "firstperson_righthand": { "translation": [ 0, -27.5, -2.5 ] }, "firstperson_lefthand": { "translation": [ 0, -27.5, -2.5 ] }, "ground": { "translation": [ 0, 0, 5 ], "scale": [ 0.24, 0.24, 0.24 ] }, "fixed": { "rotation": [ 180, -90, 180 ], "translation": [ -6.5, -8, 0 ], "scale": [ 0.45, 0.45, 0.45 ] } } }

The display file is where we assign which 2D icon texture the gun should use. We need to make 2 changes: writing some specific code at the top of the file, and the bottom of the file. It’s best to copy-paste the code from other display files. Here’s what it looks like:

Code that goes at the top:

{ "loader": "forge:separate_transforms", "gui_light": "front", "base": {

Code that goes at the bottom:

}, "perspectives": { "gui": { "parent": "item/generated", "textures": { "layer0": "pointblank:item/gunname.icon" } } } }

In the bottom code, there’s “pointblank:item/gunname.icon”. This is the line where you specify the name of the icon png.

Once the code’s pasted in, this is what a complete display files looks like. Be mindful of the brackets:

{ "loader": "forge:separate_transforms", "gui_light": "front", "base": { "credit": "Made with Blockbench", "parent": "builtin/entity", "texture_size": [ 190, 190 ], "display": { "thirdperson_righthand": { "translation": [ 0.25, -4.75, 1 ], "scale": [ 0.25, 0.25, 0.25 ] }, "thirdperson_lefthand": { "translation": [ 0.25, -4.75, 1 ], "scale": [ 0.25, 0.25, 0.25 ] }, "firstperson_righthand": { "rotation": [ 0, 0, 3.5 ], "translation": [ -1, -24, -6 ] }, "firstperson_lefthand": { "rotation": [ 0, 0, 3.5 ], "translation": [ -0.5, -25.5, -7 ] }, "ground": { "translation": [ 0, -6, 3.5 ], "scale": [ 0.3, 0.3, 0.3 ] }, "gui": { "rotation": [ 44, 50, -40 ], "translation": [ -0.25, -7.75, 0 ], "scale": [ 0.37, 0.37, 0.37 ] }, "fixed": { "rotation": [ 180, -90, 180 ], "translation": [ -5.5, -10.25, -1 ], "scale": [ 0.62, 0.62, 0.62 ] } } }, "perspectives": { "gui": { "parent": "item/generated", "textures": { "layer0": "pointblank:item/gunname.icon" } } } }

.geo File Tip

Sometimes, your .geo files will export with a format version that won’t be compatible with the game in certain circumstances. To make sure you don’t run into any crashes or issue, double check the format version inside the .geo file itself.

Open the .geo file and you’ll see something like this at the top:

{ "format_version": "1.21.110", "minecraft:geometry": [ { "description": { "identifier": "geometry.unknown", "texture_width": 128, "texture_height": 128, "visible_bounds_width": 8, "visible_bounds_height": 4, "visible_bounds_offset": [0, 1, 0] }, "bones": [ { "name": "bb_main", "pivot": [0, 0, 0] }, { "name": "main", "pivot": [0, 20, 0] }, { "name": "gun", "parent": "main", "pivot": [1, 11, -1], "cubes": [

Here, the format version is 1.21.110. Because of this, it’s possible the game will crash in lower versions like 1.20.1. To prevent this, quickly change it to 1.12.0.

Last updated on