Styles & chances
A "style" is a set of firework effects plus a weight. You can define as many styles as you want, and every confetti explosion draws one of them at random.
Style schema
Styles live under firework_styles. The key is the style name — pick anything, including spaces if you quote it:
firework_styles:
<style name>:
type: BALL # shape
flicker: true # twinkle
trail: false # trail
colors: # main colours, at least one
- RED
- "#FFD700"
fade-colors: # fade colours, optional
- ORANGE
| Field | Required | Default | Notes |
|---|---|---|---|
type | no | BALL | Firework shape — configurable per style; unknown values fall back to BALL |
flicker | no | false | Vanilla "twinkle" |
trail | no | false | Vanilla "trail" |
colors | yes | — | Main colour list; a single value is also accepted |
fade-colors | no | empty | Colours the burst fades into |
Accepted key spellings
The parser is forgiving, so old configs and snippets copied from other servers just work:
| Canonical | Also accepted |
|---|---|
colors | color |
fade-colors | fade_colors, fade |
colors: [RED, BLUE] | colors: RED (plain string) |
Firework shapes
The shape is not a fixed list baked into the plugin — it is a per-style setting. Whatever you put in type is handed to Bukkit's FireworkEffect.Type, so each style can use a different shape, and you can mix them freely in one config.
| Value | In game | Works well for |
|---|---|---|
BALL | Classic small sphere | Anything; best with several colours |
BALL_LARGE | Large sphere, wider spread | Viewing from a distance, big celebrations |
STAR | Star with spikes | Paired with flicker |
BURST | Burst that scatters outward | Multi-colour fades |
CREEPER | Creeper face | Themed easter eggs, green palettes |
Want a different look per situation? Give each style its own shape — e.g. CREEPER for the rare one, BALL_LARGE for the common one. The plugin picks the shape with the style, not globally.
CREEPER is a valid FireworkEffect.Type even though vanilla only produces it from specific rockets, so it can be used directly in the config.
Colour formats
Three formats, freely mixed inside one list.
1. Colour names
| Name | Hex | Name | Hex |
|---|---|---|---|
RED | #FF0000 | AQUA | #00FFFF |
ORANGE | #FFA500 | TEAL | #008080 |
YELLOW | #FFFF00 | BLUE | #0000FF |
LIME | #00FF00 | NAVY | #000080 |
GREEN | #008000 | PURPLE | #800080 |
OLIVE | #808000 | FUCHSIA | #FF00FF |
MAROON | #800000 | SILVER | #C0C0C0 |
GRAY / GREY | #808080 | WHITE | #FFFFFF |
BLACK | #000000 | Names are case-insensitive: red = RED | |
2. Hex
colors:
- "#FFD700" # six digits, # optional
- "#f00" # three digits = #FF0000
- "1E90FF" # without # also works
Six digits are read as RRGGBB, three as RGB with each digit duplicated. In YAML a value starting with # must be quoted, otherwise it becomes a comment.
3. RGB map
colors:
- RED: 255
GREEN: 100
BLUE: 0
All three channels are required and must be 0–255, otherwise the colour is dropped. Shorthand keys work too:
colors:
- rgb: "#FF6400"
- value: 16737843 # decimal integer, same as #FF6403
Invalid colours are dropped silently. A typo in a colour name does not raise an error — it just does not apply. If every colour in an effect is invalid the effect is skipped, and if every effect in a style is skipped the style never loads: it will not show up in /cc effect list and takes no share of the chances.
Several effects in one style
A style value can be a list. Each entry is a complete effect, and they all play in the same explosion — handy for a main burst plus accents.
firework_styles:
grand_finale:
- type: BALL_LARGE
flicker: true
trail: true
colors:
- "#FFD700"
- WHITE
fade-colors:
- ORANGE
- type: STAR
colors:
- "#00E5FF"
fade-colors:
- BLUE
- type: BURST
trail: true
colors:
- FUCHSIA
- PURPLE
Each list entry is an effect, not a style. All effects in the list share the style's single weight — they are not drawn separately.
Weights & auto-compensation
Numbers in firework_chances are weights, not percentages. On load the plugin normalises them so the total is always exactly 100%.
firework_chances:
classic: 4 # 4/10 = 40%
starburst: 3 # 3/10 = 30%
rainbow: 2 # 2/10 = 20%
creeper: 1 # 1/10 = 10%
| Situation | What the plugin does |
|---|---|
| Weights do not total 100 | Scales them proportionally back to 100% |
| A style has no weight | Gets the average of the defined weights |
| No weights at all | Every style gets an equal share |
| All weights are 0 | Falls back to uniform random |
| Rounding leaves 99.99 or 100.01 | The difference is added to the largest style |
| An unknown style name is listed | That line is ignored |
Pinning one style with a command
/cc effect chance <style> <percent> pins that style to an exact value and redistributes the rest proportionally:
/cc effect chance classic 50
Starting from 40 / 30 / 20 / 10 the result is 50 / 25 / 16.67 / 8.33 — the other three keep their relative proportions and the total stays at 100.
To go back to an even split use /cc effect chance reset.
Chances are displayed with two decimals. Anything changed through a command or the GUI is written back to config.yml immediately — no reload needed.
Capture a style in game
Writing colours by hand works, but it is easier to build the firework you like with vanilla items and let the plugin read it.
-
Get a rocket that has an effect
The plugin reads the
FireworkMetaof the item in your main hand, so the rocket must carry at least one explosion effect — a plain flight-duration rocket does not count. NBT form for 1.20.4 and older:/give @s firework_rocket{Explosion:{Type:3,Colors:[I;16711680,16777215],Flicker:1,Trail:0}} 1From 1.20.5 on, the component form:
/give @s firework_rocket[firework_explosion={shape:"star",colors:[16711680,16777215],has_twinkle:true}] 1The syntax changes between versions; if neither line works, use an item generator for your version. The plugin only cares that the held rocket has an effect — not how it was made.
-
Hold it and run the command
/cc effect add my_style # add; a duplicate name is rejected /cc effect set my_style # overwrite an existing styleOn success it immediately previews the style at your feet and writes it to the config. Without a name it becomes
style1,style2, … -
Check the result
/cc effect listThe list shows each style's effect count and current chance.
All of this is also doable in the GUI: /cc gui → click the nether star to import the rocket in your hand; right-click any style to preview it.