Custom Gather Rates lets you configure how much players receive when gathering resources. You can set global multipliers that apply to everyone, or create permission-based profiles that give certain players (like VIPs) increased rates. The plugin supports all major gather types: resource dispensers (trees, nodes), pickups (hemp, mushrooms), growables (farms), quarries, and excavators.
Multipliers stack with existing game mechanics and other gather plugins. For example, a 2x wood multiplier means players get double the normal amount when hitting a tree.
Sets global wood gathering from dispensers to 2x for all players.
Sets all dispenser gathering to 1.5x for players with
Sets quarry output to 3x for players with
Gather categories:
Use
This gives 2x wood, 1.25x stone, and 1.5x for everything else when gathering from dispensers.
Grant permissions using:
Multipliers stack with existing game mechanics and other gather plugins. For example, a 2x wood multiplier means players get double the normal amount when hitting a tree.
Features
- Global rates - Set base multipliers that apply to all players
- Permission profiles - Create VIP or rank-based gather rates with custom permissions
- Per-resource control - Set different rates for specific items (e.g., 2x wood, 1.5x stone) or use wildcards for all items
- Multiple gather types - Supports dispensers, pickups, growables, quarries, and excavators
- Player rate display - Let players check their current multipliers with a chat command
- Console configuration - Adjust rates in real-time without editing config files
Permissions
customgatherrates.admin-- Grants access to console commands for setting ratescustomgatherrates.<suffix>-- Dynamic permissions created per profile (e.g.,customgatherrates.vip)
PermissionSuffix: "vip" creates the permission customgatherrates.vip.Commands
/gather-- Shows your current gather multipliers for each categorygather.rate <mode> [suffix] <category> <resource> <multiplier>-- Sets a gather ratemode-- Eitherglobal(applies to everyone) orperm(applies to a permission profile)suffix-- Permission suffix (only required when mode isperm)category-- Gather category:Dispenser,Pickup,Growable,Quarry, orExcavatorresource-- Item shortname (e.g.,wood,stones) or*for all items in the categorymultiplier-- Multiplier value (must be greater than 0)
Code:
gather.rate global Dispenser wood 2.0
Code:
gather.rate perm vip Dispenser * 1.5
customgatherrates.vip permission.
Code:
gather.rate perm donor Quarry * 3.0
customgatherrates.donor permission (creates profile if it doesn't exist).Configuration
JSON:
{
"Version": "1.0.1",
"Show Rates Chat Command": "gather",
"Global Rates": {
"Dispenser": {
"*": 1.0
},
"Growable": {
"*": 1.0
},
"Pickup": {
"*": 1.0
},
"Quarry": {
"*": 1.0
},
"Excavator": {
"*": 1.0
}
},
"Permission Profiles": [
{
"Permission Suffix": "vip",
"Rates": {
"Dispenser": {
"*": 1.5,
"wood": 2.0
},
"Pickup": {
"*": 1.75
},
"Growable": {
"*": 1.25
},
"Quarry": {
"*": 1.0
},
"Excavator": {
"*": 1.0
}
}
}
]
}
General Settings
Show Rates Chat Command-- Chat command players use to check their rates
Global Rates
Global rates apply to all players who don't have a permission profile. Each gather category can have a wildcard multiplier (*) for all items or specific item multipliers.Gather categories:
Dispenser-- Resources from hitting trees, ore nodes, barrels, and other harvestable objectsPickup-- Resources from picking up hemp, mushrooms, corn, pumpkins, and other collectiblesGrowable-- Resources from harvesting farm plants and taking clonesQuarry-- Resources produced by mining quarriesExcavator-- Resources produced by the excavator monument
Use
"*": 1.0 as the default for each category. Add specific item overrides using item shortnames:
JSON:
"Dispenser": {
"*": 1.5,
"wood": 2.0,
"stones": 1.25
}
Permission Profiles
Permission profiles let you create tiered gather rates. Players with higher-priority profiles receive those rates instead of global rates. Profiles are checked in order, so put your highest tier first.Permission Suffix-- The suffix added to customgatherrates. to create the permission (e.g., vip creates customgatherrates.vip)Rates-- Gather rates structured the same as Global Rates
JSON:
"Permission Profiles": [
{
"Permission Suffix": "elite",
"Rates": {
"Dispenser": { "*": 3.0 },
"Pickup": { "*": 3.0 },
"Growable": { "*": 2.0 },
"Quarry": { "*": 2.0 },
"Excavator": { "*": 2.0 }
}
},
{
"Permission Suffix": "vip",
"Rates": {
"Dispenser": { "*": 2.0 },
"Pickup": { "*": 2.0 },
"Growable": { "*": 1.5 },
"Quarry": { "*": 1.5 },
"Excavator": { "*": 1.5 }
}
}
]
Code:
oxide.grant user <username> customgatherrates.vip
oxide.grant group vip customgatherrates.vip
How It Works
Priority System
The plugin checks rates in this order:- Permission profiles (first to last) - If the player has a profile permission, use those rates
- Global rates - If no profile matches, use global rates
- Default - If nothing is configured, multiplier is 1.0 (no change)
Resource-Specific Rates
Within each category, the plugin checks:- Specific item - If a rate exists for the exact item shortname (e.g.,
wood), use that - Wildcard - If no specific rate exists, use the
*rate - Default - If neither exists, multiplier is 1.0
Quarries and Excavators
For quarries and excavators, the plugin tracks who started the machine:- Quarries - The player who toggles the quarry on receives credit for all output
- Excavators - The player who sets the excavator arm's resource receives credit for that arm's output
Localization
JSON:
{
"Error.NoPermission": "You do not have permission to use this command.",
"Error.InvalidArguments": "Invalid arguments supplied.",
"Error.InvalidFirstArgument": "First argument must be 'global' or 'perm'.",
"Error.InvalidPermissionName": "Permission name is not valid.",
"Error.InvalidGatherCategory": "Gather category is not recognised.",
"Error.InvalidMultiplier": "Multiplier must be a number greater than 0.",
"Error.EntryDoesNotExist": "There is no existing rate entry to remove.",
"Info.Header.YourRates": "Your gather multipliers:",
"Info.Line.Rate": "{0}: x{1}",
"Info.NoRateOverrides": "All rates are default (x1).",
"Info.RateSet": "Set {0} / {1} to x{2}."
}