MARPLA / Help center

User guide

Follow game updates

Monitoring builds project history for later comparisons.

How to use it

  1. Add a game you are interested in to monitoring.
  2. Open its history and choose a range.
  3. Select Refresh when needed. The metrics you have opened remain on screen.

Advice and practical context

Observation boundaries

History starts when a game enters collection, so activity before the first snapshot is unknown. Sources can have different cadences, and manual refresh cannot recreate past points. Universe age is not observed activity age.

Interpreting gaps

When a window is incomplete, treat available points as a limited sample and lower confidence. Do not interpolate a peak across a large gap. Avoid calling first discovery the launch or deriving a precise rate from two nearby snapshots.

Estimate stability only across enough hours; a flat line from two samples says nothing about the daily cycle. Wait for the post-spike window. Peak preservation becomes available only after that window actually matures.

Technical detailsCalculations, permissions and behavior

Observation queue

CCU snapshots and cumulative counters continue every five minutes. Heavy new-game discovery, Roblox Charts and creator portfolios use a separate durable lease and run at most every 30 minutes; a failed attempt is not retried after five minutes. Two search phrases advance through their own queue, so a full rotation does not skip genres.

Priority candidates alternate with games whose observations are oldest. The collector requests up to 50 games per batch, spacing requests to the same host by at least two seconds. On Roblox 429 or a server Retry-After, MARPLA stores a host-specific cooldown and does not call that host before the specified time even in later cycles; other hosts continue working.

Pages read our archive without waiting for background collection. If Roblox returns only part of a batch, other games keep their saved history and return to the queue. Sample-wide CCU is recorded only after the requested cohort is returned in full, so an incomplete response cannot look like an audience drop.

Collection fallback on open pages

A visible page may start a fallback cycle; hidden tabs do not start new requests. A server lease prevents concurrent collection of the same cohort. Both the catalog fallback and the independent scheduler wait up to 90 seconds, including Roblox request pacing and result storage.

The interface keeps showing the archive and remains interactive. Closing a page may cancel its fallback request; the next scheduled cycle retries after the lease is released.

Roblox request cadence

The minute scheduler only wakes queues: actual upstream calls are governed by shared server leases and per-source next_at timestamps. Analytics processes up to four due jobs per minute; minute metrics refresh at most every 5 minutes, hourly metrics every 15 minutes and daily metrics every 6 hours. The market catalog and public player counts target five-minute freshness, Ads additionally follows a 15-minute to 24-hour window based on the selected range, and product prices target hourly checks and events normally refresh every 6 hours.

A connected game's public player count reuses a complete market-catalog observation from the current five-minute bucket; a separate Roblox request runs only for games absent from the fresh observation or missing required fields. The product catalog requests a thumbnail again only for a new or changed Asset ID or while Roblox reports Pending; an already stored image with the same Asset ID is not downloaded again. Heavy collectors run in different minutes of each five-minute window instead of creating one burst.

An independent benchmark queue runs up to three source jobs per minute, prioritizing current scorecards without consuming the four ordinary analytics slots. Daily P50–P90 bands and daily/seven-day scorecards have separate schedules and errors; successful sources are checked every six hours. Older history is fetched in bounded chunks and revisions do not expire.

Temporary failures retry after 30 minutes with increasing backoff, 429 after one hour or later per Retry-After, and 401/403 after six hours. Manual buttons use the same queues and leases. A forced Events refresh may bypass the six-hour age, but it is protected by a one-minute guard and the shared single-source lease.

Shared public-cycle quota

One public background cycle performs at most 24 Roblox reads and runs for no longer than 18 seconds. The shared budget covers current player counts for connected games, one due community events-and-contacts job, and up to two previously opened managed calendars. Internal D1/R2 storage maintenance is outside the Roblox quota.

If the quota runs out partway through the queue, MARPLA keeps completed sources and exact counters, does not replace the archive with an error, and retries only unfinished work in 5 minutes. Manual sync remains protected by its own lease and repeat-click guard.

Game icons without redundant downloads

The five-minute market snapshot still refreshes CCU and other fast-changing facts, but it no longer requests an already completed game icon on every cycle. A stored completed icon URL is checked once a day; a missing URL or Roblox Pending response retries after 30 minutes. A new game is checked immediately.

Manual catalog refresh uses the same due times and shared lease, so it cannot create a parallel stream of duplicate thumbnail requests.

Hourly trend and rating collection

1h compares average CCU over the latest 15 minutes with the 45–75 minute window. Each window requires at least two real observations separated by 5 minutes or more. This supports the catalog's ten-minute rotation as well; a single snapshot is not enough.

A neutral dash means insufficient history, not zero growth. Coverage still uses the five-minute target: sparse data does not earn high Signal confidence or automatically confirm acceleration.

Queue

One cycle allows at most 44 Roblox requests, 2 concurrent requests and at least 2 seconds between starts on each host. Saved games' votes and CCU are requested before discovery. Up to 1,000 games are sampled per cycle; discovery cycles reserve 50 places for new games.

Rating

Up to 200 games per cycle, in batches of 50. Missing ratings come first, then stale ones; saved votes refresh every 6 hours and failed attempts retry no sooner than 30 minutes later. Roblox rate limits impose a shared cooldown.

Vote freshness is independent of the logo. A successful rating is saved even if the same game's CCU fails, without advancing its CCU timestamp. Errors neither erase a saved rating nor become 0%.

Manual sync

Catalog refresh uses the same queue, due times and lease. Repeated clicks do not create extra parallel requests; the interface continues to show saved data.

Request spacing

The collector spaces actual request starts to the same Roblox host. After a timer wakes, it rechecks the remaining interval so load or imprecise timer wake-ups cannot create request bursts. Different hosts do not block each other.

Shared limits, stopping on 429 and the time budget remain in place.

Useful articles: examples and decisions

The guide covers the steps in the service. These articles explain the metrics, examples, techniques and how to evaluate results.

Action essentials and individual concepts (2)