GlymeraFakePlayers

GlymeraFakePlayers

用虚假玩家填充你的服务器:随机玩家皮肤、NPC 游荡、聊天模拟、Tab 列表显示,以及内置对所有主流服务器列表协议的查询支持。逼真的 24 小时昼夜玩家数量曲线。

实用

GlymeraFakePlayers - 拟真假玩家模拟

用假玩家让服务器充满生气:真实玩家皮肤、NPC 闲逛、聊天消息、玩家列表,并内置对所有主要协议的支持。完全可配置,并具有逼真的昼夜玩家数量曲线。

别忘了看看我的其他激动人心的项目——去看看 GlymeraCraft 的个人主页 Discord: https://discord.gg/s5NRFWfxgy


什么是 GlymeraFakePlayers?

GlymeraFakePlayers 能让你的服务器看起来充满生气——即使没有人在线。它会生成带有随机玩家皮肤(使用 Hytale 的角色创建系统)的假玩家,在玩家列表中显示他们,发送逼真的聊天消息,并向所有主要的服务器列表协议报告膨胀的玩家数量。可选地,它还能生成物理 NPC,这些 NPC 会以玩家模型和自定义名字四处走动。

一个可配置的 24 小时每日曲线会自动调整在线假玩家的数量——夜晚低,晚上达到高峰——并带有平滑的过渡和随机波动,以营造自然的感觉。

所有命令都需要 OP 权限。


功能

假玩家身份

  • 从可配置池(默认 110 个名字)中随机选择名字
  • 每个假玩家拥有唯一的 UUID 用于持续识别
  • 名字会出现在玩家列表、聊天和服务器查询响应中

玩家皮肤(角色创建器)

  • NPC 使用 Hytale 完整的角色自定义系统(头发、服装、面部等)
  • 每个假玩家都会获得一个唯一的随机外观
  • 使用 CosmeticsModule.generateRandomSkin() 生成皮肤——与真实玩家使用相同系统

物理 NPC(可选)

  • 可生成具有玩家模型的 NPC,它们会以逼真的闲逛行为四处走动
  • 头顶显示自定义名称(铭牌系统)
  • 物理碰撞体(v7 新增):走进它们时会被轻轻推开,就像真实的玩家一样——可配置(soft / hard / off
  • 无敌——玩家无法杀死它们(无伤害、无击退、无受伤反应)
  • 可配置的生成地点(/fp setspawn)和生成半径
  • NPC 数量与玩家列表数量独立(例如:玩家列表 50 个,NPC 5 个)
  • 服务器关闭时,NPC 会自动消失(防止世界损坏)

聊天模拟

  • 从可配置池中随机发送聊天消息(默认 100 条消息)
  • 消息使用 Hytale 的原生聊天格式——与真实玩家的聊天无法区分
  • 可配置的时间间隔(默认:每条消息间隔 45–180 秒)
  • 只有活跃的假玩家会发送消息

玩家列表

  • 假玩家会出现在服务器的玩家列表中,并带有逼真的 ping 值
  • 每次更新时 ping 值会随机变化(25–110ms)
  • 随着每日曲线的调整,玩家会被添加/移出玩家列表

服务器查询协议(内置)

无需额外查询插件!GlymeraFakePlayers 响应所有 5 个主要协议:

协议 传输方式 被用于
HyQuery V1 UDP (Magic: HYQUERY\0) Hyvote, HytaleCharts
HyQuery V2 UDP (Magic: HYQUERY2) Hyvote (带挑战令牌)
OneQuery V2 UDP (Magic: ONEQUERY) HytaleOne, HytaleServerIndex
Minecraft Ping TCP (服务器列表 Ping) 兼容 Minecraft 的工具
Source Query (A2S) UDP (Valve 协议) Steam 服务器浏览器, GameTracker

所有协议报告相同的膨胀后玩家数量(真实玩家 + 假玩家)。

逼真的昼夜曲线

  • 24 小时间玩家数量曲线,每小时百分比可配置
  • 小时之间使用余弦插值,实现平滑无阶跃的过渡
  • 随机波动(默认 ±5%)带来自然变化
  • 每 60 秒自动调整一次(一次 1–2 个玩家)
  • 服务器启动时会根据当前时间立即应用正确的数量

默认曲线(欧洲游戏模式):

时间 % 时间 % 时间 %
00:00 15% 08:00 15% 16:00 65%
02:00 8% 10:00 25% 18:00 85%
04:00 5% 12:00 40% 20:00 100%
06:00 8% 14:00 50% 22:00 70%

命令

命令 描述
/fp list 显示所有假玩家及其状态
/fp reload 重载配置,重新生成身份和皮肤
/fp respawn 在你附近消失并重新生成所有 NPC
/fp chat 立即触发一条假聊天消息
/fp clear 移除所有假玩家(NPC + 玩家列表)
/fp setspawn 将 NPC 生成地点设置为你当前的位置
/fp clearspawn 清除固定生成点——NPC 将再次在玩家附近生成

配置

所有设置位于 mods/de.glymera_GlymeraFakePlayers/config.json(首次启动时自动生成):

设置项 默认值 描述
maxFakePlayers 10 最大假玩家数量(玩家列表、聊天、查询计数)
maxSpawnedNPCs 5 世界中最大物理 NPC 数量
spawnNPCs true 启用/禁用物理 NPC 生成
npcSpawnRadius 5 NPC 放置点周围的半径
npcSpawnLocation null 固定 NPC 生成点 [x,y,z] — null = 在玩家附近生成
npcCollision "soft" NPC 碰撞体:soft = 像真实玩家一样推开,hard = 实心,off = 可穿行
chatEnabled true 启用/禁用假聊天消息
chatIntervalMin 45 聊天消息之间的最小秒数
chatIntervalMax 180 聊天消息之间的最大秒数
queryEnabled true 启用/禁用内置查询协议响应
dynamicPlayerCount true 启用/禁用 24 小时每日曲线
fluctuation 0.05 随机噪声范围 (0.05 = ±5%)
hourlyCurve [0.15, 0.10, ...] 24 个值 (0.0–1.0),每小时一个
serverMotd "A Hytale Server" 在查询响应中显示的 MOTD
joinLeaveMessages true 显示假加入/离开消息
names [110 names] 名称池——必须至少有 maxFakePlayers 个条目
messages [100 messages] 聊天消息池

设置示例

最小化:仅膨胀玩家数量(无 NPC,无聊天)

{
  "maxFakePlayers": 50,
  "spawnNPCs": false,
  "chatEnabled": false
}

出生点区域热闹

{
  "maxFakePlayers": 80,
  "maxSpawnedNPCs": 15,
  "npcSpawnLocation": [100, 65, 200],
  "npcSpawnRadius": 10
}

高人口服务器感觉

{
  "maxFakePlayers": 200,
  "maxSpawnedNPCs": 25,
  "chatIntervalMin": 15,
  "chatIntervalMax": 60
}

重要说明

  • 名称池大小:必须至少包含与 maxFakePlayers 相同数量的名称。如果池较小,假玩家数量将被限制为可用名称的数量。
  • 防止 NPC 世界损坏:所有 NPC 会在服务器关闭时自动消失。这可以防止已保存区块中出现损坏的模型引用。
  • 地图可见性:假玩家不会作为位置标记出现在世界地图上。他们仅出现在玩家列表侧边栏中。
  • 安全编辑配置:带有语法错误的 config.json 永远不会被覆盖。插件会继续使用先前的值运行,将确切的错误记录到服务器控制台,并保持你的文件不变,以便你能修复它并使用 /fp reload 重载。
  • 从旧版本升级:首次启动时,数据会自动从 plugins/GlymeraFakePlayers/ 迁移到 mods/de.glymera_GlymeraFakePlayers/——你的配置会保持不变地被采纳。
  • 查询协议兼容性:内置的查询处理器替代了对 HyQuery、OneQuery 或 PingProtocol 插件的需求。如果你同时运行这些插件之一和此插件,两者都会响应查询。

版本

v7.0.0 — 包含资源包 (IncludesAssetPack: true) 用于 NPC 角色定义。