A performance mod.


  • SpawnLimiter – Monster and animal spawn limiting.
    You can make your own rules like – has to have min 2 and max 5 blocks of air (for cave mobs) or water (for squids) above. Cannot spawn more than 10 in a 3 chunk radius area, etc etc.
  • ItemGrouper – Groups nearby similar floating items or experience orbs to lower the server load and networking when something goes wrong (like a quarry overflowing or someone doing extreme mining and not picking up).
  • Packet limiting – for those who have to play on a 3g mobile internet and still want to build advanced stuff. Disable duplicate packet sending or just send every 5th redpower pipe content update packet. Customizable filters, saved per user. Can turn on/off ingame.
  • Packet sniffer – Check what packets are sent to a specific player (or yourself) and on what amout (speed) to find the spam you may not need (like rp's tube item updates or extrabees unknown spam). (depends on packet limiter)
  • Entity and tile entity listing – Find at which location theres a high concentration of items on the ground or find some pesky machines by their java hash code or even just see how many sheeps there are on a map.
  • Entity removal – Remove any mobs or animals by many-many different filters.

Commands and perm nodes:

All commands are listed in console or ingame using /ap h

/aperf help [page]
Lists all aPerf commands along with their arguments and description. This is the best source for command specific info in case this page gets outdated. pex node defines if the pex nodes should be shown in help or not.

/aperf module    aperf.cmd.module.list
Lists all worker modules with their status. Currently there are 3: ItemGrouper, SpawnLimiter, PacketLimiter. The active column indicates if the module is currently active/working. The enabled column indicates if the module will be enabled after a server restart, e.g. is it set to autoload.

/aperf module switch <name> <on> [enabled] aperf.cmd.module.switch
Turns modules on/off. If [enabled] is not set then the value of <on> will be also used for that. Enabled status controls if the module should be autoloaded on next server restart.

/aperf module reload <name> aperf.cmd.module.reload
Reloads a module cache and/or config. All the modules use the same config file, but only the one specified here will be loaded with the changed data.

/aperf – shortcut for /aperf status
/aperf status     aperf.cmd.status
Displays a list of dimensions in the server and some extra data for them like number of players, entities, forge-forced chunks and load/tick rate compared to the default 20tps. Up to 999% incase there's that much free cpu time in the world tick.

/aperf status forcedchunks aperf.cmd.status.forced
Lists all the tickets in forge chunkload list. Features specific chunk coordinates and the NBT meta data (like quarrys own position). If your having trouble with stuff that gets auto loaded on server startup, this is the command for you to look thru all the chunks that get automatically loaded.

/aperf entity – shortcut for /aperf entity list
/aperf entity list [group] [filter] [limit] aperf.cmd.entity.list
Lists entity counts in the server by grouping them, filtering and displaying a top portion of it.

example: /ap e l g

  • group – the entity group, contains: animal, monster, projectile, npc, item, player, tnt, unknown
  • name – the entity name. As the server doesn't usually have localised messages from mods, you will see alof of<name> or<name> etc
  • class – java class name of the entity, for vanilla entities this will be the obfuscated name. You can use the MCP mappings in conf/joined.srg to find out what is what
  • lclass – “Long class name”, java class name with the package name
  • where – chunk coordinates – use this to find chunks that have too much of something
  • pos – the excact coordinates of the entity. ALWAYS use this with a proper filtering and limiting, else you will be spammed to death.

example: /ap e l w d:0,g:Item

  • group/name/class/lclass – the entity group/name/class/lclass has to equal with yours
  • dimension – only lists the entities from the specified dimension id (-1, 0, 1 by default)
  • where – only lists entities in chunk x.y or between chunks x.y/x2.y2
  • hash – only lists the entity with the specified java hash, used to find problematic tile entities that spam the console. Use grouping pos with this.

example: /ap e l n d:0 10-20
example: /ap e l c g:item 30

Limits the per-world entity list by starting from the count specified as the first number and stop after the second number of entity groups have been listed. If only one number is specified then it will start the first and stops after the specified number of entity groups have been listed.

/aperf entity listhere [group] [filter] [limit]      aperf.cmd.entity.listhere
Same as listnearhere command with radius 0.

/aperf entity listnearhere <radius> [group] [filter] [limit] aperf.cmd.entity.listnearhere
Runs the list command by setting the filter to your current dimension and a chunk limit to <radius> chunks around your chunk (d:<dim>;w:<x-radius>.<y-radius>/<x+radius>.<y+radius>)
Command is only usable by a player and not from console.

/aperf entity remove <filter> [range]    aperf.cmd.entity.remove
Removes entities by similar filters as described in entity list.
The range option is only usable when the command is run by a player and not from console. It filters entities by how many blocks around (spherical) the player they have to be. Used mostly to remove overflowed items (using /ap e r g:item 40).


  • all – removes everything. Make sure you use the range option
  • dimension – only from the dimension with the specified id
  • class – only that match the java class name
  • lclass – only that match the java class name with the package name
  • name – only that match the specified entity name
  • group – only from the specified group, more info at entity list

/aperf entity group
Shows the Item grouping ruleset. This refers to the item entities on the ground and not the ones in a chest/bag/inventory.

/aperf entity group set <property> <value>
Use the purple numbers in brackets from entity group status command as the <property>. Values are either from the float int or boolean (yes, 1, on = true, others = false) type.

/aperf entity spawn aperf.cmd.entity.spawn.list
Shows the current spawn rules.

  • # – the index of the rule, used for remove and toggle actions
  • Active – Shows if the rule is currently in use or not
  • Range – In count limit types, defines the source for the count. Possible choices: server, map and chunk
  • Ext – For chunk range defines the radius of how many chunks are considered. 0 means only the one chunk where the entity wants to spawn
  • Dim – On which dimension this rule is ran. Dimension id or ‘all'
  • Type – What to use for filtering, possible values: All, Group, Class, LClass, Name. Refer to entity list command filters to see their meaning
  • Filter – The filter value to use. Not used for type ‘all'.
  • Limit – The limiter logic to use. Syntax: <type>[-<val>[:<val2>]]
    • Count-n – Uses Range and Ext to limit entities based on their current count in the specified region
    • ClearAbove-n[:n2] – Enables the spawning only for those who have atleast n number of air blocks above the feet block. n2 specifies the maximum number of free blocks – use this to set spawning only in caves, under trees etc
    • WaterAbove-n[:n2] – Same as ClearAbove, but uses water blocks for the search. Used for water animals to enable or disable spawning in small pools or deep oceans
    • BlockBelow-id[:subid] – Enables spawning only on a specific blockid – like if you want skellys to spawn only in desert and shores (sand)

/aperf entity spawn add <range> <ext> <dim> <type> <filter> <limit> [active] aperf.cmd.entity.spawn.add
Adds a new spawning rule, refer to entity spawn to see the possible options

/aperf entity spawn remove <index>    aperf.cmd.entity.spawn.remove
Removes a spawn limit, get the index from the first column in spawn tule list

/aperf entity spawn toggle <index>       aperf.cmd.entity.spawn.toggle
Toggles a rule between active and inactive

Tile entities
All these commands are the same as in /ap entity list with the exception of Type grouping which takes here the tile entity package name.

/aperf tile – shortcut for /aperf tile list
/aperf tile list [group] [filter] [limit]   aperf.cmd.tile.list
/aperf tile listhere [group] [filter] [limit]      aperf.cmd.tile.listhere
/aperf tile listnearhere <radius> [group] [filter] [limit] aperf.cmd.tile.listnearhere

/aperf packet    aperf.cmd.packet.commands
/aperf packet stat    aperf.cmd.packet.stat.self
/aperf packet stat <name>   aperf.cmd.packet.stat.other

/aperf packet limit       aperf.cmd.packet.limit.list
/aperf packet limit add <channel> <id> <x> aperf.cmd.packet.limit.add
/aperf packet limit dup       aperf.cmd.packet.limit.dup
/aperf packet limit on aperf.cmd.packet.limit.on
/aperf packet limit off
/aperf packet limit clear    aperf.cmd.packet.limit.clear
/aperf packet limit help

Dependencies: PermissionsEx


  • Download aPerf Mod and place it in your servers mods/ folder
  • Download PermissionsEx, place it in servers mods/ folder
  • Start your server and play



  • Updated to Minecraft 1.5.2/1.5.1 and forge version independence

For 1.5.2/1.5.1

For Minecraft 1.4.7