Repository navigation
Bullet holes and Impact sounds
The bulletHoles feature adds customizable bullet-hole decals and impact sounds when bullets hit blocks. You can customize bullet-hole textures, sizes, lifetimes, limits, and impact sounds for different blocks and block tags.
Add the following feature inside your weapon's features array.
{
"type": "bulletHoles",
"bullet_holes": {
"enabled": true,
"default_texture": "pointblankextra:textures/bullet_holes/default.png",
"size": 0.12,
"lifetime": 1200,
"max_per_chunk": 128,
"max_block_particles": 22,
"max_distance": 16,
"soundsPlayOnperBlockHit": {
"enabled": true,
"default": "pointblankextra:bullet_holes.default",
"impact_volume": 1.9,
"surface_sounds": {
"minecraft:oak_planks": "minecraft:block.wood.hit",
"minecraft:stone": "minecraft:block.stone.hit",
"minecraft:dirt": "minecraft:block.gravel.hit",
"minecraft:sand": "minecraft:block.sand.hit"
},
"tag_sounds": {
"minecraft:logs": "minecraft:block.wood.hit",
"c:glass_blocks": "pointblankextra:bullet_holes.glass",
"minecraft:planks": "minecraft:block.wood.hit"
}
},
"surface_textures": {
"minecraft:oak_planks": "pointblankextra:textures/bullet_holes/wood.png",
"minecraft:stone": "pointblankextra:textures/bullet_holes/stone.png",
"minecraft:iron_block": "pointblankextra:textures/bullet_holes/metal.png"
},
"tag_textures": {
"minecraft:logs": "pointblankextra:textures/bullet_holes/wood.png",
"minecraft:planks": "pointblankextra:textures/bullet_holes/wood.png"
}
}
}| Option | Description |
|---|---|
enabled |
Enables or disables the bullet-hole feature. |
default_texture |
Texture used for blocks without a specific texture override. |
size |
Controls the size of bullet-hole decals. |
lifetime |
How long bullet holes remain before disappearing, in ticks. |
max_per_chunk |
Maximum number of bullet holes allowed per chunk. |
max_block_particles |
Controls the maximum number of block particles. |
max_distance |
Maximum distance at which bullet holes are displayed. |
You can assign different textures to individual blocks using surface_textures.
"surface_textures": {
"minecraft:oak_planks": "pointblankextra:textures/bullet_holes/wood.png",
"minecraft:stone": "pointblankextra:textures/bullet_holes/stone.png",
"minecraft:iron_block": "pointblankextra:textures/bullet_holes/metal.png"
}You can also assign textures to entire block tags using tag_textures.
"tag_textures": {
"minecraft:logs": "pointblankextra:textures/bullet_holes/wood.png",
"minecraft:planks": "pointblankextra:textures/bullet_holes/wood.png"
}How it works:
-
surface_texturesassigns a texture to a specific block. -
tag_texturesassigns a texture to blocks belonging to a specified tag. -
default_textureprovides the fallback texture.
Replace the texture paths with the resources you want to use.
The soundsPlayOnperBlockHit section allows you to configure sounds played when bullets hit blocks.
| Option | Description |
|---|---|
enabled |
Enables or disables impact sounds. |
default |
Default sound used when no specific sound is configured. |
impact_volume |
Controls the volume of impact sounds. |
surface_sounds |
Assigns sounds to individual blocks. |
tag_sounds |
Assigns sounds to blocks belonging to specified tags. |
Example:
"soundsPlayOnperBlockHit": {
"enabled": true,
"default": "pointblankextra:bullet_holes.default",
"impact_volume": 1.9,
"surface_sounds": {
"minecraft:oak_planks": "minecraft:block.wood.hit",
"minecraft:stone": "minecraft:block.stone.hit",
"minecraft:dirt": "minecraft:block.gravel.hit",
"minecraft:sand": "minecraft:block.sand.hit"
},
"tag_sounds": {
"minecraft:logs": "minecraft:block.wood.hit",
"c:glass_blocks": "pointblankextra:bullet_holes.glass",
"minecraft:planks": "minecraft:block.wood.hit"
}
}-
defaultspecifies the fallback impact sound. -
surface_soundslets you specify a sound for an individual block. -
tag_soundslets you specify a sound for an entire block tag. -
impact_volumecontrols the volume of the impact sounds.
You can use registered Minecraft sounds or custom sounds registered by mods.
- Use different textures for wood, stone, and metal to make bullet impacts look more realistic.
- Use block tags when you want multiple blocks to share the same texture or impact sound.
- Keep
max_per_chunkandmax_distanceat reasonable values to help manage performance. - Set
soundsPlayOnperBlockHit.enabledtofalseif you want bullet holes without impact sounds. - Set
bullet_holes.enabledtofalseto disable the entire bullet-hole feature.
You can use your own custom sounds for bullet impacts by registering them in your content pack's sounds.json file.
Place your .ogg sound files inside your content pack's assets directory.
Make sure every sound file is converted to MONO, not STEREO.
For example:
assets/
└── pointblankextra/
├── sounds.json
└── sounds/
└── bullet_holes/
├── impact_default_1.ogg
├── impact_default_2.ogg
└── impact_default_3.ogg
Open sounds.json and add an entry for your custom impact sounds.
Example:
{
"bullet_holes.default": {
"sounds": [
"pointblankextra:bullet_holes/impact_default_1",
"pointblankextra:bullet_holes/impact_default_2",
"pointblankextra:bullet_holes/impact_default_3"
]
}
}Each entry references a sound file without the .ogg extension.
When multiple sounds are registered under the same sound event, Minecraft can select different variations when playing it.
Once registered, reference the sound event in your bullet_holes configuration.
"soundsPlayOnperBlockHit": {
"enabled": true,
"default": "your_namespace:bullet_holes.default",
"impact_volume": 1.9
}Replace your_namespace:bullet_holes.default with the sound event identifier you registered in sounds.json.
You can register separate sound events for different materials.
Example sounds.json:
{
"bullet_holes.default": {
"sounds": [
"pointblankextra:bullet_holes/impact_default_1",
"pointblankextra:bullet_holes/impact_default_2"
]
},
"bullet_holes.wood": {
"sounds": [
"pointblankextra:bullet_holes/wood_impact_1",
"pointblankextra:bullet_holes/wood_impact_2"
]
},
"bullet_holes.glass": {
"sounds": [
"pointblankextra:bullet_holes/glass_impact_1",
"pointblankextra:bullet_holes/glass_impact_2"
]
}
}You can then assign these sounds to specific blocks or block tags:
"soundsPlayOnperBlockHit": {
"enabled": true,
"default": "pointblankextra:bullet_holes.default",
"impact_volume": 1.9,
"surface_sounds": {
"minecraft:oak_planks": "pointblankextra:bullet_holes.wood",
"minecraft:glass": "pointblankextra:bullet_holes.glass"
},
"tag_sounds": {
"minecraft:logs": "pointblankextra:bullet_holes.wood"
}
}- All impact sound files MUST be MONO (single-channel), converted from STEREO if necessary.
- Sound files must be in
.oggformat. - Do not include
.oggwhen referencing a sound file insounds.json. - The sound event identifier must match the identifier used in your weapon JSON.
- Use
surface_soundsfor individual blocks andtag_soundsfor block tags. - You can register multiple sound variations under one event to add variety to bullet impacts.