Compatibility
Minecraft: Java Edition
26.2
26.1.2
1.21.11
1.21.8
1.21.1
1.20.1
1.19.4
1.18.2
1.16.5
1.14.4
1.13.2
1.2.x
Platforms
Tags
Creators
Details
Licensed ARR
Published 2 days ago
Updated 3 weeks ago
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


