You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Feature Request: Add an activation key feature. #53
Many games have a redemption code feature: enter a string of characters to receive some rewards; the code becomes invalid after one use.
Use it as an activation mechanism, for example, requiring a key to be entered before a player can access a certain game mode; the key becomes invalid after one use.
Additional notes:
It would be desirable to let users freely create multiple redemption code tables and customize the purpose of the redemption codes in different tables (each table is used for a different business use case).
It would be desirable to add a public key feature. Such a key can be an arbitrary-length UTF-8 string and may contain non-English characters. Any player can claim it once.
This can be implemented as a separate feature using elixir and reusing gamend as a lib. Similar to how gamend_starter does. But it's quite hard to do and probably not in the scope of this.
It's not incredibly difficult. It just can be implemented using core features. Eg. you can hold data about users in KV (keyvalue) and track per user if / when they activated if the key is correct or not.
I would just not see this as a core feature I guess. Though idk. Or rather I wouldn't have a use case for it, but I don't know if other people might have use case for it or not.
Like, what are you trying to achieve with the activation keys? Why wouldn't people buy certain features? Or if they would or wouldn't, that logic would just like on the hooks, and that data in KV also. So this being in core and having codes redeemable seems like a good marketing technique if anything, but it won't integrate as nicely (as people have to enter a code manually). That's why I'm quite on the edge if it would fit in core or not.
In China, redemption codes are very mainstream and extremely common in almost all games.
Their uses: For example, if I launch an event on a video platform, players can receive some rewards if they complete the event, and in that case redemption codes become the simplest way to claim them. For example, many games have a “test server” for testing new versions and need to select some people to participate. In the case of an “invitation-only” system, a redemption code can be used to activate access.
Manually entering redemption codes does not affect the experience. In my case, everyone just copies and pastes them, and no one specifically complains that entering redemption codes is very troublesome.
Ok, you convinced me. But it will require some planning. It will need:
activation page.
admin page for generation of codes, including multiple keys generation, key invalidation, adding metadata to keys, etc.
Basically what you wrote in the begining. Will investigate a bit and check. Also, it would need support to work in both API and browser version, and need possibly also support for websocket side (Realtime events)
Hey, this will take a bit more until I get started on it, as I am in the process of implementing now another big feature on gamend. This will most likely come after.
Activity
[-]Feature request: Add an activation key feature[/-][+]Feature Request: Add an activation key feature.[/+]zhaoxue5 commentedon Oct 19, 2026
Alright, this does look quite difficult to implement. If it feels like too much trouble, please feel free to close this issue.
Ughuuu commentedon Oct 19, 2026
This can be implemented as a separate feature using elixir and reusing gamend as a lib. Similar to how gamend_starter does. But it's quite hard to do and probably not in the scope of this.
zhaoxue5 commentedon Oct 26, 2026
Could you please tell me what the difficulties are in implementing this? I’d like to try implementing it myself.
Ughuuu commentedon Oct 26, 2026
It's not incredibly difficult. It just can be implemented using core features. Eg. you can hold data about users in KV (keyvalue) and track per user if / when they activated if the key is correct or not.
I would just not see this as a core feature I guess. Though idk. Or rather I wouldn't have a use case for it, but I don't know if other people might have use case for it or not.
Like, what are you trying to achieve with the activation keys? Why wouldn't people buy certain features? Or if they would or wouldn't, that logic would just like on the hooks, and that data in KV also. So this being in core and having codes redeemable seems like a good marketing technique if anything, but it won't integrate as nicely (as people have to enter a code manually). That's why I'm quite on the edge if it would fit in core or not.
zhaoxue5 commentedon Oct 26, 2026
@Ughuuu Here are the reasons:
In China, redemption codes are very mainstream and extremely common in almost all games.
Their uses: For example, if I launch an event on a video platform, players can receive some rewards if they complete the event, and in that case redemption codes become the simplest way to claim them. For example, many games have a “test server” for testing new versions and need to select some people to participate. In the case of an “invitation-only” system, a redemption code can be used to activate access.
Manually entering redemption codes does not affect the experience. In my case, everyone just copies and pastes them, and no one specifically complains that entering redemption codes is very troublesome.
Ughuuu commentedon Oct 27, 2026
Ok, you convinced me. But it will require some planning. It will need:
Basically what you wrote in the begining. Will investigate a bit and check. Also, it would need support to work in both API and browser version, and need possibly also support for websocket side (Realtime events)
Ughuuu commentedon Nov 2, 2026
Hey, this will take a bit more until I get started on it, as I am in the process of implementing now another big feature on gamend. This will most likely come after.
zhaoxue5 commentedon Nov 2, 2026
Oh, oh, may I ask what that new feature is?