StreakRewards | Daily Streaked Rewards | 100% Configurable | NPCs | 1.8 - 1.18 2.2.0

Let your players claim daily rewards based on their claim streak.
banner-new.png
Type
  1. Other
Supported software
  1. Spigot
  2. Paper
Supported versions
  1. 1.8
  2. 1.9
  3. 1.10
  4. 1.11
  5. 1.12
  6. 1.13
  7. 1.14
  8. 1.15
  9. 1.16
  10. 1.17
  11. 1.18
Tags
Tags
daily daily rewards menu mongodb mysql rewards streak
StreakRewards is the best daily rewards plugin you could get on SpigotMC.
Every day, players can claim their daily rewards. Every day that the player claims the daily reward, without missing one day, their claim-streak will be increased. When the player forgets to claim their rewards one day, their streak will be reset and they will start from day one.
By default, the month-cycle is 30 days long. This is configurable in the config as well as all messages and options. This plugin is 100% configurable.
When the last day of the month has been reached, their streak will continue, but the day will be once again 1.

We created some fancy menu layouts for you to use for free. These are listed below. All menu items are configurable in the rewards.yml file.

A minimum of Java 17 is required for this plugin to run!

features-banner.png

  • Fully GUI based
  • 9 Menu shapes
  • Create your own menu shape
  • Open command
  • Manage the streaks via a command
  • MySQL and File storage support
  • Custom Reward Actions
  • Menu Items are configurable
  • Menu Item Slots are configurable
  • Default menu items to minimize the file size
  • Countdown placeholders for the menu lores
  • Empty slot items
  • Menu size configurable
  • Minimum online time to claim rewards
  • Join reminders for claimable rewards
  • NextReward item for when their next reward is on cooldown.
  • Ability to change menu items when the target day is claimable, not-yet-claimable, next-reward, or already-claimed.
  • NextReward item updated every second to display the right remaining time for the next reward.
  • Boost Player Streaks
  • Claim Date Types
  • Base the next day on the player's previous reward claim date.
  • Base the next day on the server host's time.
  • Citizens integration for custom NPCs that open the menu when you click on them.
  • PlaceholderAPI placeholders
  • MVdWPlaceholderAPI placeholders
  • LeaderHeads leaderboards
  • Additions+ Integration
  • Information stored per UUID; changing nickname won't affect the streak nor the last claim date
  • Easy to set up
  • Fast (Discord) Support
  • 1.8 - 1.18 support
  • More coming soon...
About "Minimum online time to claim rewards":
v1.4.3 adds this feature. If you enable it in the config, it will require players to be online at least x minutes (configurable in config) before they can claim their daily reward if available.



dependencies-banner.png

PlaceholderAPI:
Type: Soft Dependency
Description: Adds custom placeholders to PAPI. Allows placeholders to be used in the rewards.

MVdWPlaceholderAPI:
Type: Soft Dependency
Description: Adds custom placeholders to MVdWPAPI. Allows placeholders to be used in the rewards.

AdditionsPlus:
Type: Soft Dependency
Description: This overrides the actions of this plugin. You can then use their actions described on their Spigot page.

LeaderHeads:
Type: Soft Dependency
Description: Adds custom leaderboards to the plugin.

actions-banner.png

[command]:
Description: This performs a command as the player
Example: '[command]say I claimed a reward'

[console]:
Description: This performs a command as the console
Example: '[console]give %player% stick 1'

[message]:
Description: This sends a message to the player
Example: '[message]&b&lYou claimed a reward!'

For more actions, download the AdditionsPlus plugin. If you've installed that plugin, the reward actions of this plugin will be overridden by that plugin's actions. These actions are in both plugins. AdditionsPlus contains 38+ actions.
Do not use Additions (free version) to handle this. That will give errors.

commands-banner.png

Commands with the permission: streakrewards.player
/daily
opens the claim menu.
/daily getstreak [player] get your/a player's streak.
/daily getday [player] get your/a player's day (1-30).

Commands with the permission: streakrewards.admin
/daily reload
reloads the plugin.
/daily createnpc create a menu-opening NPC using Citizens.
/daily reset <player> resets the streak a player.
/daily setstreak <player> <streak> sets the streak of a player.
/daily boost <player> <boost> boosts a player by adding x days to their streak.

You can also use /streakrewards, /rewards and /sr instead of /daily.

All NPCs should be fully managed by Citizens. If you remove it using Citizens, it will also be removed from our configuration.


shapes-banner.png

In each spoiler below is a different menu shape. You can set the shape by setting the property menu_shape in the config to the name of the spoiler (TREE, REVERSED_TREE, CIRCLE, CROWN, VICTORY, TORNADO, CHEST or SNAKE).

tree-shape.png
reversed-tree-shape.png
circle-shape.png
victory-shape.png
crown-shape.png
tornado-shape.png
chest-shape.png
snake-shape.png
The custom shape allows you to set the slots of your items in the menu manually. It's pretty easy to do it.
You will need to set the shape in the config to CUSTOM.
Then go to your rewards.yml file and add the slot variable to each day. That will look something like:
Code:
day-1:
  slot: 0
day-2:
  slot: 1
day-30:
  slot: 29

Note that the slot values are starting from 0. This is Bukkit's inventory system.

config-banner.png
Code:
menu_shape: CROWN # could be either TREE, REVERSED_TREE, CIRCLE, CROWN, VICTORY, TORNADO, CHEST, SNAKE or CUSTOM
menu_title: '&b&lStreakRewards'
menu_size: 54 #Must be either 9, 18, 27, 36, 45, 54
days: 30
claim_type: PER_DAY # could be either PER_DAY or PER_PLAYER
require_minimum_time_online: false # enable if you want players to be online at least x time in order to claim their reward
minimum_time_online: 10 # players must be at least 10 minutes online to claim their reward. (this option is in minutes)
close_menu_on_click: false # if you set this to true, the menu will be closed when the player clicks a non-empty item

mysql:
  enable: false
  host: localhost
  port: 3306
  database: streakrewards
  username: myuser
  password: mypass

already_claimed: '&cYou have already claimed this reward'
come_back_tomorrow: '&cCome back tomorrow to claim this reward'
cant_claim_yet: '&cYou can''t claim this reward yet'
streak: '&aYour current streak is: &b%streak%'
streak_other: '&b%player%&a''s current streak is: &b%streak%'
day: '&aYour current day is: &b%day%'
day_other: '&b%player%&a''s current day is: &b%day%'
invalid_player: '&cThat player is not online'
reload: '&aSuccessfully reloaded the plugin'
must_specify_integer: '&cYou must specify a valid integer'
set_streak: '&aYou set &b%player%&a''s streak to &b%streak%'
boost: '&aYou boosted &b%player% &awith &b%boost% &aextra days'
reset: '&aYou reset &b%player%&a''s streak'
npc_created: '&aYou successfully created a StreakRewards NPC. Use Citizens to customize and remove it.'
must_be_longer_online: '&cYou must be at least %min_time% minutes online in order to claim this reward.'

status_placeholder_claimable: '&a&lYou can claim your next reward!'
status_placeholder_cannotclaim: '&cNext reward in %hours%h %minutes%m %seconds%s'
no_permission: '&cYou are not allowed to claim daily rewards.'

enable_streak_reset_msg: true
streak_reset: '&cYou weren''t able to claim all daily rewards in a row, so your streak will be reset.'

enable_join_reminder: true
join_reminder:
  - ' '
  - ' '
  - '&7You have unclaimed rewards!'
  - '&7Use &b/daily &7to claim them.'
  - ' '
  - ' '

The days property is for setting a custom amount of days. But make sure to only change this when having the shape to CUSTOM as all pre-made shapes are made for 30 days. You can still use a pre-made shape when having a different number set than 30, but shapes may not be fully displayed. If you set it to 30+ and you use a shape, it will most likely give errors.

reward-item-banner.png

Each day in the menu can have its own item. Each day has an unclaimed, claimed, and canClaim item that is all configurable.
To edit the items and rewards go to the rewards.yml file inside the plugin folder.

Version 1.4.3 adds default items. So if you are using the latest version, you don't need to specify the unclaimed, claimed and canClaim items for each day individually. Just customize the default items.
If you have default items and daily-customized ones, the items in the day configuration will be set as the slot item. It will override the default item.

Version 1.4.3 also adds empty slot items. This pretty much means that, if you add the 'empty' item to the 'default_items' section in the rewards.yml file, it will fill up all empty slots on the menu.
So if you don't want the empty slots to be filled, just remove it from the config.

Add this to your configuration:
Code:
default_items:
  claimed: # this item will be displayed in the menu as all days that were already claimed.
    material: STAINED_GLASS_PANE
    data: 5
    amount: -1 # set amount to -1 to make it fit the day amount
    displayName: '&bDay &a&l%day%'
    lore:
      - '&aYou claimed this day'
    glow: false
  canClaim: # this item will be displayed in the menu when as the next reward if it's claimable.
    material: STAINED_GLASS_PANE
    data: 1
    amount: -1 # set amount to -1 to make it fit the day amount
    displayName: '&bDay &a&l%day%'
    lore:
      - '&6Click to claim the rewards'
    glow: true
  unclaimed: # this item will be displayed in the menu when the day is not yet claimable.
    material: STAINED_GLASS_PANE
    data: 14
    amount: -1 # set amount to -1 to make it fit the day amount
    displayName: '&bDay &a&l%day%'
    lore:
      - '&cYou cannot claim this day yet'
    glow: false
  empty: # this item will be displayed in all empty slots of the menu. If you don't want the menu to be filled, just remove this.
    material: STAINED_GLASS_PANE
    data: 7
    amount: 1
    displayName: ' '
    lore: []
    glow: false
  nextReward: # this item will be displayed as the next reward in the menu if they have to wait for it
    material: STAINED_GLASS_PANE
    data: 1
    amount: -1
    displayName: '&bDay &a&l%day%'
    lore:
      - ''
      - '&cCome back tomorrow to claim this reward!'
      - '&6Claim this reward in %remaining_hours% hours, %remaining_minutes% minutes
      and %remaining_seconds% seconds'
Code:
default_items:
  claimed: # this item will be displayed in the menu as all days that were already claimed.
    material: LIME_STAINED_GLASS_PANE
    amount: -1 # set amount to -1 to make it fit the day amount
    displayName: '&bDay &a&l%day%'
    lore:
      - '&aYou claimed this day'
    glow: false
  canClaim: # this item will be displayed in the menu when as the next reward if it's claimable.
    material: LIME_STAINED_GLASS_PANE
    amount: -1 # set amount to -1 to make it fit the day amount
    displayName: '&bDay &a&l%day%'
    lore:
      - '&6Click to claim the rewards'
    glow: true
  unclaimed: # this item will be displayed in the menu when the day is not yet claimable.
    material: RED_STAINED_GLASS_PANE
    amount: -1 # set amount to -1 to make it fit the day amount
    displayName: '&bDay &a&l%day%'
    lore:
      - '&cYou cannot claim this day yet'
    glow: false
  empty: # this item will be displayed in all empty slots of the menu. If you don't want the menu to be filled, just remove this.
    material: GRAY_STAINED_GLASS_PANE
    amount: 1
    displayName: ' '
    lore: []
    glow: false
  nextReward: # this item will be displayed as the next reward in the menu if they have to wait for it
    material: ORANGE_STAINED_GLASS_PANE
    amount: -1
    displayName: '&bDay &a&l%day%'
    lore:
      - ''
      - '&cCome back tomorrow to claim this reward!'
      - '&6Claim this reward in %remaining_hours% hours, %remaining_minutes% minutes
      and %remaining_seconds% seconds'

The unclaimed items are displayed when the target day is not yet claimed and not possible to be claimed yet.
The claimed items are displayed when the target day has already been claimed.
The canClaim item is displayed if the current day can be claimed.
The nextReward item is displayed as the next reward when it's not yet claimable but will be soon.

Edit the day's item by adding the day to the config. The format for this is day-<dayNumber>. So an example would be:
Code:
day-5: # item of day 5
...

Now add the item options to a subsection called menu inside the day-5 section.
Code:
day-5:
  menu:
    claimedItemName: '&a&lDay 5'
    claimedItemMaterial: WOOL
    claimedItemData: 5 # will be ignored on >1.13
    claimedItemAmount: 1 # if you remove this from the config, the amount will automatically be the day count, so now 5.
    claimedItemGlow: true # set to true if you want the item to glow (hidden enchantment)
    claimedItemLore:
    - ''
    - '&7You already claimed this reward'
 
    unclaimedItemName: '&c&lDay 5'
    unclaimedItemMaterial: WOOL
    unclaimedItemData: 14 # will be ignored on >1.13
    unclaimedItemAmount: 1 # if you remove this from the config, the amount will automatically be the day count, so now 5.
    unclaimedItemGlow: false # set to true if you want the item to glow (hidden enchantment)
    unclaimedItemLore:
    - ''
    - '&7You cannot claim this reward yet'

    canClaimItemName: '&c&lDay 5'
    canClaimItemMaterial: WOOL
    canClaimItemData: 10 # will be ignored on >1.13
    canClaimAmount: 1 # if you remove this from the config, the amount will automatically be the day count, so now 5.
    canClaimItemGlow: false # set to true if you want the item to glow (hidden enchantment)
    canClaimItemLore:
    - ''
    - '&aClick here to claim this reward'

Then when you set all (un)claimed and claimable item options, you can set the rewards for that day. You can do this by adding the property actions to the section of that day (in this case day-5).
The actions are described somewhere on this page. If you have AdditionsPlus installed, you can use their actions as well.
(Make sure all hyphens are under the word 'actions')
Code:
day-5:
  actions:
  - '[console]give %player% stick 5'
  - '[message]&a&lYou successfully claimed the 5th streak reward and received 5 sticks!'
  - '[player]say I received 5 sticks :)'

When you have your shape set to CUSTOM, you will need to add the slot variable to the configuration as well. This will be the slot on the menu where the item will be placed. Note that slots are starting from 0.
Code:
day-5:
  slot: 4

Click the spoiler below to see it all together.
The configuration below doesn't contain the slot option. Make sure to add it if you have your shape set to CUSTOM.
Code:
default_items:
  claimed: # this item will be displayed in the menu as all days that were already claimed.
    material: STAINED_GLASS_PANE
    data: 5
    amount: -1 # set amount to -1 to make it fit the day amount
    displayName: '&bDay &a&l%day%'
    lore:
      - '&aYou claimed this day'
    glow: false
  canClaim: # this item will be displayed in the menu when as the next reward if it's claimable.
    material: STAINED_GLASS_PANE
    data: 1
    amount: -1 # set amount to -1 to make it fit the day amount
    displayName: '&bDay &a&l%day%'
    lore:
      - '&6Click to claim the rewards'
    glow: true
  unclaimed: # this item will be displayed in the menu when the day is not yet claimable.
    material: STAINED_GLASS_PANE
    data: 14
    amount: -1 # set amount to -1 to make it fit the day amount
    displayName: '&bDay &a&l%day%'
    lore:
      - '&cYou cannot claim this day yet'
    glow: false
  empty: # this item will be displayed in all empty slots of the menu. If you don't want the menu to be filled, just remove this.
    material: STAINED_GLASS_PANE
    data: 7
    amount: 1
    displayName: ' '
    lore: []
    glow: false
  nextReward: # this item will be displayed as the next reward in the menu if they have to wait for it
    material: STAINED_GLASS_PANE
    data: 1
    amount: -1
    displayName: '&bDay &a&l%day%'
    lore:
      - ''
      - '&cCome back tomorrow to claim this reward!'
      - '&6Claim this reward in %remaining_hours% hours, %remaining_minutes% minutes
      and %remaining_seconds% seconds'

day-5:
  actions:
  - '[console]give %player% stick 5'
  - '[message]&a&lYou successfully claimed the 5th streak reward and received 5 sticks!'
  - '[player]say I received 5 sticks :)'
Code:
default_items:
  claimed: # this item will be displayed in the menu as all days that were already claimed.
    material: LIME_STAINED_GLASS_PANE
    amount: -1 # set amount to -1 to make it fit the day amount
    displayName: '&bDay &a&l%day%'
    lore:
      - '&aYou claimed this day'
    glow: false
  canClaim: # this item will be displayed in the menu when as the next reward if it's claimable.
    material: LIME_STAINED_GLASS_PANE
    amount: -1 # set amount to -1 to make it fit the day amount
    displayName: '&bDay &a&l%day%'
    lore:
      - '&6Click to claim the rewards'
    glow: true
  unclaimed: # this item will be displayed in the menu when the day is not yet claimable.
    material: RED_STAINED_GLASS_PANE
    amount: -1 # set amount to -1 to make it fit the day amount
    displayName: '&bDay &a&l%day%'
    lore:
      - '&cYou cannot claim this day yet'
    glow: false
  empty: # this item will be displayed in all empty slots of the menu. If you don't want the menu to be filled, just remove this.
    material: GRAY_STAINED_GLASS_PANE
    amount: 1
    displayName: ' '
    lore: []
    glow: false
  nextReward: # this item will be displayed as the next reward in the menu if they have to wait for it
    material: ORANGE_STAINED_GLASS_PANE
    amount: -1
    displayName: '&bDay &a&l%day%'
    lore:
      - ''
      - '&cCome back tomorrow to claim this reward!'
      - '&6Claim this reward in %remaining_hours% hours, %remaining_minutes% minutes
      and %remaining_seconds% seconds'
day-5:
  actions:
  - '[console]give %player% stick 5'
  - '[message]&a&lYou successfully claimed the 5th streak reward and received 5 sticks!'
  - '[player]say I received 5 sticks :)'
Code:
  menu:
    claimedItemName: '&a&lDay 5'
    claimedItemMaterial: WOOL
    claimedItemData: 5 # will be ignored on >1.13
    claimedItemAmount: 1 # if you remove this from the config, the amount will automatically be the day count, so now 5.
    claimedItemGlow: true # set to true if you want the item to glow (hidden enchantment)
    claimedItemLore:
    - ''
    - '&7You already claimed this reward'

    unclaimedItemName: '&c&lDay 5'
    unclaimedItemMaterial: WOOL
    unclaimedItemData: 14 # will be ignored on >1.13
    unclaimedItemAmount: 1 # if you remove this from the config, the amount will automatically be the day count, so now 5.
    unclaimedItemGlow: false # set to true if you want the item to glow (hidden enchantment)
    unclaimedItemLore:
    - ''
    - '&7You cannot claim this reward yet'

canClaimItemName: '&c&lDay 5'
canClaimItemMaterial: WOOL
canClaimItemData: 10 # will be ignored on >1.13
canClaimAmount: 1 # if you remove this from the config, the amount will automatically be the day count, so now 5.
canClaimItemGlow: false # set to true if you want the item to glow (hidden enchantment)
canClaimItemLore:
- ''
- '&aClick here to claim this reward'
[/code]

images-banner.png
preview-claimable.png

preview-claimed.png

preview-wait.png

preview-cannot-claim.png
preview-leaderheads.png

placeholderapi-banner.png

Placeholders (PlaceholderAPI and MVdWPlaceholderAPI)
For PlaceholderAPI, put the strong (bold) marked parts between %. And for MVdWPlaceholderAPI, put them between { }.
%identifier% and {identifier}.


streakrewards_streak returns the streak of a player
streakrewards_day returns the day of a player
streakrewards_remaining returns the remaining time until the next reward can be claimed. This is in the format '10d 10m 10s'
streakrewards_remaining_hours returns the remaining time in hours until the next reward.
streakrewards_remaining_minutes returns the remaining amount in minutes until the next reward.
streakrewards_remaining_seconds returns the remaining time in seconds until the next reward.
streakrewards_status switches between the left time until the next reward, and a message telling you that you can claim your reward. This is configurable in the config.

Leaderheads
sr-day returns the day's leaderboard (0-30)
sr-streak returns the streak's leaderboard

soon-banner.png

  • Menu items not stopping with counting, so per day items and rewards.
  • Multiple menus (e.g. normal, vip, mvp etc.)
  • Advent-mode (based on actual dates)
  • More...
Having some ideas that are perfect for this plugin? Drop it in the Discussion section or join our Discord by clicking the image below.
Do the same if you have any issues with the plugin.
Do not drop a bad review with an issue that you haven't reported before. We are mostly fixing all reported issues within 24 hours (beta versions via Discord, if bought. Official releases on spigot will be released at least 24 hours later than the snapshot.



refund-banner.png

Terms And Conditions
All our premium resources have the same terms and conditions. By buying this resource, you will agree with them. So read them carefully.
Click the link below to view the terms and conditions.
https://www.gcnt.net/terms-of-service

Latest updates

  1. MC 1.18 + JAVA 17 + FIXES!

    2.2.0 Hey! From v2.2.0 and up, we will be using Java 17. This means that you must at least run...
  2. UPDATED ADDITIONSPLUS HOOK

    2.1.2 Updated the AdditionsPlus hook to support v2.5.0. No older versions are supported...
  3. STORAGE FIXES + BUG FIXES

    2.1.0 Fixed some pretty major storage issues. Fixed sending a reset message when streak was...

Latest reviews

DO NOT BUY IF YOU RUN 1.8

This resource is falsely advertised as a supported version for 1.8, I can confirm it does not work on 1.8 as intended, there are bugs the seller has refused to fix for the 1.8 version that makes the plugin unusable.
Top
You need to upgrade!
Our dark style is reserved for our Premium members. Upgrade here.