SCPUtils Plugin
Welcome to SCPUtils, overtime i implemented many features so i decided to rework the documentation.
This is the list of SCPUtils features with a brief description, i recomend to read configs:
- Welcome Message: You can set in server config a welcome broadcast that every player join will see.
- Decontamination Message: A broadcast that all players will see when decontamination starts
- Auto-Restart: Having only one player in server may cause round stuck forever, with this plugin you can avoid it!
- Advanced SCP Suicide / Quit punishements: If a SCP suicide or leave the server you can punish him, with warns, kicks or bans, depending on settings you use and DC/Suicide percentage player has (configurable also for tutorial role)
- Temporarily badges: Sometimes may be useful to give a player a temporarily role for event winners and donators (or anything else you want), with this plugin it's easy, see commands list.
- Custom nicknames: Admins with permission can set any nickname to any player in server using admin console, users with permission can set their own nickname using a simple command on User's console.
- Nickname Blacklist: You can prevent players joining with blacklisted nicknames and preventing them to change nicknames to restricted ones, users with bypassnickname permission bypass this limit!
- Badge colors: Admins can assign a color to every person, users with permissions can assign any color to themselves if it's not in restricted list!
- Permanently show/hide badges: Users with permission can permanently show or hide badge using a simple command (in user console)
- SCPSpeak features: Playing with permissions you can decide which badge (even default one) can speak with that SCP like 939 using V!
- Playtime statistics: You can see each user playtime day per day or total playtime using a simple command!
- ASNs Bans: You can ban specific ASNs to avoid ban evaders and cheaters, you can whitelist legit users to bypass the ASNs bans using a simple command, to add an ASN to blacklist add it inside server config setting.
- Team protection: Editing configs you can set protection to the teams you want against the teams you want on specific zones or entire map.
- SCP-096 Target: Players gets notified via hint when they become a SCP-096 Target.
- Last Player: Players gets notified via hint when they are the last player of the Team.
Database will get created inside Exiled/SCPUtils folder.
Each server must have it's own database, you cannot use one database on multiple servers!
You must add LiteDB.dll into Plugins/dependencies folder or plugin won't work
Minimum requirements: Exiled version: 3.0.0.alpha76 and LiteDB 5.0.9
You can see settings and edit them inside Exiled/port-config.yml file(example Exiled/7777-config.yml)
Admin commands and Game console commands
Admin Commands | Args | Permission | Description |
---|---|---|---|
scputils_help | none | scputils.help | Show plugin info |
scputils_player_info | player / id / userid | scputils.playerinfo | Show player info |
scputils_player_list | minimun percentage | scputils.playerlist | List all players with a percetage equal or higher of quits/suicides |
scputils_player_reset | player / id / userid | scputils.playerreset | Reset warns,suicides,bans,kick and games played stats |
scputils_player_reset_preferences | player / id / userid | scputils.playerresetpreferences | Reset nickname,badge color,show badge preference |
scputils_set_color | <player / id / userid> <color/None> | scputils.playersetcolor | Change player color |
scputils_set_name | <player / id / userid> <name/None> | scputils.playersetname | Change player name, changes take effects next round/rejoin |
scputils_set_badge | <player / id / userid> | scputils.handlebadges | Add a temp player badge |
scputils_revoke_badge | <player / id / userid> | scputils.handlebadges | Revoke a badge given to a player |
scputils_play_time | <player / id / userid> | scputils.playtime | Show recent player activity withing the specified days |
scputils_whitelist_asn | <id / userid> | scputils.whitelist | Add player to ASN whitelist |
scputils_unwhitelist_asn | <id / userid> | scputils.whitelist | Removes player to ASN whitelist |
scputils_staff_list | - | scputils.stafflist | Show both local staff and global staff present in game |
scputils_enable_suicide_warns | - | scputils.warnmanagement | Enabled previously disabled suicide / quits warns |
scputils_disable_suicide_warns | - | scputils.warnmanagement | Disable suicides / quits warns for the rest of the round |
scputils_global_edit | <Suicides/Quits to remove> | scputils.globaledit | Globally edits player stats (removes total scp games/suicides/kicks/bans) |
scputils_player_edit | <id / userid> <Suicides/Quits> | scputils.playeredit | Edits player stats (total scp games/suicides/kicks/bans) by setting them to specified amount |
scputils_player_delete | <userid / id> | scputils.playerdelete | Deletes a player from db, action is irreversible, do this when player is not in server. |
scputils_preference_persist | <userid / id> | scputils.keep | If disabled by config players that lose the permission to change name,color,hide badge will have that setting resetted, by using this command you allow the player to use their preference even without permissions |
scputils_player_restrict | <userid / id> | scputils.moderatecommands | <duration in minutes (0=permanent) |
scputils_player_unrestrict | <userid / id> | scputils.moderatecommands | Unban a previously command banned player |
scputils_show_command_bans | <userid / id> | scputils.moderatecommands | Show command ban history of a specific player |
scputils_remove_previous_badge | <userid / id> | scputils.handlebadges | Removes previous badge from database for that player |
scputils_round_info | <userid / id> | See bellow | Show round info |
scputils_online_list | <userid / id> | See bellow | Show online player list |
scputils_player_dnt | <userid / id> | scputils.dnt | Ignore DNT requests from a certain player |
scputils_player_warnings | <userid / id> | scputils.showwarns | Show all scputils warnings of a specific player |
scputils_player_warning | <userid / id> | scputils.showwarns | Show last scputils warning of a specific player |
scputils_player_unwarn | <userid / id> | scputils.unwarn | Removes a specific warning from a user |
scputils_player_broadcast | <userid / id> <broadcast/hint> | scputils.broadcast | Send an hint or broadcast to a specific player |
scputils_broadcast | <broadcast/hint> | scputils.broadcast | Send an hint or broadcast to all players |
Console commands
Player Commands | Args | Permission | Description |
---|---|---|---|
scputils_help | none | none | Show plugin commands |
scputils_info | none | none | Show plugin info |
scputils_permissions_view | none | none | Show your plugin permissions |
scputils_change_nickname | Nickname / None | scputils.changenickname | Change your nickname, changes take effects next round/rejoin |
scputils_change_color | Color / None | scputils.changecolor | Change your badge color |
scputils_show_badge | none | scputils.badgevisibility | Permanently show your badge |
scputils_hide_badge | none | scputils.badgevisibility | Permanently hide your badge |
scputils_my_info | none | none | Show your preferences and temporarily badges info |
scputils_play_time | none | scputils.ownplaytime | Show your own playtime with a max range of 120 days |
Speak permissions
Permisssion | Description |
---|---|
scputils_speak.scp049 | Allows to speak with V using this scp |
scputils_speak.scp0492 | Allows to speak with V using this scp |
scputils_speak.scp079 | Allows to speak with V using this scp |
scputils_speak.scp096 | Allows to speak with V using this scp |
scputils_speak.scp106 | Allows to speak with V using this scp |
scputils_speak.scp173 | Allows to speak with V using this scp |
Generic permissions
Permisssion | Description |
---|---|
scputils.bypassnickrestriction | Allows to bypass nickname restrictions |
scputils.help | Show also admin command list in scputils_help command, without this permission only user commands are shown |
Pro tip: use scputils_speak.* to allow someone to speak with all the SCPs, set permission to default role to allow everyone to speak with that scp.
Console commands must be executed like .scputils_help in game console (press ò to open it)
Round Info
This command allows to show advanced round info and users are able to use it by default to see informations about their own team (using user console), if you don't like that just edit configs. It has also the following permissions (those bypass server config):
Permisssion | Description |
---|---|
scputils.roundinfo.execute | Needed to simply executing the command, doesnt show any info |
scputils.roundinfo.roundtime | Show roundtime |
scputils.roundinfo.tickets | Show tickets of all teams |
scputils.roundinfo.nextrespawnteam | Show which team respawn next and when |
scputils.roundinfo.respawncount | Show how many times MTF/Chaos respawned |
scputils.roundinfo.lastrespawn | Show when MTF/Chaos respawned |
Online List
This command show online player list, it's also usable by users on normal console, it uses advanced permissions like past command.
Permisssion | Description |
---|---|
scputils.onlinelist.basic | Allows to execute the command, see total players online and player nicknames |
scputils.onlinelist.userid | Show UserIDs |
scputils.onlinelist.badge | Show badges (hidden or not) |
scputils.onlinelist.role | Show roles |
scputils.onlinelist.health | Show players health |
scputils.onlinelist.flags | Show player flags (God, DNT, Muted etc...) |
Config Example
To edit your configs you must go into EXILED folder and edit port-config.yml file (example 7777-config.yml), and edit them
To edit permissions you must go into Plugins/Exiled Permissions folder and edit permissions.yml file, bellow you can see a sample config
user:
inheritance: []
default: true
permissions:
- scputils_speak.scp049
owner:
permissions:
- scputils.*
- scputils_speak.*
admin:
inheritance: []
permissions:
- scputils.playerinfo
- scputils.playerlist
- scputils.changecolor
- scputils.changenickname
- scputils.badgevisibility
- scputils.playerresetpreferences
- scputils_speak.*
vip:
inheritance: []
permissions:
- scputils.changecolor
- scputils.changenickname
- scputils_speak.*
Team protection
CDP = Class-D
CHI = Chaos Insurgency
MTF = MTF Team (included guards)
RIP = Spectators
RSC = Scientist
SCP = SCP
TUT = Tutorial
Sample Config for team protection:
In the following example we will protect Class-D against MTF team and Scientist, since they are listed on cuffed_protected_teams they require to be handcuffed to be protected. They also must be in Entrance or Surface to get protection.
# You have to add the team you want to protect from the target as key and enemy teams on the list as value, on github documentation you can see all the teams.
cuffed_immunity_players:
CDP:
- MTF
- RSC
# Indicates if the protected teams should be cuffed to get the protection, if you don't add a team it will get protection regardless
cuffed_protected_teams:
- CDP
# Indicates in which zones the protected team is protected, Zone list: Surface, Entrance, HeavyContainment, LightContainment, Unspecified }
cuffed_safe_zones:
CDP:
- Entrance
- Surface
Using scputils.* grants every permission that starts with prefix scputils
Using '*' grants every possible permission on the server
To verify if you yml file is valid paste it into this website: http://www.yamllint.com/
Note: you must add every group in permissionsm don't forget default one
Data stored on database is intended only for internal use, sharing it is a violation of SCP:SL EULA and will cause your server delist.
Thanks to iopietro for his advices