A production-ready Flask service for solving Roblox FunCaptcha challenges with integrated decryption utilities. Deployed on Render.
Features:
- ✅ Blob extraction from Arkose Labs
- ✅ FunCaptcha solving (regular, suppressed, PoW)
- ✅ TGuess data decryption
- ✅ BDA data decryption
- ✅ RESTful API with async task processing
- ✅ Health checks and statistics
- ✅ Render-ready deployment
# Clone repository
git clone https://github.com/YOUR_USERNAME/funcaptcha-solver.git
cd funcaptcha-solver
# Install dependencies
pip install -r requirements.txt
# Run locally
python app.pyVisit: http://localhost:8080/health
- Push to GitHub
- Connect repository to Render
- Set Start Command:
gunicorn app:app --bind 0.0.0.0:$PORT --workers 4 --worker-class sync --timeout 60 - Deploy and get your URL
├── app.py # Main Flask application (v3.0 integrated)
├── requirements.txt # Python dependencies
├── arkose.js # Required: JavaScript encryption
├── webgl.json # Optional: WebGL configuration
├── Procfile # Render configuration
├── runtime.txt # Python version (3.11.6)
├── .gitignore # Git ignore patterns
├── README.md # This file
├── RENDER_DEPLOYMENT.md # Render setup guide
├── SETUP_CHECKLIST.md # Step-by-step checklist
├── API_REFERENCE.md # Complete API documentation
└── LICENSE # Your license
All decryption functionality from decrypt_tguess.py and decrypt_bda.py is now built into app.py:
# TGuess Decryption
POST /decrypt/tguess
{
"encrypted_data": "...",
"session_token": "..."
}
# BDA Decryption
POST /decrypt/bda
{
"bda_data": "...",
"user_agent": "..."
}Arkose.generate_key_pbkdf()- For tguess decryptionArkose.generate_other_key_pbkdf()- For tguess key generationDecryptionUtils.decrypt_tguess()- Standalone tguess decryptionDecryptionUtils.decrypt_bda()- Standalone BDA decryption
New counter in health/stats endpoints:
{
"decrypted": 42
}- RENDER_DEPLOYMENT.md - Complete Render setup guide with examples
- SETUP_CHECKLIST.md - Step-by-step checklist for deployment
- API_REFERENCE.md - Complete endpoint reference with examples
# Check service health
curl https://your-app.onrender.com/health
# Extract blob
curl -X POST https://your-app.onrender.com/extract/blob \
-H "Content-Type: application/json" \
-d '{"preset": "roblox_login"}'
# Create solve task
curl -X POST https://your-app.onrender.com/unified/solve \
-H "Content-Type: application/json" \
-d '{"preset": "roblox_login"}'
# View statistics
curl https://your-app.onrender.com/statsGET /health- Service statusGET /stats- Detailed statistics
POST /extract/blob- Extract blob from Arkose
POST /solve/create- Create solve taskGET /solve/status/{task_id}- Check task statusPOST /unified/solve- Extract + Solve in one request
POST /decrypt/tguess- Decrypt tguess dataPOST /decrypt/bda- Decrypt BDA data
POST /funcaptcha/createTaskPOST /funcaptcha/getTask
const axios = require('axios');
async function solveCaptcha() {
const res = await axios.post('https://your-app.onrender.com/unified/solve', {
preset: 'roblox_login'
});
const taskId = res.data.task_id;
// Poll for result
let result;
while (true) {
const status = await axios.get(
`https://your-app.onrender.com/solve/status/${taskId}`
);
if (status.data.status === 'completed') {
result = status.data;
break;
}
await new Promise(r => setTimeout(r, 500));
}
return result.token;
}import requests
import time
def solve_captcha():
resp = requests.post('https://your-app.onrender.com/unified/solve', json={
'preset': 'roblox_login'
})
task_id = resp.json()['task_id']
while True:
status = requests.get(
f'https://your-app.onrender.com/solve/status/{task_id}'
)
if status.json()['status'] == 'completed':
return status.json()['token']
time.sleep(0.5)const res = await axios.post('https://your-app.onrender.com/decrypt/tguess', {
encrypted_data: '{"ct":"...","iv":"...","s":"..."}',
session_token: 'session_token_here'
});
console.log('Decrypted:', res.data.data);-
Create GitHub Repository
git init git add . git commit -m "Unified FunCaptcha Solver v3.0" git push origin main
-
Connect to Render
- Go to https://render.com
- Click "New +" → "Web Service"
- Connect your GitHub repository
-
Configure
- Build Command:
pip install -r requirements.txt - Start Command:
gunicorn app:app --bind 0.0.0.0:$PORT --workers 4 --worker-class sync --timeout 60 - Environment:
DEBUG=False
- Build Command:
-
Deploy
- Click "Create Web Service"
- Wait for build (~3-5 minutes)
# Install dependencies
pip install -r requirements.txt
# Run Flask development server
python app.py
# Or use Gunicorn
gunicorn app:app --bind 0.0.0.0:8080 --workers 4- Python 3.11+
- Flask 2.3.3
- PyExecJS 1.5.1
- pycryptodom 18.0.0
- cryptography 41.0.4
- curl-cffi 0.5.9
- gunicorn 21.2.0
See requirements.txt for full list.
- Ensure
arkose.jsis in repository root - Check:
git ls-files | grep arkose.js - Add if missing:
git add arkose.js && git commit -m "Add arkose.js" && git push
- Check build logs: Render Dashboard → Logs
- Verify Python 3.11+ is selected
- Ensure all files are committed to git
- Check
/healthendpoint - Review Render logs for errors
- Increase timeout:
--timeout 120
- Reduce workers:
--workers 2 - Monitor with
/statsendpoint
curl https://your-app.onrender.com/healthResponse includes:
- Service status
- Version
- Arkose.js loaded status
- Statistics (solved, errors, etc.)
curl https://your-app.onrender.com/statsTracks:
- Total solved
- Failures
- Suppressed solved
- PoW solved
- Decrypted (new)
- Errors
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
[Your License Here]
- API Docs: API_REFERENCE.md
- Setup Guide: SETUP_CHECKLIST.md
- Deployment: RENDER_DEPLOYMENT.md
- Render Docs: https://render.com/docs
- Flask Docs: https://flask.palletsprojects.com/
- Check
/healthfor service status - Review logs in Render dashboard
- Check API documentation for endpoint details
- Verify all files are present in repository
- Blob extraction
- Captcha solving
- TGuess decryption
- BDA decryption
- Render deployment
- Rate limiting
- API key authentication
- Advanced metrics
- Database integration
- Webhook callbacks
Status: Production Ready ✅
Version: 3.0.0
Last Updated: December 2024
Created: With ❤️ for Roblox automation
| Link | Description |
|---|---|
| API Reference | Complete endpoint documentation |
| Setup Guide | Step-by-step deployment checklist |
| Render Guide | Render.com deployment guide |
| Health Check | Service status |
| Statistics | Service statistics |
- v3.0 ✨ NEW - Integrated decryption utilities (tguess, BDA)
- v2.0 - Added blob extraction and suppressed captcha support
- v1.0 - Initial PoW solver release