Skip to content

Reference

Commands, permission nodes and config keys, read straight from the source code. For how and why to use them, see the other pages.

mod_id pixelmonperf
Version 1.16.0
Minecraft / NeoForge 1.21.1 / 21.1.220
Install Loads on both sides. See the Overview page for whether clients need it.
Git https://github.com/Pixelrus/pixelmon-perf

Commands

No commands found in source.

Permission nodes

No permission nodes found in source.

Config

File Key Default Notes
config/pixelmonperf-server.toml wander_goal.execution_chance 120 Reciprocal chance per tick that WanderGoal evaluates a new A* path. Vanilla Pixelmon: 30 (fires ~every 1.5 s). Higher = less frequent pathfinding. Default 120 = fires ~every 6 s (75 % fewer A* calls t (range 10 to 1200)
config/pixelmonperf-server.toml wander_goal.horizontal_radius 10 Horizontal radius of WanderGoal's random-position scan (LandRandomPos.getPos). Vanilla Pixelmon: 10 blocks. Smaller values produce shorter wander paths and less per-pathfind cost, but Pokémon will onl (range 2 to 20)
config/pixelmonperf-server.toml wander_goal.vertical_radius 7 Vertical radius of WanderGoal's random-position scan. Vanilla Pixelmon: 7 blocks. DEFAULT 7 (vanilla). (range 1 to 15)
config/pixelmonperf-server.toml avoid_entities_goal.throttle_rate 20 Run AvoidEntitiesGoal.canUse() every N ticks instead of every tick. Vanilla: every tick (player AABB scan). v1.5 default 5; v1.6 bumped to 20 (1 sec) since AvoidEntities only matters for TIMID Pokémon (range 1 to 100)
config/pixelmonperf-server.toml other_goals.throttle_rate 2 Throttle canUse() evaluation for all other Pixelmon goals to every N ticks. 1 = disabled (vanilla rate). Default 2 = every other tick (50 % reduction). (range 1 to 20)
config/pixelmonperf-server.toml proximity_gate.enabled true Enable the PlayerProximityGate goal. When true, Pokémon beyond gate_range blocks from any player have all AI goals blocked, eliminating their per-tick overhead.
config/pixelmonperf-server.toml proximity_gate.range 48.0 Distance in blocks within which at least one player must exist for a Pokémon's AI to run. Pokémon beyond this range have AI fully suppressed (no pathfinding, no goal evaluation). Default 48. Must be ≤ (range 8.0 to 256.0)
config/pixelmonperf-server.toml proximity_gate.check_interval_ticks 20 How often (in ticks) each Pokémon re-checks whether a player is within gate_range. Check offsets are staggered by entity ID to spread load. Default 20 = once per second. (range 1 to 100)
config/pixelmonperf-server.toml pathfinder.max_visited_nodes_multiplier 0.5 Multiplier on the maximum nodes A* will explore per pathfind, applied via PathNavigation.setMaxVisitedNodesMultiplier(). DIRECTLY reduces the dominant WalkNodeEvaluator + getBlockState + getChunk hots (range 0.1 to 1.0)
config/pixelmonperf-server.toml goal_pruning.strip_wild_owner_goals true Remove FollowTrainerGoal and MoveTowardsBlockGoal from wild (no-owner) Pokémon. These goals' canUse() short-circuits on hasOwner() but still consumes GoalSelector iteration time. Wild Pokémon never ha
config/pixelmonperf-server.toml goal_pruning.strip_non_aggressive_target_goals true Remove TargetNearestGoal and ExecuteActionGoal from Pokémon whose species aggression is not AGGRESSIVE. These goals require AGGRESSIVE aggression to fire, so removing them from passive Pokémon is safe
config/pixelmonperf-server.toml goal_pruning.throttle_tempt_goal true Apply the other_goals.throttle_rate to TemptGoal in particular. TemptGoal.canUse() does an unthrottled getNearestPlayer(10) scan every tick.
config/pixelmonperf-server.toml hibernation.enabled false Skip the entire entity tick for Pokémon far from any player by cancelling EntityTickEvent.Pre. Strictly more aggressive than proximity_gate: kills the whole tick including movement physics, navigation
config/pixelmonperf-server.toml hibernation.range 48.0 Distance in blocks within which at least one player must exist for a Pokémon to tick. Pokémon beyond this range are fully hibernated each tick (no movement, no AI). Default 48. Bumping higher makes hi (range 8.0 to 256.0)
config/pixelmonperf-server.toml hibernation.check_interval_ticks 20 How often (in ticks) each Pokémon re-checks whether it should be hibernating. Between checks, the cached decision is reused. Default 20 (= once per second). (range 1 to 200)
config/pixelmonperf-server.toml hibernation.skip_owned true If true, never hibernate Pokémon that have an owner (party Pokémon sent out by players). Recommended true so sent-out Pokémon always behave normally even at distance.
config/pixelmonperf-server.toml hibernation.despawn_pulse_ticks 60 While hibernating, allow the entity to tick once every N ticks so Pixelmon's despawn cycle can advance (Pixelmon checks despawn every 60 ticks = 3s). Without this, hibernated entities never despawn an (range 1 to 1200)
config/pixelmonperf-server.toml tick_throttle.enabled false Skip every Nth entity tick for ALL Pokémon (whether hibernated or not). Aggressive: visibly slows Pokémon movement and reduces battle responsiveness. Default disabled. Enable for max performance on he
config/pixelmonperf-server.toml tick_throttle.rate 2 Tick throttle rate. 1 = vanilla (no throttle). 2 = every other tick (50 % cost). 3 = every 3rd tick (66 % cost). Higher values are more visible to players. (range 1 to 10)
config/pixelmonperf-server.toml normal_spawn_slice.enabled true Override the BLOCK-SCAN area for the normal Pokémon spawner. When the spawner runs, it scans a horizontal × vertical 'slice' of blocks around the tracked player to find valid spawn locations. Smaller
config/pixelmonperf-server.toml normal_spawn_slice.horizontal_slice_radius 3 Horizontal radius of the block-scan area for normal spawns (in blocks). Pixelmon's wild.yml default: 5. Each pass scans (2*radius+1)^2 columns. DEFAULT: 3 → 49 columns scanned per slice (~60 % fewer t (range 1 to 20)
config/pixelmonperf-server.toml normal_spawn_slice.vertical_slice_radius 15 Vertical radius of the block-scan area for normal spawns. Pixelmon's wild.yml default: 25 (scans Y±25). DEFAULT: 15 → 40 % less Y-axis scanning, still wide enough for cave/sky spawns. (range 1 to 100)