About Better Backpacks
-
Maximum optimized solution without the possibility of duping. One backpack - one container.
This is an important feature because it ensures that each backpack has its own unique container and eliminates the possibility of incorrectly duplicating items. -
No data files or similar things are used. Backpacks and items are saved in the original way of the game.
This provides efficient management of backpacks and items in the game without the need for complex or additional file systems. -
Backpacks are physical items and there can be multiple pieces of them.
This is essential for creating a realistic game experience where players can have multiple backpacks in their inventory. -
Backpacks can be of all capacities, types (item or liquid) and for different purposes.
This enhances the gameplay experience by allowing players to choose backpacks based on their specific needs. -
Autoloot feature in backpacks is present (customizable for each backpack). Items will go straight into the backpack when picked up.
This feature makes gameplay easier by allowing items to go straight into the backpack you are wearing without additional actions. -
Backpack cooking feature is present (customizable for each backpack). Melts and roasts items inside the backpack. The function matches the original mechanics of the stove.
This feature adds an additional gameplay element by allowing players to cook food and recycle items directly inside the backpack. -
The backpack lies in the parachute slot and is displayed on the player.
This feature allows the backpack to be worn on the back without taking up inventory space, as well as being visually displayed to players. -
The backpack has several ways to open.
The first through a button in the interface when selecting an item, this allows you to effectively move between backpacks and inspect them even in the box.
The second through a command if the player has the appropriate permission. The opening will be done for an equipped backpack. -
Each backpack has its own shortname and itemid.
This helps in easy management and customization. - Each backpack has a black sheet and a white sheet, allowing you to create a variety of backpacks for different scenarios as flexibly as possible.
- There is an option to return backpacks after death.
- This helps to save players' progress and prevents the loss of backpacks in case of unexpected situations.
- It is possible to limit the number of backpacks in the inventory, set the maximum stack in the container, as well as customize the maximum stack for items.
- These parameters allow you to carefully control the number of backpacks in the inventory and items in them, which is important for the balance of gameplay.
Installation:
The plugin necessarily needs the CustomItemDefinitions plugin, so the first thing we do is download and install it by throwing it into the oxide/plugins folder
Link to the plugin: https://codefling.com/extensions/custom-item-definitions
After purchase, download and install this plugin by dropping it into the oxide/plugins folder
Quick Start:
In the default configuration 7 different backpacks are available, their shortnames and itemid can be viewed in the config.
Quick grant important permissions:
Allow players to use the autoloot and furnace functions if they are present in a particular backpack
o.grant group default betterbackpacks.autoloot.allow o.grant group default betterbackpacks.furnace.allow
Allow players to open an equipped backpack on command
o.grant group default betterbackpacks.commands.open.allow
Permission to enable Sortify plugin functionality:
betterbackpacks.sortify.use o.grant group default betterbackpacks.sortify.use
The full version is available here:
Permission to return all backpacks after death:
betterbackpacks.always_reclaim o.grant group admin betterbackpacks.always_reclaim
Permissions and their descriptions:
- betterbackpacks.commands.open.allow - Allows the use of a command to open an equipped backpack
- betterbackpacks.sortify.use - Use the functionality of the Sortify plugin, full version here
- betterbackpacks.backpackslimit.bypass - Bypass the maximum number of backpacks in inventory (for admins).
- betterbackpacks.autoloot.allow - Allow to use autoloot function if it is present in a particular backpack.
- betterbackpacks.autoloot.any - Adds autoloot feature for all backpacks.
- betterbackpacks.furnace.allow - Allow to use the furnace function if it is present in a specific backpack.
- betterbackpacks.furnace.any - Adds the furnace function to all backpacks.
- betterbackpacks.always_reclaim - Returns all backpacks on death
Commands to open an equipped backpack:
- Console command - backpack.open (no delay)
-
Chat command - /backpack (delay 0.2 seconds to wait for chat opening to close)
More details about the functions and their customization:
Quote"Max amount backpacks in player inventory (minimum 1)"
Control the number of max amount backpacks in player inventory.
Quote"Prohibit putting backpacks in backpacks?"
Control the ability to put backpacks in backpacks.
Quote"Unique new item shortname"
Here you need to specify the shortname for a particular customized backpack, it will be used in the issue or specified in other plugins. Do not be afraid to specify it in other plugins, it will work.
IMPORTANT: do not specify here shortnames of original items, this field is for a new shortname of a new item. Nothing bad will happen, it will report in the console and remove the backpack from the config.
Quote"ItemId (DO NOT MODIFY THIS FIELD!)"
This field is not used for editing, it is an auto-generated field. This field is for copying and specifying in other plugins.
Quote"Name".
Default name for the item. Further the name for different languages is customized in lang files.
Quote"SkinID (you can use the same ones for several backpacks)"
The skin that will be given to the new item, you can specify the same ones, the plugin does not use the SkinID for identification.
Quote"Capacity"
The parameter of the capacity of the backpack. You can specify any, but within reasonable limits, do not specify billions or it may kill your server.
Quote"Reclaim after death"
Set this to true if you want the backpack to be returned to the player after death.
Quote"Reclaim only if equipped"
Specify here true if you want the backpack to be returned only if equipped.
Quote"Contents Type (1 - General | 2 - Liquid)"
Container type for the backpack, use 1 for general (default), 2 for liquid.
Quote"Container Max Stack Size (0 = default)"
Parameter to limit the maximum stack size for items in the container. This is not a hard limit, the minimum number for this parameter and the default stack is used. If you need to hard limit, add the items you want to "Max stacks by shortname"
Quote"Use list (0 - None | 1 - Whitelist | 2 - Blacklist)"
Selects a list to restrict items. Types:
Blacklist allows all items except the specified items.
White list allows only the specified items.
Quote"Item list to exclude (for whitelist/blacklist)"
A list of items for the specified item list in the "Use list (0 - None | 1 - Whitelist | 2 - Blacklist)" field.
Example and description:
"Item list to exclude (for whitelist/blacklist)." [ { "Shortname": "stones", // Item Shortname "SkinID (negative value = any)": -1 // If it is -1, then the item is with any skin, if a specific one is specified, then only with that skin. }, { }, { "shortname": "sulfur.ore", "SkinID (negative value = any)": -1 }, ],
Quote"Auto-Loot".
Parameter to enable the autoloot feature.
To work the player must have the permission "betterbackpacks.autoloot.allow" or "betterbackpacks.autoloot.any".
Once enabled, the player must wear the desired backpack and then all items that will fall into the player's inventory will be in the backpack.
This works with mining and picking up items.
Quote"Furnace"
Parameter to enable the furnace function.
The player must have the "betterbackpacks.furnace.allow" or "betterbackpacks.furnace.any" permission present for it to work.
For this to work, the player must have wood in his backpack.
Works similarly to how a furnace works.
It takes combustible material and melts what can melt, there is an opportunity to change the maximum number of simultaneously cooked items in the oven
Quote"Max number of simultaneously cooked items in the furnace".
Max number of simultaneously cooked items in the furnace in the backpack.
Quote"Max stacks by shortname"
List for hard limit of stacks for an item by shortname in the format "shortname": stack size
Example:
{ "shortname1": 1000, "shortname2": 1 }
Default config:
{ "General": { "Max amount backpacks in player inventory (minimum 1)": 100, "Prohibit putting backpacks in backpacks?": true }, "Backpacks (Add new ones at the bottom)": [ { "Unique new item shortname": "backpack.admin", "ItemId (DO NOT MODIFY THIS FIELD!)": -1878567520, "Backpack Setting": { "Name": "Admin Backpack", "SkinID (you can use the same ones for several backpacks)": 3050740532, "Capacity": 1000, "Reclaim after death": true, "Reclaim only if equipped": false, "Contents Type (1 - General | 2 - Liquid)": 1, "Container Max Stack Size (0 = default)": 0, "Use list (0 - None | 1 - Whitelist | 2 - Blacklist)": 0, "Item list to exclude (for whitelist/blacklist)": [], "Components": { "Auto-Loot": true, "Furnace": true, "Max number of simultaneously cooked items in the furnace": 3 }, "Max stacks by shortname": {} } }, { "Unique new item shortname": "backpack.small", "ItemId (DO NOT MODIFY THIS FIELD!)": -1093698081, "Backpack Setting": { "Name": "Small Backpack", "SkinID (you can use the same ones for several backpacks)": 3032442379, "Capacity": 6, "Reclaim after death": false, "Reclaim only if equipped": false, "Contents Type (1 - General | 2 - Liquid)": 1, "Container Max Stack Size (0 = default)": 0, "Use list (0 - None | 1 - Whitelist | 2 - Blacklist)": 0, "Item list to exclude (for whitelist/blacklist)": [], "Components": { "Auto-Loot": true, "Furnace": false, "Max number of simultaneously cooked items in the furnace": 3 }, "Max stacks by shortname": {} } }, { "Unique new item shortname": "backpack.large", "ItemId (DO NOT MODIFY THIS FIELD!)": -717465782, "Backpack Setting": { "Name": "Large Backpack", "SkinID (you can use the same ones for several backpacks)": 3032442379, "Capacity": 48, "Reclaim after death": false, "Reclaim only if equipped": false, "Contents Type (1 - General | 2 - Liquid)": 1, "Container Max Stack Size (0 = default)": 0, "Use list (0 - None | 1 - Whitelist | 2 - Blacklist)": 0, "Item list to exclude (for whitelist/blacklist)": [], "Components": { "Auto-Loot": true, "Furnace": true, "Max number of simultaneously cooked items in the furnace": 3 }, "Max stacks by shortname": {} } }, { "Unique new item shortname": "backpack.liquid", "ItemId (DO NOT MODIFY THIS FIELD!)": -1863402244, "Backpack Setting": { "Name": "Liquid Backpack", "SkinID (you can use the same ones for several backpacks)": 3050741122, "Capacity": 1, "Reclaim after death": false, "Reclaim only if equipped": false, "Contents Type (1 - General | 2 - Liquid)": 2, "Container Max Stack Size (0 = default)": 10000, "Use list (0 - None | 1 - Whitelist | 2 - Blacklist)": 0, "Item list to exclude (for whitelist/blacklist)": [], "Components": { "Auto-Loot": false, "Furnace": false, "Max number of simultaneously cooked items in the furnace": 3 }, "Max stacks by shortname": {} } }, { "Unique new item shortname": "backpack.comp", "ItemId (DO NOT MODIFY THIS FIELD!)": -1167179500, "Backpack Setting": { "Name": "Component Backpack", "SkinID (you can use the same ones for several backpacks)": 3050740925, "Capacity": 12, "Reclaim after death": false, "Reclaim only if equipped": false, "Contents Type (1 - General | 2 - Liquid)": 1, "Container Max Stack Size (0 = default)": 0, "Use list (0 - None | 1 - Whitelist | 2 - Blacklist)": 1, "Item list to exclude (for whitelist/blacklist)": [ { "Shortname": "gears", "SkinID (negative value = any)": -1 }, { "Shortname": "scrap", "SkinID (negative value = any)": -1 }, { "Shortname": "fuse", "SkinID (negative value = any)": -1 }, { "Shortname": "tarp", "SkinID (negative value = any)": -1 }, { "Shortname": "rope", "SkinID (negative value = any)": -1 }, { "Shortname": "sewingkit", "SkinID (negative value = any)": -1 }, { "Shortname": "techparts", "SkinID (negative value = any)": -1 }, { "Shortname": "riflebody", "SkinID (negative value = any)": -1 }, { "Shortname": "smgbody", "SkinID (negative value = any)": -1 }, { "Shortname": "semibody", "SkinID (negative value = any)": -1 }, { "Shortname": "sheetmetal", "SkinID (negative value = any)": -1 }, { "Shortname": "roadsigns", "SkinID (negative value = any)": -1 }, { "Shortname": "metalpipe", "SkinID (negative value = any)": -1 }, { "Shortname": "metalspring", "SkinID (negative value = any)": -1 }, { "Shortname": "metalblade", "SkinID (negative value = any)": -1 }, { "Shortname": "propanetank", "SkinID (negative value = any)": -1 } ], "Components": { "Auto-Loot": true, "Furnace": false, "Max number of simultaneously cooked items in the furnace": 3 }, "Max stacks by shortname": {} } }, { "Unique new item shortname": "backpack.wood", "ItemId (DO NOT MODIFY THIS FIELD!)": -16063997, "Backpack Setting": { "Name": "Wood Backpack", "SkinID (you can use the same ones for several backpacks)": 3050741444, "Capacity": 16, "Reclaim after death": false, "Reclaim only if equipped": false, "Contents Type (1 - General | 2 - Liquid)": 1, "Container Max Stack Size (0 = default)": 0, "Use list (0 - None | 1 - Whitelist | 2 - Blacklist)": 1, "Item list to exclude (for whitelist/blacklist)": [ { "Shortname": "wood", "SkinID (negative value = any)": -1 } ], "Components": { "Auto-Loot": true, "Furnace": false, "Max number of simultaneously cooked items in the furnace": 3 }, "Max stacks by shortname": {} } }, { "Unique new item shortname": "backpack.ore", "ItemId (DO NOT MODIFY THIS FIELD!)": 1211853999, "Backpack Setting": { "Name": "Ore Backpack", "SkinID (you can use the same ones for several backpacks)": 3050741346, "Capacity": 32, "Reclaim after death": false, "Reclaim only if equipped": false, "Contents Type (1 - General | 2 - Liquid)": 1, "Container Max Stack Size (0 = default)": 0, "Use list (0 - None | 1 - Whitelist | 2 - Blacklist)": 1, "Item list to exclude (for whitelist/blacklist)": [ { "Shortname": "stones", "SkinID (negative value = any)": -1 }, { "Shortname": "sulfur.ore", "SkinID (negative value = any)": -1 }, { "Shortname": "hq.metal.ore", "SkinID (negative value = any)": -1 }, { "Shortname": "metal.ore", "SkinID (negative value = any)": -1 } ], "Components": { "Auto-Loot": true, "Furnace": true, "Max number of simultaneously cooked items in the furnace": 3 }, "Max stacks by shortname": {} } } ], "This is an example from which you can take parts and put them into the backpacks you want.": { "Unique new item shortname": "backpack.example", "ItemId (DO NOT MODIFY THIS FIELD!)": -1265413270, "Backpack Setting": { "Name": "Example backpack to copy-paste parts", "SkinID (you can use the same ones for several backpacks)": 3032442379, "Capacity": 777, "Reclaim after death": false, "Reclaim only if equipped": false, "Contents Type (1 - General | 2 - Liquid)": 1, "Container Max Stack Size (0 = default)": 0, "Use list (0 - None | 1 - Whitelist | 2 - Blacklist)": 1, "Item list to exclude (for whitelist/blacklist)": [ { "Shortname": "flower", "SkinID (negative value = any)": -1 }, { "Shortname": "pokemon", "SkinID (negative value = any)": -1 } ], "Components": { "Auto-Loot": true, "Furnace": false, "Max number of simultaneously cooked items in the furnace": 3 }, "Max stacks by shortname": { "shortname1": 1000, "shortname2": 1 } } } }
Default lang file:
{ "NO_PERM_TO_USE_COMMAND": "You dont have permission to use this command.", "backpack.small": "Small Backpack", "backpack.large": "Large Backpack", "backpack.liquid": "Liquid Backpack", "backpack.admin": "Admin Backpack", "backpack.comp": "Component Backpack", "NEED_EQUIPED_BACKPACK": "An equipped backpack is required to use the command.", "backpack.wood": "Wood Backpack", "backpack.ore": "Ore Backpack", "AUTOLOOT_BUTTON": "AUTO-LOOT", "COOK_BUTTON": "COOK", "backpack.test": "Test Backpack" }