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
1 day 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
1 day 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