About Limit Entities
The purpose of this plugin is to restrict the entities that players can build. You can limit any entity based on its prefab. To get the full list of supported prefabs use limitentities.list console command.
There are two types of limits available: global and building. For building limit checks, if a cupboard is placed, the limits of the cupboard owner will apply. If no cupboard is placed, the restrictions of the owner of the first block will apply. When you run the plugin for the first time, no players will be limited. To apply limits, you must assign one or more permissions from your config file to a player/group. The plugin also tracks permission changes, so you will not need to restart the plugin after giving a player new permission or adding them to a VIP group, etc. This plugin is designed to be efficient and performant even on highly loaded servers. All growables are fully excluded from the count, so you can't limit any growables with this plugin, and players are free to plant them. I was considering adding this as an option, but it can significantly reduce performance, so at this point, I decided to refrain from it.
This plugin now supports `Entity Groups`, and group names are translatable. All newly created groups are added to the language files on plugin load. You are free to create as many groups as you want or remove them all. The only thing you should keep in mind is that if you added an entity to a group, you can't add the same entity to `Limits Entities`, you must use the `Group name`.
Note: If you want to have "beautiful" names even on English only, please, install Rust Translation API plugin or you will have a short prefab names only.
## Permissions
- limitentities.immunity -- Allows player to not being limited by this plugin
-
limitentities.admin -- Allows player to check other player limits and execute console command
More permissions with limits are created in config file (see Configuration section below)
## Commands
- /limits <player name | steamid> (optional) -- Get current limits list for a player. If player doesn't have admin permission or player name/id is empty - current player limit will be shown
- limitentities.list (console only) - print all tracked prefabs list into log file. Requires admin rights (can be used in server console/RCON)
## Configuration
- You can remove unnecessary default permissions and also add as many permissions as you want. For cases where the player has more than one, the permission with the higher priority will be applied.
Note: To improve performance grant permissions only to players you want to apply limits or use immunity permission to disable limits entirely
-
Enable / disable notifications / logging
-
Set SteamIDIcon steamid to set desired account icon in chat messages
-
Set commands list (default are "limits", "limit")
-
Set the % at which limit notifications appear. If set to 0 notification will appear only when limit is already reached
-
Add entity prefab name to Excluded list and plugin will ignore that prefab completely
-
Use Entity Groups to combine entities and set a common limit for the entire group
-
The same entity cannot be in both Group Entities list and Limits Entities simultaneously
-
Prevent excessive merging of buildings may impact performance, so enable it at your own risk
Quote{ "Enable GameTip notifications": false, "Enable notifications in chat": false, "Chat steamID icon": 0, "Commands list": [ "limits", "limit" ], "Warn when more than %": 80.0, "Excluded list": [ "assets/prefabs/building/ladder.wall.wood/ladder.wooden.wall.prefab" ], "Entity Groups": [ { "Group name": "Foundations", "Group Entities list": [ "assets/prefabs/building core/foundation.triangle/foundation.triangle.prefab", "assets/prefabs/building core/foundation/foundation.prefab" ] }, { "Group name": "Furnace", "Group Entities list": [ "assets/prefabs/deployable/furnace/furnace.prefab", "assets/prefabs/deployable/legacyfurnace/legacy_furnace.prefab", "assets/prefabs/deployable/playerioents/electricfurnace/electricfurnace.deployed.prefab" ] }, { "Group name": "PlanterBoxes", "Group Entities list": [ "assets/prefabs/deployable/planters/planter.large.deployed.prefab", "assets/prefabs/deployable/planters/planter.small.deployed.prefab", "assets/prefabs/misc/decor_dlc/bath tub planter/bathtub.planter.deployed.prefab", "assets/prefabs/misc/decor_dlc/minecart planter/minecart.planter.deployed.prefab", "assets/prefabs/misc/decor_dlc/rail road planter/railroadplanter.deployed.prefab" ] }, { "Group name": "Quarries", "Group Entities list": [ "assets/prefabs/deployable/oil jack/mining.pumpjack.prefab", "assets/prefabs/deployable/quarry/mining_quarry.prefab" ] }, { "Group name": "Roof", "Group Entities list": [ "assets/prefabs/building core/roof.triangle/roof.triangle.prefab", "assets/prefabs/building core/roof/roof.prefab" ] }, { "Group name": "TC", "Group Entities list": [ "assets/prefabs/deployable/tool cupboard/cupboard.tool.deployed.prefab", "assets/prefabs/deployable/tool cupboard/retro/cupboard.tool.retro.deployed.prefab" ] } ], "Permissions": [ { "Permission": "limitentities.default", "Priority": 10, "Limits Global": { "Limit Total": 2000, "Limits Entities": { "assets/prefabs/deployable/campfire/campfire.prefab": 20, "assets/prefabs/deployable/ceiling light/ceilinglight.deployed.prefab": 50, "assets/prefabs/deployable/furnace.large/furnace.large.prefab": 5, "assets/prefabs/deployable/oil refinery/refinery_small_deployed.prefab": 5, "assets/prefabs/deployable/search light/searchlight.deployed.prefab": 10, "assets/prefabs/deployable/windmill/electric.windmill.small.prefab": 10, "assets/prefabs/npc/sam_site_turret/sam_site_turret_deployed.prefab": 0, "Foundations": 300, "Furnace": 10, "PlanterBoxes": 50, "Quarries": 2, "Roof": 200, "TC": 10 } }, "Limits Building": { "Limit Total": 1000, "Limits Entities": { "assets/prefabs/deployable/search light/searchlight.deployed.prefab": 5, "assets/prefabs/deployable/windmill/electric.windmill.small.prefab": 5 } }, "Prevent excessive merging of buildings": false }, { "Permission": "limitentities.vip", "Priority": 20, "Limits Global": { "Limit Total": 5000, "Limits Entities": { "Foundations": 500, "Roof": 400 } }, "Limits Building": { "Limit Total": 2000, "Limits Entities": { "assets/prefabs/deployable/search light/searchlight.deployed.prefab": 15, "assets/prefabs/deployable/windmill/electric.windmill.small.prefab": 15 } }, "Prevent excessive merging of buildings": false }, { "Permission": "limitentities.elite", "Priority": 30, "Limits Global": { "Limit Total": 10000, "Limits Entities": { "Foundations": 2000, "Roof": 1000 } }, "Limits Building": { "Limit Total": 5000, "Limits Entities": { "assets/prefabs/deployable/search light/searchlight.deployed.prefab": 20, "assets/prefabs/deployable/windmill/electric.windmill.small.prefab": 20 } }, "Prevent excessive merging of buildings": false } ], "Log Level (Debug, Info, Warning, Off)": "Off" }
## Localization
- Plugins phrases are available on 3 languages out of the box: English, Ukrainian and Russian
- Plugin supports Rust Translation API which allows you to have entities names on any language Rust supports
Quote{ "Error.EntityIsNotAllowed": "You are not allowed to build <color=#FFA500>{0}</color>", "Error.PlayerNotFound": "Player <color=#FFA500>{0}</color> not found!", "Error.LimitBuilding.EntityMergeBlocked": "You can't merge these buildings because the limit of <color=#FFA500>{1}</color> will be exceeded by <color=#FFA500>{0}</color>", "Error.LimitBuilding.EntityReached": "You have reached the limit <color=#FFA500>{0}</color> of <color=#FFA500>{1}</color> <color=#FFA500>{2}</color> in this building", "Error.LimitBuilding.MergeBlocked": "You can't merge these buildings because the limit of entities will be exceeded by <color=#FFA500>{0}</color>", "Error.LimitBuilding.Reached": "You have reached the limit <color=#FFA500>{0}</color> of <color=#FFA500>{1}</color> entities in this building", "Error.LimitGlobal.EntityReached": "You have reached the limit <color=#FFA500>{0}</color> of <color=#FFA500>{1}</color> <color=#FFA500>{2}</color>", "Error.LimitGlobal.Reached": "You have reached the global limit <color=#FFA500>{0}</color> of <color=#FFA500>{1}</color> entities", "Error.NoPermission": "You do not have permission to use this command!", "Format.Prefix": "<color=#00FF00>[Limit Entities]</color>: ", "Info.Help": "Get current limits: <color=#FFFF00>/{0}</color>", "Info.LimitBuilding": "You have built <color=#FFA500>{0}</color> of <color=#FFA500>{1}</color> entities in this building", "Info.LimitBuildingEntity": "You have built <color=#FFA500>{0}</color> of <color=#FFA500>{1}</color> <color=#FFA500>{2}</color> in this building", "Info.LimitGlobal": "You have built <color=#FFA500>{0}</color> of <color=#FFA500>{1}</color> entities", "Info.LimitGlobalEntity": "You have built <color=#FFA500>{0}</color> of <color=#FFA500>{1}</color> <color=#FFA500>{2}</color>", "Info.Limits": "\nYour global limits are:\n<color=#FFA500>{0}</color>\nYour limits per building are:\n<color=#FFA500>{1}</color>", "Info.TotalAmount": "Total amount: <color=#FFA500>{0}</color>", "Info.Unlimited": "Your ability to build is unlimited", "Foundations": "Foundations", "Furnace": "Furnace", "PlanterBoxes": "PlanterBoxes", "Quarries": "Quarries", "Roof": "Roof", "TC": "TC" }
There is a free version on uMod, why do you even need this plugin?
- First of all, this plugin was designed to be efficient and performant. It uses unique caching system that should not consume no additional server resources
- Much more efficient building limit control system even without cupboard placed
- More accurate mechanism for notification messages
- Allows you to prevent entities placement if limit is set to 0
- Supports Rust Translation API so you can have full support of any language Rust supports
- Supports Entity Groups !
- Supports checks to prevent excessive merging of buildings
- Supports Abandoned Bases plugin