值得修改的游戏规则——以及人们常搞错的默认值
游戏规则有四十多条,大多数指南只是罗列出来,却不说明哪些才真正重要。以下这些规则会改变世界的玩法,并附上它们的真实默认值,旧的 doFireTick 现在改名叫 fire_spread_radius_around_player。
/gamerule 的条目已经超过四十条。大多数是没人会碰的调试开关。有少数几条确实能改变世界的体验,还有几条的默认值会让人大吃一惊。
真正能改变世界的那些规则
| 游戏规则 | 默认值 | 为什么要改它 |
|---|---|---|
keep_inventory | false | 私人服务器上改动最多的一条规则 |
advance_time | true | 冻结在正午,方便建造 |
advance_weather | true | 别让下雨毁掉你的建造时光 |
mob_griefing | true | 苦力怕不再把你的基地炸出坑;但也会让村民停止耕种 |
fire_spread_radius_around_player | 128 | 火焰不再蔓延——在下界建造前先设置 0 |
random_tick_speed | 3 | 作物生长速度。0 会完全冻结生长 |
players_sleeping_percentage | 100 | 设为 1,让一名玩家就能跳过夜晚 |
respawn_radius | 10 | 收紧世界出生点的散布范围 |
这些是当前的名称。所有规则都改成了小写加下划线的形式——keepInventory 现在是 keep_inventory,doDaylightCycle 是 advance_time——而且 /gamerule 只接受新的 id,所以从旧指南里复制来的命令会执行失败。doFireTick 不只是改了大小写:它变成了一个半径,而 0 就是旧的 false。
人们想当然搞错的默认值
random_tick_speed是 3,不是 1。 把它调到 1000 来加速作物,同时也会加速树叶腐烂、冰融化以及所有其他随机刻进程,还会拖垮服务器的 TPS。mob_griefing影响的不只是苦力怕。 关掉它还会让村民停止捡拾和种植种子、末影人停止放置方块、绵羊停止吃草。刷铁机和村民农场会悄悄失效。spawn_phantoms默认是开启的——幻翼就是这么刷出来的。与其跟它们硬碰硬,不如直接关掉。immediate_respawn是存在的,默认值为false;把它设为true就能完全跳过死亡界面。command_block_output是true,这就是为什么红石装置会刷屏管理聊天栏。几乎每台服务器都会把它设为false。
整数与布尔值
游戏规则是有类型的,命令遇到错误的类型会报解析错误。random_tick_speed、respawn_radius、max_entity_cramming、players_sleeping_percentage、max_command_sequence_length、max_block_modifications 和 fire_spread_radius_around_player 都属于接受数字的规则;其余的都是 true/false。
/gamerule <rule> 不带值时会读取当前设置,而不是修改它——用来检查下载来的地图已经改动了什么很有用。
它们属于单个世界,而非整个服务器
游戏规则存放在世界文件夹里(data/minecraft/game_rules.dat),所以它们会随世界一起移动,不会应用到同一服务器上的其他世界。多世界设置需要为每个世界单独设置。
在玩家命令生成器里挑选任意一条规则,就能得到已经套用正确类型的命令,同一个表单还涵盖了传送、游戏模式、经验、时间和天气。