主配置 config.yml
plugins/GTSkillView/config.yml 控制存储、UI 路由、HUD、MP、技能点、释放方式、客户端按键、目标选择和性能参数。
修改后执行:
/gtsv reload涉及客户端 UI 插件加载、存储后端、外部技能插件加载顺序时,完整重启服务器。
debug 调试
debug: falsedebug 用于开发和排错。正式环境保持 false。
排查客户端按键、外部技能调用、资源同步时可以临时开启。测试结束后关闭,避免控制台输出过多。
storage 存储
storage:
backend: auto
autosave-seconds: 60
save-on-quit: true| 字段 | 作用 |
|---|---|
backend | 存储后端,auto 优先走 GTCore storage |
autosave-seconds | 自动保存间隔,单位秒 |
save-on-quit | 玩家退出时是否保存 |
auto 会优先使用 GTCore 存储能力,失败时使用本地 YAML。
后续 GTCore 补齐统一存储能力后,GTSkillView 会继续向统一入口收敛。
ui 界面入口
ui:
default: auto
prefer-client-ui: true
fallback-to-vanilla: true
open-hud-on-join: true
join-delay-ticks: 40| 字段 | 作用 |
|---|---|
default | 默认 UI,auto 按 providers.yml 顺序选择 |
prefer-client-ui | 优先使用客户端 UI |
fallback-to-vanilla | 客户端 UI 打不开时回退原版 GUI |
open-hud-on-join | 玩家进服后自动打开 HUD |
join-delay-ticks | 进服后延迟打开 HUD 的 tick 数 |
只使用原版 GUI:
ui:
default: vanilla
prefer-client-ui: false
fallback-to-vanilla: true
open-hud-on-join: false优先使用客户端 UI:
ui:
default: auto
prefer-client-ui: true
fallback-to-vanilla: trueui.hud HUD 布局
ui:
hud:
layout: vertical-left
left: 18
center-y-offset: 0
bottom: 104
slot-size: 46
slot-gap: 7
show-mana: true
show-slots: true| 字段 | 作用 |
|---|---|
layout | HUD 布局标识,默认左侧竖排 |
left | 距左侧距离 |
center-y-offset | 相对屏幕居中的 Y 偏移 |
bottom | 底部布局使用的底边距 |
slot-size | 技能槽尺寸 |
slot-gap | 技能槽间距 |
show-mana | 是否显示 MP |
show-slots | 是否显示技能槽 |
当前默认 HUD 是左侧居中竖排,MP 条作为背景,技能槽叠在 MP 条上。客户端 UI 模板会读取这些变量,但不同 UI 引擎对坐标、缩放和交互的支持不同。
mana MP 系统
mana:
enabled: true
max-formula: "100 + {level} * 2"
initial-ratio: 1.0
regen-amount: "3 + {level} * 0.05"
regen-interval-ticks: 20
regen-while-casting: true| 字段 | 作用 |
|---|---|
enabled | 是否启用 MP |
max-formula | 最大 MP 公式 |
initial-ratio | 首次初始化 MP 比例 |
regen-amount | 每次恢复量 |
regen-interval-ticks | 恢复间隔,20 tick = 1 秒 |
regen-while-casting | 释放中是否允许恢复 |
常用变量:
{level} 玩家等级或插件识别到的等级示例:固定 120 MP:
mana:
max-formula: "120"
regen-amount: "4"示例:等级越高 MP 越多:
mana:
max-formula: "100 + {level} * 5"
regen-amount: "2 + {level} * 0.1"mana.actionbar 动作栏
mana:
actionbar:
enabled: false
interval-ticks: 20
format: "&3MP &b{mana}&7/&b{max_mana} &8| &6技能点 &e{points}"| 字段 | 作用 |
|---|---|
enabled | 是否用动作栏显示 MP |
interval-ticks | 刷新间隔 |
format | 显示文本 |
可用变量:
{mana}
{max_mana}
{points}使用客户端 HUD 时一般关闭动作栏,避免 HUD 和聊天/动作栏重复显示。
points 技能点
points:
default: 0
level-up-formula: "1"
refund-on-reset: true
reset-cost:
money: 0
items: []
reset-actions:
- "[message]&a技能点已重置。"| 字段 | 作用 |
|---|---|
default | 新玩家默认技能点 |
level-up-formula | 升级或外部等级变化时使用的技能点公式 |
refund-on-reset | 重置时是否返还技能点 |
reset-cost.money | 重置金币消耗 |
reset-cost.items | 重置物品消耗 |
reset-actions | 重置成功后执行的动作 |
重置收费:
points:
reset-cost:
money: 5000
items:
- "vanilla:diamond:3"items 的物品写法后续会继续向 GTCore 统一物品入口收敛。当前配置保留本地兼容写法。
release 全局释放
release:
global-cooldown-ms: 180
cancel-vanilla-interact: false| 字段 | 作用 |
|---|---|
global-cooldown-ms | 全局释放间隔,毫秒 |
cancel-vanilla-interact | 原版交互释放后是否取消原事件 |
global-cooldown-ms 用于防止按键连点和客户端重复包。数值太低会增加外部技能调用频率,数值太高会让按键手感变钝。
常用范围:
120~250 msrelease.vanilla 原版鼠标组合
release:
vanilla:
enabled: true
combo-window-ms: 420
require-sneak-for-system: true
combos:
LEFT: 1
RIGHT: 2
LEFT_RIGHT: 3
RIGHT_LEFT: 4
SHIFT_RIGHT: 5| 字段 | 作用 |
|---|---|
enabled | 是否启用原版鼠标释放 |
combo-window-ms | 左右键组合判定窗口 |
require-sneak-for-system | 是否要求潜行才触发系统释放 |
combos | 鼠标组合到技能槽的映射 |
默认要求潜行触发,避免玩家正常左键攻击时误放技能。
如果服务器只使用原版 GUI,不使用客户端按键,可以保留:
require-sneak-for-system: true如果要完全关闭原版鼠标释放:
release:
vanilla:
enabled: falserelease.client 客户端释放
release:
client:
enabled: true
action-channel: "gtskillview:action"
allow-providers:
- paiui
- ax
- kongcore
- dragoncore
- client
- plugin| 字段 | 作用 |
|---|---|
enabled | 是否允许客户端 UI 按键释放 |
action-channel | 通用插件消息频道 |
allow-providers | 允许的客户端来源 |
客户端 UI 不直接写死技能槽。它们统一回传逻辑键,例如:
key SLOT_1服务端再通过 release.client.bindings 决定这个逻辑键对应什么动作。
release.client.bindings 按键绑定
release:
client:
bindings:
SLOT_1:
display: "技能槽 1"
slot: 1
keys:
global: ["SLOT_1"]
paiui: ["R"]
ax: ["R"]
kongcore: ["R"]
dragoncore: ["R"]| 字段 | 作用 |
|---|---|
SLOT_1 | 绑定 ID,客户端回传时使用 |
display | 显示名 |
slot | 对应技能槽 |
keys.global | 全局逻辑别名 |
keys.paiui | PaiUI 物理按键 |
keys.ax | ArcartX 物理按键 |
keys.kongcore | KongCore 物理按键 |
keys.dragoncore | DragonCore 物理按键 |
默认键位:
SLOT_1: R
SLOT_2: T
SLOT_3: Z
SLOT_4: X
SLOT_5: C改成 Q/E/R/F/V:
release:
client:
bindings:
SLOT_1:
slot: 1
keys:
global: ["SLOT_1"]
paiui: ["Q"]
ax: ["Q"]
kongcore: ["Q"]
dragoncore: ["Q"]
SLOT_2:
slot: 2
keys:
global: ["SLOT_2"]
paiui: ["E"]
ax: ["E"]
kongcore: ["E"]
dragoncore: ["E"]每个 UI 引擎可以单独写不同按键。不要在 UI 模板里写死槽位和物理键,后续维护统一改这里。
targeting 目标选择
targeting:
max-distance: 28
cone: 0.72
include-self: true| 字段 | 作用 |
|---|---|
max-distance | 搜索目标最大距离 |
cone | 前方扇形范围 |
include-self | 是否允许自身作为目标 |
这部分用于 GTSkillView 自身需要找目标的动作、条件和后续扩展。MythicMobs 技能本体的目标选择仍以 MythicMobs 技能配置为准。
performance 性能
performance:
hud-sync-interval-ticks: 10
gui-refresh-min-ms: 150
cast-log-sample-rate: 0.0
cache-player-snapshots: true| 字段 | 作用 |
|---|---|
hud-sync-interval-ticks | HUD 数据同步间隔 |
gui-refresh-min-ms | GUI 最小刷新间隔 |
cast-log-sample-rate | 释放日志采样率 |
cache-player-snapshots | 是否缓存玩家快照 |
大型服推荐:
performance:
hud-sync-interval-ticks: 10
gui-refresh-min-ms: 150
cast-log-sample-rate: 0.0
cache-player-snapshots: trueHUD 刷新不要改成每 tick。客户端 UI、动态物品、冷却遮罩都不需要每帧请求服务端数据。
修改后验证
改主配置后按这个顺序测:
/gtsv reload。/gtsv open。/gtsv hud。/gtsv key SLOT_1 client。- 客户端 UI 按一次 1 号槽按键。
- 观察控制台是否有重复触发或未知动作。
- 观察 HUD 是否按照
hud-sync-interval-ticks刷新。
