Files
Microsoft-Rewards-Bot/docs/config-reference.md
LightZirconite 43ed6cd7f8 refactor: remove legacy scheduling and analytics code
- Deleted the scheduler module and its associated functions, transitioning to OS-level scheduling.
- Removed the Analytics module and its related interfaces, retaining only a placeholder for backward compatibility.
- Updated ConfigValidator to warn about legacy schedule and analytics configurations.
- Cleaned up StartupValidator to remove diagnostics and schedule validation logic.
- Adjusted Load.ts to handle legacy flags for diagnostics and analytics.
- Removed unused diagnostics capturing functionality.
2025-11-03 19:18:09 +01:00

6.0 KiB

Configuration Reference

This page mirrors the defaults that ship in src/config.jsonc and explains what each field does. Use it as a companion after trimming comments from the JSONC file.


General

Key Default Notes
baseURL https://rewards.bing.com Microsoft Rewards dashboard root.
sessionPath sessions Folder for cookies, fingerprints, and job-state.
dryRun false Log actions without executing tasks.

Browser & Fingerprinting

Key Default Notes
browser.headless false Use true for CI or servers.
browser.globalTimeout "30s" Accepts milliseconds or readable strings (e.g. "2min").
fingerprinting.saveFingerprint.desktop true Persist desktop fingerprint between runs.
fingerprinting.saveFingerprint.mobile true Persist mobile fingerprint.

Execution & Job State

Key Default Notes
execution.parallel false Run desktop and mobile simultaneously.
execution.runOnZeroPoints false Skip account when no points remain.
execution.clusters 1 Worker processes. Increase for parallel accounts.
execution.passesPerRun 1 Extra full passes. Keep at 1 to allow job-state skipping.
jobState.enabled true Persist daily completion markers.
jobState.dir "" Custom job-state directory (defaults under sessionPath).

Raising passesPerRun intentionally prevents job-state from skipping finished accounts.


Workers

Key Default Notes
workers.doDailySet true Daily set.
workers.doMorePromotions true Extra promotions.
workers.doPunchCards true Punch cards.
workers.doDesktopSearch true Desktop search tasks.
workers.doMobileSearch true Mobile search tasks.
workers.doDailyCheckIn true Mobile check-in.
workers.doReadToEarn true Read-to-earn.
workers.bundleDailySetWithSearch true Launch desktop search immediately after the daily set.

Search & Diversity

Key Default Notes
search.useLocalQueries true Use region-aware query pools.
search.settings.useGeoLocaleQueries true Inject account country into generated queries.
search.settings.scrollRandomResults true Random scrolls for realism.
search.settings.clickRandomResults true Occasional safe click-through.
search.settings.retryMobileSearchAmount 2 Retries for mobile search failures.
search.settings.delay.min/max 3min / 5min Delay between searches.
queryDiversity.enabled true Combine multiple content sources.
queryDiversity.sources ["google-trends", "reddit", "local-fallback"] Active diversity sources.
queryDiversity.maxQueriesPerSource 10 Cap per source.
queryDiversity.cacheMinutes 30 Cache lifetime in minutes.

Humanization & Vacation

Key Default Notes
humanization.enabled true Master toggle.
humanization.stopOnBan true Halt remaining accounts after a ban.
humanization.immediateBanAlert true Send alert instantly on ban.
humanization.actionDelay.min/max 500 / 2200 Extra wait between steps (ms).
humanization.gestureMoveProb 0.65 Chance of micro mouse move.
humanization.gestureScrollProb 0.4 Chance of small scroll.
humanization.allowedWindows [] Optional HH:mm-HH:mm windows.
vacation.enabled true Random monthly break.
vacation.minDays / maxDays 2 / 4 Range for skipped days.

Risk Management & Retries

Key Default Notes
riskManagement.enabled true Adaptive risk scoring.
riskManagement.autoAdjustDelays true Increase delays on high risk.
riskManagement.stopOnCritical false Stop automation at critical risk.
riskManagement.banPrediction true Estimate ban likelihood.
riskManagement.riskThreshold 75 Alert threshold (0-100).
retryPolicy.maxAttempts 3 Generic retry attempts.
retryPolicy.baseDelay 1000 Initial backoff delay (ms or string).
retryPolicy.maxDelay "30s" Maximum backoff delay.
retryPolicy.multiplier 2 Backoff multiplier.
retryPolicy.jitter 0.2 Adds randomness to delays.

Networking & Notifications

Key Default Notes
proxy.proxyGoogleTrends true Route Google Trends calls through the proxy.
proxy.proxyBingTerms true Route Bing requests through the proxy.
webhook.enabled false Live logs webhook.
conclusionWebhook.enabled false Summary webhook.
ntfy.enabled false Push notifications via NTFY.
logging.excludeFunc ["SEARCH-CLOSE-TABS", "LOGIN-NO-PROMPT", "FLOW"] Buckets skipped locally.
logging.webhookExcludeFunc same Buckets skipped in webhook payloads.
logging.redactEmails true Mask email addresses in logs.

Buy Mode & Updates

Key Default Notes
buyMode.maxMinutes 45 Session length cap when using -buy.
update.git true Run git updater after completion.
update.docker false Use Docker updater instead.
update.scriptPath setup/update/update.mjs Update script path.
update.autoUpdateConfig true Merge upstream config changes with backups.
update.autoUpdateAccounts false Skip account template merges unless you opt in.

  1. Start from the default config and copy it if you need a local override.
  2. Leave passesPerRun at 1 so job-state can skip accounts automatically.
  3. Configure your external scheduler after validating manual runs.
  4. Document any changes you make (without storing credentials in git).

Related docs: accounts.md, schedule.md, proxy.md, humanization.md, security.md.