Shiny Boost System
Shiny Boost System
Section titled “Shiny Boost System”Tarot’s shiny boost system allows you to increase shiny encounter rates for events, rewards, or special occasions.
Overview
Section titled “Overview”Shiny boosts:
- Multiply base shiny rate
- Can be time-limited
- Support global or per-player
- Stack with each other
- Persist across restarts
Viewing Active Boosts
Section titled “Viewing Active Boosts”Players can view active boosts:
/shinyboostOpens GUI showing:
- Active boost names
- Multiplier values
- Time remaining
- Affected players (if limited)
Creating Boosts
Section titled “Creating Boosts”Configuration-Based
Section titled “Configuration-Based”Edit config/tarot/config.json:
{ "shinyBoosts": [ { "uuid": "weekend_event_001", "name": "Weekend Boost", "multiplier": 2.0, "startTime": 1709280000000, "endTime": 1709366400000, "global": true, "playerUUIDs": [] } ]}Command-Based
Section titled “Command-Based”Use commands to create boosts (admin only):
/shiny boost create <name> <multiplier> <duration> [global|player:uuid]Examples
Section titled “Examples”Global 3-hour boost:
/shiny boost create "Flash Event" 5.0 3h globalPlayer-specific boost:
/shiny boost create "Donor Reward" 2.5 30d player:069a79f4-44e9-4726-a5be-fca90e38aaf5Weekend event:
/shiny boost create "Community Weekend" 10.0 48h globalBoost Properties
Section titled “Boost Properties”Unique identifier for the boost:
{ "uuid": "halloween_2025"}Must be unique across all boosts.
Display name shown to players:
{ "name": "Halloween Event"}Multiplier
Section titled “Multiplier”How much to multiply shiny rate:
{ "multiplier": 3.0}1.0= normal rate (no boost)2.0= double rate (2x)5.0= quintuple rate (5x)10.0= 10x rate
Time Range
Section titled “Time Range”Unix timestamps in milliseconds:
{ "startTime": 1709280000000, "endTime": 1709366400000}Get timestamps:
- Online: EpochConverter
- Command:
date +%s000
Global Boost
Section titled “Global Boost”Applies to all players:
{ "global": true, "playerUUIDs": []}Player-Specific Boost
Section titled “Player-Specific Boost”Applies to specific players:
{ "global": false, "playerUUIDs": [ "069a79f4-44e9-4726-a5be-fca90e38aaf5", "f84c6a79-0a4e-45e0-879b-cd49ebd4c4e2" ]}Boost Mechanics
Section titled “Boost Mechanics”Base Shiny Rate
Section titled “Base Shiny Rate”Cobblemon default: 1 in 4096 (0.0244%)
Multiplier Calculation
Section titled “Multiplier Calculation”Final Rate = Base Rate × MultiplierExample with 5x boost:
1/4096 × 5 = 5/4096 = 1/819 (0.122%)Stacking Boosts
Section titled “Stacking Boosts”Multiple active boosts multiply:
Final Rate = Base × Boost1 × Boost2 × Boost3Example:
- Event Boost: 2x
- Donor Boost: 1.5x
- Time Boost: 2x
1/4096 × 2 × 1.5 × 2 = 6/4096 = 1/683 (0.146%)Managing Boosts
Section titled “Managing Boosts”List All Boosts
Section titled “List All Boosts”/shiny boost listShows:
- All configured boosts
- Active status
- Remaining time
- Player count (if limited)
Remove Boost
Section titled “Remove Boost”/shiny boost remove <uuid>Example:
/shiny boost remove weekend_event_001Modify Boost
Section titled “Modify Boost”/shiny boost modify <uuid> <property> <value>Examples:
/shiny boost modify weekend_event_001 multiplier 3.0/shiny boost modify weekend_event_001 endTime 1709380000000Extend Boost
Section titled “Extend Boost”/shiny boost extend <uuid> <duration>Example:
/shiny boost extend weekend_event_001 24hEvent Planning
Section titled “Event Planning”Scheduled Events
Section titled “Scheduled Events”Community Day
Section titled “Community Day”{ "uuid": "community_day_nov", "name": "Community Day", "multiplier": 10.0, "startTime": 1730548800000, "endTime": 1730577600000, "global": true, "playerUUIDs": []}Duration: 8 hours Rate: 10x (1/410)
Weekend Event
Section titled “Weekend Event”{ "uuid": "weekend_shiny", "name": "Shiny Weekend", "multiplier": 3.0, "startTime": 1730419200000, "endTime": 1730678400000, "global": true, "playerUUIDs": []}Duration: 72 hours (Friday-Sunday) Rate: 3x (1/1365)
Holiday Event
Section titled “Holiday Event”{ "uuid": "christmas_2025", "name": "Holiday Celebration", "multiplier": 5.0, "startTime": 1735084800000, "endTime": 1735689600000, "global": true, "playerUUIDs": []}Duration: 7 days Rate: 5x (1/819)
Reward Boosts
Section titled “Reward Boosts”Donor Perks
Section titled “Donor Perks”{ "uuid": "donor_permanent", "name": "Donor Benefit", "multiplier": 1.5, "startTime": 1704067200000, "endTime": 2051222400000, "global": false, "playerUUIDs": [ "uuid1", "uuid2" ]}Permanent 1.5x boost for donors.
Competition Prize
Section titled “Competition Prize”{ "uuid": "tournament_winner", "name": "Champion's Luck", "multiplier": 3.0, "startTime": 1730419200000, "endTime": 1733011200000, "global": false, "playerUUIDs": [ "winner_uuid" ]}30-day 3x boost for tournament winner.
Vote Reward
Section titled “Vote Reward”{ "uuid": "vote_streak_boost", "name": "Vote Streak Bonus", "multiplier": 2.0, "startTime": 1730419200000, "endTime": 1730505600000, "global": false, "playerUUIDs": [ "voter_uuid" ]}24-hour 2x boost for voting.
GUI Customization
Section titled “GUI Customization”The shiny boost GUI can be customized:
Location: config/tarot/shinyboost_gui.json
{ "title": "Active Shiny Boosts", "rows": 6, "boostItem": { "material": "minecraft:nether_star", "name": "<boost_name>", "lore": [ "§7Multiplier: §e<multiplier>x", "§7Ends: §a<time_remaining>", "§7Type: §b<scope>" ] }, "noBoostsItem": { "material": "minecraft:barrier", "name": "§cNo Active Boosts", "lore": [ "§7Check back later for events!" ] }}Integration
Section titled “Integration”With Other Systems
Section titled “With Other Systems”Economy Integration
Section titled “Economy Integration”Award boosts as shop purchases:
/shiny boost create "Purchased Boost" 2.0 7d player:%player_uuid%Quest Rewards
Section titled “Quest Rewards”Grant boosts for quest completion:
/shiny boost create "Quest Reward" 3.0 24h player:%player_uuid%Voting Systems
Section titled “Voting Systems”Automatic boost on vote:
# In vote listener/shiny boost create "Vote Reward" 1.5 24h player:%voter_uuid%API Usage
Section titled “API Usage”For plugin developers:
// Check if player has boostval hasBoost = TarotDataObject.getBoosts(player).isNotEmpty()
// Get active multiplierval multiplier = TarotDataObject.getTotalMultiplier(player)
// Create programmatic boostval boost = ShinyModifier( uuid = UUID.randomUUID().toString(), name = "Custom Boost", multiplier = 2.0, startTime = System.currentTimeMillis(), endTime = System.currentTimeMillis() + 86400000, global = false, playerUUIDs = listOf(player.uuid))// Check if player has boostboolean hasBoost = !TarotDataObject.getBoosts(player).isEmpty();
// Get active multiplierdouble multiplier = TarotDataObject.getTotalMultiplier(player);
// Create programmatic boostShinyModifier boost = new ShinyModifier( UUID.randomUUID().toString(), "Custom Boost", 2.0, System.currentTimeMillis(), System.currentTimeMillis() + 86400000, false, List.of(player.getUuid()));Best Practices
Section titled “Best Practices”Event Planning
Section titled “Event Planning”- Announce in advance: Give players notice
- Reasonable duration: 4-24 hours for events
- Appropriate multipliers: 2x-10x typical
- Monitor engagement: Track participation
Multiplier Guidelines
Section titled “Multiplier Guidelines”- 2x-3x: Standard events, regular boosts
- 5x: Special events, monthly occasions
- 10x+: Rare celebrations, major events
Player Communication
Section titled “Player Communication”- Announce boost starts
- Show remaining time
- Notify before expiration
- Post schedules
Performance
Section titled “Performance”- Limit concurrent boosts
- Clean up expired entries
- Regular config cleanup
- Monitor player counts
Troubleshooting
Section titled “Troubleshooting”Boost Not Applying
Section titled “Boost Not Applying”Symptoms: Players not getting boosted rate
Solutions:
- Check start/end times
- Verify player UUID in list
- Ensure global is correct
- Reload configuration
Wrong Multiplier
Section titled “Wrong Multiplier”Symptoms: Unexpected shiny rates
Solutions:
- Check stacking boosts
- Verify multiplier value
- Check for expired boosts
- Review player-specific boosts
GUI Not Showing
Section titled “GUI Not Showing”Symptoms: Empty boost GUI
Solutions:
- Verify boost is active (time range)
- Check permissions
- Reload config
- Verify JSON syntax