Skip to content

Commit 4ddd0ae

Browse files
Merge pull request #29 from FunkinCrew/0.6.3
Updated documentation to 0.6.3
2 parents d8382c9 + 02b0af6 commit 4ddd0ae

7 files changed

+80
-6
lines changed

src/01-fundamentals/01-01-the-metadata-file.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Inside this file, we will put the information the game needs in order to learn a
1919
"optionalDependencies": {
2020
"modB": "1.3.2"
2121
},
22-
"api_version": "0.6.2",
22+
"api_version": "0.6.3",
2323
"mod_version": "1.0.0",
2424
"license": "Apache-2.0"
2525
}
@@ -37,7 +37,7 @@ Inside this file, we will put the information the game needs in order to learn a
3737
- The mod list will be reordered such that dependencies load first.
3838
- `optionalDependencies`: A map of mod IDs which are optional dependencies, along with their version numbers.
3939
- These mods do not necessarily need to be installed for this mod to load, but they will still force the mod list to be reordered so that the dependencies load before this mod.
40-
- `api_version`: A version number used to determine if mods are compatible with your copy of Funkin'. Change this to the version number for Friday Night Funkin' that you want to support, preferably the latest one (`0.6.2` at time of writing.).
40+
- `api_version`: A version number used to determine if mods are compatible with your copy of Funkin'. Change this to the version number for Friday Night Funkin' that you want to support, preferably the latest one (`0.6.3` at time of writing.).
4141
- `mod_version`: A version number specifically for your mod. Choose any version or leave it at `1.0.0`.
4242
- `license`: The license your mod is distributed under. [Pick one from here](https://opensource.org/licenses) or just leave it as `Apache-2.0`.
4343

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Creating a Friday Night Funkin' Mod - Custom Sticker Packs
2+
3+
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.
4+
5+
This chapter goes over adding new Sticker Packs to the game, and telling the game when to use them for songs.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Creating a new Sticker Pack
2+
3+
## Sticker Pack Assets
4+
5+
In order to create your own sticker pack, you will need graphics for the stickers you want to use. The ones included in the base game are generally around 300x300 in size, with some variation.
6+
7+
## Sticker Pack Data
8+
9+
A custom sticker pack requires creating a new JSON file in the `data/stickerpacks` folder.
10+
11+
Below is the "default" sticker pack JSON file `assets/data/stickerpacks/default.json`[^stickerpacksource]
12+
13+
```json
14+
{
15+
"version": "1.0.0",
16+
"name": "Default",
17+
"artist": "PhantomArcade3K",
18+
"stickers": [
19+
"transitionSwag/stickers-set-1/bfSticker1",
20+
"transitionSwag/stickers-set-1/bfSticker2",
21+
"transitionSwag/stickers-set-1/bfSticker3"
22+
]
23+
}
24+
```
25+
26+
Let's break it all down.
27+
- `version`: The version number for the Sticker Pack data file format. Leave this at `1.0.0`.
28+
- This will increase if the data file format changes, and tell the game whether additional processing needs to be done for backwards compatibility.
29+
- `name`: The readable name for the sticker pack, used in places like the Chart Editor.
30+
- `author`: The author of the sticker pack, aka the artist who created the assets.
31+
- `stickers`: A list of all the paths for all the stickers to use, as strings.
32+
- You cannot currently specify any additional arguments, such as scale, offsets, texture smoothing, or animations.
33+
34+
[^stickerpacksource]: <https://github.com/FunkinCrew/funkin.assets/blob/main/preload/data/stickerpacks/default.json>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Modifying an Existing Sticker Pack
2+
3+
You can use the [JSONPatch](../10-appending-and-merging-files/10-02-merging-files.md) feature to add or remove stickers from an existing sticker pack.
4+
5+
For example, to add to Boyfriend's standard sticker pack, you can use the following JSON Patch file (placed in `mods/mymod/_merge/data/stickerpacks/standard-bf.json`, use a different file path to patch a different sticker pack):
6+
7+
```jsonc
8+
[
9+
// Add an asset path to the end of the sticker list.
10+
{ "op": "add", "path": "/stickers/-", "value": "path/to/custom/sticker" }
11+
]
12+
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Using a Custom Sticker Pack
2+
3+
There are two ways the game defines a given sticker pack to be used:
4+
5+
- Each [Playable Character](../05-custom-playable-characters/05-00-custom-playable-characters.md) defines the `stickerPack` variable, which specifies the sticker pack to be used by songs containing that character. For example, `bf` uses the `standard-bf` sticker pack. You can define a sticker pack to be used for your custom playable character by setting the `stickerPack` value, or modify which sticker pack is used by other playable characters by using [JSONPatch](../10-appending-and-merging-files/10-02-merging-files.md) to modify the `stickerPack` value of that character.
6+
- Each song has a value in its metadata to define which sticker pack is used. Set the `playData.stickerPack` on a song (or use JSONPatch to modify metadata of an existing song) to override which sticker pack it uses.
7+
8+
The game checks and uses sticker packs in this order:
9+
10+
- The sticker pack chosen by the song.
11+
- The sticker pack chosen by the playable character.
12+
- The `default` sticker pack (which displays only Boyfriend). If you see only Boyfriend during a sticker transition, then you know neither the song or the playable character defines a sticker pack, and you should fix the issue.

src/09-migration/09-02-0.5.0-to-0.6.0.md renamed to src/09-migration/09-02-0.5.0-to-0.6.3.md

+14-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
1-
# Migrating from v0.5.0 to v0.6.0
1+
# Migrating from v0.5.0 to v0.6.3
22

3-
Migration from v0.5.0 to v0.6.0 requires only minor changes to mods, and won't break most mods.
3+
Migration from v0.5.0 to v0.6.3 requires some changes to mods.
4+
5+
# Update the API Version
6+
7+
Eric accidentally forgot to increment the API version for the game when updating to v0.6.0, and this got fixed with v0.6.3.
8+
This means that mods won't load unless the `api_version` value in the `_polymod_meta.json` file is at least v0.6.3. This allows mod creators to perform testing and ensure their mods are compatible before releasing an update on their distribution platforms of choice. Most mods (especially ones with minimal scripting) will need no changes to work as expected, but developers should probably do some playtesting to be sure.
49

510
# Migrate from hxCodec to hxvlc
611

@@ -53,4 +58,10 @@ if (Std.isOfType(currentState, OptionsState)) {
5358
// Create a new option.
5459
prefs.createPrefItemCheckbox(...);
5560
}
56-
```
61+
```
62+
63+
# Sticker Changes
64+
65+
v0.6.0 rewrote how stickers get used by the game (and v0.6.3 rewrote it again but better this time). Any existing mods that provided stickers will probably break.
66+
67+
New or updating mods looking to add, remove, or replace stickers should consult the [custom Sticker Packs documentation](../07-custom-sticker-packs/07-00-custom-sticker-packs.md)

src/SUMMARY.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141

4242
- [Migration](09-migration/09-00-migrating-mods-to-newer-versions.md)
4343
- [v0.1.0 to v0.5.0](09-migration/09-01-0.1.0-to-0.5.0.md)
44-
- [v0.5.0 to v0.6.0](09-migration/09-02-0.5.0-to-0.6.0.md)
44+
- [v0.5.0 to v0.6.3](09-migration/09-02-0.5.0-to-0.6.3.md)
4545

4646
- [Appending And Merging Files](10-appending-and-merging-files/10-00-appending-and-merging-files.md)
4747
- [Appending Files](10-appending-and-merging-files/10-01-appending-files.md)

0 commit comments

Comments
 (0)