in Pickup_Powerup if ( !other->client->ps.powerups[ent->item->giTag] ) { // round timing to seconds to make multiple powerup timers // count in sync other->client->ps.powerups[ent->item->giTag] = level.time - ( level.time % 1000 ); } ... other->client->ps.powerups[ent->item->giTag] += quantity * 1000; in ClientEndFrame: // turn off any expired powerups for ( i = 0 ; i < MAX_POWERUPS ; i++ ) { if ( ent->client->ps.powerups[ i ] < level.time ) { ent->client->ps.powerups[ i ] = 0; } } if you don't currently have the powerup and quantity(count) is 2147483 then getting the powerup in the first second sets it to: level.time - (level.time % 1000) + quantity * 1000 = 0 + 2147483000 = 2147483000 in the second second: level.time - (level.time % 1000) + quantity * 1000 = 1000 + 2147483000 = 2147484000 = -2147483296 and so it will be turned off because -2147483296 < level.time the same thing will happen until level.time >= 2147485000 so the powerup will not be usable for around 24 days sometimes in defrag setting count to 2147483 doesn't work (the powerup can never be picked up). 2147482 seems to work and of course lower values can be used to make the powerup usable for a longer amount of time.