Best Practices
Best Practices
Section titled “Best Practices”This guide covers recommended practices for configuring, managing, and deploying Glamour particle effects on your server.
Configuration Design
Section titled “Configuration Design”Particle Naming Conventions
Section titled “Particle Naming Conventions”Use clear, descriptive IDs that indicate the particle’s purpose:
Good Examples:
"id": "shiny_sparkle""id": "legendary_aura""id": "fire_sendout_burst""id": "ghost_night_ambient"Poor Examples:
"id": "particle1""id": "test""id": "p_01""id": "shiny" // Too genericNaming Pattern:
<trigger/type>_<element/theme>_<effect_type>
Examples:- sendout_fire_explosion- ambient_cosmic_trail- legendary_rainbow_auraFile Organization
Section titled “File Organization”Organize configuration files logically:
config/glamour/├── particles/│ ├── sendout/│ │ ├── common_confetti.json│ │ ├── rare_dragon_breath.json│ │ └── epic_cosmic_burst.json│ └── ambient/│ ├── common_sparkle.json│ └── rare_flame_aura.json├── persistent_particles/│ ├── species/│ │ ├── shiny_all.json│ │ └── legendary_pokemon.json│ ├── environmental/│ │ ├── fire_in_nether.json│ │ └── water_in_ocean.json│ └── conditional/│ ├── low_health.json│ └── battle_intensity.jsonNote: Glamour doesn’t read subdirectories - this is just for your organization. Use flat structure or keep documentation of groupings.
Category Strategy
Section titled “Category Strategy”Design categories that match your server’s theme:
General Server:
common- Basic, widely availableelemental- Type-based effectsmagical- Mystical/arcanecosmic- Space/star themedcelebration- Festive/party
RPG Server:
warrior- Combat/strength themedmage- Magical/spell themedranger- Nature/hunting themeddivine- Holy/blessed effectscursed- Dark/forbidden effects
Competitive Server:
bronze- Basic tiersilver- Mid tiergold- High tierplatinum- Premium tierchampion- Elite tier
Rarity Progression
Section titled “Rarity Progression”Create a logical progression of effects:
COMMON → UNCOMMON → RARE → EPIC → LEGENDARY → MYTHICALRarity Guidelines:
| Rarity | Availability | Visual Intensity | Permission Strategy |
|---|---|---|---|
| COMMON | Everyone | Subtle | Free to all |
| UNCOMMON | Easy to get | Noticeable | Free or cheap |
| RARE | Moderately restricted | Eye-catching | VIP/Earned |
| EPIC | Limited | Impressive | Premium/Achievements |
| LEGENDARY | Very restricted | Spectacular | Top tier rewards |
| MYTHICAL | Extremely rare | Overwhelming | Special events only |
Permission Management
Section titled “Permission Management”Tiered Permission Structure
Section titled “Tiered Permission Structure”Free-to-Play:
# Basic accesslp group default permission set glamour.command.particles truelp group default permission set glamour.command.particles.gui truelp group default permission set glamour.particles.rarity.common.* trueVIP Tier 1 (Small donation):
lp group vip1 parent add defaultlp group vip1 permission set glamour.particles.rarity.uncommon.* trueVIP Tier 2 (Medium donation):
lp group vip2 parent add vip1lp group vip2 permission set glamour.particles.rarity.rare.* trueVIP Tier 3 (Large donation):
lp group vip3 parent add vip2lp group vip3 permission set glamour.particles.rarity.epic.* trueAdmin/Staff:
lp group admin permission set glamour.particles.* truelp group admin permission set glamour.command.particles.reload truelp group admin permission set glamour.command.persistentparticles trueCategory-Based Permissions
Section titled “Category-Based Permissions”For thematic servers:
# Fire-themed rank gets fire particleslp group pyromancer permission set glamour.particles.category.fire.* true
# Water-themed rank gets water particleslp group aquamancer permission set glamour.particles.category.water.* trueEvent Rewards
Section titled “Event Rewards”Grant specific high-tier particles for events:
# Holiday event rewardlp user PlayerName permission set glamour.particles.winter_wonderland true
# Tournament winnerlp user ChampionPlayer permission set glamour.particles.champion_aura true
# Achievement unlocklp user PlayerName permission set glamour.particles.legendary_sparkle truePerformance Optimization
Section titled “Performance Optimization”Start Conservative
Section titled “Start Conservative”When creating new particles, start with high values and decrease gradually:
Initial Settings:
{ "settings": { "intervalTicks": 100, // Start high "particleCount": 1, // Start low "radius": 0.5, // Start small "maxDistance": 24 // Start short }}After Testing:
{ "settings": { "intervalTicks": 40, // Reduced after testing "particleCount": 3, // Increased after testing "radius": 1.5, // Increased after testing "maxDistance": 32 // Increased after testing }}Balance Visual Impact vs Performance
Section titled “Balance Visual Impact vs Performance”High Performance (Subtle Effect):
{ "intervalTicks": 100, "particleCount": 1, "radius": 0.5, "maxDistance": 16}Balanced (Noticeable Effect):
{ "intervalTicks": 40, "particleCount": 3, "radius": 1.0, "maxDistance": 32}High Impact (Spectacular Effect):
{ "intervalTicks": 20, "particleCount": 5, "radius": 2.0, "maxDistance": 48, "onlyWhenVisible": true // Important for performance!}Rule: High-impact effects must use visibility optimization.
Visibility Optimization Strategy
Section titled “Visibility Optimization Strategy”{ "settings": { // Common particles: no visibility check "onlyWhenVisible": false, "requiresLOS": false }}{ "settings": { // Rare particles: cheap visibility check "onlyWhenVisible": true, "requiresLOS": false }}{ "settings": { // Epic+ particles: full LOS (use sparingly!) "onlyWhenVisible": true, "requiresLOS": true }}Persistent Particle Strategy
Section titled “Persistent Particle Strategy”Priority Hierarchy
Section titled “Priority Hierarchy”Design priorities to create logical override chains:
Generic (Low Priority 1-50) ↓Type-Based (Medium Priority 51-100) ↓Species-Specific (High Priority 101-150) ↓Special Conditions (Very High Priority 151-200) ↓Ultimate Overrides (Priority 201+)Example Hierarchy:
// Priority 50: All shiny Pokemon{ "id": "shiny_basic", "priority": 50, "conditions": { "isShiny": true }}
// Priority 100: Fire-type Pokemon{ "id": "fire_aura", "priority": 100, "conditions": { "types": ["fire"] }}
// Priority 150: Charizard specifically{ "id": "charizard_special", "priority": 150, "conditions": { "species": ["charizard"] }}
// Priority 200: Shiny Charizard{ "id": "shiny_charizard_ultimate", "priority": 200, "conditions": { "species": ["charizard"], "isShiny": true }}Condition Specificity
Section titled “Condition Specificity”Too Broad (Will match too many Pokemon):
{ "conditions": { "types": ["normal"] // Most Pokemon have normal type }}Too Specific (Will rarely match):
{ "conditions": { "species": ["charizard"], "isShiny": true, "level": { "exact": 100 }, "weather": ["clear"], "timeOfDay": ["day"], "biomes": ["minecraft:plains"] }}Well Balanced:
{ "conditions": { "species": ["mewtwo", "mew"], "isShiny": true }}Environmental Effects
Section titled “Environmental Effects”Use environmental conditions for immersion:
Good Use Cases:
- Fire Pokemon in Nether
- Water Pokemon in oceans
- Ghost Pokemon at night
- Ice Pokemon in snow biomes
Example:
{ "id": "ice_in_snow", "priority": 80, "conditions": { "types": ["ice"], "biomes": [ "minecraft:snowy_plains", "minecraft:ice_spikes", "minecraft:frozen_peaks" ] }}Testing Workflow
Section titled “Testing Workflow”Development Process
Section titled “Development Process”- Create Config: Write JSON configuration
- Validate JSON: Use online JSON validator
- Load Config: Place in directory and
/particles reload - Visual Test: Apply to Pokemon and observe
- Performance Test: Check
/persistentparticles stats - Iterate: Adjust values and reload
- Document: Add to your server’s particle guide
Testing Checklist
Section titled “Testing Checklist”For each new particle:
- JSON is valid
- Particle resource ID exists in Cobblemon
- Effect renders correctly
- Performance is acceptable (<5ms impact)
- Permissions work as intended
- Persistence works (survives restart)
- Looks good from multiple angles
- Doesn’t conflict with other particles
- Documented for players
Performance Testing
Section titled “Performance Testing”Monitor with /persistentparticles stats:
Good Performance:
Renders This Tick: 28/100LOS Tests: 5/50Concerning Performance:
Renders This Tick: 85/100 ⚠️ Getting highLOS Tests: 45/50 ⚠️ Near limitPoor Performance:
Renders This Tick: 100/100 ❌ At limitLOS Tests: 50/50 ❌ At limitIf at limits, reduce particle frequency or counts.
Documentation for Players
Section titled “Documentation for Players”Create Particle Guide
Section titled “Create Particle Guide”Document your particles for players:
# Server Particle Guide
## Available Particles
### Common (Free for All)- **Confetti Burst** - Celebratory sendout- **Sparkle Aura** - Gentle ambient effect
### Uncommon (VIP Tier 1)- **Star Trail** - Cosmic sendout- **Flame Aura** - Fire ambient
### Rare (VIP Tier 2)...
## How to Apply1. Use `/particles gui` to open menu2. Browse by category or rarity3. Select particle and Pokemon4. Enjoy!In-Game Help
Section titled “In-Game Help”Create helpful server messages:
/particles help - Shows available commands/particles list - Shows YOUR available particles/particles gui - Interactive particle browserBackup and Version Control
Section titled “Backup and Version Control”Regular Backups
Section titled “Regular Backups”Backup particle configurations regularly:
# Backup scriptDATE=$(date +%Y%m%d)tar -czf glamour_backup_$DATE.tar.gz config/glamour/Version Control
Section titled “Version Control”Use Git for configuration management:
cd config/glamour/git initgit add .git commit -m "Initial particle configurations"
# After changesgit add .git commit -m "Added legendary particle effects"Change Documentation
Section titled “Change Documentation”Keep a changelog:
# Glamour Configuration Changelog
## 2025-10-01- Added shiny legendary ultimate effect- Adjusted fire_nether_boost priority from 70 to 80- Reduced champion_aura particle count from 6 to 4
## 2025-09-25- Initial particle configurations- Created 15 base particles- Set up permission structureMaintenance Schedule
Section titled “Maintenance Schedule”Weekly
Section titled “Weekly”- Review
/persistentparticles statsfor performance - Check logs for errors
- Test new particle additions
Monthly
Section titled “Monthly”- Backup configurations
- Review player feedback
- Optimize underperforming particles
- Clean up unused configurations
Quarterly
Section titled “Quarterly”- Full configuration audit
- Update documentation
- Plan new particle releases
- Review permission structure effectiveness
Community Engagement
Section titled “Community Engagement”Player Feedback
Section titled “Player Feedback”Collect feedback on particles:
- Polls on favorite effects
- Bug reports for visual issues
- Performance complaints
- Requests for new particles
Particle Events
Section titled “Particle Events”Host particle-themed events:
- Particle Showcase - Players show off rare particles
- Design Contest - Players suggest new particle ideas
- Limited Editions - Seasonal or event-exclusive particles
Rewards Integration
Section titled “Rewards Integration”Use particles as rewards for:
- Achievements
- Events
- Milestones (playtime, Pokemon caught, etc.)
- Community contributions