Fab 的服务器调整

Fab 的服务器调整

一系列用于你的Minecraft服务器的服务端功能。

Fab's Server Tweaks

Fab's Server Tweaks 是一个模块化的游戏调整模组,专注于服务端的生活质量改进、原版逻辑覆盖、可选的附魔扩展以及数据驱动的配方包。

该模组设计为在服务端运行,客户端可选安装以获得匹配的视觉效果和一些仅限客户端的附加功能。

模组需求

依赖

  • Architectury API (必需) – 允许模组在 Fabric 或 NeoForge 上运行。
  • Cloth Config (必需) – 使模组配置成为可能。
  • Fabric 或 NeoForge (必需) – 模组在 Minecraft 上运行所需。
    • Fabric 额外需要:
    • Fabric API
  • Polymer (可选) [仅限 Fabric] – 允许模组添加一些服务端内容 (详见下文)。
  • Lootr (可选,需要 Polymer) [仅限 Fabric] - 兼容层,使 Lootr 完全在服务端运行 (详见下文)。
  • Universal Ores (可选,需要 Polymer) [仅限 Fabric] - 兼容层,使 Universal Ores 完全在服务端运行 (详见下文)。
  • Resource Nether Ores (可选,需要 Polymer) [仅限 Fabric] - 兼容层,使 Resource Nether Ores 完全在服务端运行 (详见下文)。
  • Mod Menu (可选) [仅限 Fabric] – 允许模组在客户端游戏中添加配置界面。

功能如何控制

该模组有目的地分为多个控制层:

  • 配置: 全局模组设置,例如踩踏规则、拴绳行为、种子共享和活塞方块实体移动。
  • 游戏规则: 每个世界的运行时开关,用于大多数游戏玩法和原版行为覆盖。
  • 内置数据包: 用于附魔、配方、炼药锅转换和耐久度冶炼的可选功能包。
  • 标签和数据文件: 用于定义目标、例外、物品组、堆叠覆盖、拴绳类别、活塞覆盖等。

这使得模组可以在非常接近原版的模式下运行,也可以启用更广泛的调整集。

客户端和服务端预期

该模组仅限服务端运行。原版客户端可以正常连接和游戏。

为了获得最佳视觉体验,建议在客户端上也安装它,因为某些自定义活塞和呈现逻辑可能使用原版客户端的视觉效果显示。

为了轻松找到配方,建议在服务端和客户端上都安装配方查看器,如 JEI 或 REI。

配置功能

这些设置存储在模组配置中,可以使用 /fabs config 查看或更改。

  • cropTrampleMode: 控制耕地踩踏。支持原版行为、无踩踏、或拥有轻灵之踵时的踩踏免疫。
  • eggTrampleMode: 对海龟蛋的相同概念。
  • difficulty: 控制自定义敌对生物药水效果系统的缩放方式。可以在所有难度下表现相同,或随世界难度缩放。
  • shareSeed: 在玩家加入时分享世界种子,并允许非管理员使用 /fabs seed。
  • overrideNormalLead: 覆盖原版拴绳交互,允许扩展拴绳目标。
  • canLeashAnimals: 允许或阻止通过模组拴绳逻辑拴住动物。
  • canLeashMonsters: 允许或阻止拴住敌对生物。
  • canLeashBosses: 允许或阻止拴住 Boss 生物。
  • canLeashVillagerTypes: 允许或阻止拴住村民及相关类型。
  • canLeashGolems: 允许或阻止拴住傀儡。
  • canLeashPets: 允许或阻止拴住可驯服的宠物。
  • canPistonsPushBlockEntities: 启用移动带有完整数据的方块实体的自定义活塞逻辑。
  • plantRainGrowthChance: 下雨时,植物在生长刻中额外生长一步的百分比几率。

游戏规则功能

大多数游戏玩法调整通过游戏规则控制。

生物行为和掉落物

  • mob_grief_enderman: 切换末影人拾取方块。
  • mob_grief_creeper: 切换苦力怕破坏方块,同时允许处理爆炸。
  • mob_grief_zombie: 切换僵尸破坏门。
  • mob_drop_equipable: 切换生物掉落装备、工具和武器。
  • mob_drop_full_durability: 将掉落的生物装备恢复至满耐久度。
  • mob_drops_require_player_kill: 除非生物被玩家攻击或玩家引起的爆炸杀死,否则阻止掉落物。
  • shulker_random_color: 随机化天然潜影贝的颜色。
  • shulkers_can_teleport: 切换潜影贝传送。
  • shulker_shell_drop_amount: 潜影贝的固定壳掉落数量。
  • villager_always_turn_into_zombies: 僵尸总是转化村民,而不是有时转化。
  • mobs_spawn_with_effects: 敌对生物生成时可以带有基于维度或难度的药水效果。
  • friendly_phantoms: 幻翼会盘旋但不会攻击玩家。

世界和方块行为

  • no_cobble_gen: 改变熔岩和水的交互,以防止标准的可再生圆石式生成。
  • better_hoes: 启用锄头的区域耕作和区域收获。
  • dripstone_fill_cauldron_water: 切换滴水石填满水炼药锅。
  • dripstone_fill_cauldron_lava: 切换滴水石填满熔岩炼药锅。
  • rain_fills_cauldron: 切换雨水填满炼药锅。
  • snow_fills_cauldron: 切换雪填满炼药锅。
  • better_rail_placement: 改进铁轨放置和形状保持。
  • snow_golems_survive_on_ice: 防止雪傀儡站在冰上时融化。
  • snow_golems_generate_snow: 切换雪的轨迹生成。
  • no_soliciting_sign: 防止流浪商人在写着 No Soliciting (拒绝推销) 的告示牌附近生成。
  • silk_touchable_amethyst_nodes: 允许收获紫水晶母岩。
  • silk_touchable_spawners: 允许刷怪笼以其方块实体数据掉落。
  • silk_touchable_trial_spawners: 允许试炼刷怪笼以其数据掉落。
  • silk_touchable_trial_vaults: 允许宝库以其数据掉落。
  • expanded_bone_meal: 添加新的骨粉交互。
  • sleeping_bags_enabled: 为特殊命名的床启用睡袋行为。
  • safe_cant_sleep: 如果世界当前无法跳过夜晚,则阻止睡觉。
  • pet_friendly_fire: 禁用时,防止玩家伤害自己的可驯服动物。
  • fortune_ancient_debris: 更改远古残骸掉落物,以支持直接的碎片式时运缩放。
  • torch_flowers_glow: 切换火把花发光。
  • cactus_grow_height: 设置仙人掌的最大生长高度。 (设置为 3 禁用模组的生长,1 完全禁用生长)
  • sugar_cane_grow_height: 设置甘蔗的最大生长高度。 (设置为 3 禁用模组的生长,1 完全禁用生长)
  • plants_grow_faster_in_rain: 下雨时,植物在每个生长刻都有机会额外生长一步 (请参阅配置了解几率配置)。

抛射物和物品回收

  • trident_with_loyalty_returns_from_void: 带有忠诚的三叉戟可以返回,而不是丢失在虚空中。

主要游戏玩法调整

活塞

活塞系统是模组中最大的逻辑覆盖之一。

  • 方块实体可以被推动和拉动,同时保留其数据。
  • 物品栏、熔炉进度、自定义 NBT 和存储的组件会被转移到目标方块。
  • 大箱子会被特殊处理,以防止不正确分离。
  • 单个箱子可以单独移动,不会意外自动合并。
  • 大箱子仅在两个半边的箱子都移动时才移动。
  • 支持在同一刻和同一方向移动两个半边的两个平行活塞。
  • 活塞行为进一步通过标签控制:
    • fabsservertweaks:piston_push_blacklist
    • fabsservertweaks:piston_push_whitelist
    • fabsservertweaks:piston_move_override

piston_move_override 特别允许具有普通 DESTROY (破坏) 推动反应的方块被移动而不是被破坏。

拴绳和生物存储

  • 根据配置,拴绳可以拴住扩展类别的实体。
  • 带有 末影 附魔的拴绳可以将生物存储在拴绳物品中,并在之后再次放置。
  • 这应用实体数据存储,而不仅仅是将生物转换为物品占位符。

蜘蛛攀爬

Minecraft 中的蜘蛛通常可以攀爬任何东西。此模组添加了一个标签来黑名单某些方块。

  • fabsservertweaks:spider_not_climbable 可用于黑名单蜘蛛能够攀爬的方块。
  • 默认情况下,该标签会阻止蜘蛛攀爬:
    • 所有 冰块 方块,这是通过 #minecraft:ice 标签应用的,因此如果模组作者使用了该标签,则包括模组中的冰块。
    • 所有 带釉陶瓦 方块

床和睡袋

  • 命名为 Sleeping Bag (睡袋) 的床作为睡袋使用,而不是设置重生点的床。
  • 在其中睡觉不会改变重生位置。
  • 使用时,床会被破坏并作为命名物品掉落。

种子共享和调试

  • 可以选择将服务端种子共享给加入的玩家。
  • 当种子已知时,客户端上存在史莱姆区块调试条目。

物品和实用工具调整

  • 磁石指南针可以通过消耗一个末影珍珠将玩家传送到磁石处。
  • 在附魔台上使用玻璃瓶会存储一个等级的经验值,作为一个可重复使用的 XP 瓶。
  • 右键点击该 XP 瓶会返还存储的经验值。
  • 雪球对水敏感的物生物造成适当伤害。
  • 水下速掘的水下挖掘得到改进。
  • 被标签标记的物品可以免疫仙人掌。
  • 被标签标记的物品也可以将堆叠大小覆盖为 16 或 64。
  • 创造模式玩家可以通过非武器攻击立即杀死生物。
  • 昵称可以覆盖显示在聊天中的发送者名称。

附魔

该模组包含内置的附魔包。有些完全通过数据来处理,而另一些则具有 Java 端的行为。

自定义附魔包

内置包: CUSTOM_ENCHANTMENTS

此包默认启用,需要重启。

  • Tree Chopper (砍树): 使用白名单和附着标签,破坏整棵树、巨型蘑菇或受支持的真菌类结构。
  • Capturing I-III (捕获 I-III): 近战武器有几率让生物掉落其刷怪蛋。
  • Ender I (末影 I): 应用于拴绳。让拴绳能够捕获并重新部署一个生物。
  • Hammer I-III (锤子 I-III): 应用于镐子。启用区域挖掘。
  • Longsword I-III (长剑 I-III): 增加实体交互范围。
  • Long Legs I (长腿 I): 增加步进高度。
  • Reach I-III (触及 I-III): 增加方块触及距离。作用于胸甲和鞘翅。
  • Springy I-III (弹性 I-III): 增加跳跃强度。
  • Swiftness I-III (迅捷 I-III): 增加移动速度。

矿石矿工包

内置包: ORE_MINER

此包默认禁用,需要重启。

  • Ore Miner I (矿石矿工 I): 连锁挖掘连接的被标签标记的矿石和簇。

原版附魔覆盖包

内置包: VANILLA_ENCHANTMENTS_OVERRIDES

此包默认禁用,需要重启。

它覆盖了几个原版附魔:

  • 效率 最高等级 X
  • 时运 最高等级 V
  • 抢夺 最高等级 V
  • 锋利 最高等级 X

这些不仅仅是更高的上限。它们的数据定义也调整了缩放行为。

配方和数据包功能

该模组包含许多内置数据包,可以通过 /fabs feature <pack> 切换。

CUSTOM_RECIPES (自定义配方)

默认启用。不需要重启。

添加了一小批实用配方,包括:

  • 珊瑚块合成
  • 额外的染料转换
  • 红沙重新染色
  • 粘土和方解石配方
  • 一个更大的 mass calcite (大量方解石) 配方
  • 腐肉到皮革

CAULDRON_CONVERSIONS (炼药锅转换)

默认启用。不需要重启。

当物品位于装满层的炼药锅内部时,添加物品到物品的转换。

当前转换包括:

  • 所有 16 种颜色的混凝土粉末到混凝土
  • 泥土到泥巴
  • 营火到未点燃的营火 (也适用于灵魂营火)

DURABILITY_SMELTING (耐久度冶炼)

默认启用。不需要重启。

为已使用的工具和护甲添加数据驱动的冶炼行为。结果可以根据耐久度等级变化,也可以调整烧炼时间和经验值。

注意: 由于熔炉的工作方式,仅仅添加耐久度冶炼配方是不够的。该配方也必须作为原版冶炼配方添加。

当前数据包括以下条目:

  • 锁链护甲
  • 铁和金装备
  • 铜装备
  • 自定义马铠、鹦鹉螺护甲、矛和相关物品

MOUNT_ARMOR_RECIPES (骑乘护甲配方)

默认启用。不需要重启。

为以下物品添加合成配方:

  • 铜、铁、金和钻石马铠
  • 铜、铁、金和钻石鹦鹉螺护甲

RAW_BLOCK_SMELTING (粗矿块冶炼)

默认启用。不需要重启。

为粗矿块添加熔炉和高炉支持。

STONE_STAIRS_RECIPES (石制楼梯配方)

默认启用。不需要重启。

为石质和铜质材料添加了大量楼梯配方,包括普通和小号配方变体。

  • 普通 楼梯配方现在是数学上正确的。
  • 小号 楼梯配方是原版通常给出的数量。

WOOD_OVERRIDE_RECIPES (木制覆盖配方)

默认启用。不需要重启。

添加了替代的木制配方,特别是楼梯 (包括普通和小号配方变体) 和活板门 (产出增加)。

  • 普通 楼梯配方现在是数学上正确的。
  • 小号 楼梯配方是原版通常给出的数量。

COMBINE_SLABS_RECIPES (合并台阶配方)

默认启用。不需要重启。

添加了将台阶对重新合成为完整方块的配方。

POTTERY_SHERD_DUPLICATION (陶片复制)

默认启用。不需要重启。

为陶片添加了复制配方。

  • 复制需要原始陶片。
  • 配方使用原始陶片加两个粘土,返回两个陶片。

命令

/fabs

主要管理员和实用命令。

  • /fabs config <option>: 读取一个配置值。
  • /fabs config <option> <value>: 写入一个配置值。
  • /fabs seed: 显示世界种子并方便复制。
  • /fabs enchant <enchantment> [level]: 直接附魔手持物品。
  • /fabs enchant <enchantment> remove: 从手持物品中移除一个附魔。
  • /fabs feature <pack>: 切换一个内置数据包或资源包。

/preset <name>

应用一个预定义的规则集。

当前预设:

  • default (默认)
  • vanilla (原版)
  • fabs_choice (Fab 的选择)
  • no_renewable (无可再生)
  • creative_defaults (创造模式默认)

/nickname

  • /nickname <name>
  • /nickname <name> <color>
  • /nickname clear

存储持久的昵称,并使用配置的显示名称重新广播聊天消息。

/goto <dimension>

管理员命令,用于安全的跨维度传送。

数据驱动标签

模组很多功能由标签驱动。

示例包括:

  • fabsservertweaks:ore_miner_whitelist
  • fabsservertweaks:tree_chopper_whitelist
  • fabsservertweaks:tree_chopper_attachments
  • fabsservertweaks:scythe-able
  • fabsservertweaks:immune_to_cactus
  • fabsservertweaks:stack_16
  • fabsservertweaks:stack_64
  • fabsservertweaks:spider_not_climbable
  • fabsservertweaks:piston_push_blacklist
  • fabsservertweaks:piston_push_whitelist
  • fabsservertweaks:piston_move_override

实体标签也用于拴绳权限和生物效果黑名单。

插件

Just Enough Items (JEI)

该模组包含一个 JEI 插件,为模组的自定义配方添加支持。

Roughly Enough Items (REI)

该模组包含一个 REI 插件,为模组的自定义配方添加支持。

Mod Menu (仅限 Fabric)

Mod Menu 是一个客户端模组,它列出安装在客户端上的模组,并允许在游戏中打开配置界面。

Polymer (仅限 Fabric)

允许模组添加服务端内容,如自定义方块和物品。它还允许模组显示通常是客户端专用的纹理。

当前功能:

  • 区块加载器 (强制加载单个区块)。
  • 未点燃营火物品的纹理和物品模型。
  • Lootr 兼容性
    • 通过 Polymer 注册内容并将资源发送到客户端,使 Lootr 模组仅能工作在服务端。
    • 注意:需要在服务端安装 Lootr。
    • 注意 2:Lootr 的自定义装饰罐的显示目前不起作用。
  • Universal Ores 兼容性
    • 通过 Polymer 注册内容并将资源发送到客户端,使 Universal Ores 模组仅能工作在服务端。
    • 注意:需要在服务端安装 Universal Ores。
  • Resource Nether Ores 兼容性
    • 通过 Polymer 注册内容并将资源发送到客户端,使 Resource Nether Ores 模组仅能工作在服务端。
    • 注意:需要在服务端安装 Resource Nether Ores。

Universal Ores (仅限 Fabric)

通过 Polymer 注册内容并将资源发送到客户端,使 Universal Ores 能够在服务端运行。

Resource Nether Ores (仅限 Fabric)

通过 Polymer 注册内容并将资源发送到客户端,使 Resource Nether Ores 能够在服务端运行。

Lootr (仅限 Fabric)

通过 Polymer 注册内容并将资源发送到客户端,使 Lootr 能够在服务端运行。

可用功能:

  • Lootr 的原生功能:允许每个玩家获得单独的 loot,并防止容器被破坏,除非潜行。
  • 统计数据
  • 命令 *
  • 方块模型 **
  • 方块纹理 **
  • 物品模型 **
  • 物品纹理 **
  • 为每个已掠夺的容器上的玩家显示 "已开启" 纹理 ***。
  • *命令有效,但某些参数可能在原版客户端上显示为 "无效",忽略红色文本并照常执行命令。
  • **装饰罐目前不起作用。
  • ***通过在方块上方显示一个显示实体来实现,因为目前没有好的方法从服务端更改方块的纹理。

不可用功能:

  • 进度
  • 装饰罐的模型和纹理 (方块的功能仍然有效。每个玩家仍然可以分别掠夺它。只是不显示任何东西。)

预设理念

包含的预设使以下切换更容易:

  • 一个几乎原版的设置,这基本上禁用了模组的大部分功能。
  • 一个默认的调整繁重的设置,这是模组的默认设置。
  • 一个个人 Fab's choice (Fab 的选择) 设置,因为这是我喜欢的游戏方式。
  • 一个受限的可再生资源设置,适合那些希望使用有限资源池进行游戏的玩家。
    • 禁用圆石生成。
    • 防止炼药锅装满。
    • 禁用雪的轨迹生成。
  • 一个创造模式建造设置,适合简单的创造模式设置。
    • 禁用 advance_time (推进时间) 游戏规则。
    • 禁用 advance_weather (推进天气) 游戏规则。
    • 禁用 spawn_mobs (生成生物) 游戏规则。
    • 禁用 spawn_wandering_trader (生成流浪商人) 游戏规则。
    • 禁用 fire_damage (火焰伤害) 游戏规则。
    • 启用 keep_inventory (保留物品栏) 游戏规则。

这是模组的主要优势之一:它并非旨在强制单一的规则集。

限制和进行中的领域

某些功能比其他功能更成熟。

  • 活塞方块实体系统功能强大且可用,但在某些自定义活塞情况下,原版客户端仍可能显示不正确的视觉效果。
    • 通常不移动的方块会闪烁消失并重新出现在它们被移动的位置。
    • 当移动通常被破坏的方块时,仍然会显示方块破坏粒子。
    • 这是因为原版在视觉侧运行自己的活塞移动逻辑。服务端拥有移动的权威。
  • 火把花发光是通过在六个相邻的空间中放置不可见的 LIGHT (光) 方块来模拟的。 由于原版火把花无法直接赋予动态发光,此实现使用方块放置和邻近更新,而不是替换花本身。 这保持了该功能的轻量级并与正常游戏交互兼容,但它不是回溯性的: 切换游戏规则不会立即为已放置的火把花添加或移除 "发光"。 现有花朵必须更新,通常是通过破坏并重新放置,更改才能生效。
    • 原因是扫描整个世界寻找火把花会增加复杂性,并且在系统资源上代价高昂而收益甚微。
  • 方块轮廓渲染代码存在,但目前尚未实现。
    • 这将在未来实现。
  • 某些功能依赖于自定义物品数据或与其他内容包的兼容性,应在目标整合包中进行验证。
  • 如果某个内置数据包被标记为需要重启,即使命令可以立即切换它,也应将其视为权威。
    • 这意味着启用数据包会成功,并且命令会提示玩家重启服务端。
    • 这是原版在重载时不重建相关注册表的一个限制。

推荐的文档说明

如果您在您的整合包或服务端中使用此模组,这是一个很好的简短摘要:

此模组仅限服务端运行。原版客户端可以正常连接和游戏。为了获得最佳视觉体验,建议在客户端安装,因为某些活塞相关的视觉效果在原版客户端上可能不准确。

给整合包作者

鼓励在您的整合包中使用此模组。如果使用,请遵循以下要求:

  • 整合包必须在 CurseForge 或 Modrinth 上分发。
  • 我不允许从第三方来源分发此模组。