Sports scores

Thread View Milestone Confetti

Released Thread View Milestone Confetti 1.2.2

No permission to download
# Thread View Milestone Confetti — FAQ

## Which events can trigger a celebration?

Two: a new visible post that brings a thread to one of your reply milestones, and a post whose
reaction score rises to one of your reaction milestones. Reply milestones default to 100, 500, 1000,
5000 and 10000; reaction milestones default to 10, 25, 50, 100, 250, 500 and 1000. Both lists are
plain options — comma-separated numbers, ranges not required.

## Should the number match exactly, or "at least"?

Exactly. Each milestone is a specific number, and the add-on records that number the first time it is
reached. If you set 100, the celebration fires when a thread reaches 100 replies — not also at 101.

## Can the same milestone fire twice for one thread?

No. Every celebration is recorded in `xf_talmyric_tmc_milestone` under a unique key of content type,
content ID and milestone number, so two people posting simultaneously cannot both trigger the same
one. Deleting posts can lower a thread's reply count and let it reach 100 again, but 100 was already
recorded and will stay quiet.

## I posted the hundredth reply and saw nothing. Why?

Four usual reasons, in order of likelihood:

1. The count was not exactly on a configured milestone. Post deletions, merged threads and moderated
posts can move the displayed count past the number.
2. The celebration belongs to the thread page. It is released into `thread_view` only; if your post
landed somewhere else, it stays queued for up to 15 minutes and appears the next time you open
that thread.
3. The visitor is not logged in, or the session expired — the celebration is attached to the session
of the person who caused it.
4. Your system or browser has reduced motion enabled, or all three effects are disabled, so only the
card is drawn.

## Who sees the celebration in a busy thread?

Only the person whose post or reaction crossed the line. It is not broadcast to everyone reading the
thread; other members get nothing, which is deliberate — a whole page of confetti for a milestone
someone else earned is noise.

## Why did the celebration appear when I opened the thread later?

Because it is scoped to the thread it belongs to. If you post the hundredth reply and then browse to
somewhere else, the celebration waits in your session (15 minutes) and is released when you next
open that thread.

## Do guests see anything?

No. A celebration needs a logged-in visitor session, because it is queued against that session rather
than stored in the thread.

## What happens if a reaction is removed?

Removing a reaction lowers the score, and lower scores never celebrate — only an increase can.
Adding a reaction back later that lands on a milestone is celebrated only if that exact milestone was
never recorded for that post.

## Can I change the milestones without reinstalling?

Yes. Both lists and all three effect toggles are ordinary options under Admin CP → Setup → Options →
**Thread Milestone Confetti**. Clearing a list disables that trigger without touching the other one.

## How do effect weights work?

Each celebration picks one effect. Weights set the relative odds: with `confetti:3, fireworks:2,
sparkles:2`, confetti should appear about three times for every two fireworks and two sparkles. The
range is 0–20, an effect you leave out of the list counts as 1, and a weight of 0 keeps that effect
out entirely even if its toggle is on.

## Why does it never show the same effect twice in a row?

A small session marker records the last effect used, and the next pick is drawn from the remaining
ones. With all three effects on, you will always see a change of style between two consecutive
milestones in the same browser session.

## Can I keep just one effect?

Yes — the cleanest way is to set the other two weights to 0, for example `fireworks:1, confetti:0,
sparkles:0`. Their toggles can also be switched off, which has the same effect.

## Does it respect accessibility settings?

The card is a polite status region with a labelled close button, dismissible by click or Escape, and
it disappears after seven seconds without needing interaction. If the visitor's system requests
reduced motion, the particles are skipped entirely and only the card appears.

## Will the particles slow the forum down?

The effect runs on a single canvas, draws only while particles remain, and stops the animation loop
when the last one fades. There is no polling, no interval timer left running, no external request and
no image loading. A celebration is a few hundred short-lived shapes for a handful of seconds.

## Does it need a CDN, an API key or an external service?

No. The whole engine is one local file served from `/js/talmyric/tmc/confetti.js` inside the add-on,
so there is no third-party request, nothing to configure and nothing that breaks if a CDN is
unreachable.

## Will it clash with my theme?

It does not edit styles. One template modification adds a hidden payload element in `thread_view` at
the `content_top` point, and the card and canvas are positioned fixed above the page, then removed
when finished. If you run a Content Security Policy that blocks inline styles, note that the card
injects its stylesheet at runtime and may need your policy relaxed for styles.

## Where does it store data, and what happens when I uninstall?

One table, `xf_talmyric_tmc_milestone`, holding the content type, content ID, milestone and the time
it was recorded. Uninstalling drops that table and removes the add-on's phrases, options, listeners,
template modification and JavaScript file. Nothing is sent anywhere.

## How can I see the effects without posting a hundred replies?

Build and open the preview page:

```bash
node tools/build-preview.js
```

`preview/celebration-preview.html` embeds the real script, fires sample reply and reaction payloads,
lets you compare each effect, try different weights and run **Check 24 picks** to see the actual
distribution of choices.

## Does it work on phones?

Yes. The counts scale down under 600 px wide and the fireworks launch slightly further apart, so the
effect stays readable on a small screen.

## Why is the add-on version 1.2.1?

1.0.0 introduced reply and reaction milestones; 1.2.0 added fireworks, sparkles, per-effect toggles
and weights; 1.2.1 increased the number of firework shells after feedback that five bursts was too
few.
Back
Top