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.
TIP
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.
Role
- 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.
TIP
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 here. 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 forember.package[ply:SteamID64()]
, which is a table that contains the attributes of the package being applied- attributes include
name
andcost
- attributes include
TIP
Console commands can be run using RunConsoleCommand. 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 spawn and team change during the validity of the package. Cannot be dropped 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
.
Attributes
Any attribute of the StorePackagePurchase
model instance may be included in the command within brackets {}
. Subattributes can be accessed with the .
operator. Examples:
{user.name}
{user.steamid}
{user.minecraft_uuid}
{package.name}
{package.cost_credits}