Home›Java›Mods›SpectrumOnlineReward
SpectrumOnlineReward
ModsJava

SpectrumOnlineReward

by ewsk233 · on Modrinth

SpectrumOnlineReward is a highly configurable Minecraft online rewards plugin powered by TabooLib, supporting playtime and activity rewards, AFK…

⬇ Download on Modrinth

SpectrumOnlineReward

SpectrumOnlineReward is an online rewards plugin. It can grant rewards based on online time, active time, consecutive active days, or total active days. It supports daily, weekly, monthly, permanent, and limited-time event cycles, as well as customizable GUIs and multiple item libraries.

Commands

Aliases: /sor, /or, /onlinereward

Command Description
/sor, /sor open Open the main menu
/sor menu <menu-id> [player] Open a specific menu; opening it for another player requires additional permission
/sor claim <reward-id> Directly claim an available reward
/sor pending Continue processing safe pending deliveries
/sor help View the help message
/sor admin reload Reload the configuration
/sor admin info <player-or-uuid> View time, progress, claims, and valid active days
/sor admin history <player-or-uuid> View recent claim history
/sor admin delivery <player-or-uuid> View item/command delivery status and errors
/sor admin addtime <player> <time> [online|active] [cycle] Add or subtract time
/sor admin settime <player> <time> [online|active] [cycle] Set time
/sor admin reset <player> [cycle] Reset a cycle and allow rewards to be claimed again
/sor admin retry <claim-id> <action-index> confirm Verify and retry a failed action
/sor admin cleanup [days] [apply] Clean up old audit records; without apply, this only previews the changes

Placeholders

%sor_today_online%
%sor_today_active%
%sor_today_online_seconds%
%sor_today_active_seconds%
%sor_next_reward%
%sor_next_remaining%
%sor_available_count%
%sor_claimed_count%
%sor_streak%
%sor_reward_daily_gift_state%

Example Configuration

gui/_templates.yml

Templates:
  filler:
    display:
      material: GRAY_STAINED_GLASS_PANE
      name: ' '

  reward:
    type: reward
    display:
      material:
        - condition: 'reward.state == "CLAIMED"'
          allow: LIME_STAINED_GLASS_PANE
        - condition: 'reward.state == "LOCKED"'
          allow: GRAY_DYE
        - allow: '{reward.material}'
      name: '{reward.name}'
      glow:
        - condition: 'reward.state == "AVAILABLE"'
          allow: true
        - allow: false
      lore:
        - '&7Progress: &f{reward.progress_formatted} &7/ &f{reward.required_formatted}'
        - ''
        - '&eRewards:'
        - include: reward.preview
        - ''
        - condition: 'reward.state == "CLAIMED"'
          allow: '&a✔ Claimed'
        - condition: 'reward.state == "AVAILABLE"'
          allow: '&eLeft-click to claim · Right-click to preview'
        - condition: 'reward.state == "LOCKED"'
          allow: '&7🔒 {reward.reason}'
    actions:
      left: ['claim']
      right: ['preview']

  reward-list:
    template: reward
    type: reward-list
    source:
      period: daily
      track: normal
      sort: order

  back:
    display:
      material: ARROW
      name: '&fBack'
    actions:
      left: ['back']

  previous:
    visible-if: 'menu.has_previous == true'
    display:
      material: ARROW
      name: '&fPrevious Page'
    actions:
      left: ['page: previous']

  next:
    visible-if: 'menu.has_next == true'
    display:
      material: ARROW
      name: '&fNext Page'
    actions:
      left: ['page: next']

  summary:
    display:
      material: CLOCK
      name: '&e{player.name}''s Online Rewards'
      lore:
        - '&7Today Online: &f{today.online}'
        - '&7Today Active: &f{today.active}'
        - '&7Available Rewards: &a{available_count}'
        - '&7Until Daily Reset: &f{daily.reset_remaining}'
        - '&7Page {menu.page} / {menu.pages}'

gui/main.yml

Title: '&8Online Rewards'

Layout:
  - '####S####'
  - '#DWMLEVT#'
  - '####X####'

Options:
  refresh-ticks: 20
  click-cooldown-ticks: 5

Buttons:
  '#':
    template: filler

  S:
    template: summary

  D:
    display: {material: YELLOW_FLOWER, name: '&eDaily Rewards'}
    actions:
      left: ['open: daily']

  W:
    display: {material: GOLD_INGOT, name: '&aWeekly Rewards'}
    actions:
      left: ['open: weekly']

  M:
    display: {material: DIAMOND, name: '&bMonthly Rewards'}
    actions:
      left: ['open: monthly']

  L:
    display: {material: BEACON, name: '&dLifetime Rewards'}
    actions:
      left: ['open: lifetime']

  E:
    display: {material: MELON_SLICE, name: '&aSummer Event'}
    actions:
      left: ['open: events/summer']

  V:
    display: {material: EMERALD, name: '&6VIP Rewards'}
    actions:
      left: ['open: vip']

  T:
    display:
      material: GOLDEN_APPLE
      name: '&eActivity Streak & Leaderboard'
      lore:
        - '&7Left-click: Activity Streak'
        - '&7Right-click: Leaderboard'
    actions:
      left: ['open: streak']
      right: ['open: leaderboard']

  X:
    display: {material: BARRIER, name: '&cClose'}
    actions:
      left: ['close']

rewards/daily.yml

rewards:
  daily_10m:
    name: '&a10 Minutes Active'
    period: daily
    track: normal
    time-type: ACTIVE
    required: 600 # Seconds; formatted according to the language settings in-game
    order: 10
    material: IRON_INGOT
    preview:
      - '&fIron Ingot ×8'
    actions:
      - type: item
        material: IRON_INGOT
        amount: 8
      - 'message: &aYou have claimed the 10-minute active reward!'

  daily_30m:
    name: '&e30 Minutes Active'
    period: daily
    track: normal
    time-type: ACTIVE
    required: 1800
    order: 20
    material: GOLD_INGOT
    preview:
      - '&fGold Ingot ×8'
    actions:
      - type: item
        material: GOLD_INGOT
        amount: 8

  daily_60m:
    name: '&b60 Minutes Active'
    period: daily
    track: normal
    time-type: ACTIVE
    required: 3600
    order: 30
    material: DIAMOND
    preview:
      - '&fDiamond ×3'
    actions:
      - type: item
        material: DIAMOND
        amount: 3

  daily_120m:
    name: '&d120 Minutes Online · Random Supply'
    period: daily
    track: normal
    time-type: ONLINE
    required: 7200
    order: 40
    material: ENDER_CHEST
    preview:
      - '&fIron Ingot ×8 (80% chance) or Diamond ×3 (20% chance)'
      - '&7A Diamond is guaranteed within 10 draws; previewing does not draw'
    actions:
      - 'pool: daily_supplies'

If you have any questions or suggestions, please contact the author or join the QQ group. The group also provides assistance with writing configuration files using the Agent skill. You can also get support through my Discord invite link.

Author QQ: 2962271068
QQ Group: 724504184

Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

Verified by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more