Skip to content

Bull Faces

PwnPacker edited this page Apr 8, 2026 · 6 revisions

Bull Faces Reference

Back to Wiki Home


The bull has 26 faces. The personality engine selects one based on mood, system state, and RF environment.

Face Name What's Happening
awake Awake System booting or starting a new loop cycle
intense Intense Sending PMKID association frames
cool Cool Sending deauthentication frames
happy Happy Just captured a handshake
excited Excited On a capture streak
smart Smart Found optimal channel or processing logs
motivated Motivated High capture rate
sad Sad Long dry spell, no captures
bored Bored Nothing happening for a while
demotivated Demotivated Low success rate
angry Angry Very long inactivity or many failed attacks
lonely Lonely No other pwnagotchis nearby
grateful Grateful Active captures + good peer network
friend Friend Met another pwnagotchi
sleep Sleep Idle, nothing to do
broken Broken Crash recovery, forced restart
upload Upload Sending captures to wpa-sec/wigle
wifi_down WiFi Down Monitor interface lost
fw_crash FW Crash WiFi firmware crashed, recovering
ao_crashed AO Crashed AngryOxide process died, restarting
battery_low Battery Low Battery ≤ 20%
battery_critical Battery Critical Battery ≤ 5%, shutdown imminent
raging Raging Entering BT attack mode or deauth storm detected
grazing Grazing Calm idle, low activity in SAFE mode
debug Debug Debug mode active
shutdown Shutdown Clean power off

Face Selection Logic

The personality engine picks faces based on a combination of factors:

  1. Mood score — A 0-100% score that shifts based on events:

    • Handshake captured: +5% mood boost
    • New AP discovered: +0.5% per AP (capped at 10 APs per cycle)
    • AO or firmware crash: -3% mood penalty
    • Idle time: gradual random-walk decay via 30-second mood ticks
  2. XP events — Level-ups give a +8% mood boost (but don't force a specific face)

  3. System state overrides — These always take priority over mood:

    • WiFi firmware crash → FW Crash face
    • AO process crash → AO Crashed face
    • Battery ≤ 20% → Battery Low face
    • Battery ≤ 5% → Battery Critical face
    • WiFi interface lost → WiFi Down face
    • Shutdown command → Shutdown face
    • Uploading captures → Upload face
    • Debug mode → Debug face
  4. Mood-to-face mapping — When no override is active, the mood score maps to a face:

    • Very high mood (streak) → Excited
    • High mood → Happy, Motivated
    • Neutral → Awake, Cool
    • Low mood → Sad, Bored
    • Very low mood → Demotivated, Angry, Lonely

RF-Driven Mood

The RF classification pipeline feeds real-time spectrum data into the personality engine, adding a new dimension to face selection:

RF Condition Mood Effect Typical Face
Busy spectrum (many beacons, high frame rate) Mood boost — lots of targets to hunt Excited, Motivated
Deauth storm (high deauth_rate) Mood spike — aggressive environment Angry, Intense
Silence (near-zero frame rate) Mood drain — nothing on the air Lonely, Bored
Rich BSSIDs (many unique APs) Curiosity boost — diverse environment Smart
Dense data traffic Moderate boost — active network Cool, Motivated

The RF mood deltas are additive with the base mood system. A bull that captured a handshake in a busy RF environment gets a double mood boost — one from the capture, one from the spectrum richness.

Clone this wiki locally