Store packages

  • Navigate to Admin > Store packages, select a server and click on the + icon in the top left of the store package manager.
  • Input fields will appear. Populate the fields with the details of the package.
    • Cost for the package in credits (100 credits = 1 unit of the selected currency).
    • On the Actions section you can configure the actions that will be run when the package is applied, for instance assigning a role and executing custom Lua.


To make packages redeemable on multiple servers, assign the same token for the servers in the integration plugin/addon configuration (while retaining unique tokens in Admin > Servers).

Example configuration

Package actions

Below is a partial overview of the package actions available.


  • The specified role will be assigned to the user on the web instance on purchase.
  • A group with the name of the role's in-game equivalent will be assigned to the user in-game.
  • If the package is set to expire, the role and groups will be revoked upon next server connection after expiry.


Role sync does not need to be enabled for package roles to be granted or revoked.

Garry's Mod

Custom Lua

The store package configuration includes a field for custom Lua. Lua is the programming language used in Garry's Mod addons. General usage instructions can be found in new window With custom Lua you can integrate Ember with other addons that aren't supported out of the box.

In the custom Lua editor you can access two predefined variables:

  • ply, which refers to the player entity of the player whom the package is being applied for
  • ember.package[ply:SteamID64()], which is a table that contains the attributes of the package being applied
    • attributes include name and cost


Console commands can be run using RunConsoleCommandopen in new window. For example, RunConsoleCommand("say", ply:Name() .. " redeemed package " .. ember.package[ply:SteamID64()].name).

Permanent weapons

Permanent weapons that are given to the player on each spawnopen in new window and team changeopen in new window during the validity of the package. Cannot be droppedopen in new window in DarkRP when GM.Config.dropspawnedweapons is set to false.

Rust & Minecraft

Commands & expiry commands

Console commands that will be run once on the server when the player first connects after purchase/expiry of the package. For example inventory.giveto {user.steamid} syringe.medical 5.


Any attribute of the StorePackagePurchase model instance may be included in the command within brackets {}. Subattributes can be accessed with the . operator. Examples:

  • {}
  • {user.steamid}
  • {user.minecraft_uuid}
  • {}
  • {package.cost_credits}