Loot Juice 2D makes the moment a reward is given feel satisfying.
Every 2D game hands out coins, gems, XP, and loot — and most of them feel flat. Loot Juice 2D is the polish layer that sits on top of whatever systems you already have and makes that moment pop: the burst, the arc, the travel-to-target, the rarity reveal, the chest opening. Drop it in, point it at a preset, and call one line of code.
It is not an inventory, a loot table, an item database, or a gacha system. It owns the feel; you keep your own game logic. It connects through events, hooks, and explicit targets — never by taking over your project.
Four production-ready effects
- ⭐ Pickup Pop — snappy scale-punch, lift, and fade for coins and small pickups.
- 🧲 Reward Travel / Coin Magnet — multiple visuals stream from a spawn point to an explicit target along arc or Bézier paths, with stagger and arrival punch.
- 📦 Chest Reveal — a modular open → glow → loot → item sequence driven by your own hooks (no hardcoded chest rig).
- 💎 Item Rarity Reveal — Common/Rare/Epic/Legendary tints, glow pulse, scale reveal, and optional shine/label/particle hooks. Rarity is visual only.
Built like a professional asset
- ScriptableObject presets — tune every effect in the Inspector with live validation. No code changes to iterate on feel.
- Pooled playback — zero steady-state allocations after warmup; mobile-friendly.
- Runtime + Editor assembly definitions — clean separation; the runtime never pulls in editor code.
- No singletons, no scene searches, no magic strings, no hidden dependencies.
- UI or world space handled through an explicit coordinate resolver — no fragile Canvas/camera auto-discovery.
- No third-party dependencies. Works in Built-in and URP.
- 6 dissectible demo scenes plus one-click demo generation — and you can delete the entire Demo folder safely.
- Full C# source, XML-documented public API, and an included documentation set (Quick Start, Core Concepts, Pooling, UI vs World Space, per-effect guides, Troubleshooting, API Reference).
Get started in under five minutes
- Add a LootJuicePlayer to a GameObject.
- Assign a preset (or use the included demo presets).
- Call player.Play(preset, position);
That's it. For rewards that fly to a target:
var options = new LootJuicePlaybackOptions(rewardTarget);
player.Play(rewardTravelPreset, spawnPosition, activeParent, options);
What it deliberately does NOT do:
Inventory · loot tables / drop rates · item stats · gacha / monetization · economy backend · audio system · camera-shake system · Canvas/camera auto-lookup · Timeline · visual scripting · netcode. These stay in your project; Loot Juice gives you preset-driven visual timing, pooled playback, and clean hook points to connect them