-
Notifications
You must be signed in to change notification settings - Fork 13
Specifics
This page contains all the noteworthy specifications
The plugin, having a full customization perspective provides a wide choice for spawn location.
CompleteRandomSpawn
ZoneSpawn
RoomsSpawn
PositionSpawn
KeepRoleSpawn
KeepCurrentPositionSpawn
This flag means that this role will be spawned in a random room of the facility.
This flag means that you can define one or more zone(s) where the player will spawn.
The room choice is randomic.
You'll need to define the SpawnRooms as an array of room type IDs (for exampe LczToilets
) and the spawn manager will pick a random item from the list and spawnt the player at that room.
This flag means that you can define the spawn position using coordinates (x, y, z).
With this flag the CustomRole will spawn in its RoleType's position.
You'll keep the current player position while becoming a custom role.
Many enums are not defined by us but by EXILED, so please take a look at these:
UncomplicatedCustomRoles, to make its job easier uses a custom object for defining the effects that are given to a role. Illustrated below:
Yeah, you can understand nothing here :D
public abstract EffectType EffectType { get; set; }
public abstract float Duration { get; set; }
public abstract byte Intensity { get; set; }
public abstract bool Removable { get; set; }
Here you should understand :/
duration: 5,
effect_type: Bleeding,
intensity: 1
removable: true
The effect
property of UCR is an array so you can add how much effect as you want.
As v1.6.7 to have infinite effect(s) you must put the duration
to a value less than 0
(for example -1
).
The removable
param, which is effective only for infinite effects, let you choose if SCP-500
can clear or not the effect
From v3.0.0
the nickname feature has been added (again!).\
You can choose multiple nicknames and UCR will pick one.
Just split them with a comma (,
):
nickname: 'Fox,UwU,Dr.Agenda is a Furry,HELLO,Italy
You can also use placeholders in order to customize nicknames.
Available:
%nick% -> Player's nickname
%rand% -> Random 1 digit number
%dnumber% -> Random 4 digit number
You probably happened to have an incredible 2000-line error due to the YAML parser finding something it doesn't like and then breaking down.
To locate the error so you scramble online to put the YAML into a validator and what does it say? YAML is Valid
Wtf?
I'll explain, the validator doesn't check the types of each variable, EXILED does and it gets upset if you get something wrong so you might have put a float
instead of an int
, who knows.
The plugin includes an automatic feature for statistical purposes that sends a request (ping) to our servers to register it as a UCS family plugin owner.
The following data is transmitted in the request:
- Your server IPv4 and port (the IPv4 by the request itself, the port by a GET param)
- The UCR version that you're using
- The number of cores that your server have
The data are saved according to the planned European regulations (GDPR) and it is possible at any time to access them, request rectification, deletion or portability by writing to me on Discord!
Tip
To disable this function, create a file named .nohttp
in the UncomplicatedCustomRoles
folder!
The is_friend_of
is a param that will allow you to choose which teams can't damage (and be damaged) by this custom role.
To add multiple team simply add a comma (,
):
is_friend_of: SCPs, ChaosInsurgency
From v3.0.0
you'll be able to choose the role of the player after escaping in every scenario, even when it's cuffed.
To ensure maximum customization, we implemented a system for role decision after escaping with a special notation.\
role_after_escape: 'XX:Id'
XX
-> It is used to indicate whether you want to indicate a basic SCP:SL role or a custom role created with the plugin. IR
stands for "Internal Role" so a basis SCP:SL role, CR
stands for "Custom Role" so a role created with the plugin.
Id
-> The int
Id (or RoleTypeId
) of the role.
role_after_escape: 'IR:0' # Will spawn the internal role with the Id 0, so SCP-173.
role_after_escape: 'IR:Scp173' # Will spawn the internal role with the RoleTypeId Scp173, so SCP-173.
role_after_escape: 'CR:1' # Will spawn the custom role with the Id 1, so for example Janitor.
You can define different scenarions by splitting the string with a comma ,
.
To every segment divided by a comma you HAVE TO use the Escape Role Notation defined in the previous paragraph!
Let's take role_after_escape: 'IR:Spectator,IR:NtfPrivate,IR:ChaosRifleman'
The plugin will see these segments:
[1] -> IR:Spectator
[2] -> IR:NtfPrivate
[3] -> IR:ChaosRifleman
The first number is really important: it indicate the scenario.
Currently there are 5 scenarions implemented:
[1] -> Escape while not cuffed
[2] -> Escape while cuffed by NTFs
[3] -> Escape while cuffed by Chaos
[4] -> Escape while cuffed by Scientists
[5] -> Escape while cuffed by ClassDs
Now probably can be more easy to associate the scenario with the given string:
Escape while not cuffed -> IR:Spectator
Escape while cuffed by NTFs -> IR:NtfPrivate
Escape while cuffed by Chaos -> IR:ChaosRifleman
Escape while cuffed by Scientists -> Nothing: spawn evaluated by the game itself
Escape while cuffed by ClassDs -> Nothing: spawn evaluated by the game itself
You can manage Health, Max Health and the Hume Shield through the HealtBehaviour
class.
Here the params:
public float Amount { get; set; } = 100;
public float Maximum { get; set; } = 100;
public float HumeShield { get; set; } = 0;
amount: 100
maximum: 100
hume_shield: 0
Caution
The hume_shield
value won't be displayed if the role is not an SCP but the shield will be there and will be active!
You can manage the Artificial Health (AHP) and the related params through the class AhpBehaviour
.
Here the params:
public float Amount { get; set; } = 0;
public float Limit { get; set; } = 75;
public float Decay { get; set; } = 1.2f;
public float Efficacy { get; set; } = 0.7f;
public float Sustain { get; set; } = 0f;
public bool Persistant { get; set; } = false;
amount: 0
limit: 75
decay: 1.2
efficacy: 0.7
sustain: 0
persistant: false
You can also handle the stamina through it's class, StaminaBehaviour
.
Here the params:
public float RegenMultiplier { get; set; } = 1;
public float UsageMultiplier { get; set; } = 1;
public bool Infinite { get; set; } = false;
regen_multiplier: 1
usage_multiplier: 1
infinite: false
Every param that is supposed to handle the spawn of the role has now been grouped into a single class, in order to make the things more easy for other plugins to use UCR while using also their spawn system.
Here the params:
public List<RoleTypeId> CanReplaceRoles { get; set; } = new()
{
RoleTypeId.ClassD
};
public int MaxPlayers { get; set; } = 10;
public int MinPlayers { get; set; } = 1;
public int SpawnChance { get; set; } = 60;
public SpawnLocationType Spawn { get; set; } = SpawnLocationType.RoomsSpawn;
public List<ZoneType> SpawnZones { get; set; } = new();
public List<RoomType> SpawnRooms { get; set; } = new()
{
RoomType.LczClassDSpawn
};
public Vector3 SpawnPosition { get; set; } = new();
public Vector3 SpawnOffset { get; set; } = new();
public string? RequiredPermission { get; set; } = string.Empty;
max_players: 5
min_players: 1
spawn_chance: 60
can_replace_roles:
- ClassD
spawn: RoomsSpawn
spawn_zones: []
spawn_rooms:
- LczToilets
spawn_position:
x: 0
y: 0
z: 0
spawn_offset:
x: 0
y: 0
z: 0
Defines the roles that can be replaced by this custom role.
For example if the list contains only NtfPrivate
a NtfCaptain
won't never be this role.
The max number of players that can be spawned with this role.
The minimum number of players in the server to allow the spawn of this role.
Defines the spawn chance for this role in percentage, 0
is never and 100
is always
Define the spawn location type, read more here
Define a list of zones that will be the spawnpoint for the role if spawn is ZoneSpawn. The choice is randomic.
Define a list of rooms that will be the spawnpoint for the role if spawn is RoomsSpawn. The choice is randomic.
Define the spawn position by x, y and z if spawn is PositionSpawn. - [Note]
Change the spawn coordinates by adding or removing.
If not null or empty impose that only players with that permission can spawn as this role.
UncomplicatedCustomRoles is a free plugin developed by FoxWorn3365 and
DrAgenda.
Please consider Donatig 1$ if you found this plugin helpful