SpanZeto / Documentation / game juice Pro

Usage Guide - Game Juice Pro

Plugin v1.0 UE 5.3+ 5 min read Updated Feb 2026

The Game Juice Pro workflow can be summarized in two steps: create a preset and use the Play Juice node. You don't need components or special configuration.

Step 1: Create a Juice Preset

  1. In the Content Browser, right-click → Game Juice Pro → Juice Preset.
  1. Open the created preset. You will see the empty Feedback Templates array.
  1. Click the + button to add feedbacks. Select the type you need from the list (e.g.: Camera Shake, Scale, Sound, etc.).
  1. Configure each feedback to your liking. Each type has its specific properties (see the Feedback Catalog).
  1. Optionally, adjust the global preset properties: Intensity Multiplier, Duration Multiplier, Sequential.

Step 2: Use the Play Juice node

  1. In the Blueprint where you want to trigger the effect, right-click and search for "Play Juice".
  1. Connect the Target pin to the actor that will receive the effect (e.g.: the character, an enemy, an object).
  1. In the Preset pin, select the Juice Preset you created.
  1. Optionally, adjust the Intensity (0-1). A lower value produces a subtler effect.
  1. If you're in a multiplayer project and want the effect to be local only, enable Skip Replication.
  1. The node returns a Session ID through its output pin. If you need to stop this preset later (e.g.: remove a Rim Glow effect on end overlap), store that ID in a variable.
  1. Run the game and trigger the event. The preset feedbacks will play on the target actor.

Advanced usage: Game Juice Component

For actors that need additional control

The Game Juice Component is optional. Use it when you need independent sessions, auto-play, component-level cooldowns or advanced network configuration.

  1. Open your actor's Blueprint and add the "Game Juice Component".
  1. Configure the component properties as needed (see Core Concepts).
  1. Call Play Preset on the component passing the preset, position and intensity. The component returns a Session ID that you can use to stop that specific session.

Usage from C++

Include the main header and use the static function PlayGameFeel:

#include "GameFeelPro.h"

// Play a preset on an actor
// Returns the Session ID (>= 0 success, -1 failure)
int32 SessionId = UGJPFeedbackLibrary::PlayGameFeel(
    this,           // WorldContextObject
    MyActor,        // Target actor
    MyPreset,       // UGJPFeedbackPreset*
    1.0f,           // Intensity (0-1)
    false           // bLocalOnly (Skip Replication)
);

// Stop that specific session later
UGameJuiceComponent* JuiceComp = MyActor->FindComponentByClass<UGameJuiceComponent>();
JuiceComp->StopSession(SessionId);

Control playback

The Play Juice node returns a Session ID that you can store in a variable. Use that ID on the actor's Game Juice Component to control the session:

  • Stop Session (ID): Stops a specific session by its ID, without affecting other active sessions
  • Stop Preset: Stops all sessions of a specific preset
  • Stop All Sessions: Stops everything in the component
  • Get Active Session Count: Returns the number of active sessions
  • Refresh Base Scale: Recaptures the actor's base scale after intentional changes

Tip: If you want independent control over an effect, create a separate preset for it. Each preset = one independent control unit with its own Session ID.

Tips

  • Start with small presets (2-3 feedbacks) and iterate. It's easier to adjust game feel gradually.
  • Combine subtle feedbacks: a small Camera Shake + Scale + Sound can produce great results.
  • Leverage presets to standardize game feel: create presets like "Light Hit", "Heavy Hit", "Pickup", "Level Up".
  • Use the Intensity pin on the Play Juice node to reuse the same preset with different intensities depending on context.
  • Use Chance with values below 100 to add variation to frequently repeating effects.

Need help?

For questions or suggestions, join our Discord.