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.
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`.
Extended Power Lights (Deluxe Christmas Lights) support added: there is a new group of limits added into config. Defaults are -1, means no limits. Set it according to your needs.
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: For better performance, grant permissions only to players you want to limit, or use an immunity permission to disable limits entirely.
- Enable or disable notifications and logging.
- Set the Building Detection Range to be used when a building is not specified (e.g., not a decay entity). Do not set this value too high — it may significantly impact performance!
- Enable or disable tracking (and limiting) for Power Lights (Deluxe Christmas Lights).
- Enable or disable tracking (and limiting) for Growable Entities.
- Set the SteamIDIcon to a specific SteamID to customize the account icon in chat messages.
- Define the commands list (defaults are limits and limit).
- Set the percentage (%) at which limit notifications appear. If set to 0, notifications will only show when the limit is reached.
- Add entity prefab names to the Excluded List to make the plugin completely ignore those prefabs.
- Enabling Prevent Excessive Merging of buildings may affect performance, so use it at your own risk!
- Use Entity Groups to combine entities and set a shared limit for the entire group.
Note: The same entity cannot be listed in both Group Entities and Limits Entities at the same time.
Quote{ "Enable GameTip notifications": false, "Enable notifications in chat": false, "Chat steamID icon": 0, "Commands list": [ "limits", "limit" ], "Warn when more than %": 80.0, "Building detection range": 1.51, "Track growable entities": false, "Track powered lights": false, "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/deployable/planters/planter.triangle.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", "assets/prefabs/misc/decor_dlc/rail road planter/triangle_railroad_planter.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", "assets/prefabs/deployable/tool cupboard/shockbyte/cupboard.tool.shockbyte.deployed.prefab" ] } ], "Permissions": [ { "Permission": "default", "Priority": 10, "Limits Global": { "Limit Total": 2000, "Limits Entities": { "assets/content/props/strobe light/strobelight.prefab": 10, "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/content/props/strobe light/strobelight.prefab": 5, "assets/prefabs/deployable/search light/searchlight.deployed.prefab": 5, "assets/prefabs/deployable/windmill/electric.windmill.small.prefab": 5 } }, "Limits Powered Lights": { "Maximum Point Count": -1, "Maximum Total Length": -1.0, "Maximum Distance Between Points": -1.0 }, "Prevent excessive merging of buildings": false }, { "Permission": "vip", "Priority": 20, "Limits Global": { "Limit Total": 5000, "Limits Entities": { "Foundations": 500, "Roof": 400 } }, "Limits Building": { "Limit Total": 2000, "Limits Entities": { "assets/content/props/strobe light/strobelight.prefab": 15, "assets/prefabs/deployable/search light/searchlight.deployed.prefab": 15, "assets/prefabs/deployable/windmill/electric.windmill.small.prefab": 15 } }, "Limits Powered Lights": { "Maximum Point Count": -1, "Maximum Total Length": -1.0, "Maximum Distance Between Points": -1.0 }, "Prevent excessive merging of buildings": false }, { "Permission": "elite", "Priority": 30, "Limits Global": { "Limit Total": 10000, "Limits Entities": { "Foundations": 2000, "Roof": 1000 } }, "Limits Building": { "Limit Total": 5000, "Limits Entities": { "assets/content/props/strobe light/strobelight.prefab": 20, "assets/prefabs/deployable/search light/searchlight.deployed.prefab": 20, "assets/prefabs/deployable/windmill/electric.windmill.small.prefab": 20 } }, "Limits Powered Lights": { "Maximum Point Count": -1, "Maximum Total Length": -1.0, "Maximum Distance Between Points": -1.0 }, "Prevent excessive merging of buildings": false } ], "Log Level (Debug, Info, Warning, Error, 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.LimitPoweredLights.Length": "You have exceeded the total length limit of <color=#FFA500>{0}</color> meters for <color=#FFA500>{1}</color>", "Error.LimitPoweredLights.LengthPoint": "The distance between points exceeds the limit of <color=#FFA500>{0}</color> meters for <color=#FFA500>{1}</color>", "Error.LimitPoweredLights.PointCount": "You have reached the limit of <color=#FFA500>{0}</color> points for <color=#FFA500>{1}</color>", "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
- Supports advanced limits for Power Lights (Deluxe Christmas Lights)
- Supports setting advanced building detection range