PROJECT SPECIFICATION – WATERSHOW ENGINE
Develop a complete Minecraft mod called WaterShow Engine.
Assume no existing codebase is available.
Design and build the entire mod from scratch.
The mod should allow players to create professional fountain shows, water shows, fire shows, lighting shows, mist shows, and drone shows inside Minecraft.
The system must be easy enough for beginners while still being powerful enough for large-scale theme park and entertainment productions.
PRIMARY GOALS
The mod must be:
Stable
Performant
Easy to understand
Professional
Expandable
Future-proof
Use a clean modular architecture.
Avoid spaghetti code.
Document major systems and architecture decisions.
FIXTURE BLOCKS
Create the following placeable fixtures.
Water Fixtures
Fountain Nozzle
Water Emitter
Water Fan
Water Spout
Water Pop
Fire Fixtures
Fire Emitter
Fire Jet
Lighting Fixtures
Underwater Light
Show Lantern
Moving Lighting
Moving Head
Atmospheric Effects
Mist Emitter
Drone System
Drone Dock
Show Drone
ITEMS
Create the following items.
Show Controller
The central device used to create, manage and play shows.
Selection Wand
Used to select fixtures and assign them to a controller.
SELECTION WAND SYSTEM
When a player selects fixtures:
Fixtures become linked to the controller
Fixtures automatically appear inside the editor
Selection order is preserved
Example:
Fountain 1
Fountain 2
Light 1
Fire 1
Add a button:
Synchronize
This button must:
detect missing fixtures
detect moved fixtures
repair broken links
refresh fixture information
CONTROLLER GUI
The controller contains exactly three tabs.
1. Editor
2. Load / Unload
3. Play / Stop
No additional main tabs should exist.
EDITOR LAYOUT
The editor is divided into three sections.
LEFT PANEL
Fixture Browser
Displays:
Fountains
Lights
Moving Heads
Mist Emitters
Fire Emitters
Drones
Features:
Search
Filtering
Multi-selection
Expand/Collapse categories
CENTER PANEL
Large Timeline
Example:
0s 5s 10s 15s 20s
Fountain 1 █████
Light 1 █████
Fire 1 ███
All linked fixtures automatically appear here.
RIGHT PANEL
Properties Panel
Displays the properties of the currently selected fixture.
Do not open separate configuration windows.
All settings should be available directly within the editor.
EVENT SYSTEM
Every fixture supports unlimited events.
Example:
Fountain 1
[Water ON]
0s → 30s
[Water OFF]
30s → 40s
[Water ON]
40s → 60s
Events must be:
Moveable
Resizable
Copyable
Editable
Deletable
Add button:
New Event
MULTI-TRACK SYSTEM
Each fixture supports multiple tracks.
Example:
Fountain 1
Water Track
Height Track
Width Track
Angle Track
Each track can contain independent keyframes.
KEYFRAME SYSTEM
Every adjustable property supports keyframes.
Example:
Height:
0s = 0
5s = 10
10s = 20
15s = 40
Values should interpolate smoothly between keyframes.
Use linear interpolation initially.
Design the architecture to support additional interpolation types later.
WATER FIXTURE FEATURES
Support:
On / Off
Height
Width
Pressure
Vertical Angle
Horizontal Angle
Jet Tilt
Strength
Additional effects:
Pulse
Wave
Fade In
Fade Out
FIRE FIXTURE FEATURES
Support:
On / Off
Flame Height
Flame Width
Intensity
Duration
Vertical Angle
Horizontal Angle
Tilt
Additional effects:
Burst
Pulse
Flicker
LIGHTING FEATURES
Support:
On / Off
Brightness
Intensity
RGB Color
Use a visual color picker.
Additional effects:
Fade
Pulse
Strobe
Color Transitions
MOVING HEAD FEATURES
Support:
Pan
Tilt
Color
Brightness
Beam Width
Rotation Speed
Additional movement effects:
Sweep
Circle
Automatic Motion
Path Following
MIST FEATURES
Support:
Density
Width
Height
Intensity
Additional effects:
Fade In
Fade Out
DRONE FEATURES
Support:
Position
Destination
Speed
Height
Light Color
Formation Control
Prepare the architecture for future waypoint support.
LIVE WORLD PREVIEW
When a fixture is selected:
Highlight it in the world
Show real-time preview changes
Examples:
Height updates instantly
Colors update instantly
Beam width updates instantly
Players should not need to run the show to preview changes.
AUDIO INTEGRATION
Audio is a core feature of the mod.
Supported Audio Format
Only support:
MP3
Maximum file length:
20 minutes
Music Import
Players can assign an MP3 file to a show.
Each show supports one primary soundtrack.
Audio Timeline
Display:
Waveform
Current Position
Total Duration
Synchronization
Audio and show playback must remain perfectly synchronized.
Support:
Start
Pause
Resume
Stop
Beat Markers
Support:
Manual Beat Markers
Automatic BPM Detection
Display beat markers directly on the timeline.
Timeline Snapping
Support:
Snap to Beats
Snap to Seconds
Snap to Keyframes
Allow players to enable or disable snapping.
TOP TOOLBAR
Always visible.
Contains:
Save
Undo
Redo
Synchronize
Test
Show Name
Current Time
SAVE SYSTEM
Leaving the editor requires save confirmation.
Display:
"Save changes before leaving?"
Options:
Save
Cancel
AUTOSAVE
Implement automatic saving:
Every 30 seconds
When closing the editor
When closing the game
After major edits
VALIDATION
Before saving:
Check for:
Missing fixtures
Moved fixtures
Broken links
Missing audio
Display warnings but do not block saving.
LOAD / UNLOAD
Support:
Load Show
Save Show
Export Show
Import Show
SHOW FILE FORMAT
Create a custom format:
.watershow
Internally based on JSON.
Store:
Fixtures
Events
Keyframes
Audio References
Metadata
Version Information
BACKUP SYSTEM
Automatically generate backups.
Keep multiple generations of backups.
Prevent data loss.
AUTOMATIC FIXTURE MATCHING
When loading a show:
Attempt automatic fixture relinking using:
Fixture Type
Position
Rotation
Nearest Match Logic
Minimize manual work.
VERIFICATION SCREEN
After loading a show:
Display a map of the build area.
Display fixture locations.
Status colors:
🟢 Green = Linked
🟡 Yellow = Uncertain
🔴 Red = Missing
Allow manual reassignment when necessary.
PLAYBACK TAB
Contains:
Start
Pause
Stop
Back
Start resumes paused playback.
Stop resets both the show and audio.
Pause freezes both the show and audio timeline.
PERFORMANCE REQUIREMENTS
The system must support:
Hundreds of fixtures
Thousands of events
Long audio tracks
Minimize lag.
Use efficient scheduling, caching and update systems.
FINAL OBJECTIVE
Build a complete, professional Minecraft show-control system that allows players to create large-scale fountain shows, fire shows, lighting shows, mist shows and drone shows fully synchronized to music through an intuitive timeline-based editor.
minecraftfabric2 views