[DH]全网最详细的DH服务端教程 - [DH]Distant Horizons - MC百科 In 公会战报 @2026-02-11 19:14:13
开场白
Hello Everyone我是ConfectionaryQwQ
今天来精讲下如何在服务端上使用DH模组
这是你能在全网找到的最详细的教程(不包括外网)
声明:本文仅为个人经验+查阅Wiki资料+官方Discrod服务器整合而成
如有疑问,欢迎指出
本期的内容会分为四块:
一.前期准备 二.配置文件调试 三.游戏内指令 四.相关链接
一、前期准备
1.1 DH版本与服务端选择
如果如果你使用的是Fabric或NeoForge服务端,请直接使用DH模组。
DH模组可以在Modrinth下载,请下载然后放入你服务端的mods文件夹
如果你使用 Spigot、Paper、Folia 或这些分支的任何一种Bukkit服务端
请下载最新的DHS插件,可以前往Gitlab下载最新的Release版
虽然插件应该可以 Bukkit任何服务端兼容,但我依旧建议选择具有异步区块加载功能的服务器端。
我只推荐使用 Paper,这句话不是空穴来风,DHS官方Wiki亦有记载
注:DHS服务端插件仍在开发中,可能缺少模组版本的一些功能,如果你想要完整的功能,请使用Fabric端或者NeoForge端。
1.2 操作系统与JDK版本选择
操作系统需要结合具体情况选择
如果你是自用物理机,那么大概率是Windows
开启服务端时请保证后台空闲内存(RAM)充足
有能力可以使用Windows Server/LTSC或者选用Ubuntu,CentOS等其他Linux发行版以达到最低系统占用
如果你使用的是ARM架构的处理器,请使用Linux或者MacOS(如果是Apple Silicon)
注:无需担心,DH模组完全支持ARM64位架构
~~不建议使用FoldCraftLauncher或者Amethyst在Android设备上运行~~
至于JDK版本的选择,我个人推荐以下四种:
Oracle JDK:(点击访问)
OpenJDK:(点击访问)
Azul Zulu:(点击访问)
GraalVM:(点击访问)
其中Azul Zulu是我自己在用的
Java版本推荐21
Java 21发布于2023‑09‑19,是LTS,提供长达8年的支持,从兼容性和稳定性来讲是最优解
其次Minecraft 1.21.5+版本硬性要求使用Java 21
你也可以使用Java 25,他是下一代LTS版本,但是目前兼容性暂时无法保障。
1.3 硬件环境选择
关于服务器硬件方面,我个人推荐物理机,而且内存(RAM)和硬盘(ROM)越大越好
VPS和面板服也不是不行,但两者都有共同缺点是:硬件虚拟化有性能损耗和较少的内存(RAM)
我个人建议你的服务器至少需要有32G内存(RAM)和512G的硬盘(ROM)
内存使用DDR4 DDR5区别不大,且时序也不敏感,频率在能保持稳定的情况下越高越好,如果是ECC算是锦上添花
如果不会调参建议使用主板自带的XMP功能
硬盘的选择至少也得是支持PCIE 3.0的M.2固态硬盘,不建议使用SATA机械硬盘
CPU至少需要6核12线程,参考CineBench R23全核分数15000+ 单核1900+才能达到最基本的要求
注:不建议参考CPU-Z和GeekBench 6 ,这两者对于架构有不小的偏袒
关于处理器异构大小核,建议使用Process Lasso等软件强制服务端主线程锁定大核心
超线程建议开启,另外无论是风冷还是水冷,请给予服务器良好的散热环境
显卡不是刚需,如果CPU没有核显请自备亮机卡,或者摒弃图形化界面直接用第三方设备SSH
如果你想架设服务器面板也是可以的
注:DH没有针对AMD或intel做任何优化,没有迹象表明X3D对原版MC或者DH有加成,ARM平台的Apple Silicon系列也能运行但是往往受限于内存(RAM)大小
网络方面,DH默认设置需要至少 500 KB/s( 4Mbps )的上行带宽,这相当于在原版世界中每秒约 5-10 个 LOD。
为了保证玩家游玩的体验,我个人建议至少得分配 2MB/s( 16Mbps )的上行带宽专供DH传输SQlite使用
加上MC服务端本体的通信需求,结论是至少需要50Mbps的上行带宽,考虑到国内的特殊互联网环境,50Mbps上行已经是最合适的选择
最好是有公网IP,如果没有,内网穿透也可以但是不推荐,因为要耗费昂贵的流量费用不适合长期开服
更经济的做法是在江苏或者山东找服务商托管物理机或者购买现成的VPS套餐
二、配置文件调试
2.1 JVM参数讲解
在上文1.3章节有提过服务端性能的基准
高于基准的服务器我们暂且称之为高配服务器,达到或低于基准的服务器称之为中低配服务器
针对不同配置的服务器JVM参数如下(你可以直接复制粘贴):
注:JVM参数换行是不允许的,Linux和Windows下的换行符号不一样我这里就没有标记
我这边为了方便你复制手动换行,实际写启动参数时请不要换行或者手动添加换行符
对于高核心数 / 高内存的高配服务器:
-XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+AlwaysActAsServerClassMachine -XX:+AlwaysPreTouch -XX:+DisableExplicitGC -XX:+UseNUMA -XX:NmethodSweepActivity=1 -XX:ReservedCodeCacheSize=400M -XX:NonNMethodCodeHeapSize=12M -XX:ProfiledCodeHeapSize=194M -XX:NonProfiledCodeHeapSize=194M -XX:-DontCompileHugeMethods -XX:MaxNodeLimit=240000 -XX:NodeLimitFudgeFactor=8000 -XX:+UseVectorCmov -XX:+PerfDisableSharedMem -XX:+UseFastUnorderedTimeStamps -XX:+UseCriticalJavaThreadPriority -XX:ThreadPriorityPolicy=1 -XX:+UseZGC -XX:AllocatePrefetchStyle=1 -XX:-ZProactive对于核心数较低/内存较小的中低配服务器:
-XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+AlwaysActAsServerClassMachine -XX:+AlwaysPreTouch -XX:+DisableExplicitGC -XX:+UseNUMA -XX:NmethodSweepActivity=1 -XX:ReservedCodeCacheSize=400M -XX:NonNMethodCodeHeapSize=12M -XX:ProfiledCodeHeapSize=194M -XX:NonProfiledCodeHeapSize=194M -XX:-DontCompileHugeMethods -XX:MaxNodeLimit=240000 -XX:NodeLimitFudgeFactor=8000 -XX:+UseVectorCmov -XX:+PerfDisableSharedMem -XX:+UseFastUnorderedTimeStamps -XX:+UseCriticalJavaThreadPriority -XX:ThreadPriorityPolicy=1 -XX:+UseG1GC -XX:MaxGCPauseMillis=130 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=28 -XX:G1HeapRegionSize=16M -XX:G1ReservePercent=20 -XX:G1MixedGCCountTarget=3 -XX:InitiatingHeapOccupancyPercent=10 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=0 -XX:SurvivorRatio=32 -XX:MaxTenuringThreshold=1 -XX:G1SATBBufferEnqueueingThresholdPercent=30 -XX:G1ConcMarkStepDurationMillis=5 -XX:G1ConcRSHotCardLimit=16 -XX:G1ConcRefinementServiceIntervalMillis=150
注:如果你使用的是DH模组服务端,且使用的是中低配JVM参数
请去掉(在末尾)"-XX:G1ConcRSHotCardLimit=16 -XX:G1ConcRefinementServiceIntervalMillis=150"
JVM参数调优解析:
通用参数(两组共用):
-XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions
→ 解锁实验性和诊断性 JVM 参数。
-XX:+AlwaysActAsServerClassMachine
→ 强制启用服务器模式编译策略(即使硬件不符合传统服务器标准)。
-XX:+AlwaysPreTouch
→ 启动时预分配物理内存,避免运行时因缺页中断导致的延迟(牺牲启动速度换取运行时稳定)。
-XX:+DisableExplicitGC
→ 禁用 System.gc() 调用(防止代码触发 Full GC,但需确保堆外内存管理可靠)。
-XX:+UseNUMA
→ 启用 NUMA(非统一内存访问)优化,提升多路服务器的内存访问效率。
代码缓存优化:
-XX:ReservedCodeCacheSize=400M:代码缓存区总大小 400MB
-XX:NonNMethodCodeHeapSize=12M:非方法代码(如 JIT 内部代码)区 12MB
-XX:ProfiledCodeHeapSize=194M:已分析的代码(优化前)区 194MB
-XX:NonProfiledCodeHeapSize=194M:未分析的代码(直接优化)区 194MB
→ 避免 JIT 编译因代码缓存不足被关闭。
编译策略增强:
-XX:-DontCompileHugeMethods:允许编译大型方法(默认跳过)
-XX:MaxNodeLimit=240000 -XX:NodeLimitFudgeFactor=8000:放宽 JIT 编译复杂度限制
→ 提升复杂方法的编译能力。
底层性能优化:
-XX:+UseVectorCmov:使用向量化条件移动指令(减少分支预测失败)
-XX:+PerfDisableSharedMem:禁用共享内存统计(避免监控工具冲突)
-XX:+UseFastUnorderedTimeStamps:使用更快的非严格顺序时间戳(高并发场景)
-XX:+UseCriticalJavaThreadPriority:JVM 内部线程设为高优先级
-XX:ThreadPriorityPolicy=1:强制遵守线程优先级(避免系统忽略)。
高配服务器专属参数:
GC 配置:ZGC(低延迟)
-XX:+UseZGC
→ 启用ZGC垃圾收集器(适用于大内存,目标暂停时间 <10ms)。
-XX:AllocatePrefetchStyle=1
→ 对象预取至 CPU 缓存策略(1=预取间隔)。
-XX:-ZProactive
→ 禁用 ZGC 主动回收周期(减小CPU开支,但可能增加内存占用)。
中低配服务器专属参数:
GC 配置:G1GC(平衡吞吐与延迟)
-XX:+UseG1GC
→ 启用 G1 垃圾收集器(内存 <32GB 时更高效)。
-XX:MaxGCPauseMillis=130
→ 目标最大 GC 暂停时间 130ms(核心调节参数)。
G1GC细粒度调优:
参数+作用
-XX:G1NewSizePercent=28最小占比堆28%
-XX:G1HeapRegionSize=16M 减少大对象开销
-XX:G1ReservePercent=20预留堆20%
-XX:G1MixedGCCountTarget=3混合 GC 最大 3 次
-XX:InitiatingHeapOccupancyPercent=10提前触发并发标记(堆占用 10% 时)
-XX:G1MixedGCLiveThresholdPercent=90仅回收垃圾占比 >90% 的 Region
-XX:SurvivorRatio=32 -XX:MaxTenuringThreshold=1
并发优化
-XX:G1SATBBufferEnqueueingThresholdPercent=30:SATB 缓冲队列阈值
-XX:G1ConcMarkStepDurationMillis=5:并发标记单步时长5ms
-XX:G1ConcRSHotCardLimit=16:扫描计数上限
-XX:G1ConcRefinementServiceIntervalMillis=150:并发优化线程间隔
2.2服务端配置
Paper服务端能够进行多线程世界生成,但在未手动配置的情况下,可能不会充分利用服务器上的所有 CPU 核心。
请参阅Paper官方文档中的 chunk-system.io-threads 和 chunk-system.worker-threads 部分,以获取更多信息。
注:如果你安装了地图插件(如 Dynmap 或 Bluemap),应在DH世界生成完成之前禁用它们。
插件的默认配置优化了快速生成和小数据量,对于大多数服务器来说应该效果不错。
如果你服务器的世界数量超过了标准的“world”、“world_nether”和“world_the_end”,或者更改了世界的名称,那么你应该检查插件的配置文件,确保默认设置正确应用到了你的服务器世界。
2.2.1 适用于DHS插件的Bukkit服务端配置
如果你使用的是DHS插件
请把插件放入plugins文件夹然后重启服务端
DH服务端配置文件位于plugins\DHSupport\config.yml
截至我写这篇文章时最新的DHS插件版本为0.10.0 发布于2025年7月13日,开发者版本config标识版本为8(你可以在config.yml末尾看到)
配置文件今后仍旧可能发生变化,仅供参考
以下是各个配置文件的汉化:
# 插件数据库文件存储路径# 必填项# 默认: "{datadir}/data.sqlite"database_path: "{datadir}/data.sqlite"# 最大渲染距离(限制玩家客户端LOD距离上限)# 必填项# 默认: 1024render_distance: 1024# 是否启用LOD ?# 若仅在代理设置中使用插件获取level key信息,请禁用此项# 必填项# 默认: truedistant_generation_enabled: true# 每个客户端并行处理的LOD请求数量# 必填项# 默认: 20full_data_request_concurrency_limit: 20# 是否实时向玩家发送LOD更新?# 必填项# 默认: truereal_time_updates_enabled: true# 玩家需距离更新点多近才能接收更新?# 必填项# 默认: 128real_time_update_radius: 128# 是否允许客户端请求更新先前下载的LOD数据# 必填项# 默认: truelogin_data_sync_enabled: true# 登录同步期间,玩家可请求更新的最大距离# 必填项# 默认: 128login_data_sync_radius: 128# 客户端登录同步时单次可发送的请求数量上限# 必填项# 默认: 50login_data_sync_rc_limit: 50# 最大数据传输速度(还尚未开发完成,默认0)# 必填项# 默认: 0max_data_transfer_speed: 0# 是否生成新区块以构建LOD?# 禁用后,插件将无法在无现存区块的区域创建LOD# 可选# 默认: truegenerate_new_chunks: false# 启用区块生成时是否显示启动警告?# 可选# 默认: truegenerate_new_chunks_warning: false# 检测到世界变更时,LOD的更新频率(秒)# 必填项# 默认: 5lod_refresh_interval: 5# 选择使用的LOD构建器类型# 有效选项: FullBuilder, FastOverworldBuilder, None# 必填项# 默认: FullBuilderbuilder_type: FullBuilder# 生成LOD时Y轴采样间隔(单位:方块)# 设为1将采样每个方块,2则每隔一个方块采样,依此类推# 当前已失效(该值被忽略)# 必填项# 默认: 2builder_resolution: 2# 非碰撞方块(如草/花/雪)作为顶层时是否包含?# true 表示草/花/雪会染色其下方的方块# 可选# 默认: trueinclude_non-colliding_top_layer: false# 在代理服务器上运行DHS时,请设置为该服务器的唯一标识# 可选level_key_prefix:# 使用各世界的原生世界边界# 可选# 默认: trueuse_vanilla_world_border: false# 启用原生边界时,可超出边界渲染的区块距离# auto = 使用服务器视距(在边界处可自然生成区块的距离)# 可选# 默认: autovanilla_world_border_expansion: 12# 世界特定配置(可覆盖全局设置)worlds: # 主世界配置 world: # 使用针对主世界优化的构建器 builder_type: FastOverworldBuilder # 使用FastOverworldBuilder时,是否强制扫描至海平面高度? # 若世界存在浮岛/山脉/高空结构,请启用 # 可选 # 默认: false scan_to_sea_level: true # 使用FastOverworldBuilder时,是否将底部数据点延伸至最低建筑高度? # 可使LOD更完整,理论上提升渲染性能 # 可选 # 默认: true fast_underfill: false # 限制LOD生成区域(单位:方块) # 可选 border_center_x: 0 border_center_z: 0 border_radius: 5000 # 下界配置 world_nether: # 下界可视距离可降低(受限于地形设计) render_distance: 64 # 修复天花板透光问题的临时方案(主要针对下界天花板) # 仅FullBuilder有效,需builder_resolution=1,可能有副作用 perform_underglow_hack: true builder_resolution: 1# 用于生成LOD的工作线程数# 不影响Folia服务器# 必填项# 默认: 4(视具体服务器硬件配置而定,比如上文基准配置6核12线程建议分配至少8线程给DH加载)scheduler_threads: 4# 是否在插件更新时通知管理员?# 可选# 默认: truecheck_for_updates: false# 开发者版本标识(请勿修改):config_version: 8
2.2.2适用于DH模组的Fabric/NeoForge服务端配置
如果你使用的是DH模组服务端
请把模组放入mods文件夹然后重启服务端
DH服务端配置文件位于config\DistantHorizons.toml
截至我写这篇文章时最新的DH模组版本为2.3.4-b发布于2025年7月20日,开发者version标识版本为3(你可以在DistantHorizons.toml开头看到)
配置文件今后仍旧可能发生变化,仅供参考
注:模组版配置文件的选项更多,但服务端只涉及server和common选项,后半段client的选项无需理会。
以下是配置文件的汉化:
_version = 3[server]## 定义生成边界的中心点Z坐标(以方块为单位)。generationBoundsZ = 0## 定义玩家周围接收更新的距离(以区块为单位)。realTimeUpdateDistanceRadiusInChunks = 256## 发送给客户端的世界密钥前缀。# 如果模组运行在代理后面,每个后端应使用唯一的值。# 如果此值为空,关卡密钥将基于服务器的种子哈希值生成。levelKeyPrefix = ""## 定义允许在玩家周围同步的距离(以方块为单位)。# 在大多数情况下,应等于或大于 maxGenerationRequestDistance。maxSyncOnLoadRequestDistance = 4096## 如果为 true,客户端在加入或加载新LOD时将接收更新的LOD。synchronizeOnLoad = true## 定义允许在玩家周围生成的最大距离(以方块为单位)。maxGenerationRequestDistance = 4096## 定义生成边界的中心点X坐标(以方块为单位)。generationBoundsX = 0## 使服务器为每个世界发送关卡密钥。# 如果使用其他方式发送关卡密钥,请禁用此选项。sendLevelKeys = true## 客户端每秒应发送多少个LOD生成请求?# 同时也限制允许保留在服务器队列中的客户端请求数量。generationRequestRateLimit = 20## 客户端每秒应发送多少个LOD同步请求?# 同时也限制允许保留在服务器队列中的玩家请求数量。syncOnLoadRateLimit = 50## 定义围绕中心点允许生成的半径(以方块为单位)。# 如果此值设置为0,则禁用生成边界。generationBoundsRadius = 0## 向客户端上传LOD的最大速度(KB/s)。# 值为0表示禁用限制。maxDataTransferSpeed = 500## 如果为 true,客户端将接收客户端渲染距离之外的区块的实时LOD更新。enableRealTimeUpdates = true## 启用基于客户端性能的自适应传输速度。# 如果为 true,DH将自动调整传输速率以最小化连接延迟。# 如果为 false,传输速度将保持固定。enableAdaptiveTransferSpeed = false[server.experimental] # [服务器.实验性功能]## 在客户端启用时,允许根据需要加载较低细节层级以加速地形生成。# 服务器也必须启用此功能;否则,它将不起作用。# 为了在切换LOD细节层级时获得更好的性能,建议启用 [upsampleLowerDetailLodsToFillHoles]。enableNSizedGeneration = false[common] # [通用][common.lodBuilding] # [通用.LOD构建]## 创建LOD数据时应如何压缩方块数据?# 此设置仅影响新的或更新的LOD数据。# 更改此设置时已生成的任何数据,在修改或重新加载之前将不受影响。## MERGE_SAME_BLOCKS (合并相同方块)# 每个方块/生物群系变化都记录在数据库中。# 这是DH 2.0和2.0.1默认使用的,会存储大量数据。# 预期压缩比: 1.0## VISUALLY_EQUAL (视觉等同)# 仅记录可见的方块/生物群系变化到数据库。# 隐藏的方块(例如矿石)将被忽略。# 预期压缩比: 0.7worldCompression = "VISUALLY_EQUAL"## 当DH引入预先存在的区块时,它将尝试运行任何缺失的世界生成步骤;例如:# 如果一个区块的状态是SURFACE(地表),DH将跳过BIOMES(生物群系)和SURFACE(地表),但会运行FEATURES(特性)。## 然而,如果由于某些原因区块损坏,或者其他问题导致状态不正确,可能会导致世界生成卡死和/或崩溃。# 如果发生上述任何一种情况,请尝试将此设置为True。assumePreExistingChunksAreFinished = false## 如果为 true,为预先存在的区块生成LOD时将尝试提取保存在Minecraft区域文件中的光照数据。# 如果为 false,DH将在没有光照的情况下引入区块并重新计算光照。## 将此设置为 true 会加快已生成世界的LOD生成速度,但会被大多数影响照明模组破坏。## 如果LOD是黑色的,请将此设置为 false。pullLightingForPregeneratedChunks = false## 应使用什么算法来压缩新的LOD数据?# 此设置仅影响新的或更新的LOD数据。# 更改此设置时已生成的任何数据,在需要重新写入数据库之前将不受影响。## UNCOMPRESSED (未压缩)# 仅应用于测试,在所有方面都比 [LZ4] 差。# 预期压缩比: 1.0# 估计平均DTO读取速度: 3.25 毫秒# 估计平均DTO写入速度: 5.99 毫秒## LZ4# 如果您受CPU限制且有充足的硬盘空间,这是一个不错的选择。# 预期压缩比: 0.26# 估计平均DTO读取速度: 1.85 毫秒# 估计平均DTO写入速度: 9.46 毫秒## LZMA2# 速度慢但压缩率非常好。# 预期压缩比: 0.2# 估计平均DTO读取速度: 13.29 毫秒# 估计平均DTO写入速度: 70.95 毫秒dataCompression = "LZMA2"## 启用此选项将大幅增加区块处理时间,您可能需要增加CPU负载来处理它。## 通常,DH会尝试跳过为它已经见过且未更改的区块创建LOD。## 然而,有时该逻辑会错误地阻止LOD更新。# 禁用此检查可能会修复方块更改后LOD未更新的问题。disableUnchangedChunkCheck = false## True: 在区块能被DH使用之前重新计算区块高度图。# 这可以修复由World Painter或其他外部工具创建的世界中的问题,这些工具的高度图格式可能不正确。# False: 假设Minecraft处理的任何高度图都是正确的。## 速度最快: False# 兼容性最好: TruerecalculateChunkHeightmaps = false[common.lodBuilding.experimental] # [通用.LOD构建.实验性功能]## 激活时,DH将尝试用树中存在的任何数据填充缺失的LOD数据,防止在使用N尺寸生成器(或服务器)活动时移动出现空洞。## 这仅在N尺寸世界生成可用和/或在服务器上且 [generateOnlyInHighestDetail] 为 false 时使用。## 实验性:# 启用此选项将增加CPU和硬盘使用量,并可能引发渲染错误。upsampleLowerDetailLodsToFillHoles = false[common.multiThreading] # [通用.多线程]## Distant Horizons 应使用多少线程?numberOfThreads = 8## 默认为8线程,视具体服务器硬件配置而定,比如上文基准配置6核12线程建议分配至少8线程给DH加载## 如果给定选项的线程数已设置为1,可用此减少CPU使用率,或者更精细地调整CPU性能。threadRunTimeRatio = "1.0"[common.logging] # [通用.日志记录]## 如果启用,模组将记录有关渲染器OpenGL进程的信息。这对调试很有用。logRendererGLEvent = "LOG_ERROR_TO_CHAT_AND_INFO_TO_FILE" # 记录错误到聊天和信息到文件## 如果启用,模组将记录有关世界生成过程的性能信息。这对调试很有用。logWorldGenPerformance = "LOG_ERROR_TO_CHAT_AND_INFO_TO_FILE" # 记录错误到聊天和信息到文件## 如果启用,模组将记录有关网络操作的信息。这对调试很有用。logNetworkEvent = "LOG_ERROR_TO_CHAT_AND_INFO_TO_FILE" # 记录错误到聊天和信息到文件## 如果启用,模组将记录有关渲染器缓冲区进程的信息。这对调试很有用。logRendererBufferEvent = "LOG_ERROR_TO_CHAT_AND_INFO_TO_FILE" # 记录错误到聊天和信息到文件## 如果启用,模组将记录有关世界生成过程的信息。这对调试很有用。logWorldGenEvent = "LOG_ERROR_TO_CHAT_AND_INFO_TO_FILE" # 记录错误到聊天和信息到文件## 如果启用,模组将记录有关世界生成加载过程的信息。这对调试很有用。logWorldGenLoadEvent = "LOG_ERROR_TO_CHAT_AND_INFO_TO_FILE" # 记录错误到聊天和信息到文件[common.logging.warning] # [通用.日志记录.警告]## 如果启用,当DH有太多区块排队等待更新时,将在聊天中显示一条消息。showUpdateQueueOverloadedChatWarning = false## 如果启用,如果Java没有分配足够的内存来良好运行DH,将在启动时在聊天中显示一条消息。showLowMemoryWarningOnStartup = true## 如果启用,在开始回放时将在聊天中显示一条消息,提供有关DH如何运行的一些基本信息。showReplayWarningOnStartup = true## 如果启用,在安装了可能与DH存在问题的模组时,将在启动时在聊天中显示一条消息。showModCompatibilityWarningsOnStartup = true## 如果启用,如果原版MC的渲染距离高于推荐量,将在聊天中显示一条消息。showHighVanillaRenderDistanceWarning = true## 如果启用,如果DH检测到任何池化对象已被垃圾回收,将在聊天中显示一条消息。showPoolInsufficientMemoryWarning = true[common.worldGenerator] # [通用.世界生成器]## 在原版渲染距离之外应生成多详细的LOD?## PRE_EXISTING_ONLY (仅预存在)# 仅为已生成的区块创建LOD数据。### SURFACE (地表)# 生成世界地表,# 这不包括树木或结构。## FEATURES (特性)# 生成除结构之外的所有内容。# 警告:与某些世界生成器模组配对时,可能导致世界生成器错误或不稳定。## INTERNAL_SERVER (内部服务器)# 请求本地服务器生成/加载每个区块。# 这是兼容性最好的方式,并能正确生成结构,# 但可能导致服务器/模拟卡顿。# 注意:与其他模式不同,此选项会将生成的区块保存到Minecraft的区域文件中。distantGeneratorMode = "FEATURES"## 应如何显示远景生成器进度?## OVERLAY (覆盖层): 在某些Minecraft版本中可能与CHAT相同# CHAT (聊天)# LOG (日志)# DISABLED (禁用)showGenerationProgress = "OVERLAY"## 应多久显示一次远景生成器进度?(以秒为单位)generationProgressDisplayIntervalInSeconds = 2## 应显示多少秒有关如何禁用远景生成器进度的说明?# 将此设置为0会隐藏说明信息,以便世界生成进度在开始时立即显示。generationProgressDisableMessageDisplayTimeInSeconds = 20## Distant Horizons 是否应在原版渲染距离之外缓慢生成LOD?# 根据生成器模式,这将导入现有区块和/或生成缺失区块。enableDistantGeneration = true三、游戏内指令
3.1权限组
DHS插件仅有两个权限:
distant_horizons.admin 提供了 /dhs 命令的访问权限,这通常是服主或者管理员。
distant_horizons.worlds.<世界名称> 允许请求 LOD。这一权限默认授予所有玩家。
如果你的服务器使用了有关权限组的插件,请注意调整
3.2指令
适用于DHS插件的指令:
/dhs pregen预生成是为了避免在生成过程中影响游戏体验,请不要在玩家正在游玩的服务器上运行此操作,以免在生成过程中遇到TPS暴跌。/dhs status 查看插件的状态。/dhs status <玩家名称> 查看指定玩家插件的状态。/dhs reload 重新加载配置文件。/dhs worlds 列出服务器上的所有世界。/dhs pregen start <世界名称>
适用于DH模组的指令:
这些只适用于服务端,如果你是局域网联机,请直接修改房主的客户端游戏设置。
你可以在游戏内输入/dh 查看具体列表。使用 /help dh 或游戏内Tab自动补全导航。
/dh config <具体选项> [值]其中的<具体选项>就是和toml配置文件里面一模一样的。我个人建议直接修改toml配置文件因为游戏逐个修改选项未免过于麻烦如果你不知道该填写什么,请使用Tab补全或者选择这边我给一个示例:/dh config common.threadPreset 显示"CPU负载"设置的信息。/dh config common.threadPreset BALANCED 将服务器的负载预设更改为“平衡”。我这里写一下最常用的:/dh pregen 这些命令控制内置的 LOD 预生成功能。预生成是为了避免在生成过程中影响游戏体验,请不要在玩家正在游玩的服务器上运行此操作,以免在生成过程中遇到TPS暴跌。/dh pregen status 显示预生成的当前状态,如果预生成正在运行。/dh pregen start 如果预生成未运行,则启动预生成。/dh pregen start <维度>
如果以上的内容依然不能解决你的疑问,请访问官方wiki:
1.DH模组官方Wiki(访问并参阅右边各选项):
https://gitlab.com/distant-horizons-team/distant-horizons/-/wikis/home
2.DH模组官方Wiki(服务器板块):
https://gitlab.com/distant-horizons-team/distant-horizons/-/wikis/1-user-guide/1-frequently-asked-questions/5-server-owners/Server-Owners
3.DHS插件官方Wik(访问并参阅右边各选项):
https://gitlab.com/distant-horizons-team/distant-horizons-server-plugin/-/wikis/home
4.DHS插件Gitlab下载界面(Release版):
https://gitlab.com/distant-horizons-team/distant-horizons-server-plugin/-/releases