Repository navigation
ActivityEconomy Wiki
Passive, automatic economy rewards for normal Minecraft gameplay.
ActivityEconomy rewards players automatically when they perform configured activities such as mining, building, crafting, fishing, enchanting, brewing, traveling, and remaining active on the server.
ActivityEconomy is not a Jobs plugin.
Players do not choose jobs, join professions, open job GUIs, start activities, or manually claim rewards.
The plugin follows a simple process:
Player plays normally
↓
ActivityEconomy detects an activity
↓
Reward is calculated
↓
Multipliers and scaling are applied
↓
Rolling hourly limit is checked
↓
Money is deposited
↓
Statistics are stored
↓
Action bar displays the reward
The goal is to add an automatic source of economy income without turning normal gameplay into a job-selection system.
- Paper 1.21.x
- Java 21
- Vault
- A Vault-compatible economy provider
- PlaceholderAPI
- WorldGuard
ActivityEconomy supports economy providers through Vault, including:
- EssentialsX Economy
- CMI Economy
- CoinEngine when it exposes a Vault Economy service
EssentialsX and CMI are not hard dependencies.
Install:
Vault
Your Vault-compatible economy provider
For optional integrations, install:
PlaceholderAPI
WorldGuard
Place:
activityeconomy-1.0.0.jar
inside:
/plugins/
Start the Paper server and allow ActivityEconomy to generate its configuration files.
Open the generated ActivityEconomy configuration and adjust rewards, limits, multipliers, activities, and messages for your server.
ActivityEconomy currently supports automatic rewards for the following activities.
Players can receive rewards for remaining actively online.
Playtime rewards can be configured according to the server's economy.
Players can receive rewards for breaking configured blocks.
Rewards can be configured for specific block types and values.
Players can receive rewards for legitimate building activity.
ActivityEconomy tracks player-placed blocks to prevent this exploit:
Place
↓
Break
↓
Place
↓
Break
↓
Infinite rewards
Tracked placed blocks prevent repeated placement and breaking from becoming an unlimited source of money.
Players can receive rewards when crafting configured items or recipes.
Players can receive rewards for successful fishing activity.
Fishing protections are included to reduce repetitive or automated farming.
Players can receive rewards for successful enchanting activity.
Players can receive rewards for brewing activity.
Players can receive rewards for legitimate movement over distance.
The travel system includes protections against invalid movement and teleport-based farming.
ActivityEconomy uses Vault as the main economy interface.
ActivityEconomy
↓
Vault
↓
Economy Provider
This allows ActivityEconomy to work with different economy plugins without requiring direct dependencies on each provider.
The economy transaction is processed first.
After the transaction succeeds, the reward is written to the SQLite ledger.
This prevents a failed economy transaction from incorrectly increasing stored earnings.
All internal monetary calculations use BigDecimal.
ActivityEconomy provides automatic reward scaling and configurable economy limits.
Example:
economy-balance:
target-per-hour: 90.0
maximum-per-hour: 100.0The target represents the intended normal earning level.
The maximum represents the hard rolling earning limit.
The target is not a guaranteed salary. Different players perform different activities at different rates, so actual income can vary.
ActivityEconomy uses a rolling 60-minute earning window.
Example:
Maximum: $100.00
Already earned: $96.50
Remaining: $3.50
If the next calculated reward is $10.00, the plugin can only pay the remaining $3.50.
Once older earnings leave the rolling 60-minute window, that portion of the allowance becomes available again.
This provides a hard economy-level protection against unlimited reward generation.
Rewards can be reduced as a player approaches the hourly maximum.
Conceptually:
Low earnings
↓
Normal reward
Higher earnings
↓
Reduced reward
Near maximum
↓
Very small reward
Maximum reached
↓
No further reward
The scaling behaviour is configurable.
The rolling hourly maximum remains the final safety boundary.
Activity weights allow administrators to define the relative importance of different activities.
Example:
activity-weights:
playtime: 20
block-break: 15
block-place: 10
travel: 15
crafting: 10
fishing: 10
enchanting: 10
brewing: 10Weights are part of the administrator-facing balancing system.
Because different activities occur at different frequencies, the plugin also uses configurable reward rates rather than relying only on a percentage split.
Different permission groups can receive configurable reward multipliers.
Example:
Default → 1.00x
VIP → 1.25x
MVP → 1.50x
Permission multipliers can be configured by the administrator.
The hourly maximum still applies unless a bypass is explicitly configured.
Rewards can also be modified by world.
Example:
survival → 1.0x
resource_world → 0.5x
creative → disabled
This is useful when servers have separate resource or gameplay worlds.
ActivityEconomy includes several protections designed to prevent automated reward farming.
Prevents:
Place → Break → Place → Break
from continuously producing rewards.
AFK players can be prevented from receiving activity rewards according to the configured behaviour.
Travel rewards are protected against methods such as:
- Teleports
- Server transfers
- Fake movement
- Abnormal movement
- Repetitive movement
Suspicious repetitive fishing behaviour can be restricted.
The rolling 60-minute limit provides an additional economy-wide safety boundary.
/activityeconomy stats [player]
Displays ActivityEconomy statistics.
/activityeconomy info [player]
Displays player economy/activity information.
/activityeconomy debug [player]
Displays reward calculation and activity debugging information.
/activityeconomy reload
Reloads supported configuration.
/activityeconomy pause
Temporarily stops rewards.
/activityeconomy resume
Resumes rewards.
/activityeconomy toggle <activity>
Enables or disables an activity.
activityeconomy.admin
activityeconomy.reload
activityeconomy.balance
activityeconomy.stats
activityeconomy.bypass
activityeconomy.multiplier.<name>
Use the smallest permission set necessary for each staff role.
ActivityEconomy can display rewards through the action bar.
Example:
+$0.25 | This hour: $42.35/$100.00
Available reward placeholders include:
%amount%
%activity%
%hourly_earned%
%hourly_remaining%
%hourly_limit%
%target_per_hour%
%player%
%currency%
The action bar can be configured to reduce excessive notifications when multiple rewards occur quickly.
PlaceholderAPI is optional.
When installed, ActivityEconomy provides placeholders such as:
%activityeconomy_hourly_earned%
%activityeconomy_hourly_limit%
%activityeconomy_hourly_remaining%
%activityeconomy_target%
%activityeconomy_today%
%activityeconomy_activity%
These can be used by other plugins that support PlaceholderAPI.
Vault is the primary economy integration layer.
EssentialsX Economy works through Vault.
EssentialsX is not a hard dependency.
CMI Economy works through Vault.
CMI is not a hard dependency.
CoinEngine is supported when it registers a Vault Economy service.
ActivityEconomy does not rely on an undocumented or invented direct CoinEngine API.
If the installed CoinEngine version does not expose a usable Vault economy service, an appropriate Vault bridge is required.
ActivityEconomy uses SQLite for persistent data.
Player state is cached while players are online.
Database updates are performed asynchronously where appropriate so reward events do not perform blocking database work on the main server thread.
Persistent data includes activity and economy statistics as well as relevant anti-exploit state.
ActivityEconomy is designed for production Paper servers.
The implementation avoids unnecessary:
- Synchronous database operations
- Repeated storage queries
- Excessive per-player memory use
- Console logging for every reward
- Expensive processing where it is not required
Debug mode can be used to inspect reward calculations.
Debug information can include:
Activity
Base reward
Scaling multiplier
Final reward
Hourly earnings
Hourly limit
Normal operation does not need to print every reward to the console.
Check:
- Vault is installed.
- A Vault-compatible economy provider is installed.
- The economy provider successfully registered with Vault.
- ActivityEconomy is enabled.
- Rewards have not been paused.
- The relevant activity is enabled.
- The player has not reached the hourly limit.
Check the player's current rolling 60-minute earnings.
The configured maximum prevents additional economic rewards when the remaining allowance reaches zero.
Verify that the installed CoinEngine version exposes a compatible Vault economy service.
If it does not, a suitable Vault bridge is required.
Verify that PlaceholderAPI is installed and enabled before ActivityEconomy.
Paper 1.21.x
Paper 26.2
Latest build at testing time
Java 21
ActivityEconomy is developed for Paper 1.21.x.
Compatibility with other server implementations or other builds may vary.
Requirements:
- Java 21
- Maven
Build with:
mvn packageThe distributable JAR is generated at:
target/activityeconomy-1.0.0.jar
The repository contains the source project, build configuration, plugin configuration, and documentation.
No.
There are no jobs or professions.
No.
Configured activities are detected automatically.
No.
Rewards are deposited automatically.
Yes.
ActivityEconomy uses a rolling 60-minute earning limit.
Yes, through Vault.
Yes, through Vault.
Yes.
Persistent data is stored using SQLite.
Initial release featuring:
- Passive activity rewards
- Vault economy integration
- EssentialsX and CMI compatibility
- CoinEngine Vault compatibility
- SQLite persistence
- Rolling 60-minute earning limit
- Reward scaling
- Activity weighting
- Permission and world multipliers
- Anti-exploit protection
- Action-bar notifications
- PlaceholderAPI support
- Administrative commands