I have a 'buffs/debuffs' mechanic in my game. I simply have each instance (or one, if in your case it's a single creature that you can buff) hold a list, and when I apply a buff I store an array in the list with a few different pieces of information (in my case, this is the buff type, which I handle with enums i.e. e_buffs.BURN, the time left on the buff, the HP effect the buff has (negative for doing damage, positive for adding damage, in my case, HP is the only 'stat' that a buff can effect) and the applier's ID). Then I simply iterate through each list every turn (or second if you want it based on time) and subtract 1 from the time left on the buff, deleting the list position if it's at or below 0 and applying the damage/heal. In your case, just think through what potentially could happen in a buff: Is every buff simply effecting health, or are there multiple stats that could be effected by a buff? Do you want buffs to stack or simply add length to an existing buff if they are the same? Etc. Basically, just answer the question of what do I need to keep track of for each buff and store that info in each list slot and you will have a nice way to manipulate your buffs.