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) |