A method for customizing a gaming machine, the method comprising: establishing a communications session between a gaming machine and a download server and requesting that the download server transmit a download signature to the gaming machine, wherein the gaming machine is a given type of gaming machine, receiving, at the gaming machine, the download signature associated with the gaming machine; determining a machine signature for the gaming machine; and determining whether the machine signature matches the download signature, wherein if the determination indicates the machine signature matches the download signature, responsively entering a state that allows the gaming machine to carry out gaming, wherein if the determination indicates the machine signature does not match the download signature, then prior to entering the state, responsively (i) notifying the download server of the mismatch, (ii) receiving a software package for updating the gaming machine, and (iii) updating the gaming machine with the software package, wherein the download server determines the download signature from a hierarchical file structure comprising, in order from lowest priority to highest priority, a first tier, a second tier, and a third tier, wherein software files in a lower priority tier are overridden or replaced by software files in a higher priority tier, wherein the first tier includes a set of default software files for any gaming machine of the given type of gaming machine, wherein the second tier includes at least a first set of customized software files (314, 316) for a first group of gaming machines, wherein the first group of gaming machines are all of the given type of gaming machine, wherein the third tier includes a second set of customized software files for the gaming machine, wherein the software package for updating the gaming machine comprises gaming machine software files from the hierarchical file structure, and wherein the download server determines which gaming machine software files get sent to the gaming machine by scanning file directories of the hierarchical file structure that correspond to the gaming machine. establishing a communications session between a gaming machine and a download server and requesting that the download server transmit a download signature to the gaming machine, wherein the gaming machine is a given type of gaming machine, receiving, at the gaming machine, the download signature associated with the gaming machine; determining a machine signature for the gaming machine; and determining whether the machine signature matches the download signature, wherein if the determination indicates the machine signature matches the download signature, responsively entering a state that allows the gaming machine to carry out gaming, wherein if the determination indicates the machine signature does not match the download signature, then prior to entering the state, responsively (i) notifying the download server of the mismatch, (ii) receiving a software package for updating the gaming machine, and (iii) updating the gaming machine with the software package, wherein the download server determines the download signature from a hierarchical file structure comprising, in order from lowest priority to highest priority, a first tier, a second tier, and a third tier, wherein software files in a lower priority tier are overridden or replaced by software files in a higher priority tier, wherein the first tier includes a set of default software files for any gaming machine of the given type of gaming machine, wherein the second tier includes at least a first set of customized software files (314, 316) for a first group of gaming machines, wherein the first group of gaming machines are all of the given type of gaming machine, wherein the third tier includes a second set of customized software files for the gaming machine, wherein the software package for updating the gaming machine comprises gaming machine software files from the hierarchical file structure, and wherein the download server determines which gaming machine software files get sent to the gaming machine by scanning file directories of the hierarchical file structure that correspond to the gaming machine.