All Creds to @Michidu who created the plugin initially.
Shop, Currency & Kits
Original Author:
@Michidu
Maintainer:
@Lethal @Pelayori @Foppa @WETBATMAN
Features:
Chat Commands:
After server will be started, "ArkShop.db" file will be created in plugins directory. It contains all information about points and kits.
Examples:
Logs:
Dependencies:
Installation:
Shop, Currency & Kits
Original Author:
@Michidu
Maintainer:
@Lethal @Pelayori @Foppa @WETBATMAN
Features:
- Add any item, dino, beacon or experience points to the shop
- Points trading system
- Create custom kits with items and dinos inside
- Players can receive points for the time spent on server
- SQLite or MySQL Database
- Customizable config
- Automatically give kits on player spawn
Chat Commands:
- /points - Shows current amount of points.
- /buy <ID> <Amount> - Buys the item from shop.
- /trade <'CharacterName'> <Amount> - Sends points to other player (' ' - are necessary).
- /kit - Shows all kits.
- /kit <KitName> - Redeems the kit.
- /buykit <KitName> <Amount> - Buys a kit (if kit has a price).
- /shop <Page> - Shows a list of available items in the shop.
- /sell <ID> <Amount> - Sells an item.
- /shopsell<Page> - Shows a list of available for selling items.
- /shophelp - Show custom help message.
- AddPoints <SteamID> <Amount> - Adds points to the player.
- SetPoints <SteamID> <Amount> - Changes player's points amount.
- GetPlayerPoints <SteamID> - Prints how many points player has.
- ChangePoints <SteamID> <Amount> - Adds or decreases points amount. This command will add points to the current amount. Entered amount number can be negative.
- ChangeKitAmount <SteamID> <KitName> <Amount> - Adds or decreases player's kits amount. This command will add kits to the current amount. Entered amount number can be negative.
- ArkShop.Reload - Reloads a config file.
- ResetPoints - Resets points for all players.
- ResetKits - Resets kits for all players.
- ListInvItems - Lists inventory item blueprint paths to the log file.
- AddPoints <SteamID> <Amount> - Adds points to the player.
- GetPlayerPoints <SteamID> - Prints how many points player has.
- SetPoints <SteamID> <Amount> - Changes player's points amount.
- ChangePoints <SteamID> <Amount> - Works the same way as console command.
- ChangeKitAmount <SteamID> <KitName> <Amount> - Adds or decreases player's kits amount. This command will add kits to the current amount. Entered amount number can be negative.
- ArkShop.Reload - Reloads a config file.
JSON:
{
"Mysql": {
"UseMysql": false,
"MysqlHost": "localhost",
"MysqlUser": "apitest",
"MysqlPass": "12345",
"MysqlDB": "apitest",
"MysqlPort": 3306
},
"General": {
"Discord": { //Used for discord Logging
"Enabled": false,
"SenderName": "ArkShop",
"URL": "" //Webhook for discord channel
},
"TimedPointsReward": {
"Enabled": true, //If true player will receive points based on how much time they play for
"StackRewards": false, //If true player will receive the sum of all the rewards of the groups he's in.
"Interval": 30,
"Groups": {
"Donator-Diamond": { //Permission group name
"Amount": 40
},
"Donator-Platinum": { //Permission group name
"Amount": 40
},
"Donator-Gold": { //Permission group name
"Amount": 40
},
"Verified": { //Permission group name
"Amount": 30
},
"Default": { //Permission group name
"Amount": 20
}
}
},
"GiveDinosInCryopods": true, //provides dinos from the /buy command in cryopods or soul traps (if UseSoulTraps is true)
"UseSoulTraps": false, //Use Dino Storage V2 Mod Soul Traps instead of Vanilla Cyropods
"CryoLimitedTime": false, //Sets a 60 minute expire time
"CryoItemPath": "", //ONLY USE IF YOU ARE USING CUSTOM VANILLA CRYOPODS Leave blank otherwise (data structure the mod uses must be identical)
"ItemsPerPage": 25,
"ShopDisplayTime": 5,
"ShopTextSize": 1,
"DbPathOverride": "",
"DefaultKit": ""
},
"Kits": {
"starter": {
"DefaultAmount": 2,
"Price": 90,
"Description": "Starter kit (carno with saddle)",
"OnlyFromSpawn": true,
"Items": [
{
"Amount": 1,
"Quality": 0,
"ForceBlueprint": false,
"Armor": 80, //This will force the saddle to have 80 Armor value
"Blueprint": "Blueprint'/Game/PrimalEarth/CoreBlueprints/Items/Armor/Saddles/PrimalItemArmor_CarnoSaddle.PrimalItemArmor_CarnoSaddle'"
}
],
"Dinos": [
{
"Level": 10,
"Blueprint": "Blueprint'/Game/PrimalEarth/Dinos/Carno/Carno_Character_BP.Carno_Character_BP'"
}
]
},
"vip": {
"DefaultAmount": 1,
"Description": "Vip kit for premiums (ptero)",
"Permissions": "Admins,Premiums",
"Dinos": [
{
"Level": 20,
"Neutered": true,
"Blueprint": "Blueprint'/Game/PrimalEarth/Dinos/Ptero/Ptero_Character_BP.Ptero_Character_BP'"
}
],
"Commands": [
{
"Command": "GiveEngrams",
"DisplayAs": "Gives you all engram unlocks" //Only used in the Shop UI to display instead of the command itself
}
]
},
"tools": {
"DefaultAmount": 3,
"Price": 50,
"MinLevel": 1,
"MaxLevel": 20,
"Description": "Tools kit (pike and club)",
"Items": [
{
"Amount": 1,
"Quality": 0,
"Damage": 300, //this will force the pike to have 300% damage
"ForceBlueprint": false,
"Blueprint": "Blueprint'/Game/PrimalEarth/CoreBlueprints/Weapons/PrimalItem_WeaponPike.PrimalItem_WeaponPike'"
},
{
"Amount": 1,
"Quality": 0,
"Durability": 300, //this will force the Club to have 300 durability
"ForceBlueprint": false,
"Blueprint": "Blueprint'/Game/PrimalEarth/CoreBlueprints/Weapons/PrimalItem_WeaponStoneClub.PrimalItem_WeaponStoneClub'"
}
]
}
},
"ShopItems": {
"ingots100": {
"Type": "item",
"Description": "Metal Ingot (100x)",
"Price": 15,
"Items": [
{
"Quality": 0,
"ForceBlueprint": false,
"Amount": 100,
"Blueprint": "Blueprint'/Game/PrimalEarth/CoreBlueprints/Resources/PrimalItemResource_MetalIngot.PrimalItemResource_MetalIngot'"
}
]
},
"tools": {
"Type": "item",
"Description": "Tools (Metal Hatchet, Metal Pick)",
"Price": 5,
"Items": [
{
"Quality": 0,
"ForceBlueprint": false,
"Amount": 1,
"Blueprint": "Blueprint'/Game/PrimalEarth/CoreBlueprints/Weapons/PrimalItem_WeaponMetalHatchet.PrimalItem_WeaponMetalHatchet'"
},
{
"Quality": 0,
"ForceBlueprint": false,
"Amount": 1,
"Blueprint": "Blueprint'/Game/PrimalEarth/CoreBlueprints/Weapons/PrimalItem_WeaponMetalPick.PrimalItem_WeaponMetalPick'"
}
]
},
"para": {
"Type": "dino",
"Description": "Parasaurolophus",
"Level": 10,
"Price": 20,
"MinLevel": 10,
"MaxLevel": 15,
"Blueprint": "Blueprint'/Game/PrimalEarth/Dinos/Para/Para_Character_BP.Para_Character_BP'"
},
"carno": {
"Type": "dino",
"Description": "Male Carnotaurus",
"Level": 15,
"Price": 50,
"Neutered": true,
"Gender": "male", //Give male dino
"SaddleBlueprint": "Blueprint'/Game/PrimalEarth/CoreBlueprints/Items/Armor/Saddles/PrimalItemArmor_CarnoSaddle.PrimalItemArmor_CarnoSaddle'",
"Blueprint": "Blueprint'/Game/PrimalEarth/Dinos/Carno/Carno_Character_BP.Carno_Character_BP'"
},
"carno2": {
"Type": "dino",
"Description": "Female Carnotaurus",
"Level": 15,
"Price": 50,
"Neutered": true,
"Gender": "female", //Give female dino
"SaddleBlueprint": "Blueprint'/Game/PrimalEarth/CoreBlueprints/Items/Armor/Saddles/PrimalItemArmor_CarnoSaddle.PrimalItemArmor_CarnoSaddle'",
"Blueprint": "Blueprint'/Game/PrimalEarth/Dinos/Carno/Carno_Character_BP.Carno_Character_BP'"
},
"carno3": {
"Type": "dino",
"Description": "Random Gender Carnotaurus",
"Level": 15,
"Price": 50,
"Neutered": true,
"Gender": "random", //Give random gender dino (this can be removed to also produce a random gender)
"SaddleBlueprint": "Blueprint'/Game/PrimalEarth/CoreBlueprints/Items/Armor/Saddles/PrimalItemArmor_CarnoSaddle.PrimalItemArmor_CarnoSaddle'",
"Blueprint": "Blueprint'/Game/PrimalEarth/Dinos/Carno/Carno_Character_BP.Carno_Character_BP'"
},
"crate25": {
"Type": "beacon",
"Description": "SupplyCrate Lvl 25",
"Price": 100,
"ClassName": "SupplyCrate_Level25_Double_C"
},
"crate2": {
"Type": "beacon",
"Description": "Artifact Crate 2",
"Price": 100,
"ClassName": "ArtifactCrate_2_C"
},
"exp1000": {
"Type": "experience",
"Description": "1000 points of experience",
"GiveToDino": false,
"Price": 55,
"Amount": 1000.0
},
"tekengram": {
"Type": "unlockengram",
"Description": "Engram TEK Boots & Gloves",
"Price": 20,
"Items": [
{
"Blueprint": "Blueprint'/Game/PrimalEarth/CoreBlueprints/Items/Armor/TEK/PrimalItemArmor_TekBoots.PrimalItemArmor_TekBoots'"
},
{
"Blueprint": "Blueprint'/Game/PrimalEarth/CoreBlueprints/Items/Armor/TEK/PrimalItemArmor_TekGloves.PrimalItemArmor_TekGloves'"
}
]
},
"allengrams": {
"Type": "command",
"Description": "All engrams",
"Price": 1000,
"Items": [
{
"Command": "GiveEngrams",
"DisplayAs": "Gives you all engram unlocks" //Only used in the Shop UI to display instead of the command itself
}
]
}
},
"SellItems": {
"metal": {
"Type": "item",
"Description": "100x stone",
"Price": 10,
"Amount": 100,
"Blueprint": "Blueprint'/Game/Mods/Stack50/Resources/PrimalItemResource_Stone_Child.PrimalItemResource_Stone_Child'"
}
},
"Messages": {
"Sender": "ArkShop",
"BoughtItem": "<RichColor Color=\"0, 1, 0, 1\">You have successfully bought item</>",
"BoughtDino": "<RichColor Color=\"0, 1, 0, 1\">You have successfully bought dino</>",
"BoughtBeacon": "<RichColor Color=\"0, 1, 0, 1\">You have successfully bought beacon</>",
"BoughtExp": "<RichColor Color=\"0, 1, 0, 1\">You have successfully bought experience</>",
"ReceivedPoints": "<RichColor Color=\"1, 1, 0, 1\">You have received {0} points! (total: {1})</>",
"HavePoints": "You have {0} points",
"NoPoints": "<RichColor Color=\"1, 0, 0, 1\">You don't have enough points</>",
"WrongId": "<RichColor Color=\"1, 0, 0, 1\">Wrong id</>",
"NoPermissionsKit": "<RichColor Color=\"1, 0, 0, 1\">You don't have permission to use this kit</>",
"CantBuyKit": "<RichColor Color=\"1, 0, 0, 1\">You can't buy this kit</>",
"BoughtKit": "<RichColor Color=\"0, 1, 0, 1\">You have successfully bought {0} kit</>",
"AvailableKits": "Available kits for you:",
"NoKits": "No available kits",
"KitsLeft": "You have {0} {1} kits left",
"NoKitsLeft": "You don't have {0} kits left",
"CantGivePoints": "<RichColor Color=\"1, 0, 0, 1\">You can't give points to yourself</>",
"RidingDino": "<RichColor Color=\"1, 0, 0, 1\">You can't buy this item while riding a dino</>",
"SentPoints": "<RichColor Color=\"0, 1, 0, 1\">You have successfully sent {0} points to {1}</>",
"GotPoints": "You have received {0} points from {1}",
"NoPlayer": "<RichColor Color=\"1, 0, 0, 1\">Player doesn't exist</>",
"FoundMorePlayers": "<RichColor Color=\"1, 0, 0, 1\">Found more than one player with the given name</>",
"BuyUsage": "Usage: /buy id amount",
"ShopUsage": "Usage: /shop page",
"KitUsage": "Usage: /kit KitName",
"BuyKitUsage": "Usage: /BuyKit KitName amount",
"TradeUsage": "Usage: /trade 'Player Name' amount",
"PointsCmd": "/points",
"TradeCmd": "/trade",
"BuyCmd": "/buy",
"ShopCmd": "/shop",
"KitCmd": "/kit",
"BuyKitCmd": "/buykit",
"SellCmd": "/sell",
"ShopSellCmd": "/shopsell",
"SellUsage": "Usage: /sell id amount",
"NotEnoughItems": "<RichColor Color=\"1, 0, 0, 1\">You don't have enough items ({0}/{1})</>",
"SoldItems": "<RichColor Color=\"0, 1, 0, 1\">You have successfully sold items</>",
"BadLevel": "<RichColor Color=\"1, 0, 0, 1\">Required level: {0} - {1}</>",
"KitsListPrice": "Price: {0}",
"KitsListFormat": "\"{0}\" - {1}. {2} left. {3}\n",
"StoreListDino": "{0}) {1}. Level: {2}. Id: {3}. Price: {4}\n",
"StoreListItem": "{0}) {1}. Id: {2}. Price: {3}\n",
"StoreListFormat": "{0}",
"OnlyOnSpawnKit": "This kit can be used only on spawn",
"HelpCmd": "/shophelp",
"ShopMessage": "Usage: /buy id amount",
"HelpMessage": "This is shop help message",
"RefundError": "Points refunded due to an error",
"ShopFindCmd": "/shopfind",
"ShopFindUsage": "Usage: /shopfind searchterm",
"ShopFindNotFound": "No items matched your search",
"ShopFindTooManyResults": "Too many results to display refine your search term",
"NoPermissionsStore": "<RichColor Color=\"1, 0, 0, 1\">You don't have permission to buy this {0}!</>",
"InventoryIsFull": "<RichColor Color=\"1, 0, 0, 1\">Unable to redeem your kit, inventory full!</>"
}
}
After server will be started, "ArkShop.db" file will be created in plugins directory. It contains all information about points and kits.
Examples:
- https://pastebin.com/Ee2MfuDp - Shop config with every kibble added (Credits to @Foppa).
- https://pastebin.com/Jktf2GV3 - All Hat Skins (Credits to smooreace).
- https://pastebin.com/4kNUxtN2 - All Dino Skins (Credits to smooreace).
- https://pastebin.com/xX9NkCJb - All Armor Skins (Credits to smooreace).
- https://pastebin.com/HdhEAgFR - All Dino Hats (Credits to smooreace).
- https://pastebin.com/ne6bebay - All Weapon Skins (Credits to smooreace).
- https://pastebin.com/e1TXw1uh - All Head and Facial Hair (Credits to smooreace).
- https://pastebin.com/ejiFQ9ba - All Apex Items (Credits to smooreace).
- https://pastebin.com/Eh0AeeAj - All Eggs (Credits to Hsilamot).
- Example config by @Bobby_moore: https://drive.google.com/drive/folders/1mcJSSDc_6fBcYfLdTfqn3AX6rEaEpJdV
- https://pastebin.com/uhBW9vay - All Gaia Resources & Items (Credits to Smallnscary).
Logs:
Logs can be found in 'Win64\ArkApi\Plugins\ArkShop\ShopLog.log'.
Dependencies:
Installation:
- Install ARK: Server API
- Copy "ArkShop" folder to "ArkApi/Plugins"