Pokemon Particles
Pokemon Particles
Section titled “Pokemon Particles”Glamour provides two distinct particle systems for Pokemon: manually applied particles and automatic persistent particles.
Particle Types
Section titled “Particle Types”Sendout Particles
Section titled “Sendout Particles”Sendout particles trigger when a Pokemon is released from its Pokeball.
Characteristics:
- One-time visual effect
- Plays at the moment of sendout
- Great for dramatic entrances
- Configurable duration and delay
Example Use Cases:
- Confetti burst for celebration
- Element-themed effects (fire, water, electric)
- Shiny reveal sparkles
- Legendary entrance effects
Ambient Particles
Section titled “Ambient Particles”Ambient particles continuously play while a Pokemon is active in the world.
Characteristics:
- Repeating effect at set intervals
- Follows Pokemon as it moves
- Continuous visual presence
- Can be stopped by removing the effect
Example Use Cases:
- Aura effects for powerful Pokemon
- Type-based passive effects
- Shiny indicators
- Status indicators
Manually Applied Particles
Section titled “Manually Applied Particles”Players can manually apply particles to their Pokemon using the GUI or commands.
Using the Particle GUI
Section titled “Using the Particle GUI”-
Open the GUI:
/particles gui -
Browse available particles by category or rarity
-
Select a particle to see its preview and description
-
Choose a Pokemon to apply the effect
-
Select effect type (sendout or ambient)
Managing Applied Particles
Section titled “Managing Applied Particles”View and remove particles:
/particles manageThis opens a GUI showing:
- All your Pokemon with active effects
- Applied sendout and ambient particles
- Options to remove individual effects
Command Application
Section titled “Command Application”Apply particles directly via command:
/particles apply sendout confetti_burst 1/particles apply ambient sparkle_aura 1Remove particles:
/particles remove sendout 1/particles remove ambient 1Persistent Particles
Section titled “Persistent Particles”Persistent particles automatically apply based on declarative conditions without player interaction.
How They Work
Section titled “How They Work”Persistent particles:
- Check Pokemon against configured conditions every tick
- Apply the highest priority matching configuration
- Render particles at configured intervals
- Clean up when Pokemon is removed or conditions no longer match
Condition-Based Activation
Section titled “Condition-Based Activation”Particles can activate based on:
- Species (e.g., only Pikachu)
- Shiny status
- Forms and aspects
- Types (e.g., all Fire types)
- Biomes and dimensions
- Time of day and weather
- Health percentage
- Battle status
- Level ranges
Priority System
Section titled “Priority System”When multiple persistent particle configs match a Pokemon, the highest priority configuration is used.
Example:
{ "id": "shiny_sparkle", "priority": 100, "conditions": { "isShiny": true }}{ "id": "mew_special", "priority": 200, "conditions": { "species": "mew" }}A shiny Mew would use mew_special (priority 200) instead of shiny_sparkle (priority 100).
Performance Considerations
Section titled “Performance Considerations”Persistent particles are optimized for performance:
- Distance Culling: Only render to nearby players
- Interval-Based: Particles spawn at intervals, not every tick
- LOS Checks: Optional line-of-sight validation
- Visibility Heuristics: View-cone filtering before expensive checks
- Caching: Condition matches are cached with TTL
Combining Systems
Section titled “Combining Systems”You can use both systems together:
- Persistent particles provide automatic effects (e.g., shiny sparkle)
- Manual particles let players customize their Pokemon (e.g., confetti sendout)
Both effects can coexist on the same Pokemon without conflicts.
State Persistence
Section titled “State Persistence”All manually applied particles are saved via Ceremony’s state management system and persist:
- Across server restarts
- When Pokemon are stored in PC
- During trades (effects transfer with the Pokemon)
Persistent particles reapply automatically when conditions match, so no state persistence is needed.
Permission Integration
Section titled “Permission Integration”Manually applied particles respect LuckPerms permissions:
glamour.particles.confetti_burstglamour.particles.category.celebration.*glamour.particles.rarity.epic.*Persistent particles apply automatically regardless of permissions - they’re server-wide effects.
Performance Tips
Section titled “Performance Tips”For optimal performance:
- Use Reasonable Intervals: Higher
intervalTicks= better performance - Limit Particle Count: Fewer particles per spawn reduces load
- Set Max Distance: Lower
maxDistancereduces render checks - Enable Visibility Checks: Use
onlyWhenVisiblefor expensive effects - Avoid Too Many Persistent Configs: Each active Pokemon is checked against all configs
Example Configurations
Section titled “Example Configurations”Sendout Confetti
Section titled “Sendout Confetti”{ "id": "confetti_burst", "displayName": "Confetti Burst", "description": "Celebratory confetti explosion", "type": "SENDOUT", "particleResourceId": "confetti", "category": "celebration", "rarity": "COMMON", "settings": { "intervalTicks": 100, "delayTicks": 60, "durationTicks": 20 }}Ambient Sparkle Aura
Section titled “Ambient Sparkle Aura”{ "id": "sparkle_aura", "displayName": "Sparkle Aura", "description": "Continuous sparkle effect", "type": "AMBIENT", "particleResourceId": "sparkle", "category": "magical", "rarity": "UNCOMMON", "settings": { "intervalTicks": 40, "durationTicks": 10 }}Persistent Shiny Effect
Section titled “Persistent Shiny Effect”{ "id": "shiny_sparkle", "particleResourceId": "sparkle", "priority": 100, "settings": { "intervalTicks": 40, "durationTicks": 10, "particleCount": 3, "radius": 1.0, "followEntity": true, "maxDistance": 32 }, "conditions": { "isShiny": true }}