RuneSphere Finder is a Progressive Web App for predicting RuneScape 3 RuneSphere search windows. It uses RuneScape's weekly reset timing plus optional user calibration to estimate upcoming spawn windows and search intervals.
- The app uses a weekly reset anchor at 10:30 UTC on Mondays to establish the base timestamp and spawn cycle.
- RuneSpheres are expected to follow a fixed cycle interval of
9050seconds between spawns. - Each sphere remains active for
3620seconds, and the app shows a search window around the spawn time. - The prediction engine can work in three modes:
Verified: A confirmed RuneSphere spawn or despawn has been recorded this week.Calibrated: The app uses historical timing from prior weeks when no current-week confirmation exists.Estimated: No calibration exists yet, so it relies on stock weekly reset timing.
- Predicts current and future RuneSphere spawn windows in UTC
- Displays nearby recent spawn times and upcoming search windows
- Confirms spawns or despawns to calibrate timing automatically
- Stores calibration history in browser local storage
- Supports import of timestamps via query string (
?t=<unix|ISO>) and shareable links - Shows calibration status, confidence details, and developer diagnostics
- Sends browser notifications and vibration alerts during active windows when permitted
- Built as an installable Progressive Web App
- Open the app and view the next predicted RuneSphere window.
- Confirm a spawn or despawn to improve future predictions.
- The app stores confirmed timestamps locally and updates drift calculations.
- Use the calibration history tab to review, remove, or share timestamp entries.
- Import a timestamp by appending
?t=<timestamp>to the URL, where<timestamp>is either:- a Unix seconds value
- an ISO datetime string
- The app groups confirmed timestamps by their weekly reset period.
- Each timestamp is converted into a cycle drift relative to the nearest reset anchor.
- If the current week contains confirmed entries, that week's drift is used as the calibration offset.
- If no current-week data is available, the app averages the historical drift values from saved calibration entries.
- Calibration state is pruned automatically to remove stale entries older than 90 days.
- Predictions are generated from the base reset timestamp plus the calibration offset, rather than from the reset time alone.
- Node.js 20+
- npm
npm installnpm run devnpm testnpm run lintnpm run buildsrc/App.tsx- main React UI, navigation tabs, notification handling, and calibration controlssrc/services/prediction.ts- prediction engine that applies the calibration offset to the base reset timestampsrc/services/calibration.ts- calibration state management, local storage persistence, drift calculations, and weekly summariessrc/services/timestamp.ts- timestamp abstractions for spawn, despawn, reset, and imported entriessrc/services/constants.ts- shared timing constants like spawn interval and sphere lifetimesrc/services/*.test.ts- unit tests for prediction, calibration, and timestamp logicpublic/- static assets, PWA manifest, and data files
- The app is designed for UTC-aligned RuneSphere timing and works best when the browser clock is accurate.
- Local storage calibration is browser-specific and does not sync across devices.
- Importing or sharing a timestamp via URL updates the calibration state without manual typing.