About this mod
Let's you add skins for fighters to the game via content packs
- Requirements
- Permissions and credits
- Changelogs
- Donations
Custom Skins
by PlatonymousLots has changed in TMNT since I last updated this. With the new update the old contentpacks should work again. Though loading times will increase, because the mod reformats the skins on startup.
(Fixed in 1.4.0)
Let's you add skins for fighters to the game via content packs.
Skins are assets swaps and merges that are tied to a selected skin.
To switch between skins, press left or right in the character select screen.
You can download an Example-Content-Pack in the files.
Requirest the latest version of TMNT Mod Api (1.1.1+)
Content Packs:
Playable Character Catwoman April by DustinOliver
Clone Turtles and Clone April from MegaDrive-Genesis Tournament Fighters by AyanamiRei0
Some Splinter Colors (Mirage 2k3 Movie) by cryomancer199x
Some Donatello Colors (Mirage 2k3 Boardgame) by cryomancer199x
Some Casey Colors (Mirage 2k3 Genesis) by cryomancer199x
Some Leonardo Colors (Mirage 2k3 Boardgame) by cryomancer199x
Splatterhouse Casey and April by cryomancer199x
Goku Caseys by cryomancer199x
Black Widow April Colors by cryomancer199x
Slash skin for Leo but with custom skins mod by vogliomorire
IDW Players by TurtleFreak7
1987 Colors by NeoZero35
Some April Colors (Mirage 2k3 Movie Rise) by cryomancer199x
Install
First install TMNT Mod Api. That creates a Mods folder on first launch. In that folder you extract this mod, so that the filestructure looks like this:
-Mods
——CustomSkins
————CustomSkins.dll
————manifest.json
ContentPacks for this are installed by also extracting them into the Mods folder, like this:
-Mods
——CustomSkins
————CustomSkins.dll
————manifest.json
——GokuCaseys
————content.json
————manifest.json
————...
Latest Changes:
1.5.0 Adds custom palettes and console commands to make creating them easier.
the palette new command exports the textures that have palettes for a defined character with the specified palette aplied (1-12) into the TMNT/DevPalettes folder under the specified name.
palette new [Character] [BasePalette] [FolderName]
eg. palette new April 1 MyFolderName
after you changed the exported images to your liking, the palette publish command will create a Mod folder inside the folder with the images and create the palette images, previews of the resulting textures, as well as a content.json for you.
palette publish [Character] [BasePalette] [FolderName]
eg. palette publish April 1 MyFolderName
The new palette looks for all colors that were changed from the basepalette, only one change to a color anywhere will update the palette to that color, so you do not need to change for example every April in her player-sheet, only a few so you capture every color you want to change at least once. you are limited to the palette alocations set by the game, so colors that are set to be the same by the game will also be the same with your palette, check the previews to make sure you get the result you want.
All palettes need to be included in the content.json, even if nothing changes, but the command will already do that for you. To use the Mod created with the commands you only need to add a regular manifest.json and place the folder in Mods.
The added Palette or Palettes will be put at the end of the palettes selction.
content.json From the palette example:
{
"PackVersion": 2,
"Skins": [],
"Palettes": [
{
"Asset": "2d\\Animations\\Players\\April\\AprilPalette",
"Patch": "2d_Animations_Players_April_AprilPalette.png"
},
{
"Asset": "2d\\Animations\\Menu\\WorldMap\\PlayerPanels\\April\\AprilPalette",
"Patch": "2d_Animations_Menu_WorldMap_PlayerPanels_April_AprilPalette.png"
},
{
"Asset": "2d\\Animations\\Menu\\Pause\\PowerLevel\\April\\AprilPalette",
"Patch": "2d_Animations_Menu_Pause_PowerLevel_April_AprilPalette.png"
},
{
"Asset": "2d\\Animations\\Menu\\LevelComplete\\April\\AprilPalette",
"Patch": "2d_Animations_Menu_LevelComplete_April_AprilPalette.png"
},
{
"Asset": "2d\\Animations\\Menu\\CharacterSelect\\April\\AprilPalette",
"Patch": "2d_Animations_Menu_CharacterSelect_April_AprilPalette.png"
},
{
"Asset": "2d\\Animations\\HUD\\PlayerHUD\\April\\AprilPalette",
"Patch": "2d_Animations_HUD_PlayerHUD_April_AprilPalette.png"
}
]
}
1.4.0 Build in automatic corrections for older skins (before palettes where introduced). Add the current PackVersion to the content.json. This way the mod knows if it's old or new and which version. The current version is 2, 0 is the default. "AllowShader" was added as a parameter in the patches, default is false, so older packs don't have to update. If it is false, no palettes will be applied to the texture.
1.3.0 Build in automatic corrections for older textures. For this, now always add the current PackVersion to the content.json. This way the mod knows if it's old or new and which version. The current version is 1, the last would have been 0, but 0 is also the default, so older content packs don't need to add it.
1.1.0 adds audio patches, you add them to the content.json just like any other patch.
To figure out the assetnames/folderstructure for the audio you want to replace you can use: SoundExtractor
Example content.json from the April Demo (with Sound):
{
"PackVersion": 2,
"Skins": [
{
"Character": "April",
"Name": "April (Red)",
"MenuColor": "Red",
"Patches":[
{
"Asset":"2d\\Animations\\Players\\April\\AprilTexture",
"Patch":"AprilTexture.png",
"PatchType": "Replace",
"AllowShader": false
},
{
"Asset":"2d\\Animations\\Menu\\CharacterSelect\\April\\AprilTexture",
"Patch":"CharacterSelectTexture.png",
"PatchType": "Replace",
"AllowShader": false
},
{
"Asset":"Audio\\VO\\April\\Selected",
"Patch":"Selected.wav"
}]
}
]
}
(This replaces what April says when the character is selected in the character-menu)How to make a Content Pack for Custom Skins:
ContentPacks are installed like any other other mod in TMNT Mod Api, by having a folder with a manifes.json file inside the Mods folder.
The manifest file for ContentPacks needs to have these basic informations about the mod:
manifest.json
{
"Id": "[Any.Unique.ID.You.Want]",
"Name": "[Name for the Mod]",
"Description": "[Description of the Mod]",
"Author": "[Name of the Author]",
"Version": "[Version in the format X.X.X]",
"ContentPackFor": "Platonymous.CustomSkins"
}
This is what let's the API know that this is a ContentPack for CustomSkins:
"ContentPackFor": "Platonymous.CustomSkins"
manifest.json From the example:
{
"Id": "Platonymous.CustomSkinsDemo1",
"Name": "Custom Skins Demo 1",
"Description": "B/W Michelangelo",
"Author": "Platonymous",
"Version": "1.0.0",
"ContentPackFor": "Platonymous.CustomSkins"
}
The actual information for the skins you want to add go into a seperare conten.json file.
content.json
{
"PackVersion": 2,
"Skins": [
{
"Character": "[Name of the Character the Skin is for]",
"Name": "[Name of the Character when the Skin is applied]",
"MenuColor": "[Menu-Color (Name)]",
"Patches":[
{
"Asset":"[Assetpath seperated by \\]",
"Patch":"[Patch file in your mods folder].png",
"PatchType": "[Replace or Merge]",
"AllowShader": [true of false]
},
... [As many Patches as you need]
]
},
... [As many Skins as you want]
]
}
Names of available Colors: http://www.foszor.com/blog/xna-color-chart/
PatchTypes
Replace: Replaced the original Texture completely with the one you provide.
Merge: Copies every pixel from your Patch-File on to it's original. Transparent pixels are ignored. Magenta-Pixel [RGB(255,0,255)] are not copied, but instead copy as transparent pixels on to the original (if you need to delete something in the original)
Both, Replace & Merge require your patch file to have the exact same pixel-sizes as the texture you want to replace or patch.
Asset
The Assetpath is the path to the file you want to patch/replace relative to the Content-Folder without the file-extension(.zxnb), with folders seperated by "\\"
To get all the Images you need to start, use TextureExtractor to turn all the zxnb images into pngs.
You can put as many Skins and as many Patches as you want into the same conten.json file.
content.json From the example:
{
"PackVersion": 2,
"Skins": [
{
"Character": "Michelangelo",
"Name": "Monongelo",
"MenuColor": "DarkSlateGray",
"Patches":[
{
"Asset":"2d\\Animations\\Players\\Michelangelo\\MichelangeloTexture",
"Patch":"bwanimations.png",
"PatchType": "Replace",
"AllowShader": false
},
{
"Asset":"2d\\Animations\\Menu\\CharacterSelect\\Michelangelo\\MichelangeloTexture",
"Patch":"bwportrait.png",
"PatchType": "Replace",
"AllowShader": false
}
]
}
]
}
Source: https://github.com/Platonymous/TMNTMods
If you have any questions you can find me on the TMNT Discord under the username Routine#8715
If you like my mods and want to support me, you can do so via Paypal or on Patreon.