Crystal Focus logo
CRYSTALFOCUS.NET
Power On & Power Off tutorial
COMMUNITY GUIDE
POWER ON / POWER OFF STYLES FOR CRYSTAL FOCUS X

Power On & Power Off Styles for Crystal Focus X

A practical guide to customizing how your saber ignites and retracts: the visual effects, the sounds, the timing controls, and the motion-based options that shape the whole startup and shutdown experience.
What you will learn
  • All ignition, retraction, pre-on, and post-off styles
  • How sound length affects blade timing
  • How qon=, qoff=, ignd=, and retd= work
  • How gesture-based ignition and retraction are configured
Where settings live
Blade profile keys
config.txt inside [profile=N]
Per-font timing
font_config.txt inside each font folder
Sound files
Inside the font folder, such as poweron.wav and poweroff.wav
Inside this tutorial
  • The four phases of ignition and retraction
  • Style tables with practical descriptions
  • Sound selection and blending behavior
  • Complete config examples and quick reference

A practical guide to customizing how your saber ignites and retracts — the visual effects, the sounds, and the timing controls that shape the experience.

What you will learn


Prerequisites: Blade & Color Profiles

Your ignition and retraction styles are part of the blade profile. Before diving in, make sure you understand how blade profiles work and how to trace which profile is active for each font. If you haven't already, read the Blade & Color Profiles Guide.

Key takeaway: The style_pon= and style_poff= keys live inside [profile=N] sections in config.txt on the SD card root. When you switch blade profiles, you change which ignition and retraction style is active.


The Four Phases of Ignition

When you press the button to ignite your saber, up to four things happen in sequence:

1. PRE-ON        (optional — plays before ignition starts)
       ↓
2. POWER ON      (the main ignition animation + sound)
       ↓
3. HUM FADE-IN   (background hum sound ramps up during power-on)
       ↓
4. BLADE ON      (saber is fully ignited, all normal effects active)

Phase 1: Pre-On (optional)

If your sound font contains preon sound files (preon1.wav, preon2.wav, etc.), the CFX will play one before starting the main ignition. During this time, a pre-on visual effect can play on the blade.

Pre-on is perfect for building anticipation — a flickering glow at the hilt, a slow energy trace, or a GraFx animation. The visual effect is controlled by style_preon= in your blade profile.

The pre-on phase lasts exactly as long as the preon sound file. If your font has no preon files, this phase is skipped entirely.

Phase 2: Power On (the ignition)

This is the main event. The CFX plays a poweron sound and runs the ignition visual effect on the blade. The blade scrolls, fills, crumbles, flares, or does whatever your chosen ignition style dictates.

The ignition animation duration matches the length of the poweron sound file. A 1-second poweron.wav gives you a 1-second ignition scroll. A 2-second file gives you 2 seconds. The sound file is the clock.

Phase 3: Hum Fade-In

During the power-on animation, the hum sound starts playing in the background and gradually ramps up to full volume. The hum_delay= parameter in your font_config.txt controls when the hum starts fading in, as a percentage of the power-on duration.

For example, hum_delay=50 means the hum starts fading in at the halfway point of the ignition.

Phase 4: Blade On

Once the power-on animation completes, the blade transitions to its normal running state. All regular effects take over: flicker, shimmer, GraFx idle animation, smooth swing, etc.


The Four Phases of Retraction

Powering off is the reverse, but with its own set of effects:

1. POWER OFF     (the main retraction animation + sound)
       ↓
2. POST-OFF      (optional — plays after retraction completes)
       ↓
3. BLADE OFF     (saber is fully off, idle state)

Phase 1: Power Off (the retraction)

The CFX plays a poweroff sound and runs the retraction visual effect. Like ignition, the retraction animation matches the poweroff sound duration.

There is a context-aware detail here: if you are swinging the saber when you power off, the CFX plays a special alternate retraction sound (pwroff2.wav) instead of the normal one. This lets sound font makers provide a more dramatic "active retraction" sound.

Phase 2: Post-Off (optional)

If your font contains pstoff files (pstoff1.wav, pstoff2.wav, etc.), one plays after the retraction completes. During this time, a post-off visual effect can show lingering energy, a cool-down glow, or a GraFx animation.

Post-off is controlled by style_postoff= in your blade profile.


Ignition Styles (style_pon=)

These are set in config.txt inside a [profile=N] section. Each number selects a different visual effect for the ignition.

# Name What you see
0 Normal Classic base-to-tip scroll. The blade fills smoothly from the hilt toward the tip. This is the default.
1 Light Stick Instant fill — all pixels light up at once with no spatial scrolling. The entire blade appears immediately.
2 Simple Flare The whole blade glows in the clash color first, then gradually transitions to the normal blade color. A simple, bright "flash-then-settle" effect.
3 Base Flare A bright glow concentrates at the base of the blade in the clash color, with a smooth rounded peak that fades out during ignition. Simulates energy pouring out from the emitter.
4 Tip Flare A bright clash-colored glow follows the blade's scroll position near the tip. The hot spot travels with the extending blade.
5 Full Flare Both the base AND the tip light up with a clash-colored glow simultaneously. Dual ignition points that fade as the blade fills.
6 Crumble Random pixels appear and activate throughout the blade during ignition. The probability increases over time, so the blade "crystallizes" into existence.
7 Quicksilver A fast, bright bump of energy races along the blade, leaving a fading trail behind it. Looks like liquid metal streaming from base to tip.
8 Mercury Similar to Quicksilver but slower and heavier. The bright bump travels at half speed, accumulating a colored tail that then rapidly dissipates in the second half of the ignition.
9 Catch-Up Two-phase effect. First, a clash-colored energy bump races ahead at double speed, leaving a trail. Then, the trail "catches up" and rolls smoothly to the tip, consolidating the blade.
10 GraFx Plays a custom bitmap animation sequence for the ignition. Requires a poweron.bmp file in the appropriate GraFx folder. See the GraFx guide for details.
11 Inverted The blade fills from tip to base instead of the normal direction. Pixels appear starting at the far end and scroll downward toward the hilt.
12 Split In Two halves of the blade light up symmetrically from both edges and converge toward the center.
13 Split Out The blade starts from the center and expands outward in both directions simultaneously.
14 Stack Up The blade is divided into 5 chunks. Each chunk rapidly animates upward in sequence with brief pauses between them, creating a "stacking" or "building" effect as energy accumulates from base to tip.
15 Chopped Up Sequential chunks light up from base to tip with quick transitions and pauses, creating a segmented, percussive ignition.

Example in config.txt

[profile=0]
pname=Jedi Knight
style_pon=0
...

[profile=1]
pname=Unstable Kyber
style_pon=6
...

With blade profile 0 active, the saber ignites with a classic base-to-tip scroll.
With blade profile 1 active, it ignites with random pixels crumbling into place.


Retraction Styles (style_poff=)

Also set in config.txt inside a [profile=N] section. The default retraction style is Crumble (2).

# Name What you see
0 Normal Classic tip-to-base scroll. The blade retracts smoothly back toward the hilt.
1 Light Stick Instant off — all pixels turn off at once with no scrolling.
2 Crumble Random pixels extinguish throughout the blade during retraction. The blade "disintegrates" into darkness. This is the default.
3 Stardust Similar to Crumble, but pixels occasionally "revive" with random flickers before going dark again. Creates a shimmering, butterfly-wing effect as the blade fades.
4 Supernova A bright frozen spot lingers at the scroll position while the rest of the blade randomly fades out around it. A fading "nova core" effect.
5 Leak Combines instant fill with gradual crumble — pixels slowly lose brightness in a "leaking light" effect. A persistent, slow dimming retraction.
6 Dissolve The blade fades slowly with lingering persistence-of-vision trails. Pixels remain visible longer than other effects, creating a ghostly "dissolving into void" look.
7 Starflakes Like Dissolve, but adds random sparkling "flakes" in the clash color that occasionally flash and fade during retraction.
8 Quicksilver The blade fades with a bright, clash-colored bump that follows the retraction point. Draining with a hot core retained at the tip.
9 Mercury The blade fades while enabled pixels gradually shift toward the clash color, creating a "mercury pooling" effect during retraction.
10 Split Two-phase retraction: both halves of the blade retract inward toward the center, then a bright point lingers at the center and fades out. Great for Sauron's Eye or similar symmetrical designs.
11 GraFx Plays a custom bitmap animation sequence for the retraction. Requires a poweroff.bmp file in the appropriate GraFx folder.
12 Simple Flare (off) The whole blade flashes in the clash color, then fades to dark. Mirror of the power-on flare effect.
13 Base Flare (off) Clash-colored glow at the base during retraction.
14 Tip Flare (off) Clash-colored glow at the tip during retraction.
15 Full Flare (off) Clash-colored glow at both base and tip during retraction.
16 Inverted Star The blade retracts downward from the tip with a lingering bright point at the center that fades out. A collapsing, star-burst retraction.
17 Chopped Down Sequential chunks darken from tip to base, the opposite of the Chopped Up ignition. Segments extinguish one by one with brief pauses.

Example in config.txt

[profile=0]
pname=Jedi Knight
style_poff=2
...

Pre-On Styles (style_preon=)

Set in config.txt inside a [profile=N] section. These only activate when the font has preon sound files.

# Name What you see
0 None No visual pre-on effect (sound still plays if present)
1 Rey A single pixel slowly traces from the base toward the tip, like energy building up to ignition
2 Base Noise Flickering, noisy glow at the base of the blade
3 Base Candle Soft, candle-like wavering glow at the base — like the blade is "warming up"
4 GraFx Custom bitmap animation sequence for the pre-on phase. Requires a preon.bmp file in the GraFx folder.
5 Broken Random chaotic flickering — sections of the blade flash on and off erratically, like a malfunctioning weapon

Post-Off Styles (style_postoff=)

Set in config.txt inside a [profile=N] section. These only activate when the font has pstoff sound files.

# Name What you see
0 None No visual post-off effect
1 Temperature Decay Residual warmth fading away (cool-down glow)
2 Base Decay Lingering glow at the base that slowly dies
3 Flash Decay Bright flash across the whole blade that fades away
4 GraFx Custom bitmap animation sequence for post-off. Requires a pstoff.bmp file in the GraFx folder.
5 Broken Random residual flickering that gradually settles, like failing power

Timing Controls

Several parameters let you fine-tune the timing of ignition and retraction. These are set in font_config.txt inside the font folder, not in config.txt.

Ignition Delay (ignd=)

Adds a delay in milliseconds after the power-on sound starts but before the blade begins scrolling. The blade stays dark for the specified time, then starts its animation.

ignd=250

This means: the ignition sound starts immediately, but the blade waits 250ms before it starts lighting up. Useful when your poweron sound has a "buildup" at the beginning.

Retraction Delay (retd=)

Same concept but for power-off. Adds a delay after the power-off sound starts before the blade begins its retraction animation.

retd=200

Quick On (qon=)

Overrides the ignition animation duration with a fixed time in milliseconds, regardless of how long the poweron sound file is.

qon=600

This forces the blade to complete its full ignition animation in 600ms, even if the poweron sound is longer. The sound keeps playing, but the blade is fully ignited in 600ms.

Set to 0 to disable (default) — in which case the poweron sound length controls the animation duration.

You can combine qon= with ignd=:

qon=750
ignd=250

This means: total animation window is 750ms. The first 250ms is delay (blade stays dark). The remaining 500ms is the actual scroll animation.

Quick Off (qoff=)

Same as Quick On, but for retraction. Forces the retraction animation to complete in the specified time.

qoff=500

Set to 0 to disable (default).


Ignition and Retraction Blending (over_pon= / over_poff=)

These control how the ignition/retraction visual effect blends with the blade's normal running effects (like GraFx or flicker). Set in config.txt inside a [profile=N] section.

Value Mode What it does
0 Mix Power-on/off FX and blade FX are mixed together — both visible simultaneously. This is the default.
1 Overlay Power-on/off FX completely covers the blade FX during the transition.
2 Blend Smoothly cross-fades from power-on/off FX to the blade FX over time.
3 Curtain The power-on/off FX is replaced by a scrolling "curtain" that reveals the blade FX underneath.
4 GraFx Xfade Special cross-fade mode designed for GraFx power-on/off animations.

Most users will be fine with the default (0). Experiment with these when using GraFx ignition styles or when you want the transition from ignition into idle to look a certain way.


Flicker and Fade During Transitions

Two additional on/off toggles in config.txt ([profile=N]) control whether the blade's flicker and fade effects are active during ignition and retraction:

Key Default What it does
flkon= 1 (on) When enabled, the blade's flicker effect is active during ignition. Disable (=0) for a smooth, clean scroll without any shimmer.
flkoff= 1 (on) When enabled, flicker is active during retraction.
on_fade= 1 (on) When enabled, the blade color fades in during ignition. Disable for full-brightness pixels from the start.
off_fade= 1 (on) When enabled, the blade color fades out during retraction.

Power-On Sounds & Selection

The CFX supports multiple variations of each sound. When multiple files exist, the selection depends on your pom= setting.

Sound File Names

Place these .wav files in your font folder:

File When it plays
poweron.wav First (or only) ignition sound
poweron2.wav, poweron3.wav, ... Additional ignition sound variations
poweronf.wav Special "force ignite" sound — played when a force/twist/swing gesture triggers ignition (see Motion Ignition below)
poweroff.wav First (or only) retraction sound
poweroff2.wav, poweroff3.wav, ... Additional retraction sound variations
pwroff2.wav Alternate retraction sound — played when the saber is moving at the time of power-off
preon1.wav, preon2.wav, ... Pre-on sounds (optional)
pstoff1.wav, pstoff2.wav, ... Post-off sounds (optional)
hum.wav or humM1.wav, etc. Background hum that fades in during ignition

Sound Selection Modes (pom=)

The pom= key in config.txt ([profile=N]) controls how the power-on sound is selected:

Value Mode How it works
0 Angular The wrist angle at the moment you press the button determines which poweron file plays. Blade pointing up → poweron.wav, tilting down → higher-numbered files. Gives you deliberate control.
1 Angular + Force Same as Angular, but also enables force-gesture ignition with poweronf.wav.
2 Random + Force Power-on sound is picked randomly. Force-gesture ignition plays poweronf.wav.
3 Random Power-on sound is picked randomly from all available poweron files. No force-gesture support.

Power-off sound selection works differently: if you swing the saber while powering off, the CFX plays pwroff2.wav (if it exists). Otherwise, it randomly picks from the normal poweroff files.


Motion-Based Ignition & Retraction

Besides the standard button press, the CFX can ignite or retract the blade using motion gestures. These are all configured in config.txt inside [profile=N] sections.

Twist On / Off (twon= / twoff=)

Ignite or retract by twisting the saber hilt. Format: threshold,angle_low,angle_high

twon=500,-90,-45
twoff=400,-90,-45

Set the threshold to 0 to disable.

Swing On (swon=)

Ignite by swinging the saber. Format: single threshold value.

swon=800

Higher values require a faster swing. Set to 0 to disable.

Wag On / Off (wagon= / wagoff=)

Ignite or retract by "wagging" the saber (quick back-and-forth shake). Format: threshold,angle_low,angle_high

wagon=450,-90,-45
wagoff=350,-90,-45

Set the threshold to 0 to disable.

Force Ignite (pof=)

Ignite by performing a quick downward thrust (a "force push" gesture). Format: threshold,angle_low,angle_high

pof=600,70,90

When this triggers, the CFX plays the special poweronf.wav sound instead of a normal poweron file. Requires pom=1 or pom=2 to be active.

Set the threshold to 0 to disable.

Quick Ignite on Clash (qkignite=)

When enabled, the saber can auto-ignite from a clash while in sleep. Set in config.txt.

qkignite=1

Set to 0 to disable (default).


Putting It All Together

Which file controls what

Parameter File Location
style_pon= config.txt Inside [profile=N] (blade profile)
style_poff= config.txt Inside [profile=N]
style_preon= config.txt Inside [profile=N]
style_postoff= config.txt Inside [profile=N]
over_pon= config.txt Inside [profile=N]
over_poff= config.txt Inside [profile=N]
flkon= config.txt Inside [profile=N]
flkoff= config.txt Inside [profile=N]
on_fade= config.txt Inside [profile=N]
off_fade= config.txt Inside [profile=N]
pom= config.txt Inside [profile=N]
pof= config.txt Inside [profile=N]
twon= config.txt Inside [profile=N]
twoff= config.txt Inside [profile=N]
swon= config.txt Inside [profile=N]
wagon= config.txt Inside [profile=N]
wagoff= config.txt Inside [profile=N]
qkignite= config.txt Inside [profile=N]
ignd= font_config.txt Per-font setting
retd= font_config.txt Per-font setting
qon= font_config.txt Per-font setting
qoff= font_config.txt Per-font setting
hum_delay= font_config.txt Per-font setting
Sound files Font folder poweron.wav, poweroff.wav, preon1.wav, pstoff1.wav, etc.

Complete config.txt example

[profile=0]
pname=Classic Jedi
style_pon=0
style_poff=2
style_preon=1
style_postoff=0
over_pon=0
over_poff=0
flkon=1
flkoff=1
on_fade=1
off_fade=1
pom=3
twon=500,-90,-45
twoff=400,-90,-45
swon=0
wagon=0
wagoff=0

[profile=1]
pname=Broken Kyber
style_pon=6
style_poff=3
style_preon=5
style_postoff=5
over_pon=0
over_poff=0
flkon=1
flkoff=1
on_fade=1
off_fade=1
pom=2
pof=600,70,90
twon=0
twoff=0
swon=800
wagon=0
wagoff=0

Matching font_config.txt (inside font folder)

## Blade timing
qon=0
qoff=0
ignd=200
retd=150
hum_delay=30

Quick Reference

Ignition Styles (style_pon=)

0  Normal          Classic base-to-tip scroll
1  Light Stick     Instant full blade
2  Simple Flare    Flash-then-settle (clash color)
3  Base Flare      Bright glow concentrated at base
4  Tip Flare       Bright glow follows the scroll tip
5  Full Flare      Dual flare at base AND tip
6  Crumble         Random pixels appearing
7  Quicksilver     Fast bright bump with fading trail
8  Mercury         Slow bump with accumulating tail
9  Catch-Up        Two-phase: race ahead, then catch up
10 GraFx           Custom BMP animation
11 Inverted        Tip-to-base (reverse direction)
12 Split In        Both edges converge to center
13 Split Out       Center expands outward
14 Stack Up        5 chunks stacking from base to tip
15 Chopped Up      Sequential chunked ignition

Retraction Styles (style_poff=)

0  Normal          Classic tip-to-base scroll
1  Light Stick     Instant off
2  Crumble         Random pixels extinguishing (DEFAULT)
3  Stardust        Crumble with shimmering revives
4  Supernova       Fading nova core
5  Leak            Slow persistent dimming
6  Dissolve        Ghostly trails, slow fade
7  Starflakes      Dissolve with sparkling flakes
8  Quicksilver     Fading with bright tip bump
9  Mercury         Gradual color shift then fade
10 Split           Two halves retract to center point
11 GraFx           Custom BMP animation
12 Simple Flare    Flash-then-fade (clash color)
13 Base Flare      Glow at base during retraction
14 Tip Flare       Glow at tip during retraction
15 Full Flare      Dual glow at base and tip
16 Inverted Star   Collapse upward into center star
17 Chopped Down    Sequential chunks darkening

Sound Files

poweron.wav          Main ignition sound
poweron2.wav, ...    Additional ignition variations
poweronf.wav         Force-gesture ignition sound
poweroff.wav         Main retraction sound
poweroff2.wav, ...   Additional retraction variations
pwroff2.wav          Alternate retraction (saber moving)
preon1.wav, ...      Pre-on sounds (triggers pre-on phase)
pstoff1.wav, ...     Post-off sounds (triggers post-off phase)
hum.wav / humM1.wav  Background hum (fades in during ignition)

Happy igniting!