Usage Guide - Game Juice Pro
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
- In the Content Browser, right-click → Game Juice Pro → Juice Preset.
- Open the created preset. You will see the empty Feedback Templates array.
- Click the + button to add feedbacks. Select the type you need from the list (e.g.: Camera Shake, Scale, Sound, etc.).
- Configure each feedback to your liking. Each type has its specific properties (see the Feedback Catalog).
- Optionally, adjust the global preset properties: Intensity Multiplier, Duration Multiplier, Sequential.
Step 2: Use the Play Juice node
- In the Blueprint where you want to trigger the effect, right-click and search for "Play Juice".
- Connect the Target pin to the actor that will receive the effect (e.g.: the character, an enemy, an object).
- In the Preset pin, select the Juice Preset you created.
- Optionally, adjust the Intensity (0-1). A lower value produces a subtler effect.
- If you're in a multiplayer project and want the effect to be local only, enable Skip Replication.
- 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.
- 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.
- Open your actor's Blueprint and add the "Game Juice Component".
- Configure the component properties as needed (see Core Concepts).
- 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.