PokeRemoval¶
Clears wild Pokemon and dropped items from every loaded dimension on a timer, with chat warnings before each sweep. Shiny, legendary, boss, raid, owned and battling Pokemon are never removed.
What it does¶
- Runs one or more removal groups on their own timers (default: Pokemon and dropped items, every 10 minutes).
- Warns players in chat (or the action bar) before each sweep: 5 minutes, 60, 30, then 5 to 1 seconds. After the sweep it announces how many entities were removed.
- Skips sweeps when fewer than
minOnlinePlayersplayers are online. - Can skip whole dimensions.
- For Pokemon it always keeps: Pokemon in a battle, owned or released player Pokemon, bosses, legendaries, mythicals, raid Pokemon, and shinies.
Based on EnvyWare's PokeRemoval (MIT), rewritten for this network. Server-side only.
How players use it¶
Players do not use it directly. They see the warnings and the "cleared" message. Catch or battle a Pokemon you want before the sweep; shinies and legendaries are safe anyway.
Staff guide¶
| Task | Command |
|---|---|
Reload config.json |
/pokeremoval (op level 2) |
/pokeremoval only reloads the JSON. A new jar needs a restart. Only one pokeremoval-*.jar may be
in mods/.
Each sweep logs:
[PokeRemoval]: Completed 'Pokemon' cleanup across all loaded dimensions; removed 123 entities
If that line says removed 0 for hours while the world is busy, the group is not matching anything.
Configuration¶
config/pokeremoval/config.json, written with defaults on first start. Reload with /pokeremoval.
| Field | Meaning |
|---|---|
minOnlinePlayers |
No sweeps below this many players (default 1) |
removalSettings.<group>.name |
Name used in logs |
mode |
WHITELIST: remove only the entity types in removedEntities. BLACKLIST: remove every entity type except those listed. Be very careful with BLACKLIST |
removedEntities |
Entity type ids, for example pixelmon:pixelmon, minecraft:item |
removalTimeMinutes |
Minutes between sweeps |
initialDelayMinutes |
Delay before the first sweep after boot |
ignoreEntitiesYoungerThan |
Skip entities younger than this, in ticks (20 ticks = 1 second). The default 60 is 3 seconds |
blacklistedWorlds |
Dimension ids to skip, for example minecraft:the_end |
broadcastRemoval, removalBroadcast, removalBroadcastActionBar |
The after-sweep message. %amount% is the count |
warningBroadcasts |
Warnings before the sweep: enabled, timeBeforeRemovalSeconds, actionBar, broadcast lines |
matchingRequirements |
Not used. Left over from the original mod. The Pokemon protections above are built in |
Colour codes use &.
Data and storage¶
None besides the config. Removed entities are gone for good.
Troubleshooting¶
| Symptom | Cause | Fix |
|---|---|---|
| Sweeps say they ran but removed 0 | Old 2.3.1 or earlier spec-based filter matched nothing | Use 2.3.2 or later |
| Shinies were removed | 2.3.2 lost shiny protection | Use 2.3.3 or later |
| No sweeps at all | Fewer than minOnlinePlayers online, or the group's dimension is blacklisted |
Check the config |
| Player items vanished | They were on the ground during an item sweep | Expected. Warnings go out first |
Maintainer notes¶
- The Pokemon policy is code, not a
PokemonSpecificationstring. In 2.3.1 a compound spec was accepted but matched nothing, so sweeps logged success and removed nothing. - Shiny is a palette tag, not a flag. The check is
Pokemon.isShiny()plus the stored palette name, because a displayed ribbon can override the palette. - A group is locked while it runs, so a slow sweep is never started twice.
- The deploy record and rollback jar for
mainare inmanual_uploads/2026-08-05-pokeremoval-2.3.2-main/in the ops repo. - Builds against Pixelmon 9.3.16 and 9.4.x.
run-test-server.shstarts a local test server.
Building¶
./gradlew clean build
Java 21. Output: build/libs/pokeremoval-<version>.jar.
Full command, permission and config tables: Reference.