Product modes are various states the software may work in. Common examples of product modes are trial mode and full-featured mode. Other possible uses of this function is implementing various licensing schemes (home license, business license, enterprise license) having certain functional differences or making alpha/beta/promo versions with certain time limitations. You can also create custom license types using the Data field (see below).
You can add a new mode to the product in two ways: either click the Add New Mode item in the Products section, or point a core product line in the list to bring up the function menu, and click the Add Mode link:

The following screen appears:

Select the product this mode applies to and specify the name of the mode. The rest options specify the way this product mode is limited:
Hardware ID – links the serial number to a particular hardware configuration effectively preventing multiple activations of the software with the same serial number on many different computers. You can tell WebLM to take hardware information from the URL – in this case it is passed from user’s computer upon first activation. Or you can specify a certain value manually – this allows you to lock this product mode to the specific computer only.
Expire date – sets the period this product mode remains active and available for activation.
- “none” means the product mode never expires – use this for full-functional versions of your software only;
- “days from activation date” – the product will be active and available for activation for a specified number of days since the activation date. This is a great option for trial versions of the software.
- “days from purchase date” – very similar to the above, this option permits usage of the product for the specified number of days since it was purchased. You may want to prefer this option if you need to encourage users to activate the program shortly after the purchase.
- “value” – set the date manually. This option is good for beta versions or promo licenses that should not work past the specified date.
If the expire date is set, the application can read the expiration date from the serial number and warn a user about upcoming expiration.
Time limit – sets the amount of time the application can work if launched. Games or multimedia software are usually the best candidates for such type of limitation.
Max build date – use this option to prevent running newer versions of the software with the same key. For example, you can allow free upgrades of the product within 120 days after the purchase and require paid renewal otherwise.
Data – you can pass additional information to the application in this field. Fill it with specific data to add more conditions to functional limitations, or use this field to indicate various versions of the product and make it respond this or that way. The application can retrieve serial number data using the VMProtectGetSerialNumberData API function.
Note: you can enter both text and binary data to this field. The binary data should be entered using the \0x prefix and an appropriate hexadecimal code: \0x20.