If you update from an old version (<2.0) to v2.0 - please check important notes in the update changelog named "PuzzlePaydayLite 2.0".
The placeholder system has been completely reworked. While legacy placeholders are still fully supported (meaning your current scoreboards, menus, and external usages won't break), I highly recommend reviewing the placeholders you are using and migrating to the new ones listed below. The new format offers much more flexibility, including accurate predictions for the paydays.
What is PuzzlePaydayLite
PuzzlePaydayLite is a lite (free) version of the PuzzlePayday plugin. It was created to give salaries to players on your server. The plugin is highly customizable: you can configure almost everything, including time intervals, salary amounts, messages, group salaries, offline salaries with groups, and more.
This plugin is not recommended for servers with a large number of players online at the same time and a lot of offline players saved. If your server needs that, you can use the Premium version of this plugin - PuzzlePayday.
Most features and differences compared to the Premium version can be found in the “Features” section below.
Contacts
If you want new features added to this plugin, feel free to suggest them; I will try to implement them if they are interesting and useful. If you have any questions about using this plugin or encounter any bugs, you can contact me on my Discord channel.
Features
Features (Lite Version):
Flexible payday configuration: start time, payment interval, and salary amount.
Fully customizable messages for players via configuration files.
Permission-based control over who can receive payday rewards and which salary distribution by groups with different amounts per group.
Custom group display names.
Support for groups even without LuckPerms (custom permission-based groups).
Customizable money format (shared across Puzzle plugins via PuzzleLib).
Commands can be executed for every player during online payday.
Offline payday support (requires Vault and Economy. Can work without permission plugins with limitations in unsafe mode, so I highly recommend you to use permission plugin for this feature).
Ability to use group salaries for offline payday with configurable reduction percentage.
Option to disable online payday and pay only offline players.
AFK player ignore option during payday.
Customizable title messages and sounds during payday.
A lot of placeholders related to payday information.
HEX and gradient color support in messages.
Payment history logging to file.
/payday reschedule command to reload config and reschedule payday without server restart.
Advanced payday processing with lag protection for both online and offline paydays to maintain stable TPS.
Extremely fast and safe processing for large servers (1000+ online and 20,000+ offline players has been tested).
Fully customizable /payday command for players.
Expanded placeholder system.
Database integration for payday data storage.
Offline messages: configurable messages sent to players when they join the server after earning offline payday.
Offline payday limit to control the maximum amount a player can earn while offline. Permission to bypass offline payday limit: puzzlepayday.receive.offline.overlimit.
Playtime requirement for online payday rewards. Permission to bypass playtime requirement: puzzlepayday.receive.notime.
Group-specific command execution.
{commands} placeholder to control where command output messages appear (The main problem is that commands are very different in every plugin and I can't control it from every external plugin, so that's why this feature has been added).
performance.yml for manual tuning of advanced processing logic (Can be very helpful for servers with large amount of online/offline players or when a lot of commands from external plugins are used).
Silent console mode to redirect command spam into log files and keep console clean (Work only when external plugins use traditional logger system).
Streak Bonus system to reward consecutive paydays with two calculation modes (INTERVAL and PERMANENT) and a customizable save-time for temporarily disconnected players.
Weekend Bonus multiplier to automatically increase salaries on Saturdays and Sundays.
Lucky Bonus system with a customizable percentage chance to grant players an extra multiplier on their payday salary.
Fully modular bonus design: every bonus (Streak, Weekend, Lucky) can be independently enabled, disabled, and configured.
Bonus-specific messages and command execution to run additional commands and messages when a player receives a specific bonus.
Optional (external plugins for extended features):
Vault and any Economy plugin compatible with Vault (such as EssentialsX) - adds the ability to pay paydays with money and add offline payday feature; otherwise, only command rewards will be available for online payday.
LuckPerms - adds the ability to use faster and safer logic to salary by groups; otherwise, custom groups logic will be used.
EssentialsX - adds the ability to use AFK ignore function.
PlaceholderAPI - adds the ability to use placeholders from the list below.
Commands
/payday reload | [admins] Reload the plugin.
/payday reschedule | [admins] Reload the plugin and reschedule the payday scheduler (use this to change the salary time when the server is running after changing the Period section in the config).
/payday give | [admins] Give payday once. (It doesn’t affect periodic payday).
Permissions
puzzlepayday.admin | Use admin commands.
puzzlepayday.receive | Receive salary at payday time (enabled for the default group).
puzzlepayday.receive.afk | Receive salary even if the AFK ignore function is enabled and the player is AFK.
puzzlepayday.receive.offline.groups | Receive group salary in offline payday.
Placeholders
%puzzlepayday_time% |
Current server time. %puzzlepayday_time_left% |
Time left until the next payday. %puzzlepayday_time_left_minutes% |
Time left until the next payday in minutes. %puzzlepayday_time_next_payday% |
Time of the next payday. %puzzlepayday_datetime_next_payday% |
Date and time of the next payday.
%puzzlepayday_group_name% |
Player’s group name. %puzzlepayday_group_displayname% |
Player’s group display name.
%puzzlepayday_salary_standard% |
Standard payday salary. %puzzlepayday_salary_standard_raw% |
Standard payday salary (raw). %puzzlepayday_salary_group% |
Current group bonus amount. %puzzlepayday_salary_group_raw% |
Current group bonus amount (raw). %puzzlepayday_salary_total% |
Current total salary. %puzzlepayday_salary_total_raw% |
Current total salary (raw). %puzzlepayday_salary_total_no_bonus% |
Current total salary without bonuses. %puzzlepayday_salary_total_no_bonus_raw% |
Current total salary without bonuses (raw). %puzzlepayday_bonus_streak% |
Last received streak bonus. %puzzlepayday_bonus_streak_raw% |
Last received streak bonus (raw).
%puzzlepayday_streak% |
Current player streak count. %puzzlepayday_streak_remaining% |
Paydays remaining to get the next streak bonus. %puzzlepayday_streak_required% |
Configured streak interval required for bonus. %puzzlepayday_streak_multiplier% |
Configured streak multiplier.
%puzzlepayday_offline_salary_standard% |
Base offline payday salary. %puzzlepayday_offline_salary_standard_raw% |
Base offline payday salary (raw). %puzzlepayday_offline_salary_reduce% |
Reduction amount. %puzzlepayday_offline_salary_reduce_raw% |
Reduction amount (raw). %puzzlepayday_offline_salary_total% |
Total offline salary. %puzzlepayday_offline_salary_total_raw% |
Total offline salary (raw). %puzzlepayday_offline_salary_reduce_percent% |
Offline reduction percentage.
%puzzlepayday_stats_last_online_paid% |
Number of online players paid. %puzzlepayday_stats_last_offline_paid% |
Number of offline players paid. %puzzlepayday_stats_last_afk% |
Number of AFK players ignored. %puzzlepayday_stats_last_streaked% |
Number of players with streak bonus. %puzzlepayday_stats_last_online_duration_seconds% |
Time spent processing online payday. %puzzlepayday_stats_last_offline_duration_seconds% |
Time spent processing offline payday. %puzzlepayday_stats_last_duration_seconds% |
Total processing time in seconds. %puzzlepayday_stats_last_online_maxsalary% |
Highest salary paid in online payday. %puzzlepayday_stats_last_online_maxsalary_raw% |
Highest salary paid in online payday (raw). %puzzlepayday_stats_last_online_given% |
Total money given to online players. %puzzlepayday_stats_last_online_given_raw% |
Total money given to online players (raw). %puzzlepayday_stats_last_offline_maxsalary% |
Highest salary paid in offline payday. %puzzlepayday_stats_last_offline_maxsalary_raw% |
Highest salary paid in offline payday (raw). %puzzlepayday_stats_last_offline_given% |
Total money given to offline players. %puzzlepayday_stats_last_offline_given_raw% |
Total money given to offline players (raw).
These values are calculated dynamically based on the player's current status. %puzzlepayday_next_salary_group% |
Calculated group salary. %puzzlepayday_next_salary_group_raw% |
Calculated group salary (raw). %puzzlepayday_next_salary_total% |
Calculated total salary. %puzzlepayday_next_salary_total_raw% |
Calculated total salary (raw). %puzzlepayday_next_salary_total_no_bonus% |
Calculated total salary without bonuses. %puzzlepayday_next_salary_total_no_bonus_raw% |
Calculated total salary without bonuses (raw). %puzzlepayday_next_bonus_streak% |
Calculated streak bonus. %puzzlepayday_next_bonus_streak_raw% |
Calculated streak bonus (raw).
Configuration file
Starting from version 2.0, it's not needed to save the config file here. You can find all information straight inside every config. If you don't see the comments or you have removed them, you can use the next feature:
You can clear all comments and load default comments by this way: Put #load_info on the first line in the config file -> save it -> use the reload command in the Puzzle plugin where you are making these changes.
Additional information
You can find additional useful information regarding Puzzle plugins on the
PuzzleLib page: