About Reputation Master
Adds a reputation system, similar to the well-known Infestation Survivor Stories(The WarZ).
More information on how the plugin works can be found at the bottom in the "Principle of work" section.
P.S. Before making a purchase, I kindly ask you to carefully review all the features of the plugin, especially the configuration file.
- Displaying the reputation to other players while a waving;
- Displaying reputation above the player while aiming. Unfortunately, the reputation will also be displayed if a player is in certain bushes;
- Displaying the reputation of all visible players in the bandit zone;
- Forbidding bandits from visiting Safe Zones(except Bandit Camp). Also, notifying players about it.
- reputationmaster.vip - Provides the ability to set a fake rank value.
- reputationmaster.admin - Provides the ability to set or reset reputation value to other players.
{
"ImageLibrary Counter Check": 5,
"Reputation Master command": "rep",
"Use GameTip for messages?": true,
"Use ddraw command, for displaying the rank? NOTE! To use, an administrator flag is required, which is granted before rendering and revoked immediately after issuing the command": true,
"Is it worth displaying reputation when aiming at a player with a scope (ddraw should be enabled)? NOTE! The player's reputation may be displayed in certain bushes": false,
"The time of self-defense for a lawman against an attack by another lawman(in minutes).": 15,
"Forbid bandits from visiting the SafeZone(except for Banditcamp)?": true,
"The time(in seconds) a bandit can stay in the SafeZone before being killed, and anyone can loot their loot": 10.0,
"The prefab name of the effect upon killing a bandit in the SafeZone": "assets/prefabs/misc/xmas/advent_calendar/effects/open_advent.prefab",
"Banditcamp custom position(xyz, example: '91.96 36.47 558.32'). Leave it blank to use default.": "",
"The minimum value for fake reputation": -10000,
"The maximum value for fake reputation": 10000,
"UI. Display rank in the status bar(the AdvancedStatus plugin is required)": true,
"UI. Status - Height": 30,
"UI. Position - Left to Right": true,
"UI. Position - AnchorMin": "1 0.9",
"UI. Position - AnchorMax": "1 0.9",
"UI. Position - OffsetMin": "-208 -15",
"UI. Position - OffsetMax": "-16 15",
"UI. Text - Font(https://umod.org/guides/rust/basic-concepts-of-gui#fonts)": "RobotoCondensed-Bold.ttf",
"UI. Text - Font Color(empty to use by rank)": "",
"UI. Text Value - Font Color(empty to use by rank)": "",
"UI. Text - Font Size": 14,
"UI. Background - Transparency": 0.6,
"UI. Reputation Positive Value Image - URL": "https://i.imgur.com/HKqyHO8.png",
"UI. Reputation Negative Value Image - URL": "https://i.imgur.com/mMdm55h.png",
"UI. Added Value Sound - Prefab Name": "assets/bundled/prefabs/fx/notice/item.select.fx.prefab",
"List of available reputations": [
{
"MinRange": -3.40282347E+38,
"MaxRange": -1000.0,
"Name": "Assassin",
"Reward": 20.0,
"Penalty": 0.0,
"IsLawman": false,
"AllowSafeZone": false,
"IsDefault": false,
"ImgURL": "https://i.imgur.com/CdDKpwv.png",
"Color": "#FF341E"
},
{
"MinRange": -999.99,
"MaxRange": -600.0,
"Name": "Villain",
"Reward": 15.0,
"Penalty": 0.0,
"IsLawman": false,
"AllowSafeZone": false,
"IsDefault": false,
"ImgURL": "https://i.imgur.com/XBXToOD.png",
"Color": "#FF7466"
},
{
"MinRange": -599.99,
"MaxRange": -300.0,
"Name": "Hitman",
"Reward": 10.0,
"Penalty": 0.0,
"IsLawman": false,
"AllowSafeZone": false,
"IsDefault": false,
"ImgURL": "https://i.imgur.com/9ZzkdWA.png",
"Color": "#FF9489"
},
{
"MinRange": -299.99,
"MaxRange": -100.0,
"Name": "Bandit",
"Reward": 4.0,
"Penalty": 0.0,
"IsLawman": false,
"AllowSafeZone": false,
"IsDefault": false,
"ImgURL": "https://i.imgur.com/uF1M1DC.png",
"Color": "#FF9D1E"
},
{
"MinRange": -99.99,
"MaxRange": -25.0,
"Name": "Outlaw",
"Reward": 3.0,
"Penalty": 0.0,
"IsLawman": false,
"AllowSafeZone": true,
"IsDefault": false,
"ImgURL": "https://i.imgur.com/e6Th4li.png",
"Color": "#FFC442"
},
{
"MinRange": -24.99,
"MaxRange": -5.0,
"Name": "Thug",
"Reward": 2.0,
"Penalty": 0.0,
"IsLawman": false,
"AllowSafeZone": true,
"IsDefault": false,
"ImgURL": "https://i.imgur.com/SvFePzj.png",
"Color": "#FFDA89"
},
{
"MinRange": -4.99,
"MaxRange": 9.99,
"Name": "Civilian",
"Reward": 1.0,
"Penalty": -1.0,
"IsLawman": true,
"AllowSafeZone": true,
"IsDefault": true,
"ImgURL": "https://i.imgur.com/cgi9T1D.png",
"Color": "#5EC0CA"
},
{
"MinRange": 10.0,
"MaxRange": 19.99,
"Name": "Constable",
"Reward": 2.0,
"Penalty": -1.0,
"IsLawman": true,
"AllowSafeZone": true,
"IsDefault": false,
"ImgURL": "https://i.imgur.com/6M1TaL1.png",
"Color": "#72DCDB"
},
{
"MinRange": 20.0,
"MaxRange": 79.99,
"Name": "Deputy",
"Reward": 3.0,
"Penalty": -2.0,
"IsLawman": true,
"AllowSafeZone": true,
"IsDefault": false,
"ImgURL": "https://i.imgur.com/sDxPbEK.png",
"Color": "#99FFFF"
},
{
"MinRange": 80.0,
"MaxRange": 249.99,
"Name": "Lawman",
"Reward": 4.0,
"Penalty": -15.0,
"IsLawman": true,
"AllowSafeZone": true,
"IsDefault": false,
"ImgURL": "https://i.imgur.com/MZCEjDD.png",
"Color": "#66FEFF"
},
{
"MinRange": 250.0,
"MaxRange": 499.99,
"Name": "Guardian",
"Reward": 10.0,
"Penalty": -40.0,
"IsLawman": true,
"AllowSafeZone": true,
"IsDefault": false,
"ImgURL": "https://i.imgur.com/RrzkQls.png",
"Color": "#1EFEFF"
},
{
"MinRange": 500.0,
"MaxRange": 999.99,
"Name": "Vigilante",
"Reward": 15.0,
"Penalty": -60.0,
"IsLawman": true,
"AllowSafeZone": true,
"IsDefault": false,
"ImgURL": "https://i.imgur.com/OE9Qsti.png",
"Color": "#00D6D6"
},
{
"MinRange": 1000.0,
"MaxRange": 3.40282347E+38,
"Name": "Paragon",
"Reward": 20.0,
"Penalty": -125.0,
"IsLawman": true,
"AllowSafeZone": true,
"IsDefault": false,
"ImgURL": "https://i.imgur.com/6yzrXE0.png",
"Color": "#0AFBFB"
}
],
"Version": {
"Major": 0,
"Minor": 1,
"Patch": 0
}
}
Note:
- To use ddraw, an administrator flag is required, which is granted before rendering and revoked immediately after issuing the command.
- The player's reputation may be displayed in certain bushes.
{ "MinRange": -3.40282347E+38, "MaxRange": -1000.0, "Name": "Assassin", "Reward": 20.0, "Penalty": 0.0, "IsLawman": false, "AllowSafeZone": false, "IsDefault": false, "ImgURL": "https://i.imgur.com/CdDKpwv.png", "Color": "#FF341E" }, { "MinRange": -4.99, "MaxRange": 9.99, "Name": "Civilian", "Reward": 1.0, "Penalty": -1.0, "IsLawman": true, "AllowSafeZone": true, "IsDefault": true, "ImgURL": "https://i.imgur.com/cgi9T1D.png", "Color": "#5EC0CA" }, { "MinRange": 1000.0, "MaxRange": 3.40282347E+38, "Name": "Paragon", "Reward": 20.0, "Penalty": -125.0, "IsLawman": true, "AllowSafeZone": true, "IsDefault": false, "ImgURL": "https://i.imgur.com/6yzrXE0.png", "Color": "#0AFBFB" }
- MinRange, MaxRange - Range of values for the group rank;
- Name - Name of the rank;
- Reward - Reward for killing or reviving(divided by 2) a player in this rank. If the initiating player has IsLawman = true, the value will be positive, otherwise, it will be negative;
- Penalty - Penalty for a peaceful player of this rank, for killing another peaceful player. If the target did not initiate this pvp first;
- IsLawman - Does the rank apply to peaceful players?
- AllowSafeZone - Is this rank allowed to visit Safe Zones (except Bandit Camp)? The "Forbid bandits from visiting the SafeZone (except for Banditcamp)" config should be set to true;
- IsDefault - Default rank. Note: only one rank can be set as default;
- ImgURL - Rank image;
- Color - Rank color.
EN:
{
"MsgNotAllowed": "You do not have permissions to use this command!",
"MsgPlayerNotFound": "The specified player was not found!",
"MsgPlayerMoreThanOne": "More than one player found!",
"MsgResetAllValues": "Successfully reset {0} reputations!",
"MsgResetPlayerValue": "{0}'s reputation successfully reset!",
"MsgFakeValueSucceeded": "Value {0} successfully set as fake!",
"MsgFakeValueFailed": "You need to specify a digit value for the fake reputation.",
"MsgBanditZoneSet": "Position {0} successfully set for Bandit Camp!",
"MsgBanditZoneSetDefault": "Default position {0} set for Bandit Camp!",
"MsgBanditZoneSetNoSafeZone": "Safe Zone is not available near position {0}!",
"MsgBanditZoneFailed": "Failed to set {0} as the position for the Bandit Camp!",
"MsgPlayerNewValue": "Player {0} assigned a new reputation value: {1}({2})!",
"MsgPlayerNewValueWrong": "Incorrect format! Example: '/rep *userNameOrId* *value*'.",
"MsgReputation": "Reputation",
"MsgNewReputation": "Congratulations! You've reached a new reputation rank {0}!",
"MsgKillNoPenalty": "You have killed {0}({1}). However, since he attacked you first, you will not be penalized.",
"MsgInit": "You attacked {0}({1}) first. If he kills you within {2} minutes, he will not receive a penalty.",
"MsgBanditEnterSafeZone": "You are not welcome here! If you do not leave this place, you will be killed in {0} seconds.",
"MsgBanditLeaveSafeZone": "Do not return here anymore! Individuals like you belong in the Bandit Camp!",
"MsgLawmanEnterBanditZone": "You've entered the Bandit Camp! Be cautious, there are plenty of outlaws around here!",
"MsgLawmanLeaveBanditZone": "You've left the Bandit Camp! We recommend avoiding this place.",
"MsgBanditEnterBanditZone": "Welcome to the Bandit Camp! Make yourself at home!",
"MsgBanditLeaveBanditZone": "You've left the Bandit Camp! We hope for your swift return!",
"MsgShowPlayerReputation": "{0}'s rank is {1}({2})."
}
RU:
{
"MsgNotAllowed": "У вас недостаточно прав для использования этой команды!",
"MsgPlayerNotFound": "Указанный игрок не найден!",
"MsgPlayerMoreThanOne": "Найдено игроков больше чем один!",
"MsgResetAllValues": "Успешно сброшено {0} репутаций!",
"MsgResetPlayerValue": "Репутация игрока {0} успешно сброшена!",
"MsgFakeValueSucceeded": "Ложное значение {0} успешно установлено!",
"MsgFakeValueFailed": "Вам необходимо указать числовое значение ложной репутации.",
"MsgBanditZoneSet": "Позиция {0}, успешно установлена для Лагеря Бандитов!",
"MsgBanditZoneSetDefault": "Позиция по умолчанию {0}, установлена для Лагеря Бандитов!",
"MsgBanditZoneSetNoSafeZone": "Рядом с позицией {0} нет Сейф Зоны!",
"MsgBanditZoneFailed": "{0} не удалось установить как позицию для Лагеря Бандитов!",
"MsgPlayerNewValue": "Игроку {0} установлено новое значение репутации: {1}({2})!",
"MsgPlayerNewValueWrong": "Не верный формат! Пример: '/rep *имяИлиИд* *значение*'.",
"MsgReputation": "Репутация",
"MsgNewReputation": "Поздравляем! Вы получили новый ранг репутации {0}!",
"MsgKillNoPenalty": "Вы убили {0}({1}). Но так как он первым вас атаковал, вас не накажут.",
"MsgInit": "Вы первым атаковали {0}({1}). Если он вас убьет в течении {2} минут, то не получит штрафа.",
"MsgBanditEnterSafeZone": "Вам здесь не рады! Если вы не покинете это место, то вас убьет через {0} секунд.",
"MsgBanditLeaveSafeZone": "Больше сюда не возвращайтесь! Таким как вы место в Лагере Бандитов!",
"MsgLawmanEnterBanditZone": "Вы пришли в Лагерь Бандитов! Будьте бдительны, здесь полно отморозков!",
"MsgLawmanLeaveBanditZone": "Вы покинули Лагерь Бандитов! Советуем обходить это место.",
"MsgBanditEnterBanditZone": "Добро пожаловать в Лагерь Бандитов! Будьте как дома!",
"MsgBanditLeaveBanditZone": "Вы покинули Лагерь Бандитов! Надеемся на скорое ваше возвращение!",
"MsgShowPlayerReputation": "Ранг игрока {0}: {1}({2})."
}
- fake *value* - Sets a fake reputation value for display to other players.
-
reset *userNameOrID* - Resets the reputation of the specified player. Permission "reputationmaster.admin" required.
- reset all - Resets the reputation of all players. Permission "reputationmaster.admin" required.
- *userNameOrID* *value* - Sets a new reputation value for the specified player. Permission "reputationmaster.admin" required.
- banditzone *pos* - New position(x, y, z) for the bandit zone. Requires a safezone. Permission "reputationmaster.admin" required.
Example: /rep fake 150
-
ReputationValueUpdated:
- Called after the player's reputation value has changed.
void ReputationValueUpdated(ulong userID, string repName, float repValue) { Puts($"{userID} updated a reputation value to {repValue}. Current reputation rank is {repName}."); }
-
ReputationUpdated:
- Called after player received a new reputation rank.
void ReputationUpdated(ulong userID, string oldRep, string newRep, bool isLawman, bool allowSafeZone, float repValue) { Puts($"{userID} has updated their rank from {oldRep} to {newRep}. Is peaceful: {isLawman}\nSafe Zones: {allowSafeZone}\nReputation Value: {repValue}"); }
-
(float) GetReputationValue(ulong userID) - Returns the reputation value of the specified player. Returns null if the player is not found.
- GetReputationValue(string userID)
-
(string) GetReputationName(ulong userID) - Returns the reputation name of the specified player. Returns null if the player is not found.
- GetReputationName(string userID)
You can create as many reputation ranks as you want, but there are only two main groups:
- Lawmen(peaceful or civilians);
- Outlaws(bandits).
Each kill has a different scores depending of the reputation rank of the victim and attacker. For exampe, if you are a Civilian, you will receive:
- Paragon: -20
- Vigilant: -15
- Guardian: -10
- Lawman: -4
- Deputy: -3
- Constable: -2
- Civillian: -1
- Thug: +2
- Outlaw: +3
- Bandit: +4
- Hitman: +10
- Villain: +15
- Assassin: +20
Reviving:
For reviving a player, you will receive a reward divided by 2. If the target is a lawman, the reward will be positive, else if a target is a bandit, it will be negative. Also, this is the only way out of bandit rank for bandits.
Outlaw:
When you reach the outlaw reputation, you have no more back! Except for reviving a peaceful player.
You can kill other bandits but still counting as negative reputation! So, after you reach the outlaw reputation rank, scores by killing a player of a certain reputation will be as follows(negative reward value) :
- Paragon: -20
- Vigilant: -15
- Guardian: -10
- Lawman: -4
- Deputy: -3
- Constable: -2
- Civillian: -1
- Thug: -2
- Outlaw: -3
- Bandit: -4
- Hitman: -10
- Villain: -15
- Assassin: -20
Lawman:
The scores will be as follows for each kill a outlaw reputation ranks(positive reward value) :
- Assassin: +20
- Villain: +15
- Hitman: +10
- Bandit: +4
- Outlaw: +3
- Thug: +2
But for killing a peaceful player, you will receive penalties based on your rank. A list of penalties for each reputation rank:
- Paragon: -125
- Vigilante: -60
- Guardian: -40
- Lawman: -15
- Deputy: -2
- Constable: -1
- Civilian: -1
There is also a self-defense system that works as follows: If a peaceful player initiates an attack on another peaceful player, a timer of 15 minutes(sets from config) is activated, during which the victim can kill the attacker without penalties.
So, it's very hard to become a lawman, and it's very easy to get out from lawman.