How thefocusman/shiny-engine-fnf works
Shiny Engine FNF is a C# Friday Night Funkin’ game engine. Its apparent user workflow is choosing songs or story weeks, then playing a rhythm-chart session; chart editing and dialogue are additional capabilities indicated by the source tree. The graph includes the WPF rendering, timing, audio, and asset layer. Several relationships are supported only by the SOURCE INDEX’s reference lists, and unsampled subsystems are represented at their existing directory paths rather than inferred in detail.
Main entry points: PlayState.Initaize.cs Play Initialization · Paths.cs Asset Paths · StoryMenuState.xaml.cs Story Menu · FunkinLua.cs Lua Scripts
Components 26
Application and Menus
- WPF App
Shiny Engine FNF/App.xaml.cs - Main Menu
Shiny Engine FNF Code/States/MainMenuState.xaml.cs - Story Menu
Shiny Engine FNF Code/States/StoryMenuState.xaml.cs - Freeplay
Shiny Engine FNF Code/States/FreeplayState.xaml.cs - Chart Editor
Shiny Engine FNF Code/States/Editors/ChartingState.xaml.cs - Discord RPC
Shiny Engine FNF Code/Controls/DiscordClient.cs
Rhythm Gameplay
- Play State
Shiny Engine FNF Code/States/PlayState/PlayState.xaml.cs - Play Initialization
Shiny Engine FNF Code/States/PlayState/PlayState.Initaize.cs - Notes
Shiny Engine FNF Code/Controls/Note.cs - Beat Timing
Shiny Engine FNF Code/FridayNightFunkinDataBase/Conductor.cs - Beat State
Shiny Engine FNF Code/MusicBeatState.cs
Game Data and Scripting
- Week Data
Shiny Engine FNF Code/FridayNightFunkinDataBase/WeekData.cs - Game Data
Shiny Engine FNF Code/FridayNightFunkinDataBase/DataFile.cs - Song Data
Shiny Engine FNF Code/FridayNightFunkinDataBase/Song.cs - Lua Scripts
Shiny Engine FNF Code/FunkinLua.cs - Asset Paths
Shiny Engine FNF Code/Paths.cs - Game Utilities
Shiny Engine FNF Code/CoolUtil.cs
WPF Game Runtime
- Sprite Rendering
WPF Game Helpers By TheFocusMan/Controls/Sprite.cs - Game Canvas
WPF Game Helpers By TheFocusMan/Controls/CanvasWithMargarin.cs - Display
WPF Game Helpers By TheFocusMan/Display.cs - Audio
WPF Game Helpers By TheFocusMan/Sound.cs - Frame Timer
WPF Game Helpers By TheFocusMan/StaticTimer.cs - Tweens
WPF Game Helpers By TheFocusMan/Tween.cs - Math Utilities
WPF Game Helpers By TheFocusMan/Mathf.cs - Asset Cache
WPF Game Helpers By TheFocusMan/CacheKiller.cs
Other components
- Player
Connections 28
- WPF App → Discord RPC: initializes
Shiny Engine FNF/App.xaml.cs - Story Menu → Week Data: loads weeks
Shiny Engine FNF Code/States/StoryMenuState.xaml.cs - Story Menu → Game Data: reads data
Shiny Engine FNF Code/States/StoryMenuState.xaml.cs - Story Menu → Discord RPC: updates presence
Shiny Engine FNF Code/States/StoryMenuState.xaml.cs - Story Menu → Asset Paths: resolves assets
Shiny Engine FNF Code/States/StoryMenuState.xaml.cs - Story Menu → Game Utilities: uses utilities
Shiny Engine FNF Code/States/StoryMenuState.xaml.cs - Chart Editor → Notes: uses notes
Shiny Engine FNF Code/States/Editors/ChartingState.xaml.cs - Play State → Play Initialization: initializes
- Play Initialization → Beat Timing: configures timing
Shiny Engine FNF Code/States/PlayState/PlayState.Initaize.cs - Play Initialization → Week Data: loads week
Shiny Engine FNF Code/States/PlayState/PlayState.Initaize.cs - Play Initialization → Asset Paths: resolves assets
Shiny Engine FNF Code/States/PlayState/PlayState.Initaize.cs - Play Initialization → Lua Scripts: loads scripts
Shiny Engine FNF Code/States/PlayState/PlayState.Initaize.cs - Play Initialization → Sprite Rendering: creates visuals
Shiny Engine FNF Code/States/PlayState/PlayState.Initaize.cs - Play Initialization → Game Canvas: uses canvas
Shiny Engine FNF Code/States/PlayState/PlayState.Initaize.cs - Play Initialization → Audio: loads audio
Shiny Engine FNF Code/States/PlayState/PlayState.Initaize.cs - Beat State → Beat Timing: reads beat timing
Shiny Engine FNF Code/MusicBeatState.cs - Beat Timing → Notes: judges timing
Shiny Engine FNF Code/FridayNightFunkinDataBase/Conductor.cs - Lua Scripts → Beat Timing: reads timing
Shiny Engine FNF Code/FunkinLua.cs - Lua Scripts → Week Data: reads week data
Shiny Engine FNF Code/FunkinLua.cs - Lua Scripts → Display: reads dimensions
Shiny Engine FNF Code/FunkinLua.cs - Week Data → Asset Paths: resolves content
Shiny Engine FNF Code/FridayNightFunkinDataBase/WeekData.cs - Song Data → Asset Paths: resolves content
Shiny Engine FNF Code/FridayNightFunkinDataBase/Song.cs - Asset Paths → Sprite Rendering: creates atlases
Shiny Engine FNF Code/Paths.cs - Asset Paths → Audio: resolves audio
Shiny Engine FNF Code/Paths.cs - Asset Paths → Asset Cache: uses cache
Shiny Engine FNF Code/Paths.cs - Sprite Rendering → Asset Cache: uses cache
WPF Game Helpers By TheFocusMan/Controls/Sprite.cs - Tweens → Math Utilities: uses math
WPF Game Helpers By TheFocusMan/Tween.cs - Tweens → Frame Timer: uses timer
WPF Game Helpers By TheFocusMan/Tween.cs