Advanced Configuration - Game Juice Pro
Advanced timing
Each feedback has an independent timing configuration that allows granular control over when and how many times it executes.
Timescale Mode
- Scaled (Game Time): The feedback respects time dilation. If the game is in slow-motion, the feedback also slows down.
- Unscaled (Real Time): The feedback uses real time, ignoring any Time Dilation. Ideal for UI feedbacks or effects that must maintain their speed.
Repetitions
- Number Of Repeats: How many times it repeats after the first execution (0 = only once)
- Repeat Forever: Repeats indefinitely until Stop is called
- Delay Between Repeats: Pause between each repetition
- Limit Play Count / Max Play Count: Limits the total number of plays per session
- Reset Play Count On Reset: Resets the counter when Reset is called
Direction conditions
- Always: Executes regardless of direction
- OnlyWhenForwards: Only when direction is TopToBottom
- OnlyWhenBackwards: Only when direction is BottomToTop
Additional options
- Exclude From Holding Pauses: This feedback does not participate in holding pauses
- Contribute To Total Duration: Counts towards the component's total duration
- Interrupts On Stop: Immediately interrupts when Stop is called
Intensity and ranges
The final intensity of a feedback is determined by several cascading multipliers:
- Component intensity — FeedbacksIntensity from the GameJuiceComponent (if used)
- Preset intensity — IntensityMultiplier from the Juice Preset
- Call intensity — The Intensity pin value on the Play Juice node
- Distance intensity — Based on Range Settings
Range Settings
Allow controlling activation and intensity based on distance:
- Use Range: Enables the range system
- Range Distance: Maximum activation distance (default 500)
- Use Range Falloff: Attenuates intensity with distance
- Range Falloff Curve: Attenuation curve
- Remap Falloff: Curve range remapping
Intensity Interval
Allows a feedback to only activate within a specific intensity range:
- Use Intensity Interval: Enables the restriction
- Intensity Interval Min / Max: Valid intensity range
Example: A feedback with interval 0.7-1.0 only activates on strong impacts, while another with 0.0-0.3 only responds to light impacts.
Randomness
The randomness system adds automatic variation to avoid repetitive effects.
- Randomize Intensity: Multiplies intensity by a random value within the configured range
- Intensity Multiplier Range: Random intensity multiplier range
- Randomize Duration: Varies duration within a range
- Duration Multiplier Range: Random duration multiplier range
- Chance (0-100): Execution probability. A value of 80 means it won't activate 20% of the time.
Combining these three settings produces organic results, especially for effects that trigger frequently like footsteps, gunshots or ambient particles.
Communication channels
Channels allow organizing and filtering feedbacks.
- Channel by index (int): Simple numeric identifier (default 0)
- Channel by Gameplay Tag: By enabling Use Gameplay Tag, you can use Unreal's Gameplay Tags system for hierarchical organization
Example: tag feedbacks as "Feedback.Combat" and "Feedback.UI" to control groups from code.
Curves and springs
Runtime Float Curves
OverTime mode feedbacks use animation curves editable in the details panel.
- Remap (Zero/One): Remaps curve output (0-1) to a custom range. For example, RemapZero=1.0 and RemapOne=1.5 would make scale go from 1.0 to 1.5.
- Relative Values: Curve values are added to the current value instead of replacing it
- Allow Additive Plays: Allows stacking multiple playbacks of the same feedback
Spring Curves (Damped spring)
Feedbacks like SquashStretch use a damped harmonic oscillator. The parameters are:
- Amplitude: Initial movement intensity (default 0.3)
- Frequency: Oscillation speed in Hz (default 4.0)
- Damping: Damping speed, 0=no damping, 1=critical (default 0.25)
- Duration: Total simulation duration (default 0.8s)
- Randomize Amplitude: Random amplitude variation
Scale management
Game Juice Pro includes a Scale Modifiers system to correctly manage scale feedbacks when multiple sources modify the same actor's scale. This prevents issues like "accumulating scale" with several simultaneous scale punches.
If you intentionally change an actor's base scale (e.g., growing a character), call Refresh Base Scale on the Game Juice Component so the plugin recaptures the new base value.
Need help?
For questions or suggestions, join our Discord.