Skip to content

Server Commands and FAQ

unicbm edited this page Jul 3, 2026 · 5 revisions

Server Commands and FAQ

这一页是实战命令表,不替代仓库里的完整命令文档。需要精确参数时,以 docs/COMMANDS.mddocs/COMMANDS.zh-Hans.md 为准。

回放命令

从 source round 0 开始 sequence:

dtr_go seq "<manifest.json>" 0

从 source round 5 开始 sequence:

dtr_go seq "<manifest.json>" 5

只播放一个 source round:

dtr_go round "<manifest.json>" 5

直接 restart alias:

dtr_seq_restart "<manifest.json>" 0
dtr_round_restart "<manifest.json>" 5

from_source_round 是 demo source round,不是当前服务器回合号。

常用 preset

保守第一跑:

dtr_replay_identity steam; dtr_align default; dtr_cosmetics off; dtr_match off; dtr_partial 1; dtr_handoff death_contact_c4 slot; dtr_voice_auto on; dtr_go seq "<manifest.json>" 0

完整本地 fidelity 测试:

dtr_replay_identity avatar; dtr_align full; dtr_cosmetics full; dtr_match full; dtr_partial 1; dtr_handoff death_contact_c4 slot; dtr_voice_auto on; dtr_go seq "<manifest.json>" 0

单回合严格测试:

dtr_partial 0; dtr_go round "<manifest.json>" <source_round>

只观察路线,不做接触 handoff:

dtr_handoff off

如果左手/viewmodel 保真影响 handoff 体感:

dtr_align handoff_safe

Replay Fidelity

路线保真:

dtr_align status
dtr_align default
dtr_align full
dtr_align handoff_safe
dtr_align off
dtr_align weapons <on|off>
dtr_align projectiles <on|off>
dtr_align crosshair <on|off>
dtr_align left_hand <on|off>

dtr_align 管路线 replay 行为。scoreboard 属于 dtr_match,饰品属于 dtr_cosmetics,identity 属于 dtr_replay_identity

Identity

BotHider identity 对齐:

dtr_replay_identity off
dtr_replay_identity name
dtr_replay_identity steam
dtr_replay_identity avatar
dtr_replay_identity full

推荐:

  • steam:写 demo 名字和 SteamID64,不写头像覆写。
  • avatar:用 DTR 合成 SteamID64 key 应用 manifest PNG 头像覆写,避免真实 SteamID64 头像 key 冲突。
  • full:旧路径,真实 demo SteamID64 加真实 SteamID64 keyed 头像覆写;只在明确需要时使用。

没有 BotHider 或 slot 不是 BotHider-managed bot 时,identity 对齐会跳过,不会应用到真人。

Match Presentation

本地赛事展示:

dtr_match status
dtr_match off
dtr_match scoreboard
dtr_match scoreboard <on|off>
dtr_match full

dtr_match 不改变路线、武器、投掷物或饰品,只做本地展示同步。

Cosmetics

饰品证据:

dtr_cosmetics status
dtr_cosmetics off
dtr_cosmetics weapons
dtr_cosmetics basic
dtr_cosmetics full
dtr_cosmetics weapons <on|off>
dtr_cosmetics knives <on|off>
dtr_cosmetics gloves <on|off>
dtr_cosmetics names <on|off>
dtr_cosmetics stickers <on|off>
dtr_cosmetics charms <on|off>
dtr_cosmetics preserve_native <on|off>

dtr_cosmetics 只消费 converter 显式导出的 demo 证据。贴纸需要转换时传 --export-stickers,挂件需要 --export-charms

Voice

自动语音:

dtr_voice_auto status
dtr_voice_auto on
dtr_voice_auto off

手动 sidecar 测试:

dtr_voice_test <voice_clip.dtv> <sender_slot> [recipient_slot|all]
dtr_voice_mix <voice_clip.dtv> <xuid=slot[,xuid=slot...]|loaded> [recipient_slot|all]
dtr_voice_stop

正常 sequence 回放应该使用 dtr_voice_auto on

Handoff 和 Partial Replay

推荐 opening-route handoff:

dtr_handoff death_contact_c4 slot

死亡/接触时释放所有 slot:

dtr_handoff death_contact_c4 all

bot 数不足时允许部分 replay:

dtr_partial 1

要求 manifest 所有玩家都分配成功:

dtr_partial 0

状态和 Doctor

整体状态:

dtr_status

单 slot 状态:

dtr_status <slot>

manifest/runtime 检查:

dtr_doctor "<manifest.json>"
dtr_runtime
dtr_config_status

停止:

dtr_stop sequence
dtr_stop pool
dtr_stop replay
dtr_stop slot <slot>
dtr_stop all

FAQ

ABI mismatch

如果看到:

dtr: ABI mismatch; ...

说明 CounterStrikeSharp plugin 和 native BotController runtime 来自不同构建。 更新完整 server bundle,然后重启服务器或重新加载插件,避免旧 native DLL 仍留在进程里。

检查:

dtr_runtime
dtr_doctor "<manifest.json>"

voice send unavailable

如果看到:

[DTR ERR] voice send unavailable; ...

或:

voice_auto=unavailable ...

说明 native runtime 没暴露 voice send capability,或 ABI/capability 检测失败。 更新完整 server bundle,尤其是 BotController,然后检查:

dtr_runtime
dtr_voice_auto status

Map mismatch

如果看到:

[DTR ERR] map mismatch: server="..." manifest="..."

切到 manifest 对应地图,或使用正确 demo 输出目录里的 manifest。

我听不到语音

按顺序检查:

  1. dtr_voice_auto statuson
  2. replay 启动日志里有 voice_auto=started
  3. voice/roundXX.dtv 和 manifest 在同一个输出包里。
  4. 服务器里有 live human client。
  5. 你是观察者,或和 replay bot speaker 在同一队。
  6. dtr_runtime 显示 BotController 有 voice send capability。

Freeze time 语音重复

当前 runtime 在 freeze-preroll 中会 defer live window 语音。期望日志:

voice_auto=deferred_live file=roundXX.dtv clip_start=... live_start=...

如果同一句话在 live start 后又播一次,先确认 server bundle 已更新,并且旧 plugin/native DLL 没有仍在当前服务器进程里。

饰品风险

饰品默认关闭是有原因的。只有转换时带了显式 cosmetic export flags,并且目标是本地/私有验证环境时, 才应打开 dtr_cosmetics full。DemoTracer 不会把饰品应用给真人玩家,但真人观察或接管 bot 仍可能带来服务器运营和 GSLT 风险。

Bot 数不够

使用:

dtr_partial 1

DemoTracer 会加载能安全分配到的 bot slot。使用:

dtr_partial 0

则要求 manifest 中所有玩家都分配成功,否则本回合加载失败。

不要发布本地 artifact

不要提交或发布:

*.dem
*.dtr
*.dtv
tmp/
target/
bin/
obj/
logs
local server configs
local Steam/server paths

公开示例使用 <demo.dem><output-dir><manifest.json><pool_manifest.json> 这类占位符。

Clone this wiki locally