Skip to content

Commit 43a1ca2

Browse files
Sticker pack documentation.
1 parent d8382c9 commit 43a1ca2

File tree

5 files changed

+70
-1
lines changed

5 files changed

+70
-1
lines changed
Lines changed: 5 additions & 0 deletions
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.
Lines changed: 34 additions & 0 deletions
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 note style, 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 note style 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`[^notestylesource]
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+
[^notestylesource]: <https://github.com/FunkinCrew/funkin.assets/blob/main/preload/data/stickerpacks/default.json>
Lines changed: 12 additions & 0 deletions
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+
```
Lines changed: 12 additions & 0 deletions
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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,10 @@ if (Std.isOfType(currentState, OptionsState)) {
5353
// Create a new option.
5454
prefs.createPrefItemCheckbox(...);
5555
}
56-
```
56+
```
57+
58+
# Sticker Changes
59+
60+
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 break.
61+
62+
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)

0 commit comments

Comments
 (0)