Add fields: PHP Code: private boolean respawning = true; private MCWZData mcpqData; Add methods: PHP Code: public final List getAllMonsters() { return getAllMapObjects(MapleMapObjectType.MONSTER); } public void addMonsterSpawn(MapleMonster monster, int mobTime, int team) { Point newpos = calcPointBelow(monster.getPosition()); newpos.y -= 1; SpawnPoint sp = new SpawnPoint(monster, newpos, mobTime, team); monsterSpawn.add(sp); if (!respawning) return; if (sp.shouldSpawn() || mobTime == -1) { sp.spawnMonster(this); } } public void setReactorState(MapleReactor reactor, byte state) { synchronized (this.mapobjects) { reactor.setState(state); broadcastMessage(MaplePacketCreator.triggerReactor(reactor, state)); } } public List getAllMapObjects(MapleMapObjectType type) { List ret = new ArrayList<>(); synchronized (mapobjects) { for (MapleMapObject l : mapobjects.values()) { if (l.getType() == type) { ret.add((E) l); } } } return ret; } public void clearDrops() { List items = getAllMapObjects(MapleMapObjectType.ITEM); for (MapleMapItem itemmo : items) { removeMapObject(itemmo); broadcastMessage(MaplePacketCreator.removeItemFromMap(itemmo.getObjectId(), 0, 0)); } } public Collection getSpawnPoints() { return monsterSpawn; } public void respawn() { for (SpawnPoint sp : this.monsterSpawn) { if (sp.shouldSpawn()) { sp.spawnMonster(this); } } } public void beginSpawning() { this.respawning = true; this.respawn(); } public boolean isRespawning() { return respawning; } public void setRespawning(boolean respawning) { this.respawning = respawning; } public MCWZData getMCPQData() { return this.mcpqData; } public void setMCPQData(MCWZData data) { this.mcpqData = data; }