🎮 Easy Peasy Feedback

Easy Peasy Feedback (EPF) is a powerful node-based system for creating "Game Feel" in Unity. Build impressive visual and gameplay feedback with zero code!

What is Game Feel?

Game Feel is the tactile, visual, and audio response players get from their actions. EPF makes it easy to add:

Key Features

  • 52 Ready-to-Use Nodes - No coding required
  • Visual Node Editor - Drag, drop, and connect
  • Real-time Preview - See effects while playing
  • Dynamic Parameters - Change values at runtime
  • Spring Physics - Natural, bouncy motion
  • Performance Optimized - Efficient execution

System Requirements

⚠️ Post Processing: For post-processing effects (Bloom, Vignette, etc.):
Built-in Render Pipeline: Post Processing Stack V2 ✅
URP: Built-in post-processing support ✅
HDRP: Coming in future updates 🔜

What's Included

Category Count Examples
Camera 2 FOV Kick, Screen Flash
Post Processing 8 Bloom, Vignette, Chromatic Aberration, DOF, Grain, Hue Shift, Lens Distortion, AO
Transform 12 Move, Rotate, Scale, Shake, Springs, Squash & Stretch
Renderer 3 Color, Flash, Material Property
Particles 2 Spawn, Play
Light 1 Light Pulse
Animation 4 Parameter, Play, CrossFade, Speed
Audio 2 Play Sound, Random Sound
Time 2 Freeze, Scale Ramp
Logic 5 Events, SetActive, Branch, Debug, Destroy
Physics 1 Explosion
Cinemachine 4 Impulse (V2/V3), Noise (V2/V3)
UI 9 Fade, Move, Scale, Shake, Counter, Rotation, Color, Fill, Floating Text
Utility 1 Comment

🚀 Quick Start Guide

Step 1: Create a Feedback Sequence

  1. Right-click in the Hierarchy
  2. Select Easy Peasy FeedbackFeedback Sequence
  3. A new GameObject will be created with the FeedbackSequence component

Step 2: Open the Graph Editor

  1. Select the GameObject you just created
  2. In the Inspector, click "Open Graph Editor"
  3. A new window will open showing an empty graph

Step 3: Add Your First Node

  1. Right-click in the graph area
  2. Navigate to CameraCamera Shake
  3. The node will appear in the graph
  4. Click on it to see its parameters in the right sidebar

Step 4: Configure the Node

With the Camera Shake node selected, you'll see:

Adjust these values to your liking!

Step 5: Call from Code

using UnityEngine;

public class Player : MonoBehaviour
{
    public FeedbackSequence hitEffect;
    
    void TakeDamage()
    {
        // Play the feedback!
        hitEffect.Play();
    }
}

Step 6: Test It!

  1. Enter Play Mode
  2. Trigger your code (e.g., take damage)
  3. Watch the camera shake!
  4. You'll see a green progress bar on the node while it's playing
💡 Pro Tip: You can test individual nodes in Play Mode by clicking the ▶ button on the node!

📊 Graph Editor Guide

Navigation

Action Control
Zoom Scroll Wheel
Pan Middle Mouse OR Alt + Left Click
Center View "Center" button in toolbar
Mini Map Toggle with map icon

Working with Nodes

Action Control
Add Node Right-click → Select category
Select Left-click
Multi-Select Shift/Ctrl + Click
Move Click and drag
Delete Delete key
Copy/Paste Ctrl+C / Ctrl+V

Node Properties

Every node has these common settings:

Property Description
Active Enable/disable this node
Auto Play Play when sequence starts
Name Custom label for organization
Delay Wait time before executing
Loops Repeat count (-1 = infinite)
Loop Delay Time between loops
Chance 0-100% probability to execute

Visual Indicators

🔗 Dynamic Parameters

Parameters let you change node values at runtime - perfect for adaptive feedback!

What Are Parameters?

Instead of fixed values, you can link node properties to parameters that you control from code.

Example: Link camera shake power to damage amount - bigger hits = stronger shake!

Creating Parameters

  1. Find the Parameters node in your graph (auto-created)
  2. Select it and click "Add Parameter"
  3. Choose a type (Float, Int, Color, etc.)
  4. Give it a name like "shakePower"

Linking to Nodes

  1. Select any node (e.g., Camera Shake)
  2. Find a parameter (e.g., Power)
  3. Click the 🔗 icon next to it
  4. Type your parameter name OR use the dropdown (▼)
  5. The field turns orange when linked!

Using in Code

public FeedbackSequence hitEffect;

void TakeDamage(float damage)
{
    // Set parameter based on damage
    hitEffect.Set("shakePower", damage / 10f);
    
    // Play the effect
    hitEffect.Play();
}

Supported Types

Type Use For
Float Durations, intensities, speeds
Int Counts, indices
Bool On/off switches
Vector3 Positions, directions, scales
Color Visual colors
GameObject Dynamic targets
Transform Position/rotation targets

📷 Camera & Post Process

FOV Kick

Temporarily changes Field of View.

Parameter Description
Add FOV Amount to add to current FOV
Duration Kick duration

Bloom Pulse

Flashes bright areas for dramatic effect.

Parameter Description
Add Intensity Bloom amount to add (0-50)
Threshold Brightness threshold (0-2)
Duration Flash duration

Vignette Pulse

Darkens screen edges.

Parameter Description
Intensity Darkness amount (0-1)
Color Vignette color
Duration Effect duration
Use Case: Low health, danger zones, dramatic moments

Chromatic Aberration

Color split effect for glitch/impact.

Parameter Description
Intensity Color split amount (0-5)
Duration Effect duration

Screen Flash

Flashes a UI image (full screen) color.

Parameter Description
Color Flash color
Duration Flash duration
Use Case: Damage flash (red), heal flash (green), teleport (white)

Ambient Occlusion Pulse

Pulses the Ambient Occlusion intensity (Post Processing).

Parameter Description
Add Intensity Amount to add to current AO
Duration Pulse duration

Depth of Field

Animates focus distance and blur amount.

Parameter Description
Focus Dist Target focus distance
Blur Amount Target blur strength
Duration Effect duration

Grain Pulse

Adds film grain temporarily.

Parameter Description
Add Intens. Grain intensity to add
Size Grain particle size
Duration Effect duration

Hue Shift (Rainbow)

Shifts the screen colors (Hue) over time.

Parameter Description
Shift Amount Degrees to shift hue (-180 to 180)
Duration Effect duration

Lens Distortion

Distorts the lens (barrel or pincushion effect).

Parameter Description
Intensity Distortion amount (-100 to 100)
Scale Mult Zooms in/out to hide edges
Duration Effect duration

🔄 Transform & Springs

Move To / Rotate To

Moves or rotates an object to a specific target.

Parameter Description
Target Object to move/rotate
Destination Target Position/Rotation
Duration Transition time
Space World or Local

Position Pulse

Pulses an object's position (moves away and returns).

Parameter Description
Target Object to move
Amount Offset vector
Duration Pulse duration

Rotate To

Smoothly rotates an object.

Parameter Description
Target Object to rotate
Rotation Target rotation (Euler angles)
Duration Rotation time
Additive If true, adds to current rotation

Squash & Stretch

Classic animation principle - bouncy scale effect.

Parameter Description
Target Object to animate
Frequency Bounce speed (5-50)
Power Y-axis scale multiplier
Duration Effect duration
Fade Out Gradually reduce intensity
Use Case: Jumping, landing, collecting items

Scale Spring

Bouncy scale animation with spring physics.

Parameter Description
Target Object to scale
Mode MoveTo (stays) or Punch (returns)
Scale Add Amount to add to scale
Frequency Spring speed (1-20)
Damping Friction (0-1.5)

Position Spring

Bouncy position movement.

Parameter Description
Amount Vector3 displacement
Frequency Spring speed
Damping Friction
Spring Tips: Higher frequency = faster bounce. Lower damping = more bouncy.

Rotation Pulse

Pulses an object's rotation (rotates and returns).

Parameter Description
Target Object to rotate
Amount Rotation Euler vector
Duration Pulse duration

Scale Pulse

Pulses an object's scale (grows/shrinks and returns).

Parameter Description
Target Object to scale
Amount Scale vector to add
Duration Pulse duration

Scale To

Smoothly scales an object to a specific size.

Parameter Description
Target Object to scale
To Scale Target scale vector
Is Relative If true, adds to start scale

Rotation Spring

Bouncy rotation using spring physics.

Parameter Description
Target Object to rotate
Spring Amount Rotational force/destination
Mode Punch or MoveTo

Shake

Shakes any transform (commonly used for camera shake).

Parameter Description
Target Type Transform or Tag
Transform/Tag Object to shake or tag to find
Duration Shake duration
Power Shake intensity (0-5)
Use Case: Camera shake on hit, object wobble, earthquake effects

Squash & Stretch (Simple)

Simple squash animation without spring physics.

Parameter Description
Axis Squash axis
Amount Deformation amount

Squash & Stretch Spring

Advanced squash and stretch with spring physics.

Parameter Description
Target Object to animate
To Squash Squash intensity
Mode Punch or MoveTo

✨ Particles & Lights

Particle Spawn / Play

Spawns or plays a Particle System.

Parameter Description
Prefab Particle System prefab
Position Spawn location
Auto Destroy Destroy after play
Use Case: Hit effects, explosions, magic spells

Particle Play

Plays an existing particle system.

Parameter Description
Target Particle system to play
With Children Play child systems too

Color & Emission Pulse

Pulses object color and emission.

Parameter Description
Target Object with Renderer
Color Target albedo color
Emission Target emission color (HDR)
Pulses Number of pulses (1-10)
Duration Total duration

Light Pulse

Pulses a light's color and intensity.

Parameter Description
Intensity From / To intensity
Color From / To color
Duration Pulse duration
Use Case: Flickering torches, alarm lights, power-ups

Floating Text

Spawns animated floating text at a position (damage numbers, scores, etc.).

Parameter Description
Text Text content to display
Spawn At Transform position to spawn text
Color Text color (or use Random Color)
Font Size Min/Max size range for randomization
Duration How long the text animates
Up Amount Vertical travel distance
Spread Horizontal random spread
Rot Rnd Random rotation strength
Setup Required: Add a FloatingTextManager to your scene and assign a default prefab.
Use Case: Damage numbers, score popups, XP gains, critical hits

🎨 Renderer & Materials

Renderer Color

Animates the color of a Renderer's material.

Parameter Description
Target GameObject with Renderer
Color Target color
Emission Target emission color (HDR)
Duration Transition duration
Pulses Number of pulses (1-10)

Renderer Flash

Flashes a Renderer's material color or emission.

Parameter Description
Target GameObject with Renderer
Color Flash color
Use Emission Flash emission property
Recursive Include child objects

Material Set Property

Animates any float, color, or vector property on a material.

Parameter Description
Prop Name Shader property (e.g. _BaseColor)
Type Float, Color, or Vector
Start/End Values to animate between

🔊 Audio & Time

Audio Source Play

Plays a clip on an AudioSource.

Parameter Description
Target AudioSource
Clip Audio Clip to play (optional)

Random Sound

Plays a random sound from a list.

Parameter Description
Audio Clips List of sounds
Random Pitch Vary pitch for variety
Pitch Range Min/Max pitch (e.g., 0.9-1.1)
Use Case: Footsteps, hits, UI clicks - variety prevents repetition!

Time Freeze

Slows or freezes time.

Parameter Description
Speed Time scale (0 = frozen, 1 = normal)
Duration Real-time duration
Use Case: Bullet time, critical hits, dramatic moments

Time Scale Ramp

Gradually changes time speed.

Parameter Description
Target Speed Speed to reach
Duration Ramp duration
Curve Ramp curve

🎬 Animation Nodes

Animator Parameter

Sets an Animator parameter.

Parameter Description
Target Animator component
Parameter Parameter name
Type Trigger, Bool, Int, or Float
Value Value to set
Use Case: Trigger attack animation, set speed, toggle states

Animator Play

Directly plays an animation state.

Parameter Description
State State name to play
Layer Animation layer index
Time Normalized time (0-1)

Animator CrossFade

Smoothly transitions to a state.

Parameter Description
State Target state name
Blend Transition duration
Layer Layer index

Animator Speed

Changes animation playback speed.

Parameter Description
Speed Playback multiplier
Revert After Auto-reset after X seconds
Use Case: Slow-mo attacks, speed boosts, dramatic finishers

⚙️ Logic & Utility Nodes

Unity Event

Invokes a UnityEvent (good for custom code).

Powerful: Use this to call methods on other scripts, trigger game events, etc.
Parameter Description
Event Standard Unity Event list

Set Active

Activates or Deactivates a GameObject.

Parameter Description
Target GameObject
State Active / Inactive
Delay Revert If > 0, reverts state after time
Use Case: Show/hide UI, toggle effects, activate objects

Destroy Object

Destroys a GameObject.

Parameter Description
Target Object to destroy (empty = self)

Debug Log

Prints a message to the Unity Console.

Parameter Description
Message Text to log
Mode Info, Warning, or Error

Random Branch

Randomly activates one of multiple outputs based on chance.

Parameter Description
Options List of chances and target nodes
Chance % Probability for each branch

⚛️ Physics Nodes

Physics Explosion

Applies explosion force to Rigidbodies.

Parameter Description
Mode 3D or 2D Physics
Center Explosion origin transform
Radius Explosion radius
Force Explosion force strength
Layers LayerMask for affected objects

🎥 Cinemachine Nodes

Cinemachine Impulse

Triggers a Cinemachine Impulse Source (Shake).

Parameter Description
Source Object with ImpulseSource component
Direction Shake direction/velocity
Force Impact multiplier

Cinemachine Noise

Controls noise parameters on a virtual camera.

Parameter Description
Camera Virtual Camera object
Amplitude Target Noise Amplitude
Frequency Target Noise Frequency
Duration Transition duration
Coming Soon: More Cinemachine nodes are in development, including additional camera control features and effects.

🖥️ UI & Canvas Nodes

Canvas Group Fade

Fades a UI element (and children) using CanvasGroup.

Parameter Description
Target UI Object
Alpha Start and End opacity (0-1)
Raycasts Auto-toggle blocksRaycasts

UI Graphic Color

Animates the color of an Image or Text.

Parameter Description
Target UI Object (Image/Text)
Color Start and End colors
Duration Animation time

UI Image Fill

Animates a Filled Image (Health bars, etc.).

Parameter Description
Target Image (must be Type: Filled)
Fill Amount Start and End fill (0-1)

UI Move / Scale / Rotate

Tweens for RectTransforms.

Node Description
UI Move Animates Anchored Position
UI Scale Animates Local Scale
UI Rotation Animates Local Euler Rotation

UI Shake

Shakes a UI element.

Parameter Description
Anchor Pos Center point
Strength Shake radius (X, Y pixels)
Fade Out Reduce shake over time

UI Text Counter

Animates a number counting up/down.

Parameter Description
Target Text or TMP component
Value Start and End numbers
Format String format (e.g. "Score: {0}")

💡 Tips & Best Practices

Performance Tips

Organization Tips

Design Tips

Common Patterns

Hit Feedback

Jump Feedback

Power-Up Feedback

Pro Tip: Study games you love - what makes their feedback feel good? Try to recreate it!