Check out our latest project ✨ OpenChapter.io: free ebooks the way its meant to be 📖

Juicee

An asset by kelpekk
The page banner background of a mountain and forest
Juicee hero image

Quick Information

0 ratings
Juicee icon image
kelpekk
Juicee

33 game-feel effects for Godot 4 — screen shake, hit stop, flash, blur, chromatic aberration, particles, slow-mo, rumble, glitch, and more — composable into reusable sequences.Three workflows on the same .tres resources:• Juicee.shake_camera(self, 12, 0.3) singleton — one-liner from any script• JuiceePlayer node + custom Inspector card UI• JuiceeGraph visual editor — wire effects with Trigger/Split/Loop/Random nodesBuilt-in updater (Godot has no native addon updating), concurrent-safe state stack, spam-safe play cancellation, MIT licensed. See README for quickstart.

Supported Engine Version
4.2
Version String
1.0.0
License Version
MIT
Support Level
community
Modified Date
23 hours ago
Git URL
Issue URL

Juicee — Game Feel Effects for Godot 4

33 game-feel effects with a visual graph editor. Free, MIT.

README Godot 4.2+ README License MIT

# It really is this easy:
Juicee.shake_camera(self, 12.0, 0.3)
Juicee.hit_stop(self, 0.08)
Juicee.flash(my_sprite, Color.RED)

Three ways to use the same effect set:

  • Inspector — drop a JuiceePlayer node, build a sequence in the custom card UI
  • Visual graph editor — wire effects in the JuiceeGraph bottom panel with Trigger / Split / Loop / Random
  • Singleton — one-liner from any script (shown above)

All three workflows persist as the same JuiceeSequence.tres.


Install

  1. Copy addons/juicee/ into your project's addons/ folder
  2. Project → Project Settings → Plugins → enable Juicee
  3. (Optional) JuiceeGraph panel appears at the bottom of the editor

Requires Godot 4.2+ and the Forward Plus or Mobile renderer (screen shaders use hint_screen_texture).

Updating

Godot has no built-in addon updater. Click ↑ Update in the JuiceeGraph toolbar — it hits the GitHub releases API, shows the latest release notes, and (on confirmation) downloads + extracts the new archive over addons/juicee/. Restart the editor afterwards.

A note on previewing shader effects

Full-screen shader effects (Blur, Chromatic, Glitch, Vignette, Pixelate, Color Grade) sample Godot's SCREEN_TEXTURE, which in editor preview (Inspector ▶ Preview, JuiceeGraph ▶ Test) is clamped to the editor's preview viewport rectangle — the effect will appear bounded to that smaller area.

Run the project (F5 / F6) to see these effects at their true full-screen extent. All other effect categories (Camera, Object, Time, Audio, Physics, Flow) preview accurately in the editor.


Quick start

Singleton (1 line — fastest)

# From any script, anywhere in your game
Juicee.shake_camera(self, 12.0, 0.3)
Juicee.hit_stop(self, 0.08)
Juicee.flash(my_sprite, Color.RED)
Juicee.burst(my_node2d, 20, Color.YELLOW)
Juicee.slow_mo(self, 0.2, 0.5)

Inspector (designer-friendly)

@onready var juicee: JuiceePlayer = $JuiceePlayer
func _on_hit(): juicee.play()
  1. Add a JuiceePlayer node to your scene.
  2. Click it in the scene tree.
  3. The custom Inspector shows an "+ Add Effect" dropdown with all 33 effects.
  4. Pick effects, tweak sliders, click ▶ Preview Effect.
  5. Call juicee.play() from code.

README JuiceePlayer Inspector UI

Visual graph editor

README JuiceGraph visual editor

  1. Open the JuiceeGraph bottom panel.
  2. Right-click in the canvas → search the categorized popup ("Screen" / "Camera" / "Object" / "Time" / …).
  3. Drop a Trigger node, then effect nodes, wire them up.
  4. Add Loop / Random / Split to control flow.
  5. ▶ Test — preview the whole graph, blocks pulse as they fire.
  6. Save.tres graph; ⤓ Export Sequence → a JuiceeSequence.tres ready for JuiceePlayer.sequence.

What's inside

33 effects in 7 categories:

Category Effects
Screen Chromatic, Vignette, Blur, Pixelate, Glitch, Color Grade, Screen Tint, Screen Wipe
Camera Shake (2D / 3D), Zoom, FOV 3D, Camera Follow
Object Flash, Modulate, Bounce, Jiggle Physics, Position (2D / 3D), Rotation (2D / 3D), Trail, Burst, Confetti, Light Flash
Time Hit Stop, Time Scale Ramp, Delay
Audio Sound, Music Duck, Rumble
Physics Impulse (RigidBody2D)
Flow Sequence (nested), Property Tween (universal escape hatch)

Every effect inherits:

  • chance: float — probability the effect fires when triggered
  • delay: float — pre-delay before applying
  • intensity_min/max: float — random intensity multiplier per play
  • cooldown: float — minimum seconds between fires
  • stop() — kills any in-flight tweens + cancels manual-loop effects
  • is_playing() -> bool — query active state
  • Signals: started, finished, stopped

Concurrent effects

If two effects modify the same property at once (e.g., two JuiceeShakeEffects on the same camera), Juicee's ref-counted JuiceeStateStack ensures the camera returns to its TRUE original value when both finish — not a mid-shake snapshot.

Effect A captures cam.offset = (0,0)          # true original
Effect B captures cam.offset = (0,0)          # gets same baseline (ref-count = 2)
... both shakes run, blending on cam.offset ...
Effect A ends → refs = 1 (no restore yet)
Effect B ends → refs = 0 → cam.offset = (0,0) restored

You don't have to do anything — it just works.


Runtime params (reactive effects)

Pass a dict to play() so effects can react to gameplay state:

# Camera shake biases AWAY from the hit direction
juicee.play({"hit_direction": (hit_position - global_position).normalized()})

Effects access via _runtime_params.get("key", default).

JuiceeShakeEffect ships with hit_direction support — write your own to read whatever your game wants to pass.


See also


Community

Got a cool effect or preset? Two ways to share:

  • Pull Request — if it's broadly useful, ship it in the next release for everyone
  • Discussions — for game-specific presets, experimental effects, or just show-and-tell

See CONTRIBUTING.md for both paths.


License

MIT — free for personal and commercial projects.

33 game-feel effects for Godot 4 — screen shake, hit stop, flash, blur, chromatic aberration, particles, slow-mo, rumble, glitch, and more — composable into reusable sequences.

Three workflows on the same .tres resources:
• Juicee.shake_camera(self, 12, 0.3) singleton — one-liner from any script
• JuiceePlayer node + custom Inspector card UI
• JuiceeGraph visual editor — wire effects with Trigger/Split/Loop/Random nodes

Built-in updater (Godot has no native addon updating), concurrent-safe state stack, spam-safe play cancellation, MIT licensed. See README for quickstart.

Reviews

0 ratings

Your Rating

Headline must be at least 3 characters but not more than 50
Review must be at least 5 characters but not more than 500
Please sign in to add a review

Quick Information

0 ratings
Juicee icon image
kelpekk
Juicee

33 game-feel effects for Godot 4 — screen shake, hit stop, flash, blur, chromatic aberration, particles, slow-mo, rumble, glitch, and more — composable into reusable sequences.Three workflows on the same .tres resources:• Juicee.shake_camera(self, 12, 0.3) singleton — one-liner from any script• JuiceePlayer node + custom Inspector card UI• JuiceeGraph visual editor — wire effects with Trigger/Split/Loop/Random nodesBuilt-in updater (Godot has no native addon updating), concurrent-safe state stack, spam-safe play cancellation, MIT licensed. See README for quickstart.

Supported Engine Version
4.2
Version String
1.0.0
License Version
MIT
Support Level
community
Modified Date
23 hours ago
Git URL
Issue URL

Open Source

Released under the AGPLv3 license

Plug and Play

Browse assets directly from Godot

Community Driven

Created by developers for developers