Video
Included with Purchase
Plugin Download
Instant access to the plugin file (.dll)
Future Updates
All updates and fixes at no extra cost
Developer Support
Help through our forum and Discord
Optional: Source Code
Add-on in cart for an additional fee
Readme
KOTH Box
Custom PVP event for players to fight in the dome and win rewards.
Features
- Admins can easily set up multiple KOTH boxes in any location on the map
- Dome size is automatically adjusted to the specified radius of the KOTH box, so each of them can have different size
- KOTH box event has two stages: warmup and event. During the warmup the dome effect has white color and as the event stage begins it changes color to green
- Players can't shoot through the KOTH box dome. It protects players inside from outside fire as well as the opposite
- When walking through the dome border players hear the sound and configurable amount of damage is taken
- Building rules inside the KOTH box are fully configurable. When KOTH box isn't spawned, players are not allowed to build in the area
- The winner is the player who survives the longest sum amount of time inside the dome or who have reached the configured total amount of time first
- UI displays player's rank and time as well as time left for the warmup and event
- KOTH box events can be invoked on demand by admin or scheduled in the configuration
- Scheduled events may be configured to require a minimum amount of players on the server
- Rewards for winning the event can be experience, uconomy currency, vehicle or items accessible from vault like storage
Credits
- -V3-#4601 for the idea and help in testing the plugin
- lamy#1325 for creating a dome effect
Workshop
- 3241686579 - KOTH Box (dome, sound and UI effects)
Commands
Player
- /whenkoth - Shows information about time left to the next scheduled KOTH box event.
- /claimkoth - Claims the reward for winning the latest KOTH box event.
Admin
- /setkothbox <name> <radius> - Sets and adds a new KOTH box at your current position to the database.
- /deletekothbox <name> - Deletes the KOTH box with the specified name from the database.
- /kothboxes - Lists all KOTH boxes that exist in the database.
- /previewkothbox <radius> [duration] - Spawns a preview of the KOTH box dome effect at your current position with the specified radius and duration equal to 10 seconds if not specified.
- /testkothbox <name> [duration] - Spawns a KOTH box dome effect with the specified name and lasts for 10 seconds if duration is not specified.
- /startkoth [name] [rewardTierName] - Starts a KOTH box event with the specified name or picks a random one if not specified. The reward tier will be default if not specified.
- /stopkoth - Stops the currently running KOTH box event. If the warmup has ended it picks the winner.
Console
- /reloadkothboxes - Reloads the KOTH boxes from the database (kothboxes.json file). Console only.
Permissions
Permissions of the commands are the same as the command names.
<!-- Player -->
<Permission Cooldown="0">whenkoth</Permission>
<Permission Cooldown="0">claimkoth</Permission>
<!-- Admin -->
<Permission Cooldown="0">setkothbox</Permission>
<Permission Cooldown="0">deletekothbox</Permission>
<Permission Cooldown="0">kothboxes</Permission>
<Permission Cooldown="0">previewkothbox</Permission>
<Permission Cooldown="0">testkothbox</Permission>
<Permission Cooldown="0">startkoth</Permission>
<Permission Cooldown="0">stopkoth</Permission>
Configuration
<?xml version="1.0" encoding="utf-8"?>
<KOTHBoxConfiguration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<MessageColor>yellow</MessageColor>
<Debug>false</Debug>
<WarmupDomeEffectId>5921</WarmupDomeEffectId>
<DomeEffectId>5922</DomeEffectId>
<UIEffectId>5923</UIEffectId>
<WinSoundEffectId>5930</WinSoundEffectId>
<LoseSoundEffectId>5931</LoseSoundEffectId>
<DomeSoundEffectId>5932</DomeSoundEffectId>
<UINotificationDurationSeconds>5</UINotificationDurationSeconds>
<UIWinnerDurationSeconds>10</UIWinnerDurationSeconds>
<WarmupDomeDamage>15</WarmupDomeDamage>
<DomeDamage>15</DomeDamage>
<KOTHBoxWarmupSeconds>180</KOTHBoxWarmupSeconds>
<KOTHBoxDurationSeconds>1200</KOTHBoxDurationSeconds>
<KOTHBoxWinningTimeSeconds>300</KOTHBoxWinningTimeSeconds>
<KOTHRewardExpireTimeSeconds>1800</KOTHRewardExpireTimeSeconds>
<RewardVaultWidth>6</RewardVaultWidth>
<RewardVaultHeight>10</RewardVaultHeight>
<OnSpawnClearBuildings>true</OnSpawnClearBuildings>
<OnDespawnClearBuildings>true</OnDespawnClearBuildings>
<ScheduledKOTHBoxes>
<ScheduledKOTHBox Time="16:00:00" MinimumPlayers="10">
<KOTHBoxEvents>
<KOTHBoxEvent KOTHBoxName="Prison" RewardTierId="default" />
<KOTHBoxEvent KOTHBoxName="Harbor Bank" RewardTierId="money" />
</KOTHBoxEvents>
</ScheduledKOTHBox>
<ScheduledKOTHBox Time="18:00:00" MinimumPlayers="12">
<KOTHBoxEvents>
<KOTHBoxEvent KOTHBoxName="Stratford Gas Station" RewardTierId="vehicle" />
<KOTHBoxEvent KOTHBoxName="Military Base" RewardTierId="default" />
</KOTHBoxEvents>
</ScheduledKOTHBox>
</ScheduledKOTHBoxes>
<EnableBuildingRules>true</EnableBuildingRules>
<BuildingRules>
<BuildingRule Name="Ladders" MaxPerPlayer="3">
<Items>
<Item Id="325" Name="Maple Ladder" />
<Item Id="326" Name="Birch Ladder" />
<Item Id="327" Name="Pine Ladder" />
<Item Id="379" Name="Metal Ladder" />
</Items>
</BuildingRule>
<BuildingRule Name="Sandbags" MaxPerPlayer="5">
<Items>
<Item Id="365" Name="Sandbag" />
</Items>
</BuildingRule>
</BuildingRules>
<DefaultRewardTierName>Default</DefaultRewardTierName>
<RewardTiers>
<RewardTier Name="Default">
<Rewards>
<Reward Name="Maplestrike" Weight="60">
<Experience>500</Experience>
<Items>
<Item Id="363" Name="Maplestrike" Amount="1" />
<Item Id="6" Name="Military Magazine" Amount="3" />
<Item Id="17" Name="Military Drum" Amount="1" />
</Items>
</Reward>
<Reward Name="Dragonfang" Weight="40">
<Experience>500</Experience>
<Items>
<Item Id="132" Name="Dragonfang" Amount="1" />
<Item Id="133" Name="Dragonfang Box" Amount="2" />
</Items>
</Reward>
</Rewards>
</RewardTier>
<RewardTier Name="Money">
<Rewards>
<Reward Name="1,000 credits" Weight="50">
<Money>1000</Money>
</Reward>
<Reward Name="3,000 credits" Weight="30">
<Money>3000</Money>
</Reward>
<Reward Name="5,000 credits" Weight="20">
<Money>5000</Money>
</Reward>
</Rewards>
</RewardTier>
<RewardTier Name="Vehicles">
<Rewards>
<Reward Name="Military Helicopter" Weight="50">
<Vehicle Id="93" Name="Forest Transport Heli" />
</Reward>
<Reward Name="Military Tank" Weight="50">
<Vehicle Id="120" Name="Forest Tank" />
</Reward>
</Rewards>
</RewardTier>
</RewardTiers>
</KOTHBoxConfiguration>
Translations
<?xml version="1.0" encoding="utf-8"?>
<Translations xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Translation Id="SetKOTHBoxInvalid" Value="Invalid usage, use /setkothbox <name> <radius>" />
<Translation Id="SetKOTHBoxInvalidRadius" Value="{0} is not a valid radius" />
<Translation Id="SetKOTHboxAlreadyExists" Value="KOTH box {0} already exists" />
<Translation Id="SetKOTHBoxSuccess" Value="Successfully set a new KOTH box {0} at your position with radius: {1}" />
<Translation Id="ReloadKOTHBoxesSuccess" Value="Successfully reloaded {0} KOTH boxes from database!" />
<Translation Id="KOTHBoxesNone" Value="There isn't any KOTH boxes in the database" />
<Translation Id="KOTHBoxNotExist" Value="KOTH box with the specified name {0} does not exist" />
<Translation Id="RewardTierNotExist" Value="Reward tier with the specified name {0} does not exist" />
<Translation Id="StartKOTHAlreadyRunning" Value="{0} KOTH box is already started" />
<Translation Id="StartKOTHSucccess" Value="Successfully started a {0} KOTH box event with reward {1}!" />
<Translation Id="StopKOTHNotRunning" Value="There isn't any active KOTH box event running" />
<Translation Id="StopKOTHSuccess" Value="Successfully stopped a {0} KOTH box event!" />
<Translation Id="CantDamagePlayerInOrb" Value="You can't damage a player when you are in orb" />
<Translation Id="KOTHWinnerClaimReward" Value="Use /claimkoth to claim your {0} reward for winning!" />
<Translation Id="ClaimKOTHNoRewards" Value="You don't have any reward to claim" />
<Translation Id="ClaimKOTHVehicleReward" Value="You were given {0} vehicle from your {1} reward!" />
<Translation Id="ClaimKOTHExperienceReward" Value="You were given {0} experience from your {1} reward!" />
<Translation Id="ClaimKOTHMoneyReward" Value="You were given {0} credits from your {1} reward!" />
<Translation Id="ClaimKOTHItemsReward" Value="You have claimed all items from your {0} reward!" />
<Translation Id="ClaimKOTHItemsRewardNotClaimed" Value="You have {0} items left to claim from your {1} reward!" />
<Translation Id="WhenKOTHNotScheduled" Value="There isn't any scheduled KOTH box event" />
<Translation Id="WhenKOTHSuccess" Value="KOTH box event will start in {0} (minimum {1} players)" />
<Translation Id="ScheduledKOTHBoxCanceledMinimumPlayers" Value="The scheduled KOTH box event was canceled because there isn't minimum {0} players" />
<Translation Id="ScheduledKOTHBoxCanceledAlreadyRunning" Value="The scheduled KOTH Box event was canceled because one KOTH box event is already running" />
<Translation Id="UINotificationKOTHBoxWarmupStarted" Value="The KOTH box warmup has started!" />
<Translation Id="UINotificationKOTHBoxEventStarted" Value="The KOTH box event {0} has started!" />
<Translation Id="UINotificationKOTHBoxEventStopped" Value="The KOTH box event {0} has ended!" />
<Translation Id="UINotificationPlayerEnteredKOTHBox" Value="You entered the KOTH box" />
<Translation Id="UINotificationPlayerLeftKOTHBox" Value="You left the KOTH box" />
<Translation Id="UINotificationPlayerWonKOTHBoxEvent" Value="You won the KOTH box event!" />
<Translation Id="UINotificationPlayerCantShootThroughKOTHBox" Value="You can't shoot through the KOTH box" />
<Translation Id="UINotificationPlayerProtectedByKOTHBox" Value="You were protected by the KOTH box" />
<Translation Id="UIWarmupCountdownTitle" Value="Warmup ends in:" />
<Translation Id="UIEventCountdownTitle" Value="Ends in:" />
<Translation Id="UIRankTitle" Value="Rank:" />
<Translation Id="UIRankContent" Value="#{0}" />
<Translation Id="UIYourTimeTitle" Value="Your time:" />
<Translation Id="UIWinnerContent" Value="{0} won the KOTH box event!" />
<Translation Id="UIInfoContent" Value="KOTH box spawned in {0}" />
<Translation Id="UIWinnerInfoContent" Value="Use /claimkoth to claim your {0} reward" />
<Translation Id="BuildingNotAllowed" Value="You are not allowed to build {0} because KOTH box spawns here" />
<Translation Id="BuildingNotAllowedMaxPerPlayer" Value="You have reached the limit of {0} {1} in KOTH box!" />
<Translation Id="BuildingAllowed" Value="You have built {0}/{1} {2} in KOTH box" />
<Translation Id="KOTHBoxNotFound" Value="Failed to find any KOTH box called {0}" />
<Translation Id="TestKOTHBoxSuccessSingle" Value="Successfully spawned {0} KOTH box for {1} seconds!" />
<Translation Id="TestKOTHBoxSuccessAll" Value="Successfully spawned all {0} KOTH boxes for {1} seconds!" />
<Translation Id="DeleteKOTHBoxInvalid" Value="Invalid usage, use /deletekothbox <name>" />
<Translation Id="DeleteKOTHBoxSuccess" Value="Successfully deleted KOTH box {0} from database!" />
<Translation Id="KOTHBoxesItem" Value="#{0} {1} - {2} radius" />
<Translation Id="PreviewKOTHBoxInvalid" Value="Invalid usage, use /previewkothbox <radius> [duration]" />
<Translation Id="PreviewKOTHBoxInvalidRadius" Value="{0} is not a valid radius" />
<Translation Id="PreviewKOTHBoxSuccess" Value="Successfully spawned a preview of KOTH box at your position radius {0} for {1} seconds!" />
</Translations>