A practical guide to the CFX drag and stab effects, including triggers, sound files, visual styles, colors, sensitivity tuning, and how these two contact effects behave in real use.
hdrag, hstabstyle_drag, style_stab, mapping_dragdcolor, tcolorThe Crystal Focus X can produce two real contact effects during combat use: drag and stab. These simulate different kinds of blade contact and each one has its own trigger logic, sound file set, color, and visual style.
This guide focuses on how those two effects work, how to configure them, and how to tune them so they feel right on your saber.
| Effect | What It Simulates | Trigger Method |
|---|---|---|
| Drag | Blade tip scraping along the ground | Hold AUX + clash with blade pointing downward |
| Stab | Thrusting the blade tip forward into a target | Quick forward thrust, no button needed |
Drag simulates the blade tip scraping across the ground or another hard surface. It produces a sustained scraping sound and a visual effect concentrated near the blade tip. The effect continues while the trigger conditions are maintained.
Drag needs three conditions at the same time:
If the angle is correct, the board detects a drag effect instead of a regular lockup. If the blade is outside that angle range, the same button-plus-clash action becomes a normal lockup instead.
To end drag: release the AUX button. If your font includes an end-drag sound, it plays as the saber returns to its normal appearance.
Single-button sabers: The main activation switch doubles as the drag trigger. Hold it and clash with the blade pointing down. The board prevents the saber from powering off while drag is active.
| File Name | Purpose | Required? |
|---|---|---|
drag.wav | Main drag loop during the effect | Yes, at least one drag loop |
drag2.wav, drag3.wav, ... | Additional drag loop variants | Optional |
startdrag1.wav, startdrag2.wav, ... | Transition sound when drag starts | Optional |
enddrag1.wav, enddrag2.wav, ... | Transition sound when drag ends | Optional |
When drag starts, the board can play a startdrag sound first, then the drag loop. While the effect is active, the loop continues. When you release the button, enddrag can play before the effect stops.
If the font has no drag files at all, the board falls back to using regular lockup sounds instead.
Drag naming rule: The first drag loop is alwaysdrag.wavwith no number. Additional variants start atdrag2.wav. Do not usedrag1.wavfor the main drag loop.
TL;DR: Use WAV, 16-bit PCM, mono, 44.1 kHz recommended, or 22.05 kHz.
Set the drag visual in your blade profile section of config.txt with style_drag.
| Value | Style | Description |
|---|---|---|
0 | None | No drag visual, sound only |
1 | Noise | Drag color at the tip with random brown-noise variation |
2 | Spark | Drag color at the tip with sparking particles |
3 | Gradient | Simple gradient between blade color and drag color |
4 | Heat | Heat-map gradient from tip toward base, twist affects intensity |
5 | Flare | Localized flare with subtle noise, twist affects noise level |
6 | GraFX | GraFX bitmap sequence for the drag effect |
style_drag=2
Set the drag color in your color profile with dcolor.
dcolor=1023,320,0,0
That gives an orange drag effect. For CFX color profiles, channel values can go up to 1023. You can also use a dictionary color name:
dcolor=orange
mapping_drag controls how external input changes the drag effect intensity or behavior.
| Value | Mapping | Description |
|---|---|---|
0 | None | Simple random variation |
1 | Audio | Audio loudness affects the visual intensity |
2 | Angular | Hilt twist angle affects the effect |
3 | Move | Gyro speed affects the parameters |
4 | Angular reversed | Same as angular, but reversed |
5 | Grow | Effect grows over time |
mapping_drag=2
Stab simulates thrusting the blade tip straight forward into a target. Unlike drag, stab is a motion-only gesture. No button press is required. It plays a quick impact sound and a tip-focused visual effect.
Trigger stab by making a quick forward thrust while the saber is on.
The board distinguishes stab from swings by looking for linear forward thrust with minimal rotational motion.
| File Name | Purpose | Required? |
|---|---|---|
stab1.wav, stab2.wav, ... | Stab impact sounds | Optional |
When a stab is detected, the board picks one of the available stab sounds at random. If no stab files exist, the saber falls back to a regular clash sound instead.
Because stab is a one-shot effect, it does not use separate start or end transition sounds.
Set the stab visual in your blade profile section with style_stab.
| Value | Style | Description |
|---|---|---|
0 | None | No visual effect, sound only |
1 | Legacy | Full-blade flash like a regular clash |
2 | Tip Flash | Stab color flares at the tip and fades |
3 | Tip Scroll | Stab color scrolls back and forth near the tip |
4 | Tip Scroll Out | Tip flash that scrolls outward and fades |
5 | Tip Burst | Spark burst at the blade tip |
6 | Tip Burst Fade | Tip spark burst that fades out |
style_stab=5
Set the stab color in your color profile section with tcolor.
tcolor=1023,1023,1023,0
That gives a white stab effect. For CFX color profiles, channel values can go up to 1023. You can also use a dictionary color name:
tcolor=white
Both drag and stab have configurable thresholds and angular ranges. These settings go in the general section of config.txt, outside any profile or font section.
hdrag=threshold,angleLow,angleHigh
350090This range defines how far downward the blade must point.
hdrag=300,10,80
hstab=threshold,angleLow,angleHigh
390-2020This means stab is centered roughly around a horizontal blade orientation.
hstab=350,-30,30
Tip: If stab is hard to trigger, lower the threshold and widen the range. If it triggers during normal swings, raise the threshold.
Drag and lockup are closely related because both use AUX plus clash. The difference is mostly blade orientation:
If your font has no drag sounds at all, the board treats AUX plus clash as regular lockup regardless of blade angle.
Both drag and lockup end when you release the AUX button.
| File | Effect | Notes |
|---|---|---|
drag.wav | Drag loop | First and required drag loop name |
drag2.wav ... dragN.wav | Drag loop variants | Randomly selected from available variants |
startdrag1.wav ... | Drag start transition | Optional |
enddrag1.wav ... | Drag end transition | Optional |
stab1.wav ... stabN.wav | Stab impact | Randomly selected if available |
| Key | Section | Format | Purpose |
|---|---|---|---|
hdrag | General | threshold,angleLow,angleHigh | Drag detection sensitivity and angle range |
hstab | General | threshold,angleLow,angleHigh | Stab detection sensitivity and angle range |
dcolor | Color profile | R,G,B,W up to 1023, or color name | Drag effect color |
tcolor | Color profile | R,G,B,W up to 1023, or color name | Stab effect color |
style_drag | Blade profile | 0 to 6 | Drag visual style |
style_stab | Blade profile | 0 to 6 | Stab visual style |
mapping_drag | Blade profile | 0 to 5 | Drag motion or audio mapping |
# --- General section ---
hdrag=350,0,90
hstab=390,-20,20
# --- Color profile section ---
profile=1
color=0,0,1023,0
dcolor=1023,400,0,0
tcolor=1023,1023,1023,0
# --- Blade profile section ---
style_drag=2
style_stab=5
mapping_drag=2
| Problem | Possible Cause | Fix |
|---|---|---|
| Drag does not trigger | No drag files in the font | Add at least drag.wav |
| Drag becomes lockup instead | Blade angle is not downward enough | Point the blade farther down or widen hdrag |
| Stab does not trigger | Threshold too high or angle range too narrow | Lower hstab or widen the angle range |
| Stab triggers during swings | Threshold too low | Raise hstab |
| No drag color visible | style_drag=0 or no dcolor | Use a non-zero drag style and set dcolor |
| No stab color visible | style_stab=0 or no tcolor | Use a non-zero stab style and set tcolor |
| Drag sound works but no drag visual | style_drag=0 | Change to a visible drag style |
hdrag and hstab control sensitivity and angle rangesstyle_drag, style_stab, dcolor, and tcolor control appearancemapping_drag lets drag react to audio, motion, twist, or time