I made a custom FrostedIce class (extending Ice) then registered it. Then added this onUpdate function hopefully that it'll execute this code on every few ticks... PHP: public function onUpdate(int $type){ if((PMServer::getInstance()->getTick() % (mt_rand(1,2) * 10)) == 0){ // every 1-2 seconds $this->meta++; if($this->meta > 3){ foreach($this->getAllSides() as $side){ $side->onUpdate($type); } $this->getLevel()->setBlock($this->asVector3(), Block::get(Block::WATER), false, true); } } } But after waiting for 5 minutes, nothing seems to happen. The block doesn't seem to even update at all. Is it supposed to do this or am I doing it wrong?