Eden's Particles is a library for mod developers who want nicer particle effects than spawning vanilla particles in a loop.
You write an effect as a JSON file: a timeline of emitters, each spawning particles with curves for size, colour, opacity and spawn rate over their life. Then you play it from code with one line, or from a command while you're testing.
EdenParticles.play(level, ResourceLocation.fromNamespaceAndPath("mymod", "boom"), EffectAnchor.entity(player));
What effects can do
- Curves with easing, gradients in OKLab, and random ranges for anything that should vary per particle
- Shapes to spawn from (sphere, disc, ring, box, line) and velocity modes like cone, radial and tangent
- Forces: curl-noise turbulence, attractors that can absorb particles, and vortices with pull and lift
- Ribbon trails behind particles, or ribbons on their own for slashes and streaks
- Animated sprites, from frame lists or sprite sheets
- Sub-effects on the timeline, and effects that fire when a particle dies or lands
- Sounds and dynamic lights that follow the effect. Lights need LambDynamicLights
- Inputs: named numbers like
powerthat code can set, and change while the effect plays
Multiplayer
On a server, effects go to nearby players who have the mod, with the same random seed, so everyone sees the same pattern. Players without it can still join. Effects can follow entities, beam between two of them, and reach players who arrive while they're still playing.
Datapacks can ship effects and particle images too. Players get asked before a server's images are used.
For effect authors
/eden_particles_client preview <effect>keeps replaying an effect, and/eden_particles_client reloadpicks up your edits without a full F3+T- Errors point at the exact spot, with "did you mean" hints for typos
- There's a JSON schema for autocomplete in your editor
- 23 example effects ship with the mod. Try
/eden_particles_client play eden_particles:examples/vortex
Using it
Mark it as a required dependency on your project so launchers install it for your players. The docs on GitHub cover the JSON format and the API.
Works on Fabric, NeoForge and Forge for Minecraft 1.21.1. On its own it adds nothing to the game, apart from the example effects you can play with commands.

