Hacks, modifications and add-ons are normally written by amateur coders without the permission of the game developers. These programs normally add new features to games such as new weapons, characters and locations. Sometimes these programs are used for cheating purposes.