Resource icon
[DEPRICATED]
This plugin is now free and open sourced.
Features:
Configuration:
Commands:
After the server boots, a "NewPlayerProtection.db" file will be created in plugin's directory. It contains all the information about players, tribes, start dates, and if they are protected. Do not attempt to edit this database while the server is running!
Installation:
NOTES:
Special thanks to TyrelSackett, ColeSlawter, and the Patreons over at the Ark AGB Community for providing ideas, support, and testing of the plugin!
GitHub: barnwellrd/New-Player-Protection
This plugin is now free and open sourced.
Features:
- Protects new player STRUCTURES from damage
- Protects new player structures for X amount of hours
- Protects new player structures up to X level
- Can set tribes as PVE Tribes
- Configurable list of excluded structures
- SQLite Database
- Customizable config
Configuration:
JSON:
{
"General": {
"DbPathOverride": "",
"EnableDebugging": false,
"PlayerUpdateIntervalInMins": 10,
"IgnoreAdmins": false,
"AllowNewPlayersToDamageEnemyStructures": false,
"AllowPlayersToDisableOwnedTribeProtection": true,
"AllowWildCorruptedDinoDamage": false,
"AllowWildDinoDamage": true,
"NPPPlayerDecayInHours": 384,
"NPPCommandPrefix": "!",
"NPPAdminGroup": "NPPAdmin",
"NewPlayerDoingDamageMessage": "You can't attack structures while under New Player Protection!",
"NewPlayerStructureTakingDamageMessage": "You can't attack structures that are under New Player Protection!",
"NewPlayerStructureTakingDamageFromUnknownTribemateMessage": "Your tribe can't attack structures that are under New Player Protection!",
"NPPRemainingMessage": "New Player Protection Remaining: {} Day(s) {} Hour(s) {} Minute(s) OR {} level(s)! [Based on oldest/highest tribe member]",
"NPPInfoMessage": "NPP Server Settings: Hours of Protection: {}, Max New Player Level: {}.",
"NPPInvalidCommand": "Invalid chat command!",
"NewPlayerProtectionDisableSuccess": "Your tribes protection has been disabled!",
"NotANewPlayerMessage": "Your tribe is not under New Player Protection!",
"NotTribeAdminMessage": "You are not a tribe admin!",
"TribeIDText": "Target structure's Tribe ID: {}.",
"NoStructureForTribeIDText": "Please face the middle of your screen towards the structure you want to retrieve the Tribe ID from.",
"PVEDisablePlayerMessage": "PVE player can not disable their own protection",
"PVEStatusMessage": "Your tribe is a PVE tribe",
"NotAStructureMessage": "This target is not a structure!",
"IsAdminTribe": "Everyone in this tribe is a NPPAdmin.",
"AdminNoTribeExistsMessage": "No tribe with that ID exists; Tribe: {}",
"AdminTribeProtectionRemoved": "Protection has been removed for Tribe: {}",
"AdminTribeNotUnderProtection": "No protection to remove from Tribe: {}",
"AdminResetTribeProtectionSuccess": "{} hour(s) of protection from now has been given to Tribe: {}",
"AdminResetTribeProtectionLvlFailure": "A player is over the NPP Max Level. Cannot give protection to Tribe: {}",
"AdminPVETribeAddedSuccessMessage": "Successfully added to PVE Tribes: {}",
"AdminPVETribeAlreadyAddedMessage": "Tribe was already added to PVE Tribes: {}",
"AdminPVETribeRemovedSuccessMessage": "Successfully removed from PVE Tribes: {}",
"AdminPVETribeAlreadyRemovedMessage": "Tribe was already removed from PVE Tribes: {}",
"MessageIntervalInSecs": 10,
"MessageTextSize": 1.4,
"MessageDisplayDelay": 10,
"MessageColor": [
1.0,
0.0,
0.0,
0.0
],
"NewPlayerProtection": {
"NewPlayerMaxLevel": 60,
"HoursOfProtection": 72
},
"StructureExemptions": [
]
}
}
Commands:
Player commands:
Admin Commands Console:
Admin Commands RCON:
- !npp info ~ See what the current NPP settings are on your server
- !npp status ~ Shows how much time/levels you have left before the protection wears off (Based on oldest and highest tribe member)
- !npp disable ~ Disables protection for user's tribe (only tribe admins can do)
- !npp tribeid ~ Displays targeted structure's Tribe ID
- !npp path ~ Displays targeted structure's blueprint path for structure exemption
Admin Commands Console:
- cheat NPP.RemoveProtection <Tribe_ID> ~ Removes Tribe protection of a certain tribe
- cheat NPP.ResetProtection <Tribe_ID> ~ Resets start day to NOW and restores protection even if previously expired. Does not work on tribes with a player over "NewPlayerMaxLevel"
- cheat NPP.AddProtection <Tribe_ID> <Hours> ~ Resets start day to NOW+Hours and restores protection even if previously expired. Does not work on tribes with a player over "NewPlayerMaxLevel"
- cheat NPP.ReloadConfig ~ Reloads config and updates protection on the new config settings and resets protection for ALL tribes within new limits
- cheat NPP.SetPVE <Tribe_ID> <Bool (1 for add, 0 for remove)> ~ Adds or removes a tribe from NPP PVE Status
Admin Commands RCON:
- NPP.RemoveProtection <Tribe_ID> ~ Removes Tribe protection of a certain tribe
- NPP.ResetProtection <Tribe_ID> ~ Resets start day to NOW and restores protection even if previously expired. Does not work on tribes with a player over "NewPlayerMaxLevel"
- NPP.AddProtection <Tribe_ID> <Hours> ~ Resets start day to NOW+Hours and restores protection even if previously expired. Does not work on tribes with a player over "NewPlayerMaxLevel"
- NPP.ReloadConfig ~ Reloads config and updates protection on the new config settings and resets protection for ALL tribes within new limits
- NPP.SetPVE <Tribe_ID> <Bool (1 for add, 0 for remove)> ~ Adds or removes a tribe from NPP PVE Status
After the server boots, a "NewPlayerProtection.db" file will be created in plugin's directory. It contains all the information about players, tribes, start dates, and if they are protected. Do not attempt to edit this database while the server is running!
Installation:
- Install ARK: Server API
- Install the Permissions Plugin
- Copy "NewPlayerProtection" folder to "ArkApi/Plugins"
- Delete all previous plugin files including .db files then copy ALL files over to the "NewPlayerProtection" folder in "/ArkApi/Plugins/"
NOTES:
- The PlayerUpdateIntervalInMins config option determines how often players are checked to see if protection should be turned off. Therefore, it can take that amount of time for protection to update after the NewPlayerMaxLevel or DaysOfProtection condition is met for a player. Increase this amount if you have a large player base (Feedback seems that about 2-3 minutes less than your server's save interval works well).
- New Player tribe protection is turned off whenever one of these conditions are met: a tribe member reaches NewPlayerMaxLevel or DaysOfProtection, admin or player chat commands are used, or an unprotected player joins.
- This plugin makes ALL New Player tribe structures invulnerable to damage until they lose their protection.
- Does not effect non-tribe structures.
- If a protected New Player joins an unprotected tribe, they lose their protection.
- Admins will not break a tribes protection if they join it and IgnoreAdmins is true.
- This plugin should be safe to remove or add during any stage of a servers lifetime, however, if added on an established server, there are edge cases where a tribe may be protected under the time limit if online tribe members meet the protection criteria but an offline tribe member who would be out of protection hasn't logged in since it was added.
- Tribes that have been offline since the plugin was added can not be protected until they log in.
- The database must be deleted whenever a server is wiped to remove the stale data.
- The database is only updated on world saves. This means all calculations are done in memory at run-time. It also increases the integrity of the database by insuring the database is in sync with your world save files in the event of a server crash. (unless it crashes on a save or the save files become corrupted)
- I would highly recommend having a separate database for each server on your cluster, and allow protection to be unique per server. Multiple servers loading and writing to the database on world loads and saves can cause the database to lock up and compromise the integrity of the data.
Special thanks to TyrelSackett, ColeSlawter, and the Patreons over at the Ark AGB Community for providing ideas, support, and testing of the plugin!
GitHub: barnwellrd/New-Player-Protection