Gmod Karma + Reputation System - Script
Gmod Karma System will allow your Gmod server to define the reputation of a user according to his Karma points which are segmented in several alignments that you will have defined and in quantity that you will need, for example a user will be able to have a title: Very Bad, Bad, Neutral, Friendly, Very Friendly... You can create your own levels and define a karma according to the user's actions in an automated way. The system also provides a system of restricting jobs based on the number of karma points required. For example, bad people can only be Slytherin, this is just an example. You can also use this system outside of the gameplay but as an additional administration tool where you can manually set the player's reputation. This ultra-modular system will have whatever role you decide to give it. Customizable karma gauge display on the HUD included.
❮
❯
Description of Gmod Karma + Reputation System
Contents:- π What is Gmod Karma and Reputation System
- π¦ Contents of Gmod Karma and Reputation System
- β What type of need can Gmod Karma and Reputation System meet?
- βοΈ The integrated administration panel
- ποΈ Database and database management integrated
- π Modular Karma system options
- π¨ HUD of editable karma gauge and reputation indicator
- βοΈ Known compatibility
- 𧲠Symbiosis between existing scripts
- 𧩠APIs for devs
π What is Gmod Karma and Reputation System?
Gmod Karma and Reputation System adds a Karma and Reputation system for your Garry's Mod server (as the name suggests). It defines a player's reputation rank based on his or her level of Karma points.
These points can have a real meaning for the people and the communities they participate in. But also in the judgment of the moderation and administration team. In addition to being able to restrict access to certain functions according to the reputation gained or lost. Karma reflects who the user really is. Except in the case of roleplay, which allows you to remember that the character is playing a villain.
The system will automatically assign titles of distinction to a user based on their reputation which will evolve based on their good and bad deeds on your server, you can assign it manually or define in the options panel which deeds will distribute karma points based on the consequences. Although this can be changed, by default the karma points go from 0 to 1000. You can create as many levels as you want, named by titles. For example, by default
100 karma points = Very bad person (or super bad, you can rename them as you like)
400 karma points = Bad person.
600 karma points = Neutral person.
750 karma points = Good person.
1000 karma points = Very good person.
If you want to remove or add intermediates, it's your choice.
You will be able to rename its levels and add some to match the theme of your Gmod server. You will also be able to modulate the points it takes to reach its levels. Titles indicating the user's alignment are distributed automatically according to the number of points the user has. APIs exist to integrate them directly into other GMod addons and are provided in the description and the Wiki.
Finally, actions have consequences. If you don't use it to enrich the history of your server, you can use it as an add-on to the administration system. No more digging through logs to find evidence.
Why did I think of a karma system?
I thought it was a good idea because I already coded a Karma system initially on my Gamemode for my server and it served me well. In my own case, I had several servers, one PvP and one PvE, but it was impossible to enforce the PvE (players versus environment) rules. PvP players just wanted to kill other players and were eventually banned by the team. Stronger rules never solved this problem and it required a lot of presence. So I stopped calling the server PvP and PvE and created a karma system that allowed me to classify PvP players who attacked the good guys as "Bandit" automatically when they killed neutral and friendly players. This allowed PvE players to band together to defend themselves and cooperate against players who were labeled as bandits, because before you couldn't tell who was good or bad, the good player would end up losing their character because the bad player was the first to attack. With a karma-based system, PvP players have their PvP. And PvE players can avoid combat or help each other by forming support groups. And I stopped banning people who kill players on PvE servers, the bandit has become part of the gameplay.
This kind of situation concerns me but the fact that this script is designed to be modular and adapt to all gamemodes will allow you to adapt it to your needs from the included administration interface.
The system can be used in two ways. Either in an administrative and private way, it indicates that the player is not very well intentioned because his reputation is tarnished by his actions (or improved).
Or in the RP or Lore, it will tell who is on the side of the good guys or the bad guys.
The icing on the cake is that this system will also allow you to limit access to professions according to the user's reputation. For example, to be a police officer, you must have a certain level of Karma, otherwise access to the job will be denied.
You will also be able to restrict access to my merchants according to their Karma points (Scripts already compatible in the store below)
Feel free to consult the wiki which provides more detailed information.
π¦ Contents of Gmod Karma and Reputation System
1. A database that saves the reputation of users, when they log back in they get their reputation back.
2. A system that allows you to configure the gauge of Karma displayed on the HUD and customize it.
3. A module system editable from the management panel that allows you to define the rules of behavior of the karma system.
4. A Job and Job Category Management System that allows you to restrict access based on the required Karma.
5. Compatibility with different scripts that allows to define rules according to the user's karma and make life easier.
6. Admin panel.
β What kind of need can Gmod Karma and Reputation System meet?
You need a system that allows you to display a player's reputation based on their actions for your Gmod server.
You want the reputation points to allow access to Jobs on Gmod in DarkRP mode (If darkrp is not installed this will concern :Team() instead of jobs).
Do you want to display which players are reliable and which are not?
You want to display the character alignments Good or Bad.
You want to abandon the idea of making a PvE or PvP server by creating a system of bandit and friendly players.
You want to restrict access to a school in Hogwarts based on the user's karma so that the hat doesn't face something random.
You need an administration tool that allows you to make fairer decisions when dealing with a problem that affects a user. For example you can set the system to complain about a player who has a bad reputation is not harmless. It is up to you how you will use this system.
βοΈ The integrated administration panel
You have the possibility to manage everything from an interface you are now used to see. And to switch between all the interfaces of my different systems from the shortened buttons.
From this single interface you will be able to manage the database, the DarkRP jobs (or team), the modules, and the HUD.
ποΈ Database and integrated database management
The database allows you to save the reputation of players or their characters.
You will be able to manually set the karma points of players that will define the title of their reputation if you have the need to make an exclusively manual system is possible, each option that automates the distribution of karma points based on the actions of the user is disable.
π Modular Karma system options
The module panel allows you to enable and disable a wide variety of options. Disabled options are not dormant but completely inactive.
The list of modules:
karma_start: New users arrive on your server with this karma
karma_restriction_job: Job restriction system based on karma (if DarkRP installed)
karma_account: ON= Account reputation. OFF= From characters (Character System)
karma_lost: Karma points lost when a player dies. 0=OFF
reward_karma_time: Players gain karma in game time, in seconds. 0=OFF
reward_karma_points: Karma points earned per game time.
jb_reward_timer: Loop in seconds of the karma point system of a busy Job. 0=OFF
karma_notif_change: Notify the user when his karma points change
karma_chat_cmd: Activate the Chat: /rep or /mykarma command to know his rank
karma_npckill: Karma earned when the player kills a npc. 0=OFF
karma_pvpkill: Karma earned when the player kills another player. 0=OFF
karma_teamkill: Karma lost when the player kills a player of the same team/job. 0=OFF
karma_badkill: Killing a player who has a good Karma (>750) makes the player lose Karma points. 0=OFF
karma_goodkill: Killing a player with bad Karma (<400) gives karma points. 0=OFF
π¨ Editable Karma Gauge and Reputation Indicator HUD
You have the option to make the Karma Gauge and Reputation Title visible or hide it via the HUD which offers 15 more or less discreet display styles on the HUD. The position, size, colors and format of the text displayed will be modified as you wish without coding a single line of Lua or GLua.
βοΈ Known compatibility
Job limitations by karma points will allow for example to restrict DarkRP jobs and this system will not conflict with BWhitelist, nor Nordahl Whitelist System.
𧲠Symbiosis between existing scripts
If you are wondering if my scripts will already be compatible with the Karma System at its release. Yes they will be.
None of my scripts are DLC. Each one plays its role individually and all of them can work without any Gamemode, when you put them together you get an automatically supported symbiosis between their features. This means that features will complement each other without interference. And if this is the case the technical support also consists of updating each Originahl Scripts.
So among the scripts already in the store:
1. Ability to display karma and rank only in the user's inventory and not on his HUD with Gmod Advanced Inventory System
2. Ability to restrict access to a merchant NPC depending on the number of karma points of the user. This concerns the Gmod Items Bank and the Gmod Items Dealer.
3. Ability to display the user's karma title in the Scoreboard with Gmod Scoreboard Modulable
4. Ability to set precise karma gains and losses when killing NPCs with Gmod NPC Reward Manager e.g. if you kill this NPC you lose karma points. If you kill the other one you will be able to gain Karma points.
𧩠APIs for devs
player:Karma() -- Returns the number of karma points of the user. (Client + Server)
player:GetMaxKarma() -- Returns the maximum karma. (Client + Server)
player:GetKarmaRank() -- Returns the name of the reputation title. (Client + Server)
player:addKarma(add,text) -- Add and remove karma points. Works with positive and negative numeric values. (Server)
player:setKarma(add) -- Allows you to directly set the number of karma points of the user. (Server)
Path: garrysmod/addons/norda_karma_system
- The AddWorkshop function is automatically added to the script server file and can be deactivated from the configuration file. : resource.AddWorkshop( 2958612490 )
- To add gmod workshop resources to your collection : Gmod Karma + Reputation System [Content Only] | Gmod Workshop
1- The console command: norda_karma_system
2- Easier from the Karma System button in the admin panel. This avoids searching for the name of the command.
Specify the time in seconds in the line: reward_karma_time. By default 0 sec.
And indicate the number of points per loop under the line: reward_karma_points. Default 0 pts.
The rest is done in the job management panel.
player:GetMaxKarma() -- Returns the maximum karma. (Client + Server)
player:GetKarmaRank() -- Returns the name of the reputation title. (Client + Server)
player:addKarma(add,text) -- Add and remove karma points. Works with positive and negative numeric values.(Server)
player:setKarma(add) -- Allows you to directly set the number of karma points for the user. (Server)
See the API list above.
Gmod Scoreboard Editable supports it.
For all other systems please refer to the APIs given above for the devs.