DIAG link + game diagnostics
checking
The page is loaded through this site's proxy so its DOM, canvas and console are readable.

Paste a link and hit Run. You get a verdict, a score, and the reasons behind it.

Reads JSON or HTML and pulls out every game-looking URL, up to 1500.

Idle.

#LinkVerdictScoreLoadCanvasErrors

What it checks

Every link goes through two passes. First the server fetches it and records the status, the redirect chain, the content type, whether the site allows being framed, and which engine the markup looks like. Then the page is mounted in a frame through the proxy, and the real document is inspected after it settles.

  • Load — did the document arrive, how long it took, and did the frame ever fire a load event.
  • Canvas — every canvas is sampled on a pixel grid: brightness, variance, colour count. A canvas that never changes and never varies is a black screen, not a game.
  • Motion — two samples taken 700ms apart, hashed and compared, plus a requestAnimationFrame counter, so a frozen frame is distinguishable from a slow one.
  • Errors — uncaught exceptions and rejected promises are captured by a shim that runs before the game's own scripts.
  • Network — failed fetches and XHRs, counted and kept.
  • Ad walls — full-viewport overlays and skip/close controls are detected, and optionally clicked.

Verdicts

PLAYING the canvas is drawing and moving. MENU a static but detailed frame, usually a title screen waiting for a click. BLACK SCREEN canvas exists, nothing drawn. STUCK ON AD an overlay is covering the game. DEAD LINK the server returned an error or never answered. EMPTY the page loaded but there is no game in it.

Proxy notes

Requests to /p/<token>/path fetch the same path from the target origin, rewrite absolute and root-relative URLs onto the prefix, strip framing headers, stub the common ad SDKs, and pass WebSockets through. Nothing is stored; results live in this tab.