Seasonal Events¶
Survival Mix hosts regular seasonal events (e.g., Ramadhan, Halloween, Independence Day). These events often introduce custom mechanics, items, and economies.
- File Pattern:
server_configs/survivalmix/plugins/Skript/scripts/event_<name><year>.sk - Examples:
event_ramadhan24.sk,event_halloween2023.sk
Common Patterns¶
1. Item Binding (Anti-Trade)¶
Many event items are "Soulbound" to prevent trading or inflation.
Mechanism:
1. Identification: Item gets a random unique ID (e.g., Pierrot-87) and the owner's UUID stored in NBT.
2. NBT Tags:
- eventitemowner: Owner's UUID.
- eventitem<eventname>id: Random Unique ID.
3. Enforcement:
- on damage: Checks if the attacker/victim is the owner.
- Penalty: If UUID doesn't match, the event is cancelled, and the player might be killed or warned.
2. Event Economies¶
Events often use temporary variables for currencies or points.
- Top/Leaderboard: Stored in list variables (e.g., {zakattop::*}).
- Distribution: Mechanics to distribute accumulated pools (e.g., Zakat) to new players after the event ends.
3. Custom Abilities¶
Event items often have scripted abilities.
- Example: AL_SAKINAH_SARONG (Ramadhan 24)
- Effect: Grants Resistance 5 for 5 seconds when hit (Cooldown: 15s).
- Sound FX: Usage of play sound sequences to indicate activation.
Developer Best Practices¶
- Prefixing: Always prefix event variables with the event name and year (e.g.,
{ramadhan24::...}) to avoid collision. - Cleanup: Create a command or function to clear temporary event variables after the event concludes.
- Modular: Keep all event logic in a single file when possible for easy removal.