Teenage Mutant Ninja Turtles: Shredder's Revenge
0 of 0

File information

Last updated

Original upload

Created by

Platonymous

Uploaded by

Platonymous

Virus scan

Safe to use

Tags for this mod

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 Platonymous

Lots 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:

 

 

 
 
 


 




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.