*** AntiPVEGriefing (APG) - User Guide ***

Welcome to AntiPVEGriefing (APG) — a plugin for ARK: Survival Ascended designed to prevent common griefing mechanics and enhance the PVE experience. This plugin provides administrators with powerful tools to set up rules that protect players, their structures, and dinosaurs from hostile actions by those outside their tribe.

--- Installation and Usage ---

1. Installation: Copy the plugin folder to your server's directory:
   ../ShooterGame/Binaries/Win64/ArkApi/Plugins/

2. Configuration Files: In the plugin folder, you will find two files:
   - config.json: This is the main configuration file that you will edit.
   - config_help.json: A supplementary file with example settings and detailed comments.

3. Editing: Edit the config.json file using any text editor of your choice.

4. Applying Settings:
   - After the initial editing, restart your server to load your new settings.
   - For all subsequent changes, use the APG.Reload command (via RCON) or cheat APGReloadConfig (in the in-game console). This will apply the new settings without a server restart.

--- Admin Commands ---
A complete list of all available commands and their descriptions can be found in the APG_Commands.txt file.

--- Configuration (config.json) ---
All plugin parameters are configured in the config.json file. For convenience, you can use the config_help.json file as a reference.

[General]
OverrideConfigPath (string): This parameter allows you to specify a custom path to the configuration file. If this field is filled, the plugin will ignore the settings in config.json and load them from the specified file. To use the standard file, leave this field empty ("").
AdminsIgnoreProtection (boolean): If set to "true", server administrators will be able to ignore all protection rules set by the plugin.

[PlayerProtection]
OfflineProtection (object): Settings for protecting players who have logged off.
   Enable (boolean): "true" enables immunity to damage for offline players.
   DeactivateAfterLoginInSeconds (number): Specifies how many seconds after a player logs in that their damage protection will be disabled.
GrabOtherPlayers (object): Settings to prevent players from grabbing other players.
   Disable (boolean): "true" prevents players from grabbing characters from other tribes.
   AllowAllies (boolean): "true" allows grabbing characters only for members of allied tribes (alliances).
DinoCarry (object): Settings to prevent dinosaurs with riders from grabbing other players.
   Disable (boolean): "true" prevents a ridden dino from grabbing players from other tribes.
   AllowAllies (boolean): "true" allows this only for members of allied tribes (alliances).

[StructureAndItemProtection]
PreventItemPickup (object): Settings to prevent item pickup.
   Enable (boolean): "true" enables the item pickup prevention feature.
   AllowAllies (boolean): "true" allows tribe members and alliance members to pick up items.
   Mode (string): Defines the operational mode of the feature. Possible values:
      "BlockAll": Blocks the pickup of all items.
      "BlockAllExcept": Blocks all items except those listed in ItemWhitelist.
      "AllowAllExcept": Allows the pickup of all items except those listed in ItemBlacklist.
   ItemWhitelist (array): A list of item class that can be picked up in "BlockAllExcept" mode.
   ItemBlacklist (array): A list of item class that cannot be picked up in "AllowAllExcept" mode.
PreventFertilizedEggPickup (object): Settings to prevent picking up fertilized eggs.
   Enable (boolean): "true" enables the prohibition of picking up fertilized eggs.
   AllowAllies (boolean): "true" allows alliance members to pick up eggs.
StructureInteraction (object): Settings for interacting with structures.
   DisableTurnOnOff (boolean): "true" prevents players from turning other tribes' structures on/off.
   AllowAllies (boolean): "true" allows this for tribe and alliance members.
   AllowUnlockedStructures (boolean): "true" allows interaction with unlocked structures.
InventoryView (object): Settings for viewing other players' inventories.
   DisableOtherInventoriesView (boolean): "true" prevents viewing the inventories of other tribes' structures, players, corpses, bags, etc.
   IgnoreStructuresWithPIN (boolean): "true" allows viewing inventories in structures with a set PIN code.
   IgnoreUnlockedStructures (boolean): "true" allows viewing inventories in unlocked structures.
   AllowAllies (boolean): "true" allows alliance members to view inventories.

[DinoManagement]
BlockAlgaeCollectingFromOthersArchelon (boolean): If "true", prevents players from other tribes from collecting Algae from your Archelon.
AllowAlliesAlgaeCollecting (boolean): If "true", allows members of allied tribes (alliances) to collect Algae from your Archelon, even if the primary block is enabled.
DestroyDecayedDinos (boolean): "true" enables the automatic destruction of dinosaurs that have reached their decay timer. IMPORTANT: This function only works if dino decay is enabled on the server.
DisableDinoMating (boolean): "true" prevents dinosaur mating between different tribes.
AllowAlliesDinoMating (boolean): "true" allows dinosaur mating between allied tribes.

[EggsManagement]
AutoDestroyFertilizedEggs (boolean): "true" automatically destroys fertilized eggs that have been dropped on the map. This helps keep the map clean.
AutoDestroyEggsDelayInSeconds (number): The delay in seconds before an egg is destroyed.
EggsTypeToDestroy (array): A list of fertilized egg Blueprint paths (e.g., "Wyvern") that will be automatically destroyed.
StructuresPreventingDestruction (array): A list of structure Blueprint paths. An egg will not be destroyed if it is within a radius of approximately 7 foundations from any of these structures.

[SpecialStructureSettings]
In this section, you can set up special rules for any specific structures using their Blueprint paths. You can add an unlimited number of structures.
   Blueprint'/Game/ScorchedEarth/Structures/OilPump/OilPump.OilPump' (object): Settings for an Oil Pump (used as an example).
      UnlockOnPlacement (boolean): "true" automatically unlocks the structure immediately after it is placed.
      SupportLocking (boolean): "false" prevents the structure from being locked.
      CheckUnlockStateAfterReatart (boolean): "true" checks the lock state after a server restart and automatically unlocks the structure if it was locked.

--- Support the Project ---
If you enjoy this plugin and would like to show your appreciation or support my work, you can do so via the link below.
https://boosty.to/rio-dev/donate

--- Feedback and Support ---
If you have suggestions for improving the plugin, have found a bug, or have a question, you can contact me on my Discord server:
https://discord.gg/yQkZmbqSp7