Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Nuu-maan/Filly-Discord-Token-Filler/llms.txt

Use this file to discover all available pages before exploring further.

This guide assumes you’ve already completed the installation steps.

Your first server join

Follow this guide to join a Discord server using a single token and invite code.
1

Prepare a test token

Add at least one Discord token to input/tokens.txt:
your.discord.token.here
Never share your Discord tokens. They provide full account access.
2

Add an invite code

Add a Discord invite code to input/invites.txt:
api
This will join the discord.gg/api server.
3

Configure for testing

For your first run, use these minimal settings in input/config.json:
{
    "threads": 1,
    "proxyless": true,
    "max_joins": 1,
    "delay": 0,
    
    "captcha": {
        "solve_captcha": false,
        "service": "razorcap",
        "apikey": "",
        "proxyless": false
    }
}
Why these settings?
  • threads: 1 - Single thread for easier debugging
  • proxyless: true - No proxies needed for testing
  • max_joins: 1 - Join only one server per token
  • delay: 0 - No delay between attempts
  • solve_captcha: false - Disable captcha solving for initial test
4

Run Filly

Execute the script:
python index.py
You’ll see the Filly banner and real-time logging:
[14:32:15] [✓] Successfully Joined Server ▸ token=MTIz.****** thread=1
5

Check the results

After execution completes, check the output files:
# View successfully joined tokens
cat output/joined.txt

# View any failures
cat output/failed.txt

# View invalid tokens
cat output/invalid.txt
You should see your token in output/joined.txt if successful.

Understanding the output

Filly provides real-time logging with color-coded symbols:
SymbolColorMeaning
[✓]GreenSuccessful join
[⨯]RedFailed attempt
[△]YellowCaptcha detected
[◈]CyanInformation message
[▷]MagentaEvent notification

Console title statistics

The Windows console title updates in real-time:
Filly | Total: 50 | Joined: 42 | Failed: 3 | Captcha: 5 (4 solved) | Invalid: 0 | Locked: 0

Final statistics

When execution completes, you’ll see a summary:
==================================================
Final Statistics:
Joined 50 Tokens in 2 Minutes and 34 Seconds

Summary:
- Total Processed: 50
- Successfully Joined: 42
- Captcha Encountered: 5 (4 solved)
- Failed: 3
- Invalid Tokens: 0
- Locked Tokens: 0
==================================================

Real-world example

Here’s a production configuration for joining 100 servers with 20 tokens:
{
    "threads": 10,
    "proxyless": false,
    "max_joins": 100,
    "delay": 2,
    
    "captcha": {
        "solve_captcha": true,
        "service": "razorcap",
        "apikey": "3e5fc347-dfd8-4b12-9ca3-e57f931c5fbc",
        "proxyless": false
    }
}

Expected behavior

1

Initialization

  • Loads 20 unique tokens from tokens.txt
  • Loads 5 invite codes from invites.txt
  • Creates 10 concurrent threads
  • Initializes proxy rotation with 3 proxies
2

Joining process

For each invite code:
  1. Assigns tokens to 10 threads
  2. Each thread attempts to join with its assigned token
  3. If captcha detected, calls RazorCap API for solution
  4. Waits 2 seconds before next attempt (delay)
  5. Tracks join count per token
3

Completion

  • Tokens reaching 100 joins saved to filled_tokens.txt
  • Invalid tokens removed from active pool
  • Final statistics displayed
  • Press Enter to exit

Common scenarios

When a captcha is detected, you’ll see:
[14:35:22] [△] Captcha Detected ▸ token=MTIz.******
[14:35:28] [✓] Captcha Solved Successfully
[14:35:29] [✓] Successfully Joined Server ▸ token=MTIz.****** thread=3
The solver automatically:
  1. Extracts captcha_rqdata and captcha_rqtoken from the response
  2. Sends to configured captcha service API
  3. Polls for solution (up to 120 seconds)
  4. Retries join request with x-captcha-key header
Each captcha solution consumes credits from your solver service. Monitor your usage.
If you hit Discord rate limits:
[14:40:15] [⨯] Rate Limited ▸ token=MTIz.****** thread=5
Solutions:
  • Increase delay to 3-5 seconds
  • Reduce threads to 5 or fewer
  • Use proxies ("proxyless": false)
  • Spread joins across more time
Invalid tokens are automatically removed:
[14:42:10] [⨯] Invalid Token ▸ token=MTIz.****** thread=2
Locked accounts are also removed:
[14:43:05] [⨯] Locked Token ▸ token=NDU2.****** thread=7
These tokens are:
  • Saved to output/invalid.txt or output/locked.txt
  • Removed from input/tokens.txt
  • Excluded from future join attempts
Locked tokens indicate account restrictions. Using them may lead to permanent bans.
The TokenManager class tracks joins per token:
# From index.py:64-66
def increment_joins(self, token: str) -> int:
    self.token_joins[token] = self.token_joins.get(token, 0) + 1
    return self.token_joins[token]
When a token reaches max_joins:
# From index.py:267-272
joins = token_manager.increment_joins(token)

if joins >= config.max_joins:
    with open("output/filled_tokens.txt", "a") as f:
        f.write(f"{token}\n")
    continue
The token is saved to filled_tokens.txt and skipped for remaining invites.

Advanced configuration

Multiple captcha solvers

Filly supports 5 different captcha services:
{
    "captcha": {
        "solve_captcha": true,
        "service": "razorcap",
        "apikey": "your-razorcap-key",
        "proxyless": false
    }
}

Proxy rotation

Proxies are randomly selected for each session:
# From index.py:84-88
if not self.config.proxyless:
    proxies = Path('input/proxies.txt').read_text().splitlines()
    self.proxy = f"http://{random.choice(proxies)}".replace(
        'sessionid', str(random.randint(1327390889, 1399999999))
    )
    self.session.proxies = {"http": self.proxy, "https": self.proxy}
Session IDs are randomized for rotating proxies that use this format.

Thread optimization

Optimal thread count depends on:
TokensInvitesRecommended Threads
1-10Any1-5
10-50Any5-10
50-100Any10-20
100+Any20-30
Too many threads can trigger rate limits and IP bans. Start conservative and scale up.

Next steps

Now that you’ve successfully joined your first server:
  1. Optimize configuration - Tune threads, delays, and proxy settings for your use case
  2. Monitor output files - Regularly check output/ for results and issues
  3. Manage tokens - Remove filled tokens and add fresh ones as needed
  4. Scale gradually - Start with small batches before large-scale operations

Need help?

Join the Discord community for support and updates