diff --git a/src/08-custom-notestyles/08-00-custom-notestyles.md b/src/08-custom-notestyles/08-00-custom-notestyles.md index 6a2bd43..0d1b635 100644 --- a/src/08-custom-notestyles/08-00-custom-notestyles.md +++ b/src/08-custom-notestyles/08-00-custom-notestyles.md @@ -2,4 +2,4 @@ This chapter will walk you through the process of creating a functioning, fully compatible Friday Night Funkin' mod, using the game's official systems for loading custom content and scripts. Once your mod is complete, you will be able to place it in the `mods` folder in your game install and use its content in-game without overriding the base game content and still maintain compatibility with other mods. -This chapter goes over adding new note styles to the game, and using them in a level. +This chapter goes over adding new Note Styles to the game, and using them in a song. diff --git a/src/08-custom-notestyles/08-01-creating-a-notestyle.md b/src/08-custom-notestyles/08-01-creating-a-notestyle.md index 845934e..c9d695c 100644 --- a/src/08-custom-notestyles/08-01-creating-a-notestyle.md +++ b/src/08-custom-notestyles/08-01-creating-a-notestyle.md @@ -2,13 +2,22 @@ ## Note Style Assets -In order to create your own note style, you will need up to 4 assets: -- `notes`: The general notes that are displayed in the chart, as well as in-game the player needs to hit. -- `noteStrumline`: The notes on the strumline, along with their corresponding animations, such as it being `static`, the strumline note being `pressed`, `confirming` the note hit. -- `noteSplashes`: The special effect when the player gets `Sick!` rating. - - Currently is buggy, since it doesn't use the asset you provided. -- `holdCover`: The special effect when the player is holding a note. - - Currently is buggy, since it doesn't use the asset you provided. +In order to create your own note style, you will need assets for a variety of elements: + +- `note`: The general notes for the song. These display in the chart editor as well as in-game as the notes the player must hit. +- `holdNote`: The sprites for the hold notes which require the key to be held rather than pressed. +- `noteStrumline`: The notes on the strumline, which react when the player presses the keys, and provide visual feedback for when notes need to be hit. +- `noteSplash`: The special effect when the player gets `Sick!` rating. +- `holdNoteCover`: The special effect when the player is holding a hold note. +- `countdown`: The assets (both the sprites and audio) for the countdown that happens before the song starts. +- `judgementShit`: The assets for judgements, which display how well you hit a note. +- `comboNumber0`: The assets for the combo counter, which displays when you hit a certain number of notes in a row. + +These assets should be placed in your mod folder, ideally somewhere organized. They don't have to be in any specific location, just one that you can directly reference from your note style's JSON data file. + +## Note Style Fallback + +Note styles use a recursive fallback system; essentially, you can specify just one or several assets for a note style. If a fallback note style is specified, the parent will be queried for any assets that aren't included. If the parent doesn't have an asset, ITS parent will be referenced, and so on. This allows you to easily make note styles which perform only slight variations on the style they are based on. ## Note Style Data @@ -18,7 +27,7 @@ Below is the "funkin" (aka the default) note style json file `assets/data/notest ```json { - "version": "1.0.0", + "version": "1.1.0", "name": "Funkin'", "author": "PhantomArcade", "fallback": null, @@ -71,16 +80,117 @@ Below is the "funkin" (aka the default) note style json file `assets/data/notest "data": { "enabled": true } + }, + "countdownThree": { + "data": { + "audioPath": "shared:gameplay/countdown/funkin/introTHREE" + }, + "assetPath": null + }, + "countdownTwo": { + "data": { + "audioPath": "shared:gameplay/countdown/funkin/introTWO" + }, + "assetPath": "shared:ui/countdown/funkin/ready", + "scale": 1.0, + "isPixel": false + }, + "countdownOne": { + "data": { + "audioPath": "shared:gameplay/countdown/funkin/introONE" + }, + "assetPath": "shared:ui/countdown/funkin/set", + "scale": 1.0, + "isPixel": false + }, + "countdownGo": { + "data": { + "audioPath": "shared:gameplay/countdown/funkin/introGO" + }, + "assetPath": "shared:ui/countdown/funkin/go", + "scale": 1.0, + "isPixel": false + }, + "judgementSick": { + "assetPath": "default:ui/popup/funkin/sick", + "scale": 0.65, + "isPixel": false + }, + "judgementGood": { + "assetPath": "default:ui/popup/funkin/good", + "scale": 0.65, + "isPixel": false + }, + "judgementBad": { + "assetPath": "default:ui/popup/funkin/bad", + "scale": 0.65, + "isPixel": false + }, + "judgementShit": { + "assetPath": "default:ui/popup/funkin/shit", + "scale": 0.65, + "isPixel": false + }, + "comboNumber0": { + "assetPath": "default:ui/popup/funkin/num0", + "isPixel": false, + "scale": 0.45 + }, + "comboNumber1": { + "assetPath": "default:ui/popup/funkin/num1", + "isPixel": false, + "scale": 0.45 + }, + "comboNumber2": { + "assetPath": "default:ui/popup/funkin/num2", + "isPixel": false, + "scale": 0.45 + }, + "comboNumber3": { + "assetPath": "default:ui/popup/funkin/num3", + "isPixel": false, + "scale": 0.45 + }, + "comboNumber4": { + "assetPath": "default:ui/popup/funkin/num4", + "isPixel": false, + "scale": 0.45 + }, + "comboNumber5": { + "assetPath": "default:ui/popup/funkin/num5", + "isPixel": false, + "scale": 0.45 + }, + "comboNumber6": { + "assetPath": "default:ui/popup/funkin/num6", + "isPixel": false, + "scale": 0.45 + }, + "comboNumber7": { + "assetPath": "default:ui/popup/funkin/num7", + "isPixel": false, + "scale": 0.45 + }, + "comboNumber8": { + "assetPath": "default:ui/popup/funkin/num8", + "isPixel": false, + "scale": 0.45 + }, + "comboNumber9": { + "assetPath": "default:ui/popup/funkin/num9", + "isPixel": false, + "scale": 0.45 } } } + ``` There is quite a lot to unravel, let's break it all down. - `version`: The version number for the Note Style data file format. Leave this at `1.0.0`. - `name`: The readable name for the note style, used in places like the Chart Editor. - `author`: The author of the note style, aka the artist who created the assets. -- `fallback`: The note style to use as a fallback/parent, providing a default option when the note style you are using is not available. Optional, defaults to `null`. +- `fallback`: The note style ID to use as a fallback note style. Any assets not included for this note style will use the parent's asset instead. `"funkin"` is the recommended default in order to use the default base game assets for anything that is not specified. - `assets`: A list of asset data for each of the assets for the note style. - See [list of assets](#note-style-assets) that you can provide the data for. diff --git a/src/08-custom-notestyles/08-02-using-a-notestyle-in-a-song.md b/src/08-custom-notestyles/08-02-using-a-notestyle-in-a-song.md index 05be832..e99e138 100644 --- a/src/08-custom-notestyles/08-02-using-a-notestyle-in-a-song.md +++ b/src/08-custom-notestyles/08-02-using-a-notestyle-in-a-song.md @@ -2,7 +2,7 @@ There are currently two ways to use your note style in a song once it's implemented. -1. *[FIXED IN 0.5.0]* Create a new chart. Open the Chart Editor, start a chart, and then select the `Notestyle` box from the `Metadata` toolbox before charting. +1. Create a new chart. Open the Chart Editor, start a chart, and then select the `Notestyle` box from the `Metadata` toolbox before charting. 2. Edit an existing chart in your mod. Open the `metadata.json` file of the song you want to modify and check in `playData` for the `noteStyle` key. -Once the chart which references your note style is in your mod folder, simply start the game with your mod installed. \ No newline at end of file +Once the chart which references your note style is in your mod folder, simply start the game with your mod installed. diff --git a/src/09-custom-countdowns-and-custom-popups/09-00-custom-countdowns-and-custom-coutndowns.md b/src/09-custom-countdowns-and-custom-popups/09-00-custom-countdowns-and-custom-coutndowns.md deleted file mode 100644 index 9a80802..0000000 --- a/src/09-custom-countdowns-and-custom-popups/09-00-custom-countdowns-and-custom-coutndowns.md +++ /dev/null @@ -1,7 +0,0 @@ -# Creating a Friday Night Funkin' Mod - Custom Countdowns and Custom Popups - -## [UPCOMING IN 0.5.0] - -This chapter will walk you through the process of creating a functioning, fully compatible Friday Night Funkin' mod, using the game's official systems for loading custom content and scripts. Once your mod is complete, you will be able to place it in the `mods` folder in your game install and use its content in-game without overriding the base game content and still maintain compatibility with other mods. - -This chapter goes over adding new countdowns and popups to the game. diff --git a/src/09-custom-countdowns-and-custom-popups/09-01-creating-custom-countdowns.md b/src/09-custom-countdowns-and-custom-popups/09-01-creating-custom-countdowns.md deleted file mode 100644 index 9c3ead8..0000000 --- a/src/09-custom-countdowns-and-custom-popups/09-01-creating-custom-countdowns.md +++ /dev/null @@ -1,30 +0,0 @@ -# Creating Custom Countdowns - -All custom countdowns are based on the [current note style](../08-custom-notestyles/08-00-custom-notestyles.md) that is being used in-game. With that being said, you have to [add your assets](../01-fundamentals/01-03-asset-replacement-and-additions.md#asset-replacement-and-additons) with the note style name you are going to use. - -You can add both graphic as well sound assets you are going to use for your countdown: -- The PNG files need to go into `images/countdown/`, replacing the `` with the internal name of our notestyle -- The OGG files need to go into `shared/sounds/gameplay/countdown/`, again replacing `` with the internal name of our notestyle. - -We'll end up with something like this. - -``` --mods - |-myMod - |-images - |-countdown - |-myNotestyle - |-ready.png - |-set.png - |-go.png - |-shared - |-sounds - |-gameplay - |-countdown - |-myNotestyle - |-introTHREE.ogg - |-introTWO.ogg - |-introONE.ogg - |-introGO.ogg - |-_polymod_metadata.json -``` \ No newline at end of file diff --git a/src/09-custom-countdowns-and-custom-popups/09-02-creating-custom-popups.md b/src/09-custom-countdowns-and-custom-popups/09-02-creating-custom-popups.md deleted file mode 100644 index 1b72a19..0000000 --- a/src/09-custom-countdowns-and-custom-popups/09-02-creating-custom-popups.md +++ /dev/null @@ -1,32 +0,0 @@ -# Creating Custom Popups - -All custom popups are based on the [current note style](../08-custom-notestyles/08-00-custom-notestyles.md) that is being used in-game. With that being said, you have to [add your assets](../01-fundamentals/01-03-asset-replacement-and-additions.md) with the note style name you are going to use. - -You can ONLY add graphic assets you are going to use for your countdown: -- The PNG files need to go into `images/ui/`, replacing the `` with the internal name of our notestyle - -We'll end up with something like this. - -``` --mods - |-myMod - |-images - |-ui - |-myNotestyle - |-num0.png - |-num1.png - |-num2.png - |-num3.png - |-num4.png - |-num5.png - |-num6.png - |-num7.png - |-num8.png - |-num9.png - |-combo.png - |-sick.png - |-good.png - |-bad.png - |-shit.png - |-_polymod_metadata.json -``` \ No newline at end of file diff --git a/src/09-custom-countdowns-and-custom-popups/09-03-using-custom-countdowns-and-custom-popups b/src/09-custom-countdowns-and-custom-popups/09-03-using-custom-countdowns-and-custom-popups deleted file mode 100644 index 1eabf4e..0000000 --- a/src/09-custom-countdowns-and-custom-popups/09-03-using-custom-countdowns-and-custom-popups +++ /dev/null @@ -1 +0,0 @@ -# Using Custom Countdowns and Custom Popups