Jump to content
Message added by IIIaKa,

Any suggestions for improvement will be taken into consideration.

1 Screenshot

  • 134
  • 6
  • 157.79 kB

About Warehouse

An excellent plugin for creating a highly functional item storage warehouse.

 

Ji0XU4D.png

  • Presence of unique dialogues with warehouse keeper that mimic vanilla-style interactions;
  • The ability to create an unlimited number of custom permissions;
  • The ability to configure permissions individually, allowing flexible customization for any preferences;
  • The ability to limit the total number of available storages;
  • The ability to adjust the number of slots for each individual storage;
  • The ability to restrict which items can be stored;
  • The ability to store food items with a configurable spoilage rate(fridge ability) ;
  • Warehouse keepers with automatic spawning in all vanilla safe zones, as well as support for custom spawn points;
  • The ability to customize the appearance of each warehouse keeper;
  • The ability to restrict warehouse access to mission completion or payment;
  • The ability to configure a daily storage rent fee calculated based on the number of slots;
  • The ability to apply an extra fine when attempting to renew an expired storage;
  • The ability to automatically move all items from fully expired storages to the giveaway warehouse;
  • The ability to host daily item giveaways(if items are available) ;
  • The ability to preview items from the upcoming giveaway;
  • The ability to define a forbidden item list for the giveaway warehouse;
  • The ability to automatically move all items from players who die in safe zones(offline) to the giveaway warehouse;
  • The ability to transfer dropped items(when disappear) to the giveaway warehouse;
  • The ability to artificially fill the giveaway warehouse if it contains too few items;
  • The ability to fill the giveaway warehouse by transferring items from all existing lootable boxes;
  • The ability to notify players right before a giveaway starts.

 

MOEpxmo.png

{
  "Chat command": "wh",
  "Is it worth enabling GameTips for messages?": true,
  "List of language keys for creating language files": [
    "en"
  ],
  "Date display format": "MM/dd/yyyy hh:mm tt",
  "Price to skip mission": 200.0,
  "Storage purchase price": 100.0,
  "Storage slot purchase price": 50.0,
  "Storage slot daily rental fee": 10.0,
  "Interval in seconds for checking rent expiration": 600.0,
  "Number of hours before the rent expires during which renewal becomes available. A value of 0 disables the limit": 5,
  "Available slot options for new storage purchase": [
    1,
    6,
    18,
    48
  ],
  "Daily giveaway time. Format: HH:mm": "20:00",
  "Time in seconds(1–600) before the giveaway starts to notify players": 300.0,
  "Number of items dropped per second": 10,
  "Is it worth using lost items(BuriedItems) in the giveaway?": true,
  "List of warehouse permissions": [
    {
      "Permission Name": "warehouse.default",
      "Limit of available storages. A value of 0 disables the limit": 1,
      "Limit on the number of slots per storage": 6,
      "Price multiplier for purchasing a storage": 1.0,
      "Price multiplier for purchasing a storage slot": 1.0,
      "Price multiplier for storage slot rental": 1.0,
      "Price multiplier for storage rental in case of delay": 1.5,
      "Food spoilage multiplier": 1.0,
      "List of forbidden items to storage": [
        "blood"
      ]
    },
    {
      "Permission Name": "warehouse.vip",
      "Limit of available storages. A value of 0 disables the limit": 2,
      "Limit on the number of slots per storage": 24,
      "Price multiplier for purchasing a storage": 0.9,
      "Price multiplier for purchasing a storage slot": 0.9,
      "Price multiplier for storage slot rental": 0.9,
      "Price multiplier for storage rental in case of delay": 1.4,
      "Food spoilage multiplier": 0.5,
      "List of forbidden items to storage": [
        "blood"
      ]
    },
    {
      "Permission Name": "realpve.vip",
      "Limit of available storages. A value of 0 disables the limit": 3,
      "Limit on the number of slots per storage": 48,
      "Price multiplier for purchasing a storage": 0.8,
      "Price multiplier for purchasing a storage slot": 0.8,
      "Price multiplier for storage slot rental": 0.8,
      "Price multiplier for storage rental in case of delay": 1.3,
      "Food spoilage multiplier": 0.0,
      "List of forbidden items to storage": [
        "blood"
      ]
    }
  ],
  "List of custom spawn positions for Keeper NPCs": [],
  "List of spawn offsets in monuments for Keeper NPCs": {
    "compound": {
      "DisplayName": "Warehouse Keeper",
      "Force use as a giveaway source. If no sources are available, one will be chosen at random": true,
      "Position X": -19.28,
      "Position Y": 0.81,
      "Position Z": 2.25,
      "Rotation X": 0.0,
      "Rotation Y": -0.97,
      "Rotation Z": 0.02,
      "Rotation W": -0.25,
      "The main inventory item": {
        "ShortName": "spear.cny",
        "SkinID": 0
      },
      "The belt inventory item": {
        "ShortName": "botabag",
        "SkinID": 0
      },
      "The wear inventory items": [
        {
          "ShortName": "hazmatsuit.frontier",
          "SkinID": 0
        }
      ]
    },
    "bandit_town": {
      "DisplayName": "Warehouse Keeper",
      "Force use as a giveaway source. If no sources are available, one will be chosen at random": true,
      "Position X": 11.75,
      "Position Y": 1.91,
      "Position Z": -41.14,
      "Rotation X": 0.08,
      "Rotation Y": -0.1,
      "Rotation Z": 0.0,
      "Rotation W": 1.0,
      "The main inventory item": {
        "ShortName": "spear.cny",
        "SkinID": 0
      },
      "The belt inventory item": {
        "ShortName": "botabag",
        "SkinID": 0
      },
      "The wear inventory items": [
        {
          "ShortName": "hazmatsuit.frontier",
          "SkinID": 0
        }
      ]
    },
    "fishing_village_a": {
      "DisplayName": "Warehouse Keeper",
      "Force use as a giveaway source. If no sources are available, one will be chosen at random": false,
      "Position X": -26.76,
      "Position Y": 2.13,
      "Position Z": -20.55,
      "Rotation X": 0.04,
      "Rotation Y": 0.01,
      "Rotation Z": 0.0,
      "Rotation W": 1.0,
      "The main inventory item": {
        "ShortName": "spear.cny",
        "SkinID": 0
      },
      "The belt inventory item": {
        "ShortName": "botabag",
        "SkinID": 0
      },
      "The wear inventory items": [
        {
          "ShortName": "hazmatsuit.frontier",
          "SkinID": 0
        }
      ]
    },
    "fishing_village_b": {
      "DisplayName": "Warehouse Keeper",
      "Force use as a giveaway source. If no sources are available, one will be chosen at random": false,
      "Position X": -10.16,
      "Position Y": 2.02,
      "Position Z": 20.73,
      "Rotation X": 0.05,
      "Rotation Y": -0.85,
      "Rotation Z": 0.08,
      "Rotation W": 0.51,
      "The main inventory item": {
        "ShortName": "spear.cny",
        "SkinID": 0
      },
      "The belt inventory item": {
        "ShortName": "botabag",
        "SkinID": 0
      },
      "The wear inventory items": [
        {
          "ShortName": "hazmatsuit.frontier",
          "SkinID": 0
        }
      ]
    },
    "fishing_village_c": {
      "DisplayName": "Warehouse Keeper",
      "Force use as a giveaway source. If no sources are available, one will be chosen at random": false,
      "Position X": -3.0,
      "Position Y": 2.06,
      "Position Z": 11.47,
      "Rotation X": 0.06,
      "Rotation Y": 0.03,
      "Rotation Z": 0.0,
      "Rotation W": 1.0,
      "The main inventory item": {
        "ShortName": "spear.cny",
        "SkinID": 0
      },
      "The belt inventory item": {
        "ShortName": "botabag",
        "SkinID": 0
      },
      "The wear inventory items": [
        {
          "ShortName": "hazmatsuit.frontier",
          "SkinID": 0
        }
      ]
    },
    "stables_a": {
      "DisplayName": "Warehouse Keeper",
      "Force use as a giveaway source. If no sources are available, one will be chosen at random": false,
      "Position X": 2.47,
      "Position Y": 3.04,
      "Position Z": -14.16,
      "Rotation X": 0.0,
      "Rotation Y": -0.97,
      "Rotation Z": 0.02,
      "Rotation W": -0.25,
      "The main inventory item": {
        "ShortName": "spear.cny",
        "SkinID": 0
      },
      "The belt inventory item": {
        "ShortName": "botabag",
        "SkinID": 0
      },
      "The wear inventory items": [
        {
          "ShortName": "hazmatsuit.frontier",
          "SkinID": 0
        }
      ]
    },
    "stables_b": {
      "DisplayName": "Warehouse Keeper",
      "Force use as a giveaway source. If no sources are available, one will be chosen at random": false,
      "Position X": 2.79,
      "Position Y": 3.0,
      "Position Z": 29.68,
      "Rotation X": -0.02,
      "Rotation Y": -0.73,
      "Rotation Z": 0.02,
      "Rotation W": -0.69,
      "The main inventory item": {
        "ShortName": "spear.cny",
        "SkinID": 0
      },
      "The belt inventory item": {
        "ShortName": "botabag",
        "SkinID": 0
      },
      "The wear inventory items": [
        {
          "ShortName": "hazmatsuit.frontier",
          "SkinID": 0
        }
      ]
    }
  },
  "Wipe ID": null,
  "Version": {
    "Major": 0,
    "Minor": 1,
    "Patch": 0
  }
}

 

DxI83SK.png

EN:
{
  "CmdEconomicsNotEnough": "Not enough funds!",
  "CmdMain": "Available warehouse commands:\n\n<color=#D1CBCB>/wh</color> <color=#D1AB9A>spawn *name*(optional)</color> - Spawn a Warehouse Keeper at your position\n<color=#D1CBCB>/wh</color> <color=#D1AB9A>kill</color> - Remove the Warehouse Keeper you are looking at\n<color=#D1CBCB>/wh</color> <color=#D1AB9A>name *name*</color> - Change the name of the Warehouse Keeper you are looking at\n<color=#D1CBCB>/wh</color> <color=#D1AB9A>giveaway start</color> - Force start the giveaway\n<color=#D1CBCB>/wh</color> <color=#D1AB9A>giveaway set \"HH:mm\"</color> - Change the daily giveaway time\n\n--------------------------------------------------",
  "CmdKeeperNotFound": "Warehouse Keeper not found! You need to be looking directly at them.",
  "CmdKeeperSpawned": "Warehouse Keeper successfully spawned!",
  "CmdKeeperKilled": "Warehouse Keeper successfully killed!",
  "CmdKeeperNamed": "Warehouse Keeper's name successfully changed!",
  "CmdGiveawaySetFailed": "Failed to set '{0}' as the new giveaway time. Correct format: HH:mm, e.g. 20:00.",
  "CmdGiveawaySet": "The value '{0}' has been successfully set as the new giveaway time!",
  "DialogueNotAllowed": "You do not have permission to access the storage!",
  "DialogueStranger": "Stranger",
  "DialogueBtnExit": "I don't think I'm interested. Farewell.",
  "DialogueInitialMain": "Hello! Have we met before? I don't recall seeing you around here...\nHow can I help you?",
  "DialogueInitialBtnIntroduction": "My name is {0}. And you? What do you do?",
  "DialogueInitialBtnExit": "Just passing by. Looking around.",
  "DialogueIntroductionMain": "My name is {0}, I'm with the Keepers Guild. We're a small group, but present in every safe zone.\nOur job is to ensure the safety of belongings that their owners can no longer protect. We guarantee complete security, you can store absolutely anything with us. Of course, this is a paid service.\n\n{1}, you say? Never heard of you...\nUnfortunately, we don't work with strangers. You can't really rely on them.",
  "DialogueIntroductionBtnGetMission": "I have some items for storage. How can I prove I'm trustworthy?",
  "DialogueGetMissionMain": "Hmm... Let me think...\nYou know, there is something.\nWe maintain close ties with the Guild of Wandering Merchants and I have a letter I haven't been able to deliver to them. They usually stop by the water towers.\n\nI could entrust it to you. What do you say?",
  "DialogueGetMissionBtnStart": "Perfect, I was heading that way anyway. I'm ready to help.",
  "DialogueGetMissionBtnPay": "I'd love to help, but this task seems too complicated for me.\nHow about I offer ${0} as a goodwill gesture instead?",
  "DialogueMissionStartedMain": "{0}, good to see you again!\nHow's the task I gave you coming along?",
  "DialogueMissionStartedBtnCancel": "Sorry, but I can no longer continue your task.",
  "DialogueMissionStartedBtnExit": "I'm still working on it.",
  "DialogueMissionCanceledMain": "I'm sorry you couldn't complete my task...",
  "DialogueMissionCanceledBtnGetMission": "I'm sorry too, but I'd like to prove my reliability once again.",
  "DialogueMissionCompletedMain": "{0}, you did a great job! I couldn’t have managed without you.\nHow can I help you?",
  "DialogueMissionPayedMain": "${0}?\nHa, now we're speaking the same language.\nHow can I help you?",
  "DialogueDefaultMain": "Greetings, {0}! Long time no see. How can I help you?",
  "DialogueDefaultBtnForbiddenList": "I'd like to know which items are forbidden from being stored.",
  "DialogueDefaultBtnStorageList": "I'd like to check my storage.",
  "DialogueDefaultBtnGiveaway": "I'd like to know about item giveaways.",
  "DialogueForbiddenListMain": "Here's a list of items you're unfortunately not allowed to store:\n\n{0}",
  "DialogueStorageListMain": "Would you like to open one of your storages or acquire a new one?",
  "DialogueStorageListBtnStorageBuy": "Get new storage.",
  "DialogueStorageListBtnOpenStorage": "Open '{0}' with {1} slot(s).",
  "DialogueStorageListBtnBack": "Maybe next time.",
  "DialogueStorageBuyMain": "Great! Which purchase method would you prefer?\n\nThe price to purchase storage: ${0}\nThe price to purchase one slot: ${1}\nDaily maintenance fee per slot: ${2}\n\nKeep in mind that the size of any storage can be adjusted at any time, from 1 to 48 slots.",
  "DialogueStorageBuyOutLimit": "It looks like you've already used up your available storage limit.",
  "DialogueStorageBuyBtnBuy": "Purchase storage with {0} slot(s) for ${1}.",
  "DialogueStorageBuyBtnBack": "Maybe next time.",
  "DialogueGiveawayMain": "We regularly hold giveaways of unwanted and lost items.\nUsually, these include:\n- items from storages with expired rent\n- items left behind by players who left the game in a safe zone\n- items lost during battles\n\nThe next giveaway is scheduled for {0}(UTC), in {1}!\nMake sure to come, you might get lucky and grab something valuable!",
  "DialogueGiveawayMainActive": "We regularly hold giveaways of unwanted and lost items.\nUsually, these include:\n- items from storages with expired rent\n- items left behind by players who left the game in a safe zone\n- items lost during battles\n\nThe giveaway is in full swing! If you don’t want to miss out, hurry to {0}({1})!",
  "DialogueGiveawayBtnShow": "I'd like to know what items will be in the upcoming giveaway.",
  "DialogueGiveawayBtnBack": "Maybe next time.",
  "GiveawayStorageName": "Giveaway Storage",
  "GiveawayStartNotEnough": "Unfortunately, there weren't enough items collected for the giveaway. Don't miss the next giveaway, which will take place in {0}(UTC)!",
  "GiveawayStartAnnounce": "The item giveaway will start soon! Everyone, hurry to {0}({1})! Only {2} seconds left!",
  "GiveawayEndAnnounce": "The item giveaway has ended! Over {0} items were given away! Don't miss the next giveaway, which will take place in {1}(UTC)!",
  "UiStorageUntil": "Until: {0}(UTC)",
  "UiStorageExpired": "Rent expired",
  "UiStorageNote": "Slot purchase price: ${1}.\nDaily rent per slot: ${2}.\nCurrent daily rent cost: ${3}.",
  "UiStorageNoteRestricted": "<b>Note:</b> You can only pay rent up to {0}h before it expires.\nSlot purchase price: ${1}, daily rent per slot: ${2}.\nCurrent daily rent cost: ${3}.",
  "UiStorageRental": "Pay Rent",
  "UiStorageRentPayed": "You have successfully paid the storage rent!",
  "UiStorageSlotsOcupied": "You can't reduce the number of slots because one of the reduced slots contains an item!",
  "UiStorageSlotsAdjusted": "The number of slots has been changed from {0} to {1}!"
}
RU:
{
  "CmdEconomicsNotEnough": "Не достаточно средств!",
  "CmdMain": "Доступные команды хранилища:\n\n<color=#D1CBCB>/wh</color> <color=#D1AB9A>spawn *имя*(опционально)</color> - Создать хранителя хранилища на вашей позиции\n<color=#D1CBCB>/wh</color> <color=#D1AB9A>kill</color> - Удалить хранителя хранилища, на которого вы смотрите\n<color=#D1CBCB>/wh</color> <color=#D1AB9A>name *имя*</color> - Изменить имя хранителя хранилища, на которого вы смотрите\n<color=#D1CBCB>/wh</color> <color=#D1AB9A>giveaway start</color> - Принудительно начать раздачу\n<color=#D1CBCB>/wh</color> <color=#D1AB9A>giveaway set \"HH:mm\"</color> - Изменить время проведения ежедневной раздачи\n\n--------------------------------------------------",
  "CmdKeeperNotFound": "Хранитель хранилища не найден! Вам необходимо смотреть прямо на него.",
  "CmdKeeperSpawned": "Хранитель хранилища успешно создан!",
  "CmdKeeperKilled": "Хранитель хранилища успешно удалён!",
  "CmdKeeperNamed": "Имя хранителя хранилища успешно изменено!",
  "CmdGiveawaySetFailed": "Не удалось установить '{0}' в качестве нового времени для раздачи. Правильный формат: HH:mm, пример 20:00.",
  "CmdGiveawaySet": "Значение '{0}' успешно установлено в качестве нового времени для раздачи!",
  "DialogueNotAllowed": "У вас недостаточно прав для использования хранилища!",
  "DialogueStranger": "Незнакомец",
  "DialogueBtnExit": "Думаю, мне это неинтересно. Прощайте.",
  "DialogueInitialMain": "Привет! Мы раньше встречались? Что-то не припоминаю, чтобы видел вас здесь...\nЧем могу помочь?",
  "DialogueInitialBtnIntroduction": "Меня зовут {0}. А вы кто? Чем занимаетесь?",
  "DialogueInitialBtnExit": "Я просто прохожу мимо. Осматриваюсь.",
  "DialogueIntroductionMain": "Меня зовут {0}, я из Гильдии Хранителей. Нас немного, но мы есть в каждой безопасной зоне.\nНаша задача — обеспечивать сохранность вещей, которые их владельцы не в силах защитить самостоятельно. Мы гарантируем полную безопасность, у нас можно оставить абсолютно любые предметы. Разумеется, это платная услуга.\n\n{1}, говорите? Никогда о вас не слышал...\nК сожалению, мы не работаем с незнакомцами. На таких нельзя полагаться.",
  "DialogueIntroductionBtnGetMission": "У меня есть несколько вещей для хранения. Как я могу доказать свою надёжность?",
  "DialogueGetMissionMain": "Хм... Дайте-ка подумать... Знаете, есть одно дельце.\nМы поддерживаем тесные связи с Гильдией странствующих торговцев, и у меня есть письмо, которое я никак не могу им передать. Они обычно останавливаются на водокачках.\nЯ мог бы поручить это вам. Что скажете?",
  "DialogueGetMissionBtnStart": "Отлично, мне как раз по пути. Я готов помочь.",
  "DialogueGetMissionBtnPay": "Я бы с радостью помог, но это для меня слишком сложное задание.\nКак насчёт {0}$ от меня, так сказать, в знак доброй воли?",
  "DialogueMissionStartedMain": "{0}, рад вас снова видеть!\nКак продвигается выполнение моего поручения?",
  "DialogueMissionStartedBtnCancel": "Извините, но я больше не могу продолжать выполнение вашего задания.",
  "DialogueMissionStartedBtnExit": "Я всё ещё работаю над этим.",
  "DialogueMissionCanceledMain": "Мне жаль, что вы не смогли выполнить моё поручение...",
  "DialogueMissionCanceledBtnGetMission": "Мне тоже жаль, но я хотел бы ещё раз доказать свою надёжность.",
  "DialogueMissionCompletedMain": "{0}, ты просто молодец! Без тебя я бы точно не справился.\nЧем могу быть полезен?",
  "DialogueMissionPayedMain": "{0}$? Ха, теперь мы говорим на одном языке.\nЧем могу быть полезен?",
  "DialogueDefaultMain": "Приветствую, {0}! Давненько не виделись. Чем могу быть полезен?",
  "DialogueDefaultBtnForbiddenList": "Я бы хотел узнать, какие вещи запрещено сдавать на хранение.",
  "DialogueDefaultBtnStorageList": "Я бы хотел заглянуть в своё хранилище.",
  "DialogueDefaultBtnGiveaway": "Я бы хотел узнать о раздаче вещей.",
  "DialogueForbiddenListMain": "Вот список вещей, которые, к сожалению, вам нельзя сдавать на хранение:\n\n{0}",
  "DialogueStorageListMain": "Хотите открыть одно из ваших хранилищ или оформить новое?",
  "DialogueStorageListBtnStorageBuy": "Оформить новое хранилище.",
  "DialogueStorageListBtnOpenStorage": "Открыть '{0}' на {1} слот(ов).",
  "DialogueStorageListBtnBack": "Пожалуй, в другой раз.",
  "DialogueStorageBuyMain": "Прекрасно! Какой способ покупки вас интересует?\n\nСтоимость покупки хранилища: {0}$\nСтоимость покупки одного слота: {1}$\nЕжедневная плата за обслуживание одного слота: {2}$\n\nУчтите, что объём любого хранилища можно изменять в любое время, от 1 до 48 слотов.",
  "DialogueStorageBuyOutLimit": "Похоже, вы уже использовали весь доступный лимит хранилищ.",
  "DialogueStorageBuyBtnBuy": "Приобрести хранилище на {0} слот(ов) за {1}$.",
  "DialogueStorageBuyBtnBack": "Пожалуй, в другой раз.",
  "DialogueGiveawayMain": "У нас регулярно проходят раздачи ненужного и потерянного имущества.\nОбычно это:\n- предметы из хранилищ, за которые не была вовремя оплачена аренда\n- предметы, оставшиеся у игроков, покинувших игру в безопасной зоне\n- утраченные во время боёв предметы\n\nСледующая раздача намечена на {0}(UTC), до раздачи осталось {1}.\nОбязательно приходите — возможно, вам повезёт урвать что-нибудь ценное!",
  "DialogueGiveawayMainActive": "У нас регулярно проходят раздачи ненужного и потерянного имущества.\nОбычно это:\n- предметы из хранилищ, за которые не была вовремя оплачена аренда\n- предметы, оставшиеся у игроков, покинувших игру в безопасной зоне\n- утраченные во время боёв предметы\n\nРаздача в самом разгаре! Если не хотите пропустить, срочно приходите в {0}({1})!",
  "DialogueGiveawayBtnShow": "Я бы хотел узнать, какие вещи будут в грядущей раздаче.",
  "DialogueGiveawayBtnBack": "Пожалуй, в другой раз.",
  "GiveawayStorageName": "Хранилище раздачи",
  "GiveawayStartNotEnough": "К сожалению для раздачи не набралось достаточного количества предметов. Не упустите следующую раздачу, которая будет в {0}(UTC)!",
  "GiveawayStartAnnounce": "Раздача вещей скоро начнётся! Всем срочно в {0}({1})! До начала осталось {2} секунд!",
  "GiveawayEndAnnounce": "Раздача вещей завершена! В раздаче было свыше {0} предметов! Не упустите следующую раздачу, которая будет в {1}(UTC)!",
  "UiStorageUntil": "До: {0}(UTC)",
  "UiStorageExpired": "Аренда просрочена",
  "UiStorageNote": "Покупка слота: {1}$.\nЕжедневная аренда за слот: {2}$.\nТекущая стоимость ежедневной аренды: {3}$.",
  "UiStorageNoteRestricted": "<b>Примечание:</b> продлить аренду можно только за {0}ч до её истечения.\nПокупка слота: {1}$, ежедневная аренда за слот: {2}$.\nТекущая стоимость ежедневной аренды: {3}$.",
  "UiStorageRental": "Оплатить аренду",
  "UiStorageRentPayed": "Вы успешно продлили аренду хранилища!",
  "UiStorageSlotsOcupied": "Вы не можете уменьшить количество слотов, так как один из уменьшенных слотов содержит предмет!",
  "UiStorageSlotsAdjusted": "Количество слотов было изменено с {0} до {1}!"
}

 

OxWiTBA.png

  • warn - Enabling and disabling personal warning.

Example:

/twigs warn


User Feedback

2m

Downloads

Total number of downloads.

9.4k

Customers

Total customers served.

137.6k

Files Sold

Total number of files sold.

2.9m

Payments Processed

Total payments processed.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.