Files
Microsoft-Rewards-Script/docs/config.md
Light 4d928d7dd9 V2.1.5 (#379)
* Updated README.md to reflect version 2.1 and improve the presentation of Microsoft Rewards Automation features.

* Updated version to 2.1.5 in README.md and package.json, added new license and legal notice sections, and improved the configuration script for a better user experience.

* Mise à jour des messages de journalisation et ajout de vérifications pour le chargement des quiz et la présence des options avant de procéder. Suppression de fichiers de configuration obsolètes.

* Added serial protection dialog management for message forwarding, including closing by button or escape.

* feat: Implement BanPredictor for predicting ban risks based on historical data and real-time events

feat: Add ConfigValidator to validate configuration files and catch common issues

feat: Create QueryDiversityEngine to fetch diverse search queries from multiple sources

feat: Develop RiskManager to monitor account activity and assess risk levels dynamically

* Refactor code for consistency and readability; unify string quotes, improve logging with contextual emojis, enhance configuration validation, and streamline risk management logic.

* feat: Refactor BrowserUtil and Login classes for improved button handling and selector management; implement unified selector system and enhance activity processing logic in Workers class.

* feat: Improve logging with ASCII context icons for better compatibility with Windows PowerShell

* feat: Add sample account setup

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md
2025-10-15 16:12:15 +02:00

12 KiB
Raw Blame History

⚙️ Configuration Guide

This page documents every field in the configuration file. The default ships as src/config.jsonc so you get inline // guidance without editor warnings, and the loader still accepts traditional config.json files if you prefer plain JSON.

Looking for ready-to-use presets? Check docs/config-presets/ for curated examples such as balanced.jsonc (full automation with humanization) and minimal.jsonc (lean runs with quick scheduling).

NOTE: Previous versions had logging.live (live streaming webhook); it was removed and replaced by a simple logging.redactEmails flag.


Top-Level Fields

baseURL

Internal Microsoft Rewards base. Leave it unless you know what you are doing.

sessionPath

Directory where session data (cookies / fingerprints / job-state) is stored.


browser

Key Type Default Description
headless boolean false Run browser UI-less. Set to false to keep the browser visible (default).
globalTimeout string/number "30s" Max time for common Playwright operations. Accepts ms number or time string (e.g. "45s", "2min").

execution

Key Type Default Description
parallel boolean false Run desktop + mobile simultaneously (higher resource usage).
runOnZeroPoints boolean false Skip full run early if there are zero points available (saves time).
clusters number 1 Number of process clusters (multi-process concurrency).
passesPerRun number 1 Advanced: extra full passes per started run.

buyMode

Manual redeem / purchase assistance.

Key Type Default Description
enabled (CLI -buy) boolean false Enable buy mode (usually via CLI argument).
maxMinutes number 45 Max session length for buy mode.

fingerprinting.saveFingerprint

Persist browser fingerprints per device type for consistency.

Key Type Default Description
mobile boolean false Save/reuse a consistent mobile fingerprint.
desktop boolean false Save/reuse a consistent desktop fingerprint.

Key Type Default Description
useLocalQueries boolean false Use locale-specific query sources instead of global ones.

search.settings

Key Type Default Description
useGeoLocaleQueries boolean false Blend geo / locale into chosen queries.
scrollRandomResults boolean true Random scroll during search pages to look natural.
clickRandomResults boolean true Occasionally click safe results.
retryMobileSearchAmount number 2 Retries if mobile searches didnt yield points.
delay.min / delay.max string/number 35min Delay between searches (ms or time string).

humanization

Humanlike behavior simulation.

Key Type Default Description
enabled boolean true Global on/off.
stopOnBan boolean true Stop processing further accounts if a ban is detected.
immediateBanAlert boolean true Fire notification immediately upon ban detection.
actionDelay.min/max number/string 150450ms Random micro-delay per action.
gestureMoveProb number 0.4 Probability of a small mouse move gesture.
gestureScrollProb number 0.2 Probability of a small scroll gesture.
allowedWindows string[] [] Local time windows (e.g. ["08:30-11:00","19:00-22:00"]). Outside windows, run waits.

vacation

Random contiguous block of days off per month.

Key Type Default Description
enabled boolean false Activate monthly break behavior.
minDays number 3 Minimum skipped days per month.
maxDays number 5 Maximum skipped days per month.

retryPolicy

Generic transient retry/backoff.

Key Type Default Description
maxAttempts number 3 Max tries for retryable blocks.
baseDelay number 1000 Initial delay in ms.
maxDelay number/string 30s Max backoff delay.
multiplier number 2 Exponential backoff multiplier.
jitter number 0.2 Randomization factor (0..1).

workers

Enable/disable scripted task categories.

Key Default Description
doDailySet true Daily set activities.
doMorePromotions true Promotional tasks.
doPunchCards true Punch card flows.
doDesktopSearch true Desktop searches.
doMobileSearch true Mobile searches.
doDailyCheckIn true Daily check-in.
doReadToEarn true Reading tasks.
bundleDailySetWithSearch false Immediately start desktop search bundle after daily set.

proxy

Key Default Description
proxyGoogleTrends true Route Google Trends fetch through proxy if set.
proxyBingTerms true Route Bing query source fetch through proxy if set.

notifications

Manages notification channels (Discord webhooks, NTFY, etc.).

notifications.webhook

Primary webhook (can be used for summary or generic messages).

Key Default Description
enabled false Allow sending webhook-based notifications and live log streaming.
url "" Webhook endpoint.

notifications.conclusionWebhook

Rich end-of-run summary (if enabled separately).

Key Default Description
enabled false Enable run summary posting.
url "" Webhook endpoint.

notifications.ntfy

Lightweight push notifications.

Key Default Description
enabled false Enable NTFY push.
url "" Base NTFY server URL (e.g. https://ntfy.sh).
topic rewards Topic/channel name.
authToken "" Bearer token if your server requires auth.

logging

Key Type Description
excludeFunc string[] Log buckets suppressed in console + any webhook usage.
webhookExcludeFunc string[] Buckets suppressed specifically for webhook output.
redactEmails boolean If true, email addresses are partially masked in logs.
liveWebhookUrl string Optional override URL for live log streaming (falls back to notifications.webhook.url).

Removed fields: live.enabled, live.url, live.redactEmails — replaced by redactEmails only.


diagnostics

Capture evidence when something fails.

Key Default Description
enabled true Master switch for diagnostics.
saveScreenshot true Save screenshot on failure.
saveHtml true Save HTML snapshot on failure.
maxPerRun 2 Cap artifacts per run per failure type.
retentionDays 7 Old run artifacts pruned after this many days.

jobState

Checkpoint system to avoid duplicate work.

Key Default Description
enabled true Enable job state tracking.
dir "" Custom directory (default: <sessionPath>/job-state).

schedule

Built-in scheduler (avoids external cron inside container or host).

Key Default Description
enabled false Enable scheduling loop.
useAmPm false If true, parse time12; else use time24.
time12 9:00 AM 12hour format time (only if useAmPm=true).
time24 09:00 24hour format time (only if useAmPm=false).
timeZone America/New_York IANA zone string (e.g. Europe/Paris).
runImmediatelyOnStart false Run one pass instantly in addition to daily schedule.

Legacy: If both time12 and time24 are empty, a legacy time (HH:mm) may still be read.


update

Auto-update behavior after a run.

Key Default Description
git true Pull latest git changes after run.
docker false Recreate container (if running in Docker orchestration).
scriptPath setup/update/update.mjs Custom script executed for update flow.

Security / Best Practices

  • Keep redactEmails true if you share logs publicly.
  • Use a private NTFY instance or secure Discord webhooks (do not leak URLs).
  • Avoid setting headless false on untrusted remote servers.

Minimal Example

{
  "browser": { "headless": true },
  "execution": { "parallel": false },
  "workers": { "doDailySet": true, "doDesktopSearch": true, "doMobileSearch": true },
  "logging": { "redactEmails": true }
}

Common Tweaks

Goal Change
Faster dev feedback Set browser.headless to false and shorten search delays.
Reduce detection risk Keep humanization enabled, add vacation window.
Silent mode Add more buckets to excludeFunc.
Skip mobile searches Set workers.doMobileSearch=false.
Use daily schedule Set schedule.enabled=true and adjust time24 + timeZone.

NEW INTELLIGENT FEATURES

riskManagement

Dynamic risk assessment and ban prediction.

Key Type Default Description
enabled boolean true Enable risk-aware throttling.
autoAdjustDelays boolean true Automatically increase delays when captchas/errors are detected.
stopOnCritical boolean false Stop execution if risk score exceeds threshold.
banPrediction boolean true Enable ML-style pattern analysis to predict ban risk.
riskThreshold number 75 Risk score (0-100) above which bot pauses or alerts.

How it works: Monitors captchas, errors, timeouts, and account patterns. Dynamically adjusts delays (e.g., 1x → 2.5x) and warns you before bans happen.


analytics

Performance dashboard and metrics tracking.

Key Type Default Description
enabled boolean true Track points earned, success rates, execution times.
retentionDays number 30 How long to keep analytics data.
exportMarkdown boolean true Generate human-readable markdown reports.
webhookSummary boolean false Send analytics summary via webhook.

Output location: analytics/ folder (JSON files per account per day).


queryDiversity

Multi-source search query generation.

Key Type Default Description
enabled boolean true Use diverse sources instead of just Google Trends.
sources array ["google-trends", "reddit", "local-fallback"] Which sources to query (google-trends, reddit, news, wikipedia, local-fallback).
maxQueriesPerSource number 10 Max queries to fetch per source.
cacheMinutes number 30 Cache duration to avoid hammering APIs.

Why? Reduces patterns by mixing Reddit posts, news headlines, Wikipedia topics instead of predictable Google Trends.


dryRun

Test mode: simulate execution without actually running tasks.

Key Type Default Description
dryRun boolean false When true, logs actions but doesn't execute (useful for testing config).

Use case: Validate new config changes, estimate execution time, debug issues without touching accounts.


Changelog Notes

  • v2.2.0: Added risk-aware throttling, analytics dashboard, query diversity, ban prediction, dry-run mode.
  • Removed live webhook streaming complexity; now simpler logging.
  • Centralized redaction logic under logging.redactEmails.

If something feels undocumented or unclear, open a documentation issue or extend this page.