- 10-CONTEXT: specs des 5 plugins (GravityFlip, MagneticHand, TimeRewind, BlackHoleGrenade, Paintball) avec core mechanics, wow factor, complexité - 10-01-PLAN: brainstorm done (concepts locked) - 10-02-PLAN: 5 waves de code (1 plugin par wave, complexité ascendante) Java + Gradle Kotlin DSL + JDK 17 + MIT license, repos kayjaydee/hytale-* - 10-03-PLAN: composant HytaleDemoGrid.vue + intégration /hytale + i18n hytale.demos.* + data source app/data/hytaleDemos.ts - IDEAS-BACKLOG.md (root): 30 concepts supplémentaires pour v1.3+ classés par mouvement/combat/monde/social/économie Effort estimé Phase 10: ~10 jours code + 1-2 jours frontend intégration.
5.2 KiB
Phase 10 — Demo Plugins Hytale — Context
Goal
Produire 5 mini-plugins Hytale open-source publiés sur GitHub avec README EN pro, pour donner des preuves concrètes à montrer en DM Discord / Fiverr. Chaque plugin = 1 repo, 1 gif/screenshot, 1 paragraphe de description.
Business Rationale
- Blocker prospection #1 : zéro démo crédible à montrer actuellement
- Objectif : pivot de "0 démo" → "5 démos variées" en 7-14 jours de travail réparti
- Target audience : Hytale server owners (Discord), Fiverr buyers, recruiters gaming
Les 5 Concepts Retenus
1. GravityFlip Region
Pitch : Block spécial qui définit une zone → entités dedans ont gravité inversée. Wow factor : ⭐⭐⭐⭐⭐ (viral-friendly, gif 5s) Complexité : ⭐ (~150 lignes) API showcase : physics override, region system Core mechanics :
PlayerMoveEventlistener → check if in registered region- Flip
velocity.y(ou apply upward force chaque tick) - Blocks
gravityflip_blockplacés en 4 corners définissent la zone Repo name :hytale-gravity-flip
2. MagneticField Hand
Pitch : Item magnet_tool → drops dans 8 blocs gravitent vers le joueur, trail de particules. Shift = répulsion.
Wow factor : ⭐⭐⭐⭐ (satisfying visual, utile)
Complexité : ⭐⭐ (~200 lignes)
API showcase : particles, entity velocity, item events
Core mechanics :
ItemHeldEvent→ start tick task si magnet_tool- Chaque tick : scan entities.items nearby, apply Vector.subtract(player.loc, item.loc).normalize().multiply(0.3)
spawnParticle(DUST, item.loc, color=#a0a0ff)- Detect
player.isSneaking()→ invert direction Repo name :hytale-magnet-hand
3. TimeRewind Watch
Pitch : pocket_watch clic droit → rewind 10 dernières secondes (position, rotation, dégâts annulés).
Wow factor : ⭐⭐⭐⭐⭐ (Prince of Persia, gameplay unique)
Complexité : ⭐⭐⭐ (~300 lignes)
API showcase : state serialization, scheduler, entity manipulation, damage events
Core mechanics :
Deque<PlayerState>par joueur (capacité 200 ticks = 10s@20tps)- Chaque tick :
states.offer({loc, yaw, pitch, health, timestamp}); pop old - On
rightClick(pocket_watch): lock input, replay states reverse chaque tick (or teleport instant) - Restore health si tracked damage during rewind window
Repo name :
hytale-time-rewind
4. BlackHole Grenade
Pitch : Item lancé → trou noir 3s. Aspire mobs + items + joueurs dans 12 blocs. Implosion finale avec explosion particules. Wow factor : ⭐⭐⭐⭐⭐ (spectaculaire, clip-ready) Complexité : ⭐⭐ (~250 lignes) API showcase : projectiles, entity pull, particle math (vortex) Core mechanics :
ProjectileHitEventsur custom item → spawn armorstand invisible au point d'impact- 60 ticks scheduler : chaque tick, scan entities in radius 12, apply Vector toward center * strength
- Spawn particles en spiral (helix math) autour du center point
- Final tick :
world.createExplosion(loc, 2.0f, false)+ burst particles Repo name :hytale-blackhole-grenade
5. Paintball Arena
Pitch : Arme paintball_gun tire snowballs colorés. Impact = block change de tint. Arena auto-scorée par équipe.
Wow factor : ⭐⭐⭐⭐ (mini-jeu complet)
Complexité : ⭐⭐⭐⭐ (~400 lignes)
API showcase : projectiles, block manipulation, scoreboard, teams, persistence
Core mechanics :
PlayerInteractEvent(right-click paintball_gun) →launchProjectile(Snowball)avec metadata colorProjectileHitEventsur target block : wrap block inPaintedBlock(stocke couleur originale + tint appliqué)HashMap<Team, Set<Block>>pour compter % territoire peint- Scoreboard sidebar live : team A: 42%, team B: 38%
- Arena reset command : restore original blocks from persistence
Repo name :
hytale-paintball
Shared Infrastructure (par repo)
Chaque repo aura :
build.gradle.kts(Kotlin DSL) oubuild.gradle(Java) — à décidersrc/main/kotlin/fr/killiandalcin/<plugin>/— sourceplugin.yml— manifest HytaleREADME.md— EN pro :- Hero gif/screenshot
- Tagline 1 phrase
- Features bullet points
- Installation (drop jar in /plugins, reload)
- Commands/permissions
- Credits + lien portfolio killiandalcin.fr
LICENSE(MIT).github/workflows/release.yml— auto-build jar on tag pushdocs/demo.gifou screenshot (1-5 Mo max)
Open Questions
- Kotlin ou Java ? — Stack blog article seed utilise Java (com.hypixel.hytale.plugin). Kotlin modernise mais Minecraft/Hytale dev majoritaire Java.
- GitHub org ou perso ? —
kayjaydee/hytale-*(perso visible) ou créer orgkilliandalcin-hytale? - Gif creation tool ? — ffmpeg + recorder in-game, ou OBS + gifski ? Target ~2 Mo max par gif.
- Order de ship — Tous en parallèle, ou 1 par semaine pour générer du contenu Twitter/X/Discord étalé ?
Success Criteria (Phase 10)
- 5 repos GitHub publics avec README EN complet
- 5 .jar téléchargeables (release ou build artifact)
- 5 gifs/screenshots dans
/public/demos/du portfolio - Composant
HytaleDemoGrid.vueintégré sur/hytaleaffichant les 5 démos - i18n FR+EN des cards démos