Proto:Friday Night Funkin'/Newgrounds Demo
This is a sub-page of Proto:Friday Night Funkin'.
This page is showing its age. Please update this page to fit our current standards! Here are some things you can do: Detailed 2024 updates documentation. |
This game is still under active development. Be aware that any unused content you find may become used or removed in the future. Please only add things to the article that are unlikely to ever be used, or went unused for some time. If they do get used, please remove them from the page and specify in the edit summary! |
To do:
|
Friday Night Funkin' is a rhythm game originally made for Ludum Dare 47, later growing into a larger-scale project. It's basically a mix of PaRappa The Rapper and Dance Dance Revolution with funky, hip hop inspired art. Thanks to over 58,000 backers funding $2,247,641 towards the game's kickstarter, this game will evolve into a bigger project, though it will take a very long time considering the amount of content the game will have.
Contents
Sub-Pages
Unused Graphics and Animations Lots of inside jokes! |
Revisional Differences Polishing comes a long way. |
Unused Levels
Smash
A really short level that appears to be broken. According to one of the developers, the music was supposed to be Break the Targets from Super Smash Bros. Melee, hence the name. When loaded into, an error appears saying something is invalid. The attached video shows what it was supposed to look like. According to NinjaMuffin, it was made before the in-game chart editor even had a save function, which can be the reason why Smash is so broken.
Ridge
A level with no music and only a note chart. However, it is supposed to have music, which from the note chart was figured out to be "Kouta Takahashi - Urban Fragments" from the Ridge Racer Type 4 OST (which explains the level name). It appears to use Daddy Dearest as the testing character. In a tweet from November, PhantomArcade, the main FNF artist posted a video of the song in action, confirming that it was indeed a test song.
Test
This page or section has one or more broken YouTube links. Please find an archived version of the video(s) or a suitable replacement. |
A level meant for testing inputs, sung by both Boyfriend and his pixel variant. Before Week 7, this song did not have a chart or any vocals. The additional vocals and chart were done by MtH, one of the staff members of SiIvaGunner. [1]
Charting Menu
To do:
|
Press 7 on your keyboard while in any level to access the charting menu. The most useful and noteworthy part of this debug menu is the ability to place and remove notes from the current song chart and play them. The four left-most columns of the editor belong to the AI and the four right-most ones belong to the player. Just like in-game, the column order is left, down, up, right.
Controls
W / Up arrow and S / Down arrow scroll the note chart up and down. This can also be controlled with the scroll wheel. A / Left arrow and D / Right arrow will change the section of the song being edited. Holding down CTRL while placing a note will copy the note to the other side of the chart. Q and E change the most recently placed note’s sustain length. Spacebar plays a preview of the song on the editor, to help with timing notes. Enter will play the current note chart in-game, with any edits done. Tab and Shift+Tab will switch between the three tabs that are present.
Note
Allows changing the sustain length of the most recently placed note. Attempting to change this without placing a note in the current section will cause the game to crash.
Section
Section Length
The slider at the top is the length of the section in the 16th note. This setting does nothing when changed.
Must Hit Section
When ticked, swaps the Player's and AI's columns around in the editor. Whoever is on the left side is who the camera focuses on in-game. This does not swap the notes.
Copy Last
Copies notes from the last section to the current section. It doesn't replace the notes already in the current section, however.
Clear
Does exactly what it says on the tin; clears all notes in the current section.
Swap Section
Swaps the Player's and AI's notes around.
Change BPM
Sets the BPM to a new value, starting with the selected section. This setting is very buggy and can cause odd glitches. Furthermore, it only works in v0.2.7.1 and above.
Song
The text is the name of the song it will try to load. Save will save the current note chart into a JSON file, Reload Audio reloads the audio, and Reload JSON resets the settings of the song to what was previously saved. Ticking Has Voice Track off will disable the vocal track in-game.
Song Sliders
These are settings for the current song chart. The slider on the top sets the starting BPM for the chart (A.k.a. How quickly Girlfriend bops her head back and forth and how fast the chart progresses), while the slider on the bottom changes how fast the notes scroll. To clarify, BPM changes how fast the chart progresses, scroll speed changes how fast the notes fly towards the markers.
Characters
The first drop-down specifies who the player's character is, and the second drop-down specifies the player's opponent. Strangely enough, it can also be used to go against Boyfriend.
Alt Animation
Not in a tab, but instead at the bottom of the menu. When ticked, this causes whoever is singing to use an alternate animation (If they have one). The Week 5 songs "Cocoa" and "Eggnog" are currently the only official charts to make use of this setting. Week 7 songs "Ugh" and "Stress" use a different method of alt animations, where it's applied to the note instead of the section.
Animation Debug Menu
Although only accessible through debug source code builds or mods, this menu is what you would expect, an animation debug menu, most likely used for sprite positioning in the game's code. It can be accessed by pressing 8 in any song, and it will load the character you are facing against in the menu. If it (somehow) can't find your opposing enemy, it will load The Boyfriend. This menu can also be found in the Newgrounds build by pressing 8 on the menu, however it only features a mouthless Tankman with an arm duplicate next to him.
Controls
W and S will scroll between animations. Arrow keys will move the selected animation to the direction pressed by 1. Holding Shift down while pressing any arrow key will move it into the direction by 10. I, K, J and L will move the camera up, down, left and right respectively. Q and E will zoom the camera out and in respectively. For the Newgrounds version of this Animation Debug Menu, pressing Space a few times will trigger a seemingly unfinished version of Tankman's "Guns" intro animation.
Unused Audio
title.ogg
titleShoot.ogg
title.ogg is a funky song leftover from the Ludum Dare prototype, while titleShoot.ogg is the game start/title confirm sound effect also leftover from the Ludum Dare prototype.
Test Song
Music and vocals for the Test song, as shown earlier. The first audio is the music, and the second is the vocals. It can be loaded by going into the charting menu and changing the song name to Test.
Test Sound
A test sound, possibly used for keeping the beat.
GF_1-4.ogg
Girlfriend making various beeping noises. According to a video by Taily on YouTube, the sounds were meant to be used in a cutscene from an earlier version of the game.
Unused Text
template
template
Present in assets/images/custom_chars/charlist.txt. The folder name suggests it is going to be used in the future for adding custom characters to the game. The folder, alongside the text itself, was later removed, but the template icons are still there.
Unused Code
boyfriend.stunned = true; // get stunned for 5 seconds new FlxTimer().start(5 / 60, function(tmr:FlxTimer) { boyfriend.stunned = true; });
In source/PlayState.hx, there's remnants of code for Boyfriend being hit by an attack, which lines up with the unused animation.
In source/TitleState.hx, there is leftover coding for the TitleShoot.ogg file that was used in the Ludum Dare Prototype but leftover in the files of the game. If you go to the game's source code, you will see this:
else { FlxG.switchState(new MainMenuState()); } }); // FlxG.sound.play(Paths.music('titleShoot'), 0.7);
Keep in mind that there is a // in front of it. This means that it goes unused since that cancels it to become used in the final game.