-
Notifications
You must be signed in to change notification settings - Fork 3
Home
Type:
Integer| Example:300| Positive only
Specifies the lifetime of the particle in ticks (game ticks, where 20 ticks = 1 second).
Type:
String| Example:random_static| Default Value:random
Defines how the particle's textures animate over time.
Possible values:
-
"stretch": Plays each texture to fit thelife_time. -
"onetime": Plays an animation for the duration oflife_timeat the speed ofanimation_speed, and then dies. -
"loop": Loops the animation continuously. -
"random": Chooses a random texture each time for the duration ofanimation_speed. -
"random_static": Chooses a random texture once when the particle spawns and keeps it static.
Type:
Double| Example:1.0| Default Value:1.0| Positive only
Controls the speed of the texture animation in game ticks. 1.0 is normal speed, 2.0 is twice as fast, 0.5 is half speed.
Type:
Object| Example:{"width": 16, "height": 16}| Default Value:{"width": 8, "height": 8}
Defines the size of the particle. Can be static or dynamic:
{
"width": 8.0,
"height": 8.0
}"size": {
{
"sizes": {
"0": {"width": 4.0, "height": 4.0},
"50": {"width": 8.0, "height": 8.0},
"100": {"width": 4.0, "height": 4.0}
},
"interpolation": "linear_interpolation"
}
}-
sizes: An object that stores other tick-size objects. -
tick-size object
-
-
- The key is always a number indicating the tick at which the size should be set (taking into account
interpolation)
- The key is always a number indicating the tick at which the size should be set (taking into account
-
-
-
- The value is similar to a static size.
-
-
interpolation: Type of interpolation between sizes. Possible:ease_in_sine,ease_in_expo, and other from https://nicmulvaney.com/easing/
Type:
String Array| Example:["inventory_particles:drip/water_drip_0.png"]
List of strings that indticates texture paths for your particle. Can be item texture or atlas texture:
"textures": [
"minecraft:stick"
],- Renders provided item as particle's texture
- Use tooltip with F3+H to get your item identifier
"textures": [
"inventory_particles:void/void_1.png"
],- Renders texture from mod's atlas. Every texture must be in
textures/iparticles/..
"textures": [
{
"atlas": "minecraft:decorated_pot",
"sprite": "the_name_of_sprite_from_this_atlas"
}
],- Renders texture from another atlas. Every texture must be in
textures/iparticles/..
Type:
Array of Objects| Example: See below | Default Value:[]
List of items that trigger particle spawning. Each holder defines spawn conditions.
Type:
String| Example:"Water Bucket Drip"| Default Value: Auto-generated
Optional name for the holder, used for debugging. Helps identify configurations in logs.
Type:
String| Example:"minecraft:water_bucket"| Required
Item ID or tag. Use # prefix for tags (e.g., "#minecraft:boats").
This specifies which items in the inventory will spawn these particles, like targeting specific items in recipes or models.
Type:
String| Example:"any"| Default Value:"any"
How to combine NBT conditions: "all" (all must match), "any" (at least one), "none" (none must match).
Type:
Array of Objects| Example:[{"this_name": "Damage", "this_type": "int", "check_value": ["0"]}]| Default Value:[]
Conditions based on item's NBT data. Each object represents an NBT node.
-
this_name: Name of the NBT tag. -
this_type: Type of the tag (e.g.,"int","string","list","compound"). -
check_value: Array of strings to check against the tag's value. -
next_match: How to combine nested conditions ("all","any","none"). -
next: Array of nested conditions.
This allows particles only for enchanted items or damaged tools, similar to conditional models in resource packs.
Type:
String| Example:"water_bucket_drip.png"| Default Value:"standard.png"
Path to a PNG mask file in spawn_areas/ that defines where particles can spawn. White pixels allow spawning, black pixels do not.
Like defining emissive areas in block textures, but for particle spawn positions.
Type:
Array of Integers| Example:[1, 3]| Default Value:[0, 0]
Range of particle count per spawn event. [min, max].
Controls how many particles appear at once, balancing visual effect with performance.
Type:
Array of Integers| Example:[20, 80]| Default Value:[0, 0]
Frequency of spawns in ticks. [min, max] interval between spawns.
Determines how often new particles are created, like timing in animated textures.
Type:
StringorObject| Example:"#FF0000"| Default Value:""
Particle color. Options:
-
"": Default color (white). -
"#RRGGBB": Hex color code. -
"nbt": Color from item's NBT. -
"nbt_list": List of colors from NBT. - Object for advanced color settings (e.g., gradients).
Allows tinting particles, similar to color overlays in entity models.
Type:
Double| Example:0.3| Default Value:0.0
Multiplier for particle speed. Positive values speed up, negative slow down.
Adjusts overall movement speed without changing physics details.
Type:
Object| Example: See structure above | Default Value: Default physics with no movement
Defines particle movement and rotation.
Base movement physics.
Type:
Object| Each controls speed in X, Y, or rotation angle.
Each contains:
-
impulse: Initial speed range [min, max]. -
impulse_bidirectional: If true, impulse can be negative. -
acceleration: Constant acceleration. -
acceleration_bidirectional: If acceleration can be negative. -
max_acceleration: Max acceleration range [min, max]. -
max: Max speed range [min, max]. -
braking: Deceleration factor. -
turbulence: Random speed variation [min, max]. -
cursor_impulse_inherit_coefficient: How much speed inherits from mouse movement.
This simulates realistic physics, like gravity or wind, beyond static vanilla particles.
Rotation settings for particle and texture.
Type:
Object| Controls rotation of the particle body or its texture.
Each contains:
-
spawn_angle: Initial rotation range [min, max] in degrees. -
rotate_in_movement_direction: If true, rotates to face movement direction. -
speed: Rotation speed settings (same as base speed).
Allows spinning or directional effects, like rotating items in GUIs.