Clockwork has a built-in faction ranking system, which is where RankPromote and RankDemote come from. It allows you to assign a character a rank within their faction without them having to have any tag in their name, whilst being easy to modify and allowing you to set models + other properties for each rank. Below is an example of rank configuration:
Code:
FACTION.ranks = {
["RCT"] = {
position = 5,
class = "Metropolice Recruit"
},
["EpU"] = {
position = 4,
class = "Elite Metropolice",
model = "models/leet_police2.mdl"
},
["OfC"] = {
position = 3,
class = "Elite Metropolice",
model = "models/policetrench.mdl"
},
["DvL"] = {
position = 2,
class = "Elite Metropolice",
model = "models/eliteshockcp.mdl"
},
["SeC"] = {
position = 1,
canPromote = 3,
class = "Elite Metropolice",
model = "models/sect_police2.mdl"
},
["SCN"] = {
class = "Metropolice Scanner",
isScanner = true,
maxArmor = 0
},
["SYNTH"] = {
class = "Metropolice Scanner",
isScanner = true,
maxHealth = 200,
maxArmor = 0
}
};
The position field indicates the rank's standing in the faction, with a lower position meaning higher in the hierarchy. canPromote states the maximum position that the given rank can promote up to. maxHealth and maxArmor take priority over the same field for the faction table, allowing different ranks to have different starting amounts of health and armour.
Although I've used MPF as an example, this system does not by default replace all of the functionality of the Combine ranking mechanism built into HL2RP. This means the ranking system is most effective for introducing ranks to non-Combine roles by default.