Industry
Use Case
Favorite Feature
A small studio makes a free-to-play fantasy RPG for iOS, Android and Windows. It earns money from character packs, story expansions, a seasonal pass and gems, the in-game currency.
What a player owned used to live in the game client, checked against app store receipts on the device. That had three side effects:
The studio wanted the server to be the only place that knows what a player owns, whatever the platform.
Each player account is a licensee. The game server, not the client, talks to NetLicensing.
Product: Realms (licenseeAutoCreate = true)
├── Module "Content" – Multi-Feature
│ └── FEATURE templates: CHAR-DRAGONRIDER, CHAR-SHADOWMAGE, EXP-FROSTLANDS, ...
├── Module "Season pass" – Subscription
│ └── Season 7: TIMEVOLUME 90 DAY
└── Module "Gems" – Pay-per-Use
└── Gem packs: QUANTITY 100, 550, 1200
usedQuantity.Mobile purchases still go through the App Store and Google Play, as the platforms require. The game server verifies the store receipt as before. What changes is the next step: instead of trusting the device, the server records the purchase in NetLicensing:
curl -u apiKey:SERVER_API_KEY -H "Accept: application/json" \
-d "licenseeNumber=PLAYER-7718203" \
-d "licenseTemplateNumber=CHAR-DRAGONRIDER" \
-d "storeReceipt=GPA.3344-5566-7788" \
https://go.netlicensing.io/core/v2/rest/license
storeReceipt is stored as a custom property, so support can match a license to the original store transaction. On Windows, where the studio sells directly, the game opens the NetLicensing Shop with a shop token for the player, and the license is created by the purchase itself.
The game server validates the player once per session and keeps the result until its ttl:
curl -u apiKey:SERVER_API_KEY -H "Accept: application/json" \
-d "productNumber=REALMS" \
https://go.netlicensing.io/core/v2/rest/licensee/PLAYER-7718203/validate
The response lists every character and expansion with valid=true or false, the season pass with valid and expires, and the gem balance as remainingQuantity. The same answer goes to the phone and the PC, so a character bought on one is there on the other.
Spending gems happens on the server. Before the server confirms a gem purchase in the game, it checks the balance and reports the spend in the same call (usedQuantity0=...). A modified client can’t spend gems it doesn’t have.
When a store refund notice arrives, the server sets the matching license to active=false. The content disappears from the player’s account at the next login.
Making games with paid content? Read about Multi-Feature or contact us.

Gaming Middleware: Per-Title and Per-Seat Licensing
How a game middleware vendor can license its SDK per shipped title and per concurrent developer seat, and package Indie, Studio and Enterprise tiers as bundles.

Physical Security: Feature-Based Access Control with Time-Limited Permissions
How a building operator can tie tenant amenities to Multi-Feature licenses and give contractors passes that expire on their own with the Subscription model.