So I made a c++ script and found the following combinations of 4 types can hit 14 types super effectively:
- Ice, Fighting, Ground, Flying
- Ice, Fighting, Ground, Ghost
- Ice, Fighting, Ground, Dark
All of these hit Normal, Fire, Electric, Grass, Ice, Poison, Ground, Flying, Rock, Dragon, Dark, and Steel Pokemon super effectively. Additionally, Flying hits Fighting and Bug while Ghost and Dark both hit Psychic and Ghost, making for a total of 14 types.