Are you going for a sequential press combo? or a multi-keypress combo? If it's sequential then you will keep track of the keys pressed in order, in an array, and match a set of the last group of entries against a list to determine the combo. If it's the second, the array won't be much help, rather you will have to check all the keys pressed at the moment to determine the effect. Though this will have to be done with the biggest chain first, so A+B+C+D would get priority over A+B+C