An excellent plugin for remote trading between players with extensive functionality.
The ability to log successful trades;
The ability to create new permissions;
The ability to customize permissions flexibly, including both new and existing ones;
The ability to limit slots in trade;
The ability to configure the method(Personal, CommonMinimum, CommonMaximum) for limiting the number of slots;
The ability to set a cooldown on sending trade requests;
The ability to configure the method(InitiatorOnly, TargetOnly, Both) for applying cooldown to players;
The ability to purchase a bypass for the trade request cooldown;
The ability to set a daily limit on sending trade requests;
The ability to purchase additional trade requests after reaching the daily limit;
The ability to forbid trading when wounded;
The ability to forbid trading while swimming;
The ability to forbid trading while mounted on certain seats;
The ability to forbid trading in specified monuments, by name or by monument type;
The ability to forbid trading in someone else's building privileges;
The ability to forbid trading when taking damage;
The ability to forbid trading during a combat block;
The ability to forbid trading during a raid block;
The ability to forbid certain items from being traded;
The ability to automatically generate language files for specified languages(with content filled in English);
The ability to set an effect upon receiving a trade request;
The ability to change the effect upon a successful trade completion;
The ability to display a status bar while waiting for a trade;
The ability to choose between bar types(TimeCounter and TimeProgressCounter);
The ability to specify the order of the bar;
The ability to change the height of the bar;
The ability to customize the color and transparency of the background;
The ability to set a material for the background;
The ability to switch between CuiRawImageComponent and CuiImageComponent for the image;
The ability to get images from the local folder(*SERVER*\oxide\data\AdvancedStatus\Images);
The ability to set own image and customize the color and transparency of the image;
The ability to set sprite instead of the image;
The ability to customize the color, size and font of the text.
{
"Chat command": "trade",
"List of 'accept' commands": [
"accept",
"yes"
],
"List of 'cancel' commands": [
"cancel",
"no"
],
"Is it worth enabling GameTips for messages?": true,
"Is it worth using Notify plugins for messages instead of the vanilla UI?": false,
"Specify the regular message type for notify": 0,
"Specify the warning message type for notify": 1,
"Is it worth using the AdvancedStatus plugin?": true,
"Is it worth saving trade logs to a file?": true,
"List of language keys for creating language files": [
"en"
],
"Slot limit calculation mode(Personal, CommonMinimum, CommonMaximum)": "CommonMaximum",
"Trade cooldown apply mode(InitiatorOnly, TargetOnly, Both)": "InitiatorOnly",
"Is it worth checking the target's trade cooldown?": false,
"Time in seconds given to respond to a trade request": 15.0,
"Price to skip 60 seconds of the trade request cooldown": 10.0,
"The prefab name for the effect triggered when a trade request is received": "assets/bundled/prefabs/fx/invite_notice.prefab",
"The prefab name for the effect triggered when a trade is successfully completed": "assets/prefabs/building/wall.frame.shopfront/effects/metal_transaction_complete.prefab",
"List of mount names where trading is prohibited": [
"horsesaddle",
"horsesaddlerear",
"bikedriverseat",
"bikepassengerseat",
"motorbikedriverseat",
"motorbikepassengerseat",
"modularcardriverseat",
"modularcarpassengerseatleft",
"modularcarpassengerseatright",
"modularcarpassengerseatlesslegroomleft",
"modularcarpassengerseatlesslegroomright",
"modularcarpassengerseatsidewayleft",
"miniheliseat",
"minihelipassenger",
"transporthelipilot",
"transporthelicopilot",
"attackhelidriver",
"attackheligunner",
"submarinesolodriverstanding",
"submarineduodriverseat",
"submarineduopassengerseat",
"snowmobiledriverseat",
"snowmobilepassengerseat",
"snowmobilepassengerseat tomaha",
"workcartdriver",
"locomotivedriver",
"craneoperator",
"batteringramseat",
"ballistagun.entity"
],
"Status. Bar - Display time in seconds. A value of 0 keeps it visible until the cooldown ends": 15.0,
"Status. Bar - Type(TimeProgressCounter or TimeCounter)": "TimeCounter",
"Status. Bar - Height": 26,
"Status. Bar - Order": 10,
"Status. Background - Color(Hex or RGBA)": "#EFC570",
"Status. Background - Transparency": 0.7,
"Status. Background - Material(Leave empty to disable)": "",
"Status. Image - Url": "https://gitlab.com/IIIaKa/images/-/raw/main/StatusBars/Trader_Request.png",
"Status. Image - Local(Leave empty to use Image_Url)": "Trader_Request",
"Status. Image - Sprite(Leave empty to use Image_Local or Image_Url)": "",
"Status. Image - Is raw image": false,
"Status. Image - Color(Hex or RGBA)": "#EFC570",
"Status. Image - Transparency": 1.0,
"Status. Image Outline - Color(Hex or RGBA)": "0.1 0.3 0.8 0.9",
"Status. Image Outline - Transparency": 1.0,
"Status. Image Outline - Distance(Leave empty to disable). Example '0.75 0.75'": "",
"Status. Text - Size": 12,
"Status. Text - Color(Hex or RGBA)": "#FFFFFF",
"Status. Text - Transparency": 1.0,
"Status. Text - Font(https://umod.org/guides/rust/basic-concepts-of-gui#fonts)": "RobotoCondensed-Bold.ttf",
"Status. Text - Offset Horizontal": 0,
"Status. Text Outline - Color(Hex or RGBA)": "#000000",
"Status. Text Outline - Transparency": 1.0,
"Status. Text Outline - Distance(Leave empty to disable)": "",
"Status. SubText - Size": 12,
"Status. SubText - Color(Hex or RGBA)": "#FFFFFF",
"Status. SubText - Transparency": 1.0,
"Status. SubText - Font": "RobotoCondensed-Bold.ttf",
"Status. SubText Outline - Color(Hex or RGBA)": "0.5 0.6 0.7 0.5",
"Status. SubText Outline - Transparency": 1.0,
"Status. SubText Outline - Distance(Leave empty to disable)": "",
"Status. Progress - Background Color(Hex or RGBA)": "1 1 1 0.15",
"Status. Progress - Background Transparency": 0.15,
"Status. Progress - Reverse": true,
"Status. Progress - Color(Hex or RGBA)": "#EFC570",
"Status. Progress - Transparency": 0.7,
"Status. Progress - OffsetMin": "0 0",
"Status. Progress - OffsetMax": "0 0",
"List of trade permissions": [
{
"Permission Name": "trader.default",
"Number of available trade slots": 3,
"Cooldown time(in seconds) before next trade": 600.0,
"Daily trade request limit. A value of 0 disables the limit": 50,
"Price to purchase a trade after exceeding the daily limit. A value of 0 disables the purchase": 5.0,
"Is it worth forbidding trade if the player is in a wounded state?": true,
"Is it worth forbidding trade if the player is swimming?": true,
"Is it worth forbidding trade if the player is mounted?": true,
"Is it worth forbidding trade if the player is in someone else's building privilege area?": true,
"Is it worth forbidding trade if the player has taken damage?": true,
"Is it worth forbidding trade if the player has combat block?": true,
"Is it worth forbidding trade if the player has raid block?": true,
"List of monuments where trade is forbidden": null,
"List of monument categories where trade is forbidden": [
"RadTown",
"RadTownWater",
"RadTownSmall",
"TunnelStation",
"Custom"
],
"List of forbidden trade items": [
"rock"
]
},
{
"Permission Name": "trader.vip",
"Number of available trade slots": 6,
"Cooldown time(in seconds) before next trade": 450.0,
"Daily trade request limit. A value of 0 disables the limit": 100,
"Price to purchase a trade after exceeding the daily limit. A value of 0 disables the purchase": 2.5,
"Is it worth forbidding trade if the player is in a wounded state?": true,
"Is it worth forbidding trade if the player is swimming?": true,
"Is it worth forbidding trade if the player is mounted?": true,
"Is it worth forbidding trade if the player is in someone else's building privilege area?": true,
"Is it worth forbidding trade if the player has taken damage?": true,
"Is it worth forbidding trade if the player has combat block?": true,
"Is it worth forbidding trade if the player has raid block?": true,
"List of monuments where trade is forbidden": null,
"List of monument categories where trade is forbidden": [
"RadTown",
"RadTownWater",
"TunnelStation"
],
"List of forbidden trade items": [
"rock"
]
},
{
"Permission Name": "realpve.vip",
"Number of available trade slots": 9,
"Cooldown time(in seconds) before next trade": 300.0,
"Daily trade request limit. A value of 0 disables the limit": 0,
"Price to purchase a trade after exceeding the daily limit. A value of 0 disables the purchase": 0.0,
"Is it worth forbidding trade if the player is in a wounded state?": false,
"Is it worth forbidding trade if the player is swimming?": false,
"Is it worth forbidding trade if the player is mounted?": false,
"Is it worth forbidding trade if the player is in someone else's building privilege area?": false,
"Is it worth forbidding trade if the player has taken damage?": false,
"Is it worth forbidding trade if the player has combat block?": false,
"Is it worth forbidding trade if the player has raid block?": false,
"List of monuments where trade is forbidden": [
"oilrig_1"
],
"List of monument categories where trade is forbidden": null,
"List of forbidden trade items": [
"rock"
]
}
],
"Version": {
"Major": 0,
"Minor": 1,
"Patch": 4
}
}
EN:
{
"CmdNotAllowed": "You do not have permission to use this command!",
"CmdPlayerNotFound": "Player '{0}' not found! You must provide the player's name or ID.",
"CmdMultiplePlayers": "Multiple players found: {0}",
"CmdEconomicsNotEnough": "Not enough funds!",
"CmdMain": "Available trade commands:\n\n<color=#D1CBCB>/trade</color> <color=#D1AB9A>bars *boolValue*(optional)</color> - Toggle status bar display\n<color=#D1CBCB>/trade</color> <color=#D1AB9A>*nameOrId*</color> - Send a trade request to the specified player\n<color=#D1CBCB>/trade</color> <color=#83BA7C>accept/yes</color> - Accept a pending trade request\n<color=#D1CBCB>/trade</color> <color=#DE5757>cancel/no</color> - Decline a pending or active trade\n<color=#D1CBCB>/trade</color> <color=#D1AB9A>limits</color> - View your trade limits\n<color=#D1CBCB>/trade</color> <color=#D1AB9A>buy limits *amount*(optional)</color> - Purchase additional trade requests\n<color=#D1CBCB>/trade</color> <color=#D1AB9A>buy cd *amount*(optional)</color> - Purchase a 60 second(* by amount) cooldown skip\n\n--------------------------------------------------",
"CmdBarsEnabled": "Status bar display enabled!",
"CmdBarsDisabled": "Status bar display disabled!",
"CmdDailyLimitExtra": "You have exceeded the daily limit({0}) for sending trade requests!\n<size=10>However, you can buy additional requests using the <color=#D1AB9A>/trade buy limits</color> command for <color=#D1CBCB>${1}</color></size>",
"CmdDailyLimit": "You have exceeded the daily limit({0}) for sending trade requests!",
"CmdCooldownSkip": "You must wait {0} seconds before sending another trade request!\n<size=10>However, you can skip the cooldown using the <color=#D1AB9A>/trade buy cd</color> command for <color=#D1CBCB>${1}</color> per 60 seconds</size>",
"CmdCooldown": "You must wait {0} seconds before sending another trade request!",
"CmdWoundBlock": "You can't trade while wounded!",
"CmdSwimming": "You can't trade while swimming!",
"CmdMountBlock": "You can't trade while mounted here!",
"CmdBuildingBlock": "You can't trade inside someone else's base!",
"CmdDamageBlock": "You can't trade while taking damage!",
"CmdCombatBlock": "You can't trade during combat block!",
"CmdRaidBlock": "You can't trade during a raid block!",
"CmdAcceptEmpty": "You have no pending trade requests!",
"CmdAcceptOngoing": "You already have an active trade with player '<color=#D1AB9A>{0}</color>'!",
"CmdDeclineEmpty": "You have no pending or active trades!",
"CmdDecline": "Trade between you and player '<color=#D1AB9A>{0}</color>' has been canceled!",
"CmdDeclineOther": "Player '<color=#D1AB9A>{0}</color>' canceled the trade with you!",
"CmdSendSelf": "You cannot send a trade request to yourself!",
"CmdSendNoRespond": "Player '<color=#D1AB9A>{0}</color>' has not responded to your trade request!",
"CmdSendAlredyHave": "You already have a pending or active trade with player '<color=#D1AB9A>{0}</color>'!\n<size=10><color=#83BA7C>/trade yes</color> - Accept the pending trade request\n<color=#DE5757>/trade no</color> - Decline the pending or active trade</size>",
"CmdSendTargetNotAllowed": "Player '<color=#D1AB9A>{0}</color>' does not have permission to use trading!",
"CmdSendTargetAlredyHave": "Player '<color=#D1AB9A>{0}</color>' already has a pending or active trade with player '<color=#D1AB9A>{1}</color>'!",
"CmdSendTargetHasCooldown": "Player '<color=#D1AB9A>{0}</color>' has an active cooldown, {1} seconds remaining!",
"CmdSendTo": "Trade request successfully sent to player '<color=#D1AB9A>{0}</color>'.",
"CmdSendFrom": "Player '<color=#D1AB9A>{0}</color>' has sent you a trade request.\n<size=10><color=#83BA7C>/trade yes</color> - Accept the pending trade request\n<color=#DE5757>/trade no</color> - Decline the pending or active trade</size>",
"CmdPurchaseNotLimited": "You haven't reached your daily limit yet!",
"CmdPurchaseHaveExtra": "You still have {0} additional trade requests! Use them before purchasing more.",
"CmdPurchaseLimitsNotAllowed": "Purchasing additional trade requests is unavailable!",
"CmdPurchasedLimits": "You have successfully purchased <color=#D1CBCB>{0}</color> trade requests!\n<size=10>Now you have <color=#D1CBCB>{1}</color> additional trade requests</size>",
"CmdPurchaseNoCooldown": "You don't have a cooldown for sending trade requests!",
"CmdPurchaseCooldownNotAllowed": "Purchasing a cooldown skip for trade requests is not available!",
"CmdPurchasedCooldown": "You have successfully purchased a cooldown skip for <color=#D1CBCB>{0} seconds</color> for trade requests!\n<size=10>Now you need to wait <color=#D1CBCB>{1} seconds</color></size>",
"CmdMyLimits": "Your trade request limits:\n\n<color=#D1CBCB>Cooldown</color> - <color=#D1AB9A>{0} sec</color>\n<color=#D1CBCB>Daily Limit</color> - <color=#D1AB9A>{1}</color>\n\n--------------------------------------------------",
"BarInitiator": "Trade to: {0}",
"BarTarget": "Trade from: {0}",
"BarCooldown": "Trade cooldown:",
"MsgStarted": "You have started a trade with player '<color=#D1AB9A>{0}</color>'!",
"MsgCompleted": "Trade with player '<color=#D1AB9A>{0}</color>' completed successfully!",
"MsgCanceled": "Player '<color=#D1AB9A>{0}</color>' canceled the trade!"
}
RU:
{
"CmdNotAllowed": "У вас недостаточно прав для использования этой команды!",
"CmdPlayerNotFound": "Игрок '{0}' не найден! Вы должны указать имя или ID игрока.",
"CmdMultiplePlayers": "Найдено несколько игроков: {0}",
"CmdEconomicsNotEnough": "Не достаточно средств!",
"CmdMain": "Доступные команды для трейда:\n\n<color=#D1CBCB>/trade</color> <color=#D1AB9A>bars *булевоеЗначение*(опционально)</color> - Переключение отображения статус баров\n<color=#D1CBCB>/trade</color> <color=#D1AB9A>*имяИлиАйди*</color> - Отправить запрос на трейд указанному игроку\n<color=#D1CBCB>/trade</color> <color=#83BA7C>accept/yes</color> - Принять ожидающий запрос на трейд\n<color=#D1CBCB>/trade</color> <color=#DE5757>cancel/no</color> - Отклонить ожидающий или активный трейд\n<color=#D1CBCB>/trade</color> <color=#D1AB9A>limits</color> - Узнать свои лимиты\n<color=#D1CBCB>/trade</color> <color=#D1AB9A>buy limits *количество*(опционально)</color> - Докупить дополнительное количество трейд запросов\n<color=#D1CBCB>/trade</color> <color=#D1AB9A>buy cd *количество*(опционально)</color> - Купить пропуск 60 секунд(* на количество) задержки перед отправкой трейд запросов\n\n--------------------------------------------------",
"CmdBarsEnabled": "Отображение статус баров включено!",
"CmdBarsDisabled": "Отображение статус баров выключено!",
"CmdDailyLimitExtra": "Вы превысили допустимую дневную норму({0}) на отправку трейд запросов!\n<size=10>Но вы можете купить дополнительные запросы с помощью команды <color=#D1AB9A>/trade buy limits</color> за <color=#D1CBCB>{1}$</color></size>",
"CmdDailyLimit": "Вы превысили допустимую дневную норму({0}) на отправку трейд запросов!",
"CmdCooldownSkip": "Перед отправкой нового запроса на трейд вам необходимо подождать {0} секунд!\n<size=10>Но вы можете купить пропуск задержки с помощью команды <color=#D1AB9A>/trade buy cd</color> за <color=#D1CBCB>{1}$</color> за каждые 60 секунд</size>",
"CmdCooldown": "Перед отправкой нового запроса на трейд вам необходимо подождать {0} секунд!",
"CmdWoundBlock": "Вам запрещено пользоваться трейдом в предсмертном состоянии!",
"CmdSwimming": "Вам запрещено пользоваться трейдом в воде!",
"CmdMountBlock": "Вам запрещено пользоваться трейдом сидя в данном месте!",
"CmdBuildingBlock": "Вам запрещено пользоваться трейдом в чужой базе!",
"CmdDamageBlock": "Вам запрещено пользоваться трейдом при получении урона!",
"CmdCombatBlock": "Вам запрещено пользоваться трейдом во время боя!",
"CmdRaidBlock": "Вам запрещено пользоваться трейдом во время рейда!",
"CmdAcceptEmpty": "У вас нет ожидающих запросов на трейд!",
"CmdAcceptOngoing": "У вас уже есть активный трейд с игроком '<color=#D1AB9A>{0}</color>'!",
"CmdDeclineEmpty": "У вас нет ожидающих или активных трейдов!",
"CmdDecline": "Трейд между вами и игроком '<color=#D1AB9A>{0}</color>' отменён!",
"CmdDeclineOther": "Игрок '<color=#D1AB9A>{0}</color>' отменил трейд с вами!",
"CmdSendSelf": "Нельзя отправить трейд запрос самому себе!",
"CmdSendNoRespond": "Игрок '<color=#D1AB9A>{0}</color>' не ответил на ваш трейд запрос!",
"CmdSendAlredyHave": "У вас уже есть ожидающий или активный трейд с игроком '<color=#D1AB9A>{0}</color>'!\n<size=10><color=#83BA7C>/trade yes</color> - Принять ожидающий запрос на трейд\n<color=#DE5757>/trade no</color> - Отклонить ожидающий или активный трейд</size>",
"CmdSendTargetNotAllowed": "У игрока '<color=#D1AB9A>{0}</color>' недостаточно прав для использования обмена!",
"CmdSendTargetAlredyHave": "У игрока '<color=#D1AB9A>{0}</color>' уже есть ожидающий или активный трейд с игроком '<color=#D1AB9A>{1}</color>'!",
"CmdSendTargetHasCooldown": "У игрока '<color=#D1AB9A>{0}</color>' имеется активный кулдаун, осталось {1} секунд!",
"CmdSendTo": "Игроку '<color=#D1AB9A>{0}</color>' был успешно отправлен запрос на трейд.",
"CmdSendFrom": "Игрок '<color=#D1AB9A>{0}</color>' отправил вам запрос на трейд.\n<size=10><color=#83BA7C>/trade yes</color> - Принять ожидающий запрос на трейд\n<color=#DE5757>/trade no</color> - Отклонить ожидающий или активный трейд</size>",
"CmdPurchaseNotLimited": "Вы ещё не исчерпали свой дневной лимит!",
"CmdPurchaseHaveExtra": "У вас ещё есть {0} дополнительных трейд запросов! Используйте их прежде, чем покупать новые.",
"CmdPurchaseLimitsNotAllowed": "Покупка дополнительных трейд запросов недоступна!",
"CmdPurchasedLimits": "Вы успешно докупили <color=#D1CBCB>{0}</color> трейд запросов!\n<size=10>Теперь у вас <color=#D1CBCB>{1}</color> дополнительных трейд запросов</size>",
"CmdPurchaseNoCooldown": "У вас нет задержки на отправку трейд запросов!",
"CmdPurchaseCooldownNotAllowed": "Покупка пропуска задержки на трейд запросы недоступна!",
"CmdPurchasedCooldown": "Вы успешно купили пропуск на <color=#D1CBCB>{0} секунд</color> задержки для трейд запросов!\n<size=10>Теперь вам нужно подождать <color=#D1CBCB>{1} секунд</color></size>",
"CmdMyLimits": "Ваши лимиты трейд запросов:\n\n<color=#D1CBCB>Время задержки</color> - <color=#D1AB9A>{0} сек</color>\n<color=#D1CBCB>Дневной лимит</color> - <color=#D1AB9A>{1}</color>\n\n--------------------------------------------------",
"BarInitiator": "Трейд с: {0}",
"BarTarget": "Трейд от: {0}",
"BarCooldown": "Задержка трейда:",
"MsgStarted": "Вы начали трейд с игроком '<color=#D1AB9A>{0}</color>'!",
"MsgCompleted": "Трейд с игроком '<color=#D1AB9A>{0}</color>' успешно завершён!",
"MsgCanceled": "Игрок '<color=#D1AB9A>{0}</color>' отменил трейд!"
}
bars *boolValue*(optional) - Toggle status bar display.
*nameOrId* - Send a trade request to the specified player.
accept/yes - Accept a pending trade request.
cancel/no - Decline a pending or active trade.
limits - View your trade limits.
buy limits *amount*(optional) - Purchase additional trade requests.
buy cd *amount*(optional) - Purchase a 60 second(* by amount) cooldown skip.
Example:
/trade bars true
/trade iiiaka
/trade yes
/trade limits
/trade buy limits 1
/trade buy limits 0.5