To offer BuiltByBit’s resource creators the utmost means of self-protection when publishing their resources, all resource categories offer placeholders which will be used to inject the download information at their locations every time the resource is downloaded.
This information can be used to identify any users who have leaked your product, identify the exact version which was leaked, and even develop your own DRM system.
The following placeholder identifiers are available for usage in all resource categories:
%%__BUILTBYBIT__%%
- ’true’ for all resources downloaded through our platform
%%__USER__%%
- Downloader’s user ID
%%__USERNAME__%%
- Downloader’s username
%%__RESOURCE__%%
- Downloaded resource ID
%%__VERSION__%%
- Downloaded resource version
%%__TIMESTAMP__%%
- Download epoch timestamp
%%__FILEHASH__%%
- A unique hash representing the download *
%%__NONCE__%%
- A secondary unique hash representing the download *
<aside> <img src="/icons/asterisk_gray.svg" alt="/icons/asterisk_gray.svg" width="40px" /> Only FILEHASH and NONCE are suitable for anti-piracy measures. Other data is already known to the downloader and is easily searched for and modified. Avoid placing other injected data, such as username or user, alongside NONCE or FILEHASH, as it may give away their location.
</aside>
More placeholders may be made available at a later date. Please create a suggestion if you would like additional placeholder identifiers.
If you’re going to use these placeholders for anti-piracy purposes, we strongly recommend that you utilise several of them, in order to ensure that misleading information cannot be edited into your resource prior to it being leaked, in an attempt to frame another downloader.
Note that the username and user id placeholders are very poor choices as an anti-piracy measures, since they're so easily identifiable to crackers.
Files are read in UTF8, and if an occurrence of these placeholders is found, it is replaced with the respective download value. The exceptions to this are .zips, .jars, java .class files, and .rars.
.zips and .jars are opened and processed as directories.
Java .class files have their bytecode processed, and string constants read for placeholders.
.rars are simply copied over. More info under the Limitations section.
You can take advantage of the variety of scanned files by opening up non-text files in your text editor, and hiding a placeholder in there. Some file formats will corrupt with the inclusion of additional data, however, you will find that many do not, especially if placed in the correct locations.