+
+**Thank you for contributing!** ๐
+
+[Back to README](README.md) โข [Documentation](docs/index.md) โข [Discord](https://discord.gg/h6Z69ZPPCz)
+
+
diff --git a/LICENSE b/LICENSE
index 53ec19a..75cea4d 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,43 +1,108 @@
-PROPRIETARY LICENSE
+Creative Commons Attribution-NonCommercial-ShareAlike 4.0 InternationalNON-COMMERCIAL PERSONAL USE LICENSE
-Copyright (c) 2024-2025 LightZirconite and Contributors
-All rights reserved.
+
+Copyright (c) 2025 Light60-1Copyright (c) 2024-2025 TheNetsky and Contributors
+
+Originally forked from Light60-1/Microsoft-Rewards-Rewi
+
+This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0
+
+International License. To view a copy of this license, visit:All rights reserved.
+
+http://creativecommons.org/licenses/by-nc-sa/4.0/
TERMS AND CONDITIONS:
+================================================================================
+
1. PERMITTED USE:
- - You may download and use this software for personal, non-commercial purposes.
+
+YOU ARE FREE TO: - You may download and use this software for personal, non-commercial purposes.
+
- You may modify the source code for your own personal use.
- - You may submit pull requests (PRs) to the official repository to propose improvements.
+
+ โข Share โ copy and redistribute the material in any medium or format - You may submit pull requests (PRs) to the official repository to propose improvements.
+
+ โข Adapt โ remix, transform, and build upon the material
2. PROHIBITED ACTIONS:
- - You may NOT redistribute this software, modified or unmodified, in any form.
+
+The licensor cannot revoke these freedoms as long as you follow the license terms. - You may NOT redistribute this software, modified or unmodified, in any form.
+
- You may NOT share, publish, or distribute your modifications publicly.
- - You may NOT use this software for commercial purposes.
+
+================================================================================ - You may NOT use this software for commercial purposes.
+
- You may NOT sublicense, sell, rent, or lease this software.
- - You may NOT create derivative works for public distribution.
+
+UNDER THE FOLLOWING TERMS: - You may NOT create derivative works for public distribution.
+
- You may NOT remove or modify this license or copyright notices.
-3. CONTRIBUTIONS:
- - By submitting a pull request, you grant the copyright holder the right to use,
+ โข Attribution โ You must give appropriate credit, provide a link to the license,
+
+ and indicate if changes were made. You may do so in any reasonable manner, but3. CONTRIBUTIONS:
+
+ not in any way that suggests the licensor endorses you or your use. - By submitting a pull request, you grant the copyright holder the right to use,
+
modify, and distribute your contributions under this license.
- - You retain no rights to your contributions once merged into the official repository.
-4. DISCLAIMER:
+ โข NonCommercial โ You may NOT use the material for commercial purposes. - You retain no rights to your contributions once merged into the official repository.
+
+ This includes selling, renting, licensing for profit, or using in any
+
+ revenue-generating context without explicit written permission.4. DISCLAIMER:
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
- INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+
+ โข ShareAlike โ If you remix, transform, or build upon the material, you must INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+
+ distribute your contributions under the same license as the original. PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-5. TERMINATION:
+ โข No additional restrictions โ You may not apply legal terms or technological OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+
+ measures that legally restrict others from doing anything the license permits. SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+
+================================================================================5. TERMINATION:
+
This license is effective until terminated. Your rights under this license will
- terminate automatically without notice if you fail to comply with any term herein.
-6. GOVERNING LAW:
- This license shall be governed by and construed in accordance with applicable laws,
- without regard to its conflict of law provisions.
+DISCLAIMER: terminate automatically without notice if you fail to comply with any term herein.
-For permissions beyond the scope of this license, please contact the copyright holder.
+
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR6. GOVERNING LAW:
+
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, This license shall be governed by and construed in accordance with applicable laws,
+
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE without regard to its conflict of law provisions.
+
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,For permissions beyond the scope of this license, please contact the copyright holder.
+
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+================================================================================
+
+MICROSOFT REWARDS TERMS:
+
+This software automates interactions with Microsoft Rewards, which may violate
+Microsoft's Terms of Service. Use at your own risk. The authors:
+
+ โข Are NOT responsible for account suspensions or bans
+ โข Do NOT encourage violating terms of service
+ โข Provide this for educational purposes ONLY
+
+By using this software, you acknowledge and accept all risks.
+
+================================================================================
+
+For commercial licensing inquiries or permissions beyond this license:
+https://github.com/Light60-1/Microsoft-Rewards-Bot/issues
diff --git a/NOTICE b/NOTICE
index 3cc9ba6..dc30fe7 100644
--- a/NOTICE
+++ b/NOTICE
@@ -1,127 +1,49 @@
-# IMPORTANT LEGAL NOTICES
+Microsoft Rewards Bot
+Copyright (c) 2025 Light60-1
-## ๐จ Terms of Service Violation Warning
+This project is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0
+International License. See LICENSE file for details.
-**Using this software violates Microsoft's Terms of Service.**
+================================================================================
-Microsoft Rewards explicitly prohibits:
-- Automated point collection
-- Bot usage for completing tasks
-- Any form of automation on their platform
+IMPORTANT LEGAL NOTICES
-### Potential Consequences:
-- โ **Immediate account suspension**
-- โ **Permanent ban from Microsoft Rewards**
-- โ **Forfeiture of all accumulated points**
-- โ **Loss of redemption history**
-- โ ๏ธ Possible restrictions on other Microsoft services
+๐จ USE AT YOUR OWN RISK
----
+This software automates interactions with Microsoft Rewards, which may violate
+Microsoft's Terms of Service. Potential consequences include:
-## ๐ข Proprietary License - Restricted Use
+ โข Account suspension or permanent ban
+ โข Loss of accumulated points and rewards
+ โข Restriction from Microsoft services
-This software is licensed under a **PROPRIETARY LICENSE** with strict restrictions.
-
-### โ
Permitted Activities:
-- Download and use for personal, non-commercial purposes
-- Modify the source code for your own personal use
-- Submit pull requests to the official repository
-
-### โ Prohibited Activities:
-- Redistributing this software (modified or unmodified)
-- Sharing or publishing your modifications publicly
-- Using this software for commercial purposes
-- Selling, renting, or leasing this software
-- Creating derivative works for public distribution
-- Removing or modifying license or copyright notices
-
----
-
-## โ๏ธ Legal Disclaimer
-
-### No Warranty
-This software is provided "AS IS" without any warranty of any kind.
-
-### No Liability
The authors and contributors:
-- Are NOT responsible for account suspensions
-- Are NOT responsible for lost points or rewards
-- Are NOT responsible for any damages
-- Do NOT encourage ToS violations
-- Provide this for educational purposes ONLY
+ โข Are NOT responsible for any actions taken by Microsoft
+ โข Do NOT encourage violating terms of service
+ โข Provide this for EDUCATIONAL purposes only
-### Your Responsibility
-You are solely responsible for:
-- Your use of this software
-- Compliance with Microsoft's policies
-- Any consequences from automation
-- Legal implications in your jurisdiction
+================================================================================
----
+THIRD-PARTY SOFTWARE
-## ๐ Educational Purpose Statement
+This project uses open-source libraries:
+ โข Playwright (Apache-2.0)
+ โข ReBrowser-Playwright (Apache-2.0)
+ โข Cheerio (MIT)
+ โข Axios (MIT)
+ โข And others (see package.json)
-This project is developed and maintained for **educational purposes**:
-- To demonstrate browser automation techniques
-- To showcase TypeScript and Playwright capabilities
-- To teach software architecture patterns
-- To explore anti-detection methodologies
+All trademarks and service marks are the property of their respective owners.
-**The authors do not condone using this software in violation of any Terms of Service.**
+================================================================================
----
+PRIVACY & DATA
-## ๐ Privacy & Security
+This software stores credentials locally only. No data is sent to third parties
+except as required for Microsoft Rewards functionality. You are responsible for
+securing your configuration files.
-### Your Data:
-- This software stores credentials **locally only**
-- No data is sent to third parties
-- Sessions are stored in the `sessions/` folder
-- You can delete all data by removing local files
+================================================================================
-### Third-Party Services:
-- Google Trends (for search queries)
-- Bing Search (for automation)
-- Discord/NTFY (optional, for notifications)
-
-### Your Responsibility:
-- Protect your `accounts.json` file
-- Use strong passwords
-- Enable 2FA where possible
-- Don't share your configuration publicly
-
----
-
-## ๐ Geographic Restrictions
-
-Microsoft Rewards availability and terms vary by region:
-- Available in select countries only
-- Region-specific earning rates
-- Local laws may apply
-- Check your local regulations
-
-**By using this software, you confirm:**
-1. Microsoft Rewards is available in your region
-2. You understand the risks of automation
-3. You accept full responsibility for your actions
-4. You will not use this for commercial purposes
-
----
-
-## ๐ Contact & Reporting
-
-**Questions about licensing?**
-Open an issue at: https://github.com/LightZirconite/Microsoft-Rewards-Rewi/issues
-
-**Found a security issue?**
-See: SECURITY.md
-
-**General discussion?**
-Join Discord: https://discord.gg/kn3695Kx32
-
----
-
-**Last Updated:** October 2025
-**Applies to:** Microsoft Rewards Script V2.1.5 and later
-
-**BY USING THIS SOFTWARE, YOU ACKNOWLEDGE THAT YOU HAVE READ AND UNDERSTOOD THESE NOTICES.**
+For issues, questions, or contributions:
+https://github.com/Light60-1/Microsoft-Rewards-Bot
diff --git a/README.md b/README.md
index 8ae8037..7b3dfea 100644
--- a/README.md
+++ b/README.md
@@ -1,353 +1,247 @@
-# Microsoft-Rewards-Rewi
+
+
+**Made with โค๏ธ by the community**
+
+[Documentation](docs/index.md) โข [Discord](https://discord.gg/h6Z69ZPPCz) โข [Issues](https://github.com/Light60-1/Microsoft-Rewards-Bot/issues)
+
+
diff --git a/SECURITY.md b/SECURITY.md
index 7e431c0..416e25e 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -352,8 +352,8 @@ Security contributors will be credited in the changelog (with permission).โ St
## ๐ Contact
- **Security issues:** Open a GitHub issue with "Security" label
-- **General support:** [Discord community](https://discord.gg/kn3695Kx32)
-- **Bug reports:** [GitHub Issues](https://github.com/LightZirconite/Microsoft-Rewards-Rewi/issues)
+- **General support:** [Discord community](https://discord.gg/h6Z69ZPPCz)
+- **Bug reports:** [GitHub Issues](https://github.com/Light60-1/Microsoft-Rewards-Bot/issues)
---
diff --git a/assets/README.md b/assets/README.md
new file mode 100644
index 0000000..8e9ad77
--- /dev/null
+++ b/assets/README.md
@@ -0,0 +1,82 @@
+# ๐จ Assets Directory
+
+This folder contains visual assets for the Microsoft Rewards Script project.
+
+## ๐ Contents
+
+### `logo.png`
+**The official project mascot and logo**
+
+- **Dimensions:** Original size preserved
+- **Format:** PNG with transparency
+- **Usage:**
+ - README.md header (200px width)
+ - Documentation pages (120-150px width)
+ - Social media and promotional materials
+
+## ๐ Logo Usage Guidelines
+
+### Recommended Sizes
+
+| Context | Recommended Width | Example |
+|---------|------------------|---------|
+| Main README | 200px | `
+
+**Quick answers to common questions**
+
+[๐ Back to Documentation Hub](index.md)
+
+
+
+---
+
+## ๐ Table of Contents
+
+- [General Questions](#general-questions)
+- [Installation & Setup](#installation--setup)
+- [Configuration](#configuration)
+- [Troubleshooting](#troubleshooting)
+- [Safety & Security](#safety--security)
+- [Features & Functionality](#features--functionality)
+
+---
+
+## General Questions
+
+### What is this project?
+
+This is an automated script that completes Microsoft Rewards tasks to earn points. It uses Playwright to control a browser and perform searches, quizzes, and other activities automatically.
+
+### Is this legal?
+
+The script itself is legal software. However, using automation tools may violate Microsoft's Terms of Service, which could result in account suspension or ban. **Use at your own risk.**
+
+### Will I get banned?
+
+There's always a risk when using automation. The script includes humanization features and anti-detection measures to reduce risk, but we cannot guarantee account safety. Many users have used it successfully for extended periods, but results vary.
+
+### How many points can I earn per day?
+
+Typically 150-300 points per day per account, depending on available activities and your region. This varies by country and account type.
+
+### How long does a run take?
+
+Usually 5-15 minutes per account, depending on:
+- Number of searches required
+- Available daily activities
+- Humanization delay settings
+- Internet speed
+
+---
+
+## Installation & Setup
+
+### What are the system requirements?
+
+- **Node.js 20+** (version 22 recommended)
+- **2 GB RAM minimum** (4 GB recommended)
+- **Windows, macOS, or Linux**
+- **Stable internet connection**
+
+### Do I need to install a browser?
+
+No! Playwright downloads Chromium automatically during setup. You don't need Chrome or Edge installed.
+
+### Can I use this on a Raspberry Pi?
+
+Yes, but performance may be limited. Headless mode is recommended for resource-constrained devices.
+
+### How do I update to the latest version?
+
+```bash
+# Using Git
+git pull origin main
+npm install
+npm run build
+
+# Or run the update script
+npm run setup
+```
+
+### Can I run this on a server 24/7?
+
+Yes! Use Docker with the built-in scheduler for unattended operation. See the [Docker Guide](docker.md).
+
+---
+
+## Configuration
+
+### Where do I put my Microsoft credentials?
+
+In `src/accounts.jsonc`. Copy `src/accounts.example.jsonc` as a template.
+
+โ ๏ธ **Never commit this file to Git!** It should be in `.gitignore`.
+
+### Do I need to enable 2FA/TOTP?
+
+Not required, but **highly recommended** for:
+- Automated login without manual code entry
+- Better security
+- 24/7 scheduler compatibility
+
+See the [Accounts & 2FA Guide](accounts.md).
+
+### How do I schedule automatic runs?
+
+Enable the built-in scheduler in `src/config.jsonc`:
+
+```jsonc
+{
+ "schedule": {
+ "enabled": true,
+ "time24": "09:00",
+ "timeZone": "America/New_York"
+ }
+}
+```
+
+Then run: `npm run start:schedule`
+
+See the [Scheduling Guide](schedule.md).
+
+### Can I run multiple accounts?
+
+Yes! Add multiple entries to `accounts.jsonc` and adjust the `clusters` setting:
+
+```jsonc
+{
+ "execution": {
+ "clusters": 2 // Run 2 accounts in parallel
+ }
+}
+```
+
+### Should I use headless mode?
+
+- **Headless (`true`):** Background operation, required for Docker, lower resource usage
+- **Non-headless (`false`):** See what the bot is doing, easier debugging
+
+For production/automated runs, use headless mode.
+
+---
+
+## Troubleshooting
+
+### The script won't start
+
+1. **Check Node.js version:** `node --version` (must be 20+)
+2. **Rebuild:** `npm run build`
+3. **Check accounts.jsonc:** Valid JSON format?
+4. **Review logs:** Look for error messages
+
+### Login fails constantly
+
+- **Wrong credentials:** Double-check email/password
+- **2FA issues:** Verify TOTP secret is correct
+- **Account locked:** Check Microsoft account security page
+- **Recovery email mismatch:** Ensure recovery email matches account settings
+
+See [Accounts Troubleshooting](accounts.md#troubleshooting).
+
+### No points are earned
+
+- **Already completed:** Tasks may be done for the day
+- **Region restrictions:** Some activities vary by country
+- **Account level:** New accounts may have limited activities
+- **Ban/suspension:** Check account status on Microsoft Rewards
+
+### Browser crashes or freezes
+
+- **Increase timeout:** Adjust `browser.globalTimeout` in config
+- **Reduce load:** Lower `clusters` value
+- **Update dependencies:** `npm install`
+- **Check system resources:** Ensure adequate RAM
+
+### Docker container exits immediately
+
+1. **Check logs:** `docker logs microsoft-rewards-script`
+2. **Verify mounts:** Ensure `accounts.jsonc` exists and is mounted
+3. **Check config:** `headless` must be `true` for Docker
+4. **Review environment variables:** Timezone, cron settings
+
+See [Docker Troubleshooting](docker.md#troubleshooting).
+
+### "Command not found" errors
+
+Ensure you're in the project directory and have run `npm install`.
+
+---
+
+## Safety & Security
+
+### How can I minimize ban risk?
+
+1. **Enable humanization:** Keep `humanization.enabled: true`
+2. **Use reasonable delays:** Don't make searches too fast
+3. **Run consistently:** Daily runs at similar times
+4. **Start with one account:** Test before scaling
+5. **Monitor for warnings:** Check logs regularly
+6. **Use vacation mode:** Enable random off-days
+
+See [Humanization Guide](humanization.md).
+
+### Is my data safe?
+
+- **No telemetry:** The script doesn't send data anywhere except Microsoft
+- **Local storage:** Credentials stay on your machine
+- **Open source:** You can audit the code
+
+See [Security Policy](../SECURITY.md).
+
+### Can Microsoft detect this?
+
+The script uses advanced anti-detection techniques:
+- Browser fingerprinting management
+- Human-like mouse movements and delays
+- Natural search patterns
+- Randomized timing
+
+However, **no detection evasion is foolproof**. Always use at your own risk.
+
+### Should I use a proxy?
+
+Not required for most users. Consider a proxy if:
+- Running many accounts from one IP
+- Want extra privacy layer
+- Your IP is rate-limited
+
+See [Proxy Guide](proxy.md).
+
+---
+
+## Features & Functionality
+
+### What tasks does the script complete?
+
+- โ
Desktop searches (30+)
+- โ
Mobile searches (20+)
+- โ
Daily set activities (quizzes, polls)
+- โ
More activities (promotional offers)
+- โ
Punch cards (multi-day challenges)
+- โ
Daily check-in
+- โ
Read to Earn articles
+
+Configure in `config.jsonc` under `workers`.
+
+### Can I disable specific activities?
+
+Yes! In `config.jsonc`:
+
+```jsonc
+{
+ "workers": {
+ "doDesktopSearch": true,
+ "doMobileSearch": false, // Disable mobile searches
+ "doDailySet": true,
+ "doMorePromotions": false // Disable promotions
+ }
+}
+```
+
+### How does the query generation work?
+
+The script uses multiple sources for search queries:
+- **Google Trends:** Current trending topics
+- **Reddit:** Popular posts from various subreddits
+- **Local fallback:** Pre-defined queries
+
+This creates diverse, natural-looking search patterns.
+
+See [Query Diversity Engine](config.md#query-diversity-engine).
+
+### What is "Buy Mode"?
+
+A manual purchase assistant that monitors your points in real-time while you redeem rewards. Not fully automatedโyou control the redemption.
+
+See [Buy Mode Guide](buy-mode.md).
+
+### Can I get notifications?
+
+Yes! The script supports:
+- **Discord Webhooks:** Summary messages in Discord
+- **NTFY:** Push notifications to mobile
+
+See [Notifications Guide](conclusionwebhook.md) and [NTFY Guide](ntfy.md).
+
+### What are "clusters"?
+
+Clusters allow running multiple accounts in parallel using separate processes. Higher values = more accounts simultaneously (but more resource usage).
+
+```jsonc
+{
+ "execution": {
+ "clusters": 3 // Run 3 accounts at once
+ }
+}
+```
+
+### How does the risk management system work?
+
+The script includes:
+- **Ban detection:** Monitors for suspension indicators
+- **Risk prediction:** ML-based ban probability scoring
+- **Adaptive delays:** Automatically adjusts timing based on risk
+- **Emergency stop:** Halts execution on critical risk
+
+See [Configuration Guide](config.md#risk-management--security).
+
+---
+
+## Still Have Questions?
+
+- ๐ฌ **[Join our Discord](https://discord.gg/h6Z69ZPPCz)** โ Ask the community
+- ๐ **[Documentation Hub](index.md)** โ Browse all guides
+- ๐ **[GitHub Issues](https://github.com/Light60-1/Microsoft-Rewards-Bot/issues)** โ Report problems
+- ๐ง **[Diagnostics Guide](diagnostics.md)** โ Debug issues
+
+---
+
+
+
+**Didn't find your answer?** [Ask on Discord](https://discord.gg/h6Z69ZPPCz) or [open an issue](https://github.com/Light60-1/Microsoft-Rewards-Bot/issues)!
+
+[โ Back to Documentation](index.md)
+
+
diff --git a/docs/README.md b/docs/README.md
new file mode 100644
index 0000000..0d88cb4
--- /dev/null
+++ b/docs/README.md
@@ -0,0 +1,103 @@
+# ๐ Documentation Directory
+
+This folder contains comprehensive documentation for the Microsoft Rewards Script project.
+
+## ๐ Documentation Structure
+
+### ๐ Getting Started
+- **[index.md](index.md)** โ Documentation hub and navigation
+- **[getting-started.md](getting-started.md)** โ Complete setup guide for beginners
+- **[FAQ.md](FAQ.md)** โ Frequently asked questions
+
+### โ๏ธ Configuration
+- **[config.md](config.md)** โ Complete configuration reference
+- **[accounts.md](accounts.md)** โ Account setup and 2FA/TOTP configuration
+- **[schedule.md](schedule.md)** โ Automated scheduling setup
+
+### ๐ง Features
+- **[humanization.md](humanization.md)** โ Anti-detection and natural behavior
+- **[jobstate.md](jobstate.md)** โ Job state management
+- **[buy-mode.md](buy-mode.md)** โ Manual purchase monitoring
+
+### ๐ Integrations
+- **[conclusionwebhook.md](conclusionwebhook.md)** โ Discord webhook setup
+- **[ntfy.md](ntfy.md)** โ NTFY push notification setup
+- **[proxy.md](proxy.md)** โ Proxy configuration
+
+### ๐ณ Deployment
+- **[docker.md](docker.md)** โ Docker deployment guide
+- **[update.md](update.md)** โ Update and upgrade guide
+
+### ๐ ๏ธ Maintenance
+- **[diagnostics.md](diagnostics.md)** โ Troubleshooting and debugging
+- **[security.md](security.md)** โ Security and privacy guidelines
+- **[git-conflict-resolution.md](git-conflict-resolution.md)** โ Resolving Git conflicts
+
+## ๐ฏ Quick Navigation by Use Case
+
+### "I just installed the script"
+1. [Getting Started](getting-started.md)
+2. [Accounts Setup](accounts.md)
+3. [Basic Configuration](config.md#quick-start)
+
+### "I want automated daily runs"
+1. [Scheduling](schedule.md)
+2. [Docker Deployment](docker.md) (optional)
+3. [Humanization](humanization.md)
+
+### "I need notifications"
+- [Discord Webhooks](conclusionwebhook.md)
+- [NTFY Push Alerts](ntfy.md)
+
+### "Something's not working"
+1. [FAQ](FAQ.md)
+2. [Diagnostics](diagnostics.md)
+3. [Security Guide](security.md) (if banned)
+
+## ๐ Documentation Standards
+
+All documentation in this project follows these principles:
+
+- **Clear and concise** โ No unnecessary jargon
+- **Example-driven** โ Code samples for every feature
+- **Up-to-date** โ Reflects current functionality
+- **Well-structured** โ Easy navigation with TOC
+- **Beginner-friendly** โ Assumes minimal technical knowledge
+
+## ๐ค Contributing to Documentation
+
+Documentation improvements are always welcome! See [CONTRIBUTING.md](../CONTRIBUTING.md) for guidelines.
+
+### How to Help
+
+- Fix typos or unclear instructions
+- Add missing examples
+- Improve explanations
+- Translate to other languages
+- Update outdated information
+
+## ๐ Documentation Format
+
+All docs use **Markdown** format with:
+- Clear hierarchical headings
+- Code blocks with syntax highlighting
+- Tables for configuration options
+- Emojis for visual navigation
+- Internal links for cross-references
+
+## ๐ External Resources
+
+- **[Main README](../README.md)** โ Project overview
+- **[Contributing Guide](../CONTRIBUTING.md)** โ How to contribute
+- **[Security Policy](../SECURITY.md)** โ Security and privacy
+- **[Changelog](../CHANGELOG.md)** โ Version history
+
+---
+
+
+
+**[Start Reading โ](index.md)**
+
+Need help? [Join our Discord](https://discord.gg/h6Z69ZPPCz)
+
+
diff --git a/docs/getting-started.md b/docs/getting-started.md
index e32e279..96cbcfc 100644
--- a/docs/getting-started.md
+++ b/docs/getting-started.md
@@ -1,7 +1,9 @@
-# ๐ Getting Started
-
+

+
+# ๐ Getting Started
+
**๐ฏ From zero to earning Microsoft Rewards points in minutes**
*Complete setup guide for beginners*
@@ -123,7 +125,7 @@ Once running, explore these guides:
**Login issues?** โ [Accounts & 2FA Setup](./accounts.md)
**Want Docker?** โ [Container Guide](./docker.md)
-**Found a bug?** [Report it here](https://github.com/TheNetsky/Microsoft-Rewards-Script/issues)
+**Found a bug?** [Report it here](https://github.com/Light60-1/Microsoft-Rewards-Bot/issues)
**Need support?** [Join our Discord](https://discord.gg/KRBFxxsU)
---
diff --git a/docs/git-conflict-resolution.md b/docs/git-conflict-resolution.md
index c243ab6..5261578 100644
--- a/docs/git-conflict-resolution.md
+++ b/docs/git-conflict-resolution.md
@@ -167,9 +167,9 @@ cp src/accounts.json ~/backup-accounts.json
# Nuclear option: fresh clone
cd ..
-rm -rf Microsoft-Rewards-Rewi
-git clone https://github.com/Light60-1/Microsoft-Rewards-Rewi.git
-cd Microsoft-Rewards-Rewi
+rm -rf Microsoft-Rewards-Bot
+git clone https://github.com/Light60-1/Microsoft-Rewards-Bot.git
+cd Microsoft-Rewards-Bot
# Restore your files
cp ~/backup-config.jsonc src/config.jsonc
diff --git a/docs/index.md b/docs/index.md
index ebcba98..0466aa2 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -1,7 +1,15 @@
+
+
+

+
# ๐ Documentation Hub
**Complete guide to automate Microsoft Rewards**
+[โ Back to README](../README.md)
+
+
+
---
## ๐ Start Here (In Order)
@@ -34,6 +42,9 @@
## ๐ All Documentation
+### Quick References
+- [โ FAQ (Frequently Asked Questions)](./FAQ.md) โ Quick answers to common questions
+
### Configuration & Setup
- [Complete Configuration Reference](./config.md) โ All options explained
- [Scheduler Setup](./schedule.md) โ Automated timing
@@ -50,9 +61,10 @@
**Technical issue?** โ [Diagnostics Guide](./diagnostics.md)
**Login problem?** โ [Accounts & 2FA](./accounts.md#troubleshooting)
-**Banned?** โ [Security Guide](./security.md)
+**Banned?** โ [Security Guide](./security.md)
+**Want to contribute?** โ [Contributing Guide](../CONTRIBUTING.md)
-**Join Discord** โ [Support Server](https://discord.gg/kn3695Kx32)
+**Join Discord** โ [Support Server](https://discord.gg/h6Z69ZPPCz)
---
diff --git a/package-lock.json b/package-lock.json
index e4f73e5..2f1dc05 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,13 +1,13 @@
{
- "name": "microsoft-rewards-rewi",
- "version": "2.50.5",
+ "name": "microsoft-rewards-script",
+ "version": "2.51.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
- "name": "microsoft-rewards-rewi",
- "version": "2.50.3",
- "license": "PROPRIETARY",
+ "name": "microsoft-rewards-script",
+ "version": "2.51.0",
+ "license": "SEE LICENSE IN LICENSE",
"dependencies": {
"axios": "^1.8.4",
"chalk": "^4.1.2",
@@ -38,7 +38,7 @@
},
"funding": {
"type": "github",
- "url": "https://github.com/sponsors/Light60-1"
+ "url": "https://github.com/sponsors/TheNetsky"
}
},
"node_modules/@cspotcode/source-map-support": {
diff --git a/package.json b/package.json
index 2fea4c3..d799c3a 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
- "name": "microsoft-rewards-rewi",
- "version": "2.50.5",
+ "name": "microsoft-rewards-script",
+ "version": "2.51.0",
"description": "Automatically do tasks for Microsoft Rewards but in TS!",
"private": true,
"main": "index.js",
@@ -9,12 +9,12 @@
},
"repository": {
"type": "git",
- "url": "https://github.com/Light60-1/Microsoft-Rewards-Rewi.git"
+ "url": "https://github.com/Light60-1/Microsoft-Rewards-Bot.git"
},
"bugs": {
- "url": "https://github.com/Light60-1/Microsoft-Rewards-Rewi/issues"
+ "url": "https://github.com/Light60-1/Microsoft-Rewards-Bot/issues"
},
- "homepage": "https://github.com/Light60-1/Microsoft-Rewards-Rewi#readme",
+ "homepage": "https://github.com/Light60-1/Microsoft-Rewards-Bot#readme",
"scripts": {
"clean": "rimraf dist",
"pre-build": "npm i && npm run clean && node -e \"process.exit(process.env.SKIP_PLAYWRIGHT_INSTALL?0:1)\" || npx playwright install chromium",
@@ -29,7 +29,7 @@
"prepare": "npm run build",
"setup": "node ./setup/update/setup.mjs",
"kill-chrome-win": "powershell -Command \"Get-Process | Where-Object { $_.MainModule.FileVersionInfo.FileDescription -eq 'Google Chrome for Testing' } | ForEach-Object { Stop-Process -Id $_.Id -Force }\"",
- "create-docker": "docker build -t microsoft-rewards-rewi-docker ."
+ "create-docker": "docker build -t microsoft-rewards-script-docker ."
},
"keywords": [
"Bing Rewards",
@@ -42,9 +42,9 @@
],
"author": "Light60-1",
"contributors": [
- "Microsoft-Rewards-Rewi (https://github.com/Light60-1/Microsoft-Rewards-Rewi)"
+ "Microsoft Rewards Bot Community (https://github.com/Light60-1/Microsoft-Rewards-Bot/graphs/contributors)"
],
- "license": "PROPRIETARY",
+ "license": "CC-BY-NC-SA-4.0",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/Light60-1"
diff --git a/src/config.jsonc b/src/config.jsonc
index 6e267aa..926d1fe 100644
--- a/src/config.jsonc
+++ b/src/config.jsonc
@@ -109,8 +109,8 @@
"retryMobileSearchAmount": 2,
// Delay between searches
"delay": {
- "min": "40sec",
- "max": "1min"
+ "min": "3min",
+ "max": "5min"
}
}
},
diff --git a/src/constants.ts b/src/constants.ts
index b3c1f2a..a461325 100644
--- a/src/constants.ts
+++ b/src/constants.ts
@@ -85,5 +85,5 @@ export const DISCORD = {
COLOR_ORANGE: 0xFFA500,
COLOR_BLUE: 0x3498DB,
COLOR_GREEN: 0x00D26A,
- AVATAR_URL: 'https://media.discordapp.net/attachments/1430643658788438144/1430644205344133290/rewi-v1.png?ex=68fbd83e&is=68fa86be&hm=ccddee9430de1fff90c1c3750907c13a60d1da29f13617a5dbbdc642f243f5b9&=&format=png&quality=lossless&width=968&height=968'
+ AVATAR_URL: 'https://media.discordapp.net/attachments/1421163952972369931/1434299121098952958/v2.50.5.png?ex=6907d2a6&is=69068126&hm=1a11362e2c2c40fc9f8b67762abf17e5bae72e4b70567d4331de195a880ba043&=&format=png&quality=lossless&width=1024&height=1076'
} as const
diff --git a/src/functions/Login.ts b/src/functions/Login.ts
index c04d77b..d530a23 100644
--- a/src/functions/Login.ts
+++ b/src/functions/Login.ts
@@ -1256,7 +1256,7 @@ export class Login {
}
private getDocsUrl(anchor?: string) {
- const base = process.env.DOCS_BASE?.trim() || 'https://github.com/LightZirconite/Microsoft-Rewards-Script-Private/blob/v2/docs/security.md'
+ const base = process.env.DOCS_BASE?.trim() || 'https://github.com/Light60-1/Microsoft-Rewards-Bot/blob/main/docs/security.md'
const map: Record
= {
'recovery-email-mismatch':'#recovery-email-mismatch',
'we-cant-sign-you-in':'#we-cant-sign-you-in-blocked'
diff --git a/src/functions/activities/SearchOnBing.ts b/src/functions/activities/SearchOnBing.ts
index 4d7d0ce..1661704 100644
--- a/src/functions/activities/SearchOnBing.ts
+++ b/src/functions/activities/SearchOnBing.ts
@@ -62,7 +62,7 @@ export class SearchOnBing extends Workers {
// Fetch from the repo directly so the user doesn't need to redownload the script for the new activities
const response = await this.bot.axios.request({
method: 'GET',
- url: 'https://raw.githubusercontent.com/LightZirconite/Microsoft-Rewards-Rewi/refs/heads/main/src/functions/queries.json'
+ url: 'https://raw.githubusercontent.com/Light60-1/Microsoft-Rewards-Bot/refs/heads/main/src/functions/queries.json'
})
queries = response.data
}
diff --git a/src/index.ts b/src/index.ts
index 4ee9e16..33a34b7 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -414,73 +414,47 @@ export class MicrosoftRewardsBot {
if (this.config.clusters > 1 && !cluster.isPrimary) return
const banner = `
- โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- โ โ
- โ โโโโ โโโโโโโโโโโโ โโโโโโโ โโโโโโโโโโโ โโโโโโ โ
- โ โโโโโ โโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโ โ
- โ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโ โโโ โโ โโโโโโ โ
- โ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโ โโโโโโโโโโโโโ โ
- โ โโโ โโโ โโโโโโโโโโโ โโโ โโโโโโโโโโโโโโโโโโโโโโโโ โ
- โ โโโ โโโโโโโโโโโ โโโ โโโโโโโโโโโ โโโโโโโโ โโโ โ
- โ โ
- โ TypeScript โข Playwright โข Intelligent Automation โ
- โ โ
- โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
+ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
+ โ โ
+ โ Microsoft Rewards Bot v${this.getVersion().padEnd(5)} โ
+ โ Automated Points Collection System โ
+ โ โ
+ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
`
const buyModeBanner = `
- โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- โ โ
- โ โโโโ โโโโโโโโโโโโ โโโโโโโ โโโ โโโโโโ โโโ โ
- โ โโโโโ โโโโโโโโโโโโโ โโโโโโโโโโโ โโโโโโโ โโโโ โ
- โ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโ โโโ โโโโโโโ โ
- โ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโ โโโ โโโโโ โ
- โ โโโ โโโ โโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โโโ โ
- โ โโโ โโโโโโโโโโโ โโโโโโโ โโโโโโโ โโโ โ
- โ โ
- โ Manual Purchase Mode โข Passive Monitoring โ
- โ โ
- โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
+ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
+ โ โ
+ โ Microsoft Rewards Bot - Manual Mode โ
+ โ Interactive Browsing Session โ
+ โ โ
+ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
`
- // Read package version and build banner info
- const pkgPath = path.join(__dirname, '../', 'package.json')
- let version = 'unknown'
- try {
- if (fs.existsSync(pkgPath)) {
- const raw = fs.readFileSync(pkgPath, 'utf-8')
- const pkg = JSON.parse(raw)
- version = pkg.version || version
- }
- } catch {
- // Ignore version read errors
- }
-
- // Display appropriate banner based on mode
+ const version = this.getVersion()
const displayBanner = this.buyMode.enabled ? buyModeBanner : banner
console.log(displayBanner)
- console.log('='.repeat(80))
+ console.log('โ'.repeat(60))
if (this.buyMode.enabled) {
- console.log(` Version: ${version} | Process: ${process.pid} | Buy Mode: Active`)
- console.log(` Target: ${this.buyMode.email || 'First account'} | Documentation: buy-mode.md`)
+ console.log(` Version ${version} | PID ${process.pid} | Manual Session`)
+ console.log(` Target: ${this.buyMode.email || 'First account'}`)
} else {
- console.log(` Version: ${version} | Process: ${process.pid} | Clusters: ${this.config.clusters}`)
- // Replace visibility/parallel with concise enabled feature status
+ console.log(` Version ${version} | PID ${process.pid} | Workers: ${this.config.clusters}`)
+
const upd = this.config.update || {}
const updTargets: string[] = []
if (upd.git !== false) updTargets.push('Git')
if (upd.docker) updTargets.push('Docker')
if (updTargets.length > 0) {
- console.log(` Update: ${updTargets.join(', ')}`)
+ console.log(` Auto-Update: ${updTargets.join(', ')}`)
}
const sched = this.config.schedule || {}
const schedEnabled = !!sched.enabled
if (!schedEnabled) {
- console.log(' Schedule: OFF')
+ console.log(' Scheduler: Disabled')
} else {
- // Determine active format + time string to display
const tz = sched.timeZone || 'UTC'
let formatName = ''
let timeShown = ''
@@ -490,22 +464,33 @@ export class MicrosoftRewardsBot {
const time24Val = typeof srec['time24'] === 'string' ? String(srec['time24']) : undefined
if (useAmPmVal === true) {
- formatName = 'AM/PM'
+ formatName = '12h'
timeShown = time12Val || sched.time || '9:00 AM'
} else if (useAmPmVal === false) {
formatName = '24h'
timeShown = time24Val || sched.time || '09:00'
} else {
- // Back-compat: infer from provided fields if possible
if (time24Val && time24Val.trim()) { formatName = '24h'; timeShown = time24Val }
- else if (time12Val && time12Val.trim()) { formatName = 'AM/PM'; timeShown = time12Val }
- else { formatName = 'legacy'; timeShown = sched.time || '09:00' }
+ else if (time12Val && time12Val.trim()) { formatName = '12h'; timeShown = time12Val }
+ else { formatName = 'auto'; timeShown = sched.time || '09:00' }
}
- console.log(` Schedule: ON โ ${formatName} โข ${timeShown} โข TZ=${tz}`)
+ console.log(` Scheduler: ${timeShown} (${formatName}, ${tz})`)
}
}
- console.log('='.repeat(80) + '\n')
- }
+ console.log('โ'.repeat(60) + '\n')
+ }
+
+ private getVersion(): string {
+ try {
+ const pkgPath = path.join(__dirname, '../', 'package.json')
+ if (fs.existsSync(pkgPath)) {
+ const raw = fs.readFileSync(pkgPath, 'utf-8')
+ const pkg = JSON.parse(raw)
+ return pkg.version || '2.51.0'
+ }
+ } catch { /* ignore */ }
+ return '2.51.0'
+ }
// Return summaries (used when clusters==1)
public getSummaries() {
@@ -895,10 +880,10 @@ export class MicrosoftRewardsBot {
}
// If any account is flagged compromised, do NOT exit; keep the process alive so the browser stays open
if (this.compromisedModeActive || this.globalStandby.active) {
- log('main','SECURITY','Compromised or banned detected. Global standby engaged: we will NOT proceed to other accounts until resolved. Keeping process alive. Press CTRL+C to exit when done. Security check by @Light','warn','yellow')
+ log('main','SECURITY','Security alert active. Process kept alive for manual review. Press CTRL+C to exit when done.','warn','yellow')
// Periodic heartbeat with cleanup on exit
const standbyInterval = setInterval(() => {
- log('main','SECURITY','Still in standby: session(s) held open for manual recovery / review...','warn','yellow')
+ log('main','SECURITY','Standby mode active: sessions kept open for review...','warn','yellow')
}, 5 * 60 * 1000)
// Cleanup on process exit
@@ -993,13 +978,13 @@ export class MicrosoftRewardsBot {
if (this.compromisedModeActive) {
// User wants the page to remain open for manual recovery. Do not proceed to tasks.
const reason = this.compromisedReason || 'security-issue'
- log(this.isMobile, 'SECURITY', `Account flagged as compromised (${reason}). Leaving the browser open and skipping all activities for ${account.email}. Security check by @Light`, 'warn', 'yellow')
+ log(this.isMobile, 'SECURITY', `Account security check failed (${reason}). Browser kept open for manual review: ${account.email}`, 'warn', 'yellow')
try {
const { ConclusionWebhook } = await import('./util/ConclusionWebhook')
await ConclusionWebhook(
this.config,
- '๐ Security Alert (Post-Login)',
- `**Account:** ${account.email}\n**Reason:** ${reason}\n**Action:** Leaving browser open; skipping tasks\n\n_Security check by @Light_`,
+ '๐ Security Check',
+ `**Account:** ${account.email}\n**Status:** ${reason}\n**Action:** Browser kept open, activities paused`,
undefined,
0xFFAA00
)
@@ -1096,13 +1081,13 @@ export class MicrosoftRewardsBot {
await this.login.login(this.homePage, account.email, account.password, account.totp)
if (this.compromisedModeActive) {
const reason = this.compromisedReason || 'security-issue'
- log(this.isMobile, 'SECURITY', `Account flagged as compromised (${reason}). Leaving mobile browser open and skipping mobile activities for ${account.email}. Security check by @Light`, 'warn', 'yellow')
+ log(this.isMobile, 'SECURITY', `Mobile security check failed (${reason}). Browser kept open for manual review: ${account.email}`, 'warn', 'yellow')
try {
const { ConclusionWebhook } = await import('./util/ConclusionWebhook')
await ConclusionWebhook(
this.config,
- '๐ Security Alert (Mobile)',
- `**Account:** ${account.email}\n**Reason:** ${reason}\n**Action:** Leaving mobile browser open; skipping tasks\n\n_Security check by @Light_`,
+ '๐ Security Check (Mobile)',
+ `**Account:** ${account.email}\n**Status:** ${reason}\n**Action:** Browser kept open, mobile activities paused`,
undefined,
0xFFAA00
)
@@ -1313,14 +1298,14 @@ export class MicrosoftRewardsBot {
const globalStatsValue = globalLines.join('\n')
const fields: { name: string; value: string; inline?: boolean }[] = [
- { name: '๐ Run Totals', value: globalStatsValue, inline: false }
+ { name: '๐ Summary', value: globalStatsValue, inline: false }
]
if (accountChunks.length === 0) {
- fields.push({ name: '๐งพ Account Overview', value: '_No account results recorded_', inline: false })
+ fields.push({ name: '๐ Accounts', value: '_No results recorded_', inline: false })
} else {
accountChunks.forEach((chunk, index) => {
- const name = accountChunks.length === 1 ? '๐งพ Account Overview' : `๐งพ Account Overview (part ${index + 1})`
+ const name = accountChunks.length === 1 ? '๐ Accounts' : `๐ Accounts (${index + 1}/${accountChunks.length})`
fields.push({ name, value: ['```', ...chunk, '```'].join('\n'), inline: false })
})
}
@@ -1329,8 +1314,8 @@ export class MicrosoftRewardsBot {
if (conclusionWebhookEnabled || ntfyEnabled || webhookEnabled) {
await ConclusionWebhook(
cfg,
- '๐ฏ MS Rewi - Daily Summary',
- `**v${version}** โข Run ${this.runId}`,
+ 'โ
Daily Run Complete',
+ `**v${version}** โข ${this.runId}`,
fields,
accountsWithErrors > 0 ? DISCORD.COLOR_ORANGE : DISCORD.COLOR_GREEN
)
@@ -1427,7 +1412,7 @@ export class MicrosoftRewardsBot {
const { ConclusionWebhook } = await import('./util/ConclusionWebhook')
await ConclusionWebhook(
this.config,
- '๐ Analytics Snapshot',
+ '๐ Performance Report',
['```markdown', markdown, '```'].join('\n'),
undefined,
DISCORD.COLOR_BLUE
@@ -1474,13 +1459,13 @@ export class MicrosoftRewardsBot {
const { ConclusionWebhook } = await import('./util/ConclusionWebhook')
await ConclusionWebhook(
this.config,
- '๐จ Global Security Standby Engaged',
- `@everyone\n\n**Account:** ${email}\n**Reason:** ${reason}\n**Action:** Pausing all further accounts. We will not proceed until this is resolved.\n\n_Security check by @Light_`,
+ '๐จ Critical Security Alert',
+ `@everyone\n\n**Account:** ${email}\n**Issue:** ${reason}\n**Status:** All accounts paused pending review`,
undefined,
DISCORD.COLOR_RED
)
} catch (e) {
- log('main','ALERT',`Failed to send standby alert: ${e instanceof Error ? e.message : e}`,'warn')
+ log('main','ALERT',`Failed to send alert: ${e instanceof Error ? e.message : e}`,'warn')
}
}
}
diff --git a/src/util/ConclusionWebhook.ts b/src/util/ConclusionWebhook.ts
index 0f6d106..7291de0 100644
--- a/src/util/ConclusionWebhook.ts
+++ b/src/util/ConclusionWebhook.ts
@@ -51,7 +51,7 @@ export async function ConclusionWebhook(
color: color || 0x0078D4,
timestamp: new Date().toISOString(),
thumbnail: {
- url: 'https://media.discordapp.net/attachments/1430643658788438144/1430644205344133290/rewi-v1.png'
+ url: 'https://media.discordapp.net/attachments/1421163952972369931/1434299121098952958/v2.50.5.png?ex=6907d2a6&is=69068126&hm=1a11362e2c2c40fc9f8b67762abf17e5bae72e4b70567d4331de195a880ba043&=&format=png&quality=lossless&width=1024&height=1076'
}
}
@@ -60,8 +60,8 @@ export async function ConclusionWebhook(
}
const payload: WebhookPayload = {
- username: 'MS Rewi ๐ฎ',
- avatar_url: 'https://media.discordapp.net/attachments/1430643658788438144/1430644205344133290/rewi-v1.png',
+ username: 'MS Rewi',
+ avatar_url: 'https://media.discordapp.net/attachments/1421163952972369931/1434299121098952958/v2.50.5.png?ex=6907d2a6&is=69068126&hm=1a11362e2c2c40fc9f8b67762abf17e5bae72e4b70567d4331de195a880ba043&=&format=png&quality=lossless&width=1024&height=1076',
embeds: [embed]
}