7.1 KiB
7.1 KiB
优化模块配置
位置:luminol_config/optimizations/*.toml。每个模块一段,逐条说明。
accelerated_collision — AR 碰撞加速(默认开)
native 广相位替换原版昂贵的实体碰撞空间查询。
| 选项 | 默认 | 说明 |
|---|---|---|
| enabled | true | 是否启用碰撞加速 |
| backend | FFM | 后端:AUTO/GPU/FFM/JAVA/VANILLA。FFM 最快,失败自动回退 |
| max_collision | 32 | 每个实体每 tick 最多处理的碰撞交互数(削峰) |
| grid_size | 1 | 空间哈希网格的格子边长(格) |
| density_window | 4 | 密度平滑窗口(tick) |
| density_threshold | 16 | 局部实体密度达到此值才走加速,稀疏走原版(零行为偏差) |
| max_threads | 1 | FFM 后端最大工作线程,0=所有 CPU |
游戏内:/nekobackend set <后端> 热切换。
entity_limiter — 每区块实体上限 + 溢出清扫(默认关)
限制每区块同类实体数量,超出生成时拦截,并周期清扫溢出。生成闸门用 per-chunk/per-tick 计数缓存,实体爆发不会 O(N^2) 卡顿(v1.0.6)。
| 选项 | 默认 | 说明 |
|---|---|---|
| enabled | false | 是否启用 |
| creatures | 200 | 每区块生物上限 |
| items | 100 | 每区块掉落物上限 |
| vehicles | 50 | 每区块载具(船/矿车)上限 |
| projectiles | 50 | 每区块投射物上限 |
| whitelist | ARMOR_STAND,ITEM_FRAME,GLOW_ITEM_FRAME | 豁免实体类型(不计数、不清除) |
| overflow_enabled | true | 是否启用周期溢出清扫 |
| overflow_interval_seconds | 30 | 清扫间隔(秒) |
| overflow_multiplier | 1.5 | 清扫阈值 = 上限 × 此值(超出才清) |
| overflow_creatures | true | 清扫是否包含生物 |
| overflow_items | true | 清扫是否包含掉落物 |
| overflow_vehicles | false | 清扫是否包含载具 |
| overflow_projectiles | true | 清扫是否包含投射物 |
| spare_named | true | 跳过自定义命名(改名牌)的实体 |
| overflow_max_per_sweep | 2000 | 单次清扫最多移除数(削峰),0=无限 |
entity_cull — 视锥/距离实体剔除(默认关)
玩家视野锥外、且超出近距豁免半径的实体不发包给该客户端,省带宽和客户端压力。转身即恢复,近距离始终可见。
| 选项 | 默认 | 说明 |
|---|---|---|
| enabled | false | 是否启用 |
| half_fov_degrees | 70 | 视野锥半角(度)。70≈140 度锥,比客户端 FOV 宽,留转身余量 |
| near_radius | 16 | 此半径内的实体永远发送,防贴脸突现 |
| cull_players | false | 是否也剔除其他玩家(PvP 默认不剔) |
| cull_vehicles | false | 是否剔除船/矿车(默认不剔) |
| vertical_culling | false | 是否也按俯仰角(垂直)剔除(默认否) |
entity_velocity_packet — ESU 生物 velocity 包降频(默认开)
走路的怪不再每 tick 发速度包。客户端靠位置包插值,velocity 只为平滑,微小变化无感。投射物/玩家不受影响。
| 选项 | 默认 | 说明 |
|---|---|---|
| enabled | true | 是否启用 |
| min_delta_sqr | 0.003 | 速度变化平方小于此值则跳过。0=只用间隔限制 |
| min_interval_ticks | 3 | 同一怪两个速度包的最小间隔 tick(非冲击时)。3≈最多 7 包/秒 |
| impulse_delta_sqr | 0.04 | 速度变化平方≥此值视为冲击(击退/爆炸/坠落),立即发 |
mob_ai_throttle — 远怪 AI 降频(默认关)
离玩家越远的怪,寻路/索敌跑得越稀。复用 EAR 非活跃时长信号,玩家靠近立即恢复。专治惊变100天/刷怪海。移动控制仍每 tick,不抽搐。
| 选项 | 默认 | 说明 |
|---|---|---|
| enabled | false | 是否启用 |
| inactive_ticks_tier1 | 20 | 无玩家附近超过此 tick 进入一级降频(约 1 秒) |
| tier1_interval | 2 | 一级:每 2 tick 跑一次完整 AI |
| inactive_ticks_tier2 | 100 | 进入二级降频阈值(约 5 秒) |
| tier2_interval | 4 | 二级:每 4 tick 一次 |
| inactive_ticks_tier3 | 400 | 进入三级(最深)降频阈值(约 20 秒) |
| tier3_interval | 8 | 三级:每 8 tick 一次。越大越省但反应越慢 |
mob_ai_reducer — 精简生物 AI 目标(默认开)
裁剪生物的 AI goal/target 选择器,保留必要行为。
| 选项 | 默认 | 说明 |
|---|---|---|
| enabled | true | 是否启用 |
| animals | true | 是否精简动物 AI |
| monsters | false | 是否精简怪物 AI(默认否,怪物要保持攻击性) |
| villagers | false | 是否精简村民 AI(默认否,村民交易/补货依赖 AI) |
| disable_collides | false | 是否禁用被精简实体的碰撞推挤 |
| silent | false | 是否让被精简实体静音 |
| keep_dedicated | true | 保留专用/关键 goal |
| ai_list_mode | false | 白名单模式(只保留 ai_goal_list 里的 goal) |
| ai_goal_list | RandomLookAroundGoal,FloatGoal | 白名单模式下保留的 goal 类名 |
| breed_enabled | true | 是否保留繁殖行为 |
| breed_range | 8.0 | 繁殖触发检测半径 |
| tempt_enabled | true | 是否保留被食物吸引(tempt)行为 |
| tempt_range | 10.0 | tempt 触发半径 |
| tempt_trigger_both_hands | true | 双手持食物都能触发 tempt |
afk_entity_tracking — 挂机实体跟踪降频(默认关)
全员挂机且实体较远时降低实体跟踪更新频率;有人活动立即恢复。
| 选项 | 默认 | 说明 |
|---|---|---|
| enabled | false | 是否启用 |
| afk_threshold_seconds | 60 | 玩家无操作超过此秒数判定为挂机 |
| always_track_radius | 7.0 | 此半径内的实体始终全速跟踪 |
| update_interval_ticks | 5 | 降频后实体更新间隔(tick) |
explosion_optimizer — 爆炸优化(默认关)
限制爆炸威力、防连锁爆炸、可选管理模式(大爆炸只模拟效果不真算)。
| 选项 | 默认 | 说明 |
|---|---|---|
| enabled | false | 是否启用 |
| yield_limit_enabled | true | 是否限制爆炸威力上限 |
| yield_limit_default | 4.0 | 默认威力上限 |
| yield_limit_per_type | END_CRYSTAL=6.0, WITHER_SKULL=1.0 | 按爆炸源类型单独设上限 |
| anti_chain_enabled | true | 是否防连锁爆炸 |
| anti_chain_radius | 8.0 | 连锁检测半径 |
| anti_chain_cooldown_ticks | 10 | 连锁冷却时长(tick) |
| management_enabled | false | 管理模式:超阈值的大爆炸只模拟效果不真实破坏 |
| management_threshold | 6.0 | 进入管理模式的威力阈值 |
| simulate_damage | true | 管理模式下是否仍对实体造成伤害 |
| simulate_knockback | true | 管理模式下是否仍施加击退 |
| simulate_sound | true | 管理模式下是否仍播放爆炸音效 |
skip_zero_delta_packets — ESU 零位移包裁剪(默认开)
跳过完全没变化的实体移动/旋转包(零信息冗余包)。
| 选项 | 默认 | 说明 |
|---|---|---|
| skip_zero_move | true | 跳过零位移的相对移动包 |
| skip_zero_rotation | true | 跳过旋转未变的旋转包 |
| skip_zero_move_and_rotation | true | 跳过位移和旋转都未变的复合包 |