In this brief tutorial you will learn how to use mods in Waddle Forever
If you happen to already have a mod, then all you need to do is drop the mod inside the mods folder, in the directory you installed the game. Make sure to restart the game and then the mod will appear in the menu: Options > Open Mods.
To make a mod, first you will need to create a folder inside mods in the game directory and name it what you want the mod to be named.
Then, you will need your SWF files (or other non SWF files you want to modify). I assume you already have them with you, otherwise teaching how to get or make flash files is beyond the scope of this tutorial.
First, you will need to know the path of the file. To do this, you will have to go in the game and open the dev tools. Go on Options > Open Dev Tools, and a new section will open. In there, you should click in the "Network" tab.
With that open, go inside the game and search for which file you want to change.
For this example, let us make a mod which changes the penguin into a green puffle. Then, we go ahead and search for the penguin swf in the Dev Tools:

Hovering over the file displays the file path, which is everything after http://localhost/. Then, all you need to do is to go inside your mod's folder, and create a folder structure that follows that. In our case, play/v2/content/global/penguin/penguin.swf, so we create the folder play, inside it, the folder v2, and so forth until adding the file penguin.swf.
Then, our mod will be done! All you need to do is to restart the game, and enable it in the mods menu. Entering the game we can then see our mod in practice:

You can add custom items using the items file. In the folder of the mod, you must add a file named items.json. In the newest version of Waddle Forever, that file is created automatically if you use the Create Mod button. Here's an example of how you would add a single item:
[
{
"id": 95000,
"name": "Example Item",
"type": 6,
"layer": 7000,
"cost": 0,
"isMember": false,
"isBack": false
}
]
Keep in mind that:
Color: 1
Head: 2
Face: 3
Neck: 4
Body: 5
Hand: 6
Feet: 7
Pin: 8
Background: 9
Award: 10
Color: 1500
Head: 6000
Face: 5000
Neck: 4000
Body: 3000
Hand: 7000
Feet: 2000
Pin: 8000
Background: 500
Award: 0
isBack refers to the item being a back item, for example, the wing items. Otherwise, leave it as false.Consider the example item file written in the previous section. After writing the JSON file, your mod file structure will look something like this:
.
└── mods/
└── CustomItemMod/
├── items.json
└── play/
└── v2/
└── content/
└── global/
└── clothing/
├── icons/
│ └── 95000.swf
├── paper/
│ └── 95000.swf
└── sprites/
└── 95000.swf
Here the clothing files have been added as 95000, since that is the ID we have written in the JSON. Then, in-game, I can use the ai command to give the item to my penguin, and wear it.

If you want your item to produce a special dance, you can do so by using the frames file. In the folder of the mod, you must add a file named frames.json. In the newest version of Waddle Forever, that file is created automatically if you use the Create Mod button. This file is once again a JSON array (square brackets). Inside, you must add objects (enclosed by curly brackets) separated by comma, just like the items file. However, the content of the objects is different. Each object must define one specific set of items and what special animation they produce. Take a look at an example:
[
{
"head": 0,
"face": 0,
"neck": 0,
"body": 0,
"hand": 95000,
"feet": 0,
"secret_frame": 57,
"frame": 26
}
]
Through head, face, neck, body, hand and feet, you must make it explicit what combination of items we are dealing with. In this example, the penguin is wearing no items, except for the fact they are wearing our custom item from the previous section in their hand. With secret_frame, you must define the frame of the special animation. This is a value found inside the penguin SWF. If you want to use an already existing animation, you can take a look at the penguin SWF, or other items' declaration to find what the value of the secret_frame is. If you are making a new special animation, you will have to modify the penguin SWF and then write what is the new secret_frame. Finally, frame corresponds to how this animation is initiated. Does it initiate after waving, dancing? The value of the dance frame is 26, while the value of the wave frame is 25. In the example above, we are adding an animation of secret_frame 57 (the break dance) to frame 26 (dancing).
After you've saved the file, restart the mod, and make sure to use the combination you've defined. You should now be able to use a special dance with the item.

You can modify the music ID that plays in each room. This can be achieved by adding a music.json file containing all the rooms you want to change. The file has to be in the following syntax:
{
"town": 0,
"dance": 0
}
You can add as many rooms as you want, and add whatever music ID you wish. Pay attention that you must use the specific room names for each room, which are given below:
| Room | Required Name |
|---|---|
| Town | town |
| Coffee Shop | coffee |
| Dance Club | dance |
| Dance Lounge | lounge |
| Gift Shop | shop |
| Snow Forts | forts |
| Ice Rink / Stadium | rink |
| Plaza | plaza |
| Pet Shop | pet |
| Stage | stage |
| Mall | mall |
| Pizza Parlor | pizza |
| Underground Pool | cave |
| Boiler Room | boiler |
| Beach | beach |
| Lighthouse | light |
| Beacon | beacon |
| Dock | dock |
| Ski Village | village |
| Ski Hill | mtn |
| Attic | attic |
| Sport Shop | sport |
| Everyday Phoning Facility | agentlobbysolo agentlobbymulti |
| PSA HQ | agent |
| EPF Command Room | agentcom |
| VR Room | agentvr |
| Forest | forest |
| Mine Shack | shack |
| Recycling Plant | eco |
| Mine | mine |
| Cave Mine / Gold Mine | cavemine |
| Hidden Lake | lake |
| Underwater | underwater |
| Cove | cove |
| Iceberg | berg |
| Dojo Courtyard | dojoext |
| Dojo | dojo |
| Ninja Hideout | dojohide |
| Fire Dojo | dojofire |
| Water Dojo | dojowater |
| Snow Dojo | dojosnow |
| Box Dimension | boxdimension |
| Migrator | ship |
| Ship Nest | shipnest |
| Ship Hold | shiphold |
| Captain's Quarters | shipquarters |
| Party | party |
| Party 1...Party99 | "party1" ... "party99" |
| Pitch (Sport Party 2008) | pitch |