Repository files navigation

CharacterMods

Collection of model replacements for Shadow the Hedgehog

Explanation of Organization

  • The first folder is the character who is replaced. Inside are two categories:
  1. Default BON MTP - These use the default Shadow animations(MTP)/bones(BON). No additional Gecko Codes required typically
  2. Custom BON MTP - These edit or swap BON/MTP files - thus have animations Shadow does not have. Vehicle animations will probably be broken. May require the Custom MTP Crash Fix v4 code (see below). For 2P Mod usage, Yellow Android MTP Animation Override is required. Yellow Android MTP Animation Override is not included in this repo as it is already bundled as part of 2P-ShdTH and 2P-Reloaded.
  • The nested folder after the category is the name of the model change or character.

How to use

To apply character mods, use Dolphin's Extracted Game feature. If you are not familiar you can learn how to easily do it here: https://github.com/ShadowTheHedgehogHacking/2P-ShdTH?tab=readme-ov-file#extraction-of-game--extracted-game-format

  1. Choose the .one file you want from the corresponding folder.
  2. Place chosen files in {EXTRACTED_GAME}/files/character
  3. Enable required Gecko Code(s) if necessary
$Custom MTP Crash Fix v4 [dreamsyntax]
C24188A0 0000000A
3F808057 639C5F80
839C0000 2C1C000A
4182001C 2C1C0010
41820014 2C1C0006
41820010 2C1C0001
4082001C 4E800020
83810114 3C00800B
600053D0 7C1C0000
41A2FFEC 9421FFC0
60000000 00000000
* Fixes crashing after completing stages when using custom MTP model/character mods.
*
*Example:
*If using Omega over Shadow, and then complete a stage Omega appears in (Iron Jungle, Lava Shelter) you have a chance to crash. With this code you will no longer crash.

Character Map

CharacterFile Name
Shadowshadow
2PYellow (Yellow Android)shadow2py
2PGunBlueshadow2pmtlb
2PGunPinkshadow2pmtlp
2PCannonOrangeshadow2pcnno
2PCannonGreenshadow2pcnng
Sonicsonic
Tailstails
Knucklesknuckles
Amyamy
Rougerouge
Omegaomega
Vectorvector
Espioespio
Mariamaria
Charmybee
EggMonitoreggmonitor
Doom's Eyedoomseye
eWorld Shadoweshadow.one (UNUSED)

Enemy Map

CharacterFile Name
Artificial ChaosBKChaosData
Black Arms Giant / OakBkGiantData
Black Arms Larva / Death LeechBkLarvaData
Black Arms AssassinBkNinjaData
Black Arms Soldier / WarriorBkSoldierData
Black Hawk / Black VoltBkWingLargeData
Black WingBkWingSmallData
Black Worm / Blue Worm / Gold WormBkWormData
Egg PawnEggPawnData
Egg Pierrot (Clown)EggPierrotData_pierro
Egg Pierrot (Knight)EggPierrotData_busou
Egg Pierrot (Pumpkin)EggPierrotData_horror
Shadow AndroidEggShadowAndroidData
GUN Beetle / Gold GUN BeetleGunBeetleData
GUN Bigfoot Type A / Type BGunBigfootData
GUN Trooper / Giga TrooperGunRobotData
GUN Soldier (Westopolis / Lethal Highway / Central City)GunSoldierData_citii
GUN Soldier (Glyphic Canyon)GunSoldierData_nazca
GUN Soldier (The Doom / Lost Impact)GunSoldierData_ark50
GUN Soldier (Death Ruins)GunSoldierData_iseki
GUN Soldier (GUN Fortress)GunSoldierData_kichi
GUN Soldier (Digital - UNUSED)GunSoldierData_ark00
GUN Soldier (Air Fleet - UNUSED)GunSoldierData_densi
GUN Soldier (Iron Jungle - UNUSED)GunSoldierData_jungl

Character Mod Creators

  • NULL.DFF in the root of this project can be used to replace other .DFFs in a .one if an import is an all-in-one DFF instead of separated. This may be useful because Shadow's model is split up into SHADOW_BODY, SHADOW_EYE_L, SHADOW_EYE_R, SHADOW_HAND_L, SHADOW_HAND_R, SHADOW_HAND_SWORD, SHADOW_MABUTA0[X]. For example: If doing a single one-model swap, you could replace SHADOW_BODY with your model that has hands/eyes already part of one file. Then use NULL.DFF to replace the HAND_L, EYE_R, etc. Keep in mind blinking and hand animations would not work though, since they are tied to those models. Another example would be removing the glare on the 2PGunBlue's model - replacing the content of SWMTLBGUNGLARE.DFF with NULL.DFF to remove the glare. For clarity, you do not want to rename the DFF files in the .one you are simply replacing the content with that of NULL.DFF (HeroesONE-R tool does this if you use the Replace feature).
  • HeroesONE-R to open/edit/save .one files
  • ShadowMotionSwapper to swap MTNs between MTPs (including property mapping option)
  • ShadowMTPSharp to extract MTPs (MotionPackage / Motion = Animation / Package = Collection of Animations) to raw files
  • DragonFF Blender plugin to import/edit/export DFF files (models)
  • io_scene_stn_mtn Blender plugin to import/edit/export BON & MTN files (bones & animations)

About

Collection of model/texture replacements

Resources

Stars

6 stars

Watchers

4 watching

Forks

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

CharacterMods

Collection of model replacements for Shadow the Hedgehog

Explanation of Organization

  • The first folder is the character who is replaced. Inside are two categories:
  1. Default BON MTP - These use the default Shadow animations(MTP)/bones(BON). No additional Gecko Codes required typically
  2. Custom BON MTP - These edit or swap BON/MTP files - thus have animations Shadow does not have. Vehicle animations will probably be broken. May require the Custom MTP Crash Fix v4 code (see below). For 2P Mod usage, Yellow Android MTP Animation Override is required. Yellow Android MTP Animation Override is not included in this repo as it is already bundled as part of 2P-ShdTH and 2P-Reloaded.
  • The nested folder after the category is the name of the model change or character.

How to use

To apply character mods, use Dolphin's Extracted Game feature. If you are not familiar you can learn how to easily do it here: https://github.com/ShadowTheHedgehogHacking/2P-ShdTH?tab=readme-ov-file#extraction-of-game--extracted-game-format

  1. Choose the .one file you want from the corresponding folder.
  2. Place chosen files in {EXTRACTED_GAME}/files/character
  3. Enable required Gecko Code(s) if necessary
$Custom MTP Crash Fix v4 [dreamsyntax]
C24188A0 0000000A
3F808057 639C5F80
839C0000 2C1C000A
4182001C 2C1C0010
41820014 2C1C0006
41820010 2C1C0001
4082001C 4E800020
83810114 3C00800B
600053D0 7C1C0000
41A2FFEC 9421FFC0
60000000 00000000
* Fixes crashing after completing stages when using custom MTP model/character mods.
*
*Example:
*If using Omega over Shadow, and then complete a stage Omega appears in (Iron Jungle, Lava Shelter) you have a chance to crash. With this code you will no longer crash.

Character Map

CharacterFile Name
Shadowshadow
2PYellow (Yellow Android)shadow2py
2PGunBlueshadow2pmtlb
2PGunPinkshadow2pmtlp
2PCannonOrangeshadow2pcnno
2PCannonGreenshadow2pcnng
Sonicsonic
Tailstails
Knucklesknuckles
Amyamy
Rougerouge
Omegaomega
Vectorvector
Espioespio
Mariamaria
Charmybee
EggMonitoreggmonitor
Doom's Eyedoomseye
eWorld Shadoweshadow.one (UNUSED)

Enemy Map

CharacterFile Name
Artificial ChaosBKChaosData
Black Arms Giant / OakBkGiantData
Black Arms Larva / Death LeechBkLarvaData
Black Arms AssassinBkNinjaData
Black Arms Soldier / WarriorBkSoldierData
Black Hawk / Black VoltBkWingLargeData
Black WingBkWingSmallData
Black Worm / Blue Worm / Gold WormBkWormData
Egg PawnEggPawnData
Egg Pierrot (Clown)EggPierrotData_pierro
Egg Pierrot (Knight)EggPierrotData_busou
Egg Pierrot (Pumpkin)EggPierrotData_horror
Shadow AndroidEggShadowAndroidData
GUN Beetle / Gold GUN BeetleGunBeetleData
GUN Bigfoot Type A / Type BGunBigfootData
GUN Trooper / Giga TrooperGunRobotData
GUN Soldier (Westopolis / Lethal Highway / Central City)GunSoldierData_citii
GUN Soldier (Glyphic Canyon)GunSoldierData_nazca
GUN Soldier (The Doom / Lost Impact)GunSoldierData_ark50
GUN Soldier (Death Ruins)GunSoldierData_iseki
GUN Soldier (GUN Fortress)GunSoldierData_kichi
GUN Soldier (Digital - UNUSED)GunSoldierData_ark00
GUN Soldier (Air Fleet - UNUSED)GunSoldierData_densi
GUN Soldier (Iron Jungle - UNUSED)GunSoldierData_jungl

Character Mod Creators

  • NULL.DFF in the root of this project can be used to replace other .DFFs in a .one if an import is an all-in-one DFF instead of separated. This may be useful because Shadow's model is split up into SHADOW_BODY, SHADOW_EYE_L, SHADOW_EYE_R, SHADOW_HAND_L, SHADOW_HAND_R, SHADOW_HAND_SWORD, SHADOW_MABUTA0[X]. For example: If doing a single one-model swap, you could replace SHADOW_BODY with your model that has hands/eyes already part of one file. Then use NULL.DFF to replace the HAND_L, EYE_R, etc. Keep in mind blinking and hand animations would not work though, since they are tied to those models. Another example would be removing the glare on the 2PGunBlue's model - replacing the content of SWMTLBGUNGLARE.DFF with NULL.DFF to remove the glare. For clarity, you do not want to rename the DFF files in the .one you are simply replacing the content with that of NULL.DFF (HeroesONE-R tool does this if you use the Replace feature).
  • HeroesONE-R to open/edit/save .one files
  • ShadowMotionSwapper to swap MTNs between MTPs (including property mapping option)
  • ShadowMTPSharp to extract MTPs (MotionPackage / Motion = Animation / Package = Collection of Animations) to raw files
  • DragonFF Blender plugin to import/edit/export DFF files (models)
  • io_scene_stn_mtn Blender plugin to import/edit/export BON & MTN files (bones & animations)

About

Collection of model/texture replacements

Resources

Stars

6 stars

Watchers

4 watching

Forks

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

CharacterMods

Collection of model replacements for Shadow the Hedgehog

Explanation of Organization

  • The first folder is the character who is replaced. Inside are two categories:
  1. Default BON MTP - These use the default Shadow animations(MTP)/bones(BON). No additional Gecko Codes required typically
  2. Custom BON MTP - These edit or swap BON/MTP files - thus have animations Shadow does not have. Vehicle animations will probably be broken. May require the Custom MTP Crash Fix v4 code (see below). For 2P Mod usage, Yellow Android MTP Animation Override is required. Yellow Android MTP Animation Override is not included in this repo as it is already bundled as part of 2P-ShdTH and 2P-Reloaded.
  • The nested folder after the category is the name of the model change or character.

How to use

To apply character mods, use Dolphin's Extracted Game feature. If you are not familiar you can learn how to easily do it here: https://github.com/ShadowTheHedgehogHacking/2P-ShdTH?tab=readme-ov-file#extraction-of-game--extracted-game-format

  1. Choose the .one file you want from the corresponding folder.
  2. Place chosen files in {EXTRACTED_GAME}/files/character
  3. Enable required Gecko Code(s) if necessary
$Custom MTP Crash Fix v4 [dreamsyntax]
C24188A0 0000000A
3F808057 639C5F80
839C0000 2C1C000A
4182001C 2C1C0010
41820014 2C1C0006
41820010 2C1C0001
4082001C 4E800020
83810114 3C00800B
600053D0 7C1C0000
41A2FFEC 9421FFC0
60000000 00000000
* Fixes crashing after completing stages when using custom MTP model/character mods.
*
*Example:
*If using Omega over Shadow, and then complete a stage Omega appears in (Iron Jungle, Lava Shelter) you have a chance to crash. With this code you will no longer crash.

Character Map

CharacterFile Name
Shadowshadow
2PYellow (Yellow Android)shadow2py
2PGunBlueshadow2pmtlb
2PGunPinkshadow2pmtlp
2PCannonOrangeshadow2pcnno
2PCannonGreenshadow2pcnng
Sonicsonic
Tailstails
Knucklesknuckles
Amyamy
Rougerouge
Omegaomega
Vectorvector
Espioespio
Mariamaria
Charmybee
EggMonitoreggmonitor
Doom's Eyedoomseye
eWorld Shadoweshadow.one (UNUSED)

Enemy Map

CharacterFile Name
Artificial ChaosBKChaosData
Black Arms Giant / OakBkGiantData
Black Arms Larva / Death LeechBkLarvaData
Black Arms AssassinBkNinjaData
Black Arms Soldier / WarriorBkSoldierData
Black Hawk / Black VoltBkWingLargeData
Black WingBkWingSmallData
Black Worm / Blue Worm / Gold WormBkWormData
Egg PawnEggPawnData
Egg Pierrot (Clown)EggPierrotData_pierro
Egg Pierrot (Knight)EggPierrotData_busou
Egg Pierrot (Pumpkin)EggPierrotData_horror
Shadow AndroidEggShadowAndroidData
GUN Beetle / Gold GUN BeetleGunBeetleData
GUN Bigfoot Type A / Type BGunBigfootData
GUN Trooper / Giga TrooperGunRobotData
GUN Soldier (Westopolis / Lethal Highway / Central City)GunSoldierData_citii
GUN Soldier (Glyphic Canyon)GunSoldierData_nazca
GUN Soldier (The Doom / Lost Impact)GunSoldierData_ark50
GUN Soldier (Death Ruins)GunSoldierData_iseki
GUN Soldier (GUN Fortress)GunSoldierData_kichi
GUN Soldier (Digital - UNUSED)GunSoldierData_ark00
GUN Soldier (Air Fleet - UNUSED)GunSoldierData_densi
GUN Soldier (Iron Jungle - UNUSED)GunSoldierData_jungl

Character Mod Creators

  • NULL.DFF in the root of this project can be used to replace other .DFFs in a .one if an import is an all-in-one DFF instead of separated. This may be useful because Shadow's model is split up into SHADOW_BODY, SHADOW_EYE_L, SHADOW_EYE_R, SHADOW_HAND_L, SHADOW_HAND_R, SHADOW_HAND_SWORD, SHADOW_MABUTA0[X]. For example: If doing a single one-model swap, you could replace SHADOW_BODY with your model that has hands/eyes already part of one file. Then use NULL.DFF to replace the HAND_L, EYE_R, etc. Keep in mind blinking and hand animations would not work though, since they are tied to those models. Another example would be removing the glare on the 2PGunBlue's model - replacing the content of SWMTLBGUNGLARE.DFF with NULL.DFF to remove the glare. For clarity, you do not want to rename the DFF files in the .one you are simply replacing the content with that of NULL.DFF (HeroesONE-R tool does this if you use the Replace feature).
  • HeroesONE-R to open/edit/save .one files
  • ShadowMotionSwapper to swap MTNs between MTPs (including property mapping option)
  • ShadowMTPSharp to extract MTPs (MotionPackage / Motion = Animation / Package = Collection of Animations) to raw files
  • DragonFF Blender plugin to import/edit/export DFF files (models)
  • io_scene_stn_mtn Blender plugin to import/edit/export BON & MTN files (bones & animations)

About

Collection of model/texture replacements

Resources

Stars

6 stars

Watchers

4 watching

Forks

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

CharacterMods

Collection of model replacements for Shadow the Hedgehog

Explanation of Organization

  • The first folder is the character who is replaced. Inside are two categories:
  1. Default BON MTP - These use the default Shadow animations(MTP)/bones(BON). No additional Gecko Codes required typically
  2. Custom BON MTP - These edit or swap BON/MTP files - thus have animations Shadow does not have. Vehicle animations will probably be broken. May require the Custom MTP Crash Fix v4 code (see below). For 2P Mod usage, Yellow Android MTP Animation Override is required. Yellow Android MTP Animation Override is not included in this repo as it is already bundled as part of 2P-ShdTH and 2P-Reloaded.
  • The nested folder after the category is the name of the model change or character.

How to use

To apply character mods, use Dolphin's Extracted Game feature. If you are not familiar you can learn how to easily do it here: https://github.com/ShadowTheHedgehogHacking/2P-ShdTH?tab=readme-ov-file#extraction-of-game--extracted-game-format

  1. Choose the .one file you want from the corresponding folder.
  2. Place chosen files in {EXTRACTED_GAME}/files/character
  3. Enable required Gecko Code(s) if necessary
$Custom MTP Crash Fix v4 [dreamsyntax]
C24188A0 0000000A
3F808057 639C5F80
839C0000 2C1C000A
4182001C 2C1C0010
41820014 2C1C0006
41820010 2C1C0001
4082001C 4E800020
83810114 3C00800B
600053D0 7C1C0000
41A2FFEC 9421FFC0
60000000 00000000
* Fixes crashing after completing stages when using custom MTP model/character mods.
*
*Example:
*If using Omega over Shadow, and then complete a stage Omega appears in (Iron Jungle, Lava Shelter) you have a chance to crash. With this code you will no longer crash.

Character Map

CharacterFile Name
Shadowshadow
2PYellow (Yellow Android)shadow2py
2PGunBlueshadow2pmtlb
2PGunPinkshadow2pmtlp
2PCannonOrangeshadow2pcnno
2PCannonGreenshadow2pcnng
Sonicsonic
Tailstails
Knucklesknuckles
Amyamy
Rougerouge
Omegaomega
Vectorvector
Espioespio
Mariamaria
Charmybee
EggMonitoreggmonitor
Doom's Eyedoomseye
eWorld Shadoweshadow.one (UNUSED)

Enemy Map

CharacterFile Name
Artificial ChaosBKChaosData
Black Arms Giant / OakBkGiantData
Black Arms Larva / Death LeechBkLarvaData
Black Arms AssassinBkNinjaData
Black Arms Soldier / WarriorBkSoldierData
Black Hawk / Black VoltBkWingLargeData
Black WingBkWingSmallData
Black Worm / Blue Worm / Gold WormBkWormData
Egg PawnEggPawnData
Egg Pierrot (Clown)EggPierrotData_pierro
Egg Pierrot (Knight)EggPierrotData_busou
Egg Pierrot (Pumpkin)EggPierrotData_horror
Shadow AndroidEggShadowAndroidData
GUN Beetle / Gold GUN BeetleGunBeetleData
GUN Bigfoot Type A / Type BGunBigfootData
GUN Trooper / Giga TrooperGunRobotData
GUN Soldier (Westopolis / Lethal Highway / Central City)GunSoldierData_citii
GUN Soldier (Glyphic Canyon)GunSoldierData_nazca
GUN Soldier (The Doom / Lost Impact)GunSoldierData_ark50
GUN Soldier (Death Ruins)GunSoldierData_iseki
GUN Soldier (GUN Fortress)GunSoldierData_kichi
GUN Soldier (Digital - UNUSED)GunSoldierData_ark00
GUN Soldier (Air Fleet - UNUSED)GunSoldierData_densi
GUN Soldier (Iron Jungle - UNUSED)GunSoldierData_jungl

Character Mod Creators

  • NULL.DFF in the root of this project can be used to replace other .DFFs in a .one if an import is an all-in-one DFF instead of separated. This may be useful because Shadow's model is split up into SHADOW_BODY, SHADOW_EYE_L, SHADOW_EYE_R, SHADOW_HAND_L, SHADOW_HAND_R, SHADOW_HAND_SWORD, SHADOW_MABUTA0[X]. For example: If doing a single one-model swap, you could replace SHADOW_BODY with your model that has hands/eyes already part of one file. Then use NULL.DFF to replace the HAND_L, EYE_R, etc. Keep in mind blinking and hand animations would not work though, since they are tied to those models. Another example would be removing the glare on the 2PGunBlue's model - replacing the content of SWMTLBGUNGLARE.DFF with NULL.DFF to remove the glare. For clarity, you do not want to rename the DFF files in the .one you are simply replacing the content with that of NULL.DFF (HeroesONE-R tool does this if you use the Replace feature).
  • HeroesONE-R to open/edit/save .one files
  • ShadowMotionSwapper to swap MTNs between MTPs (including property mapping option)
  • ShadowMTPSharp to extract MTPs (MotionPackage / Motion = Animation / Package = Collection of Animations) to raw files
  • DragonFF Blender plugin to import/edit/export DFF files (models)
  • io_scene_stn_mtn Blender plugin to import/edit/export BON & MTN files (bones & animations)

About

Collection of model/texture replacements

Resources

Stars

6 stars

Watchers

4 watching

Forks

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

CharacterMods

Collection of model replacements for Shadow the Hedgehog

Explanation of Organization

  • The first folder is the character who is replaced. Inside are two categories:
  1. Default BON MTP - These use the default Shadow animations(MTP)/bones(BON). No additional Gecko Codes required typically
  2. Custom BON MTP - These edit or swap BON/MTP files - thus have animations Shadow does not have. Vehicle animations will probably be broken. May require the Custom MTP Crash Fix v4 code (see below). For 2P Mod usage, Yellow Android MTP Animation Override is required. Yellow Android MTP Animation Override is not included in this repo as it is already bundled as part of 2P-ShdTH and 2P-Reloaded.
  • The nested folder after the category is the name of the model change or character.

How to use

To apply character mods, use Dolphin's Extracted Game feature. If you are not familiar you can learn how to easily do it here: https://github.com/ShadowTheHedgehogHacking/2P-ShdTH?tab=readme-ov-file#extraction-of-game--extracted-game-format

  1. Choose the .one file you want from the corresponding folder.
  2. Place chosen files in {EXTRACTED_GAME}/files/character
  3. Enable required Gecko Code(s) if necessary
$Custom MTP Crash Fix v4 [dreamsyntax]
C24188A0 0000000A
3F808057 639C5F80
839C0000 2C1C000A
4182001C 2C1C0010
41820014 2C1C0006
41820010 2C1C0001
4082001C 4E800020
83810114 3C00800B
600053D0 7C1C0000
41A2FFEC 9421FFC0
60000000 00000000
* Fixes crashing after completing stages when using custom MTP model/character mods.
*
*Example:
*If using Omega over Shadow, and then complete a stage Omega appears in (Iron Jungle, Lava Shelter) you have a chance to crash. With this code you will no longer crash.

Character Map

CharacterFile Name
Shadowshadow
2PYellow (Yellow Android)shadow2py
2PGunBlueshadow2pmtlb
2PGunPinkshadow2pmtlp
2PCannonOrangeshadow2pcnno
2PCannonGreenshadow2pcnng
Sonicsonic
Tailstails
Knucklesknuckles
Amyamy
Rougerouge
Omegaomega
Vectorvector
Espioespio
Mariamaria
Charmybee
EggMonitoreggmonitor
Doom's Eyedoomseye
eWorld Shadoweshadow.one (UNUSED)

Enemy Map

CharacterFile Name
Artificial ChaosBKChaosData
Black Arms Giant / OakBkGiantData
Black Arms Larva / Death LeechBkLarvaData
Black Arms AssassinBkNinjaData
Black Arms Soldier / WarriorBkSoldierData
Black Hawk / Black VoltBkWingLargeData
Black WingBkWingSmallData
Black Worm / Blue Worm / Gold WormBkWormData
Egg PawnEggPawnData
Egg Pierrot (Clown)EggPierrotData_pierro
Egg Pierrot (Knight)EggPierrotData_busou
Egg Pierrot (Pumpkin)EggPierrotData_horror
Shadow AndroidEggShadowAndroidData
GUN Beetle / Gold GUN BeetleGunBeetleData
GUN Bigfoot Type A / Type BGunBigfootData
GUN Trooper / Giga TrooperGunRobotData
GUN Soldier (Westopolis / Lethal Highway / Central City)GunSoldierData_citii
GUN Soldier (Glyphic Canyon)GunSoldierData_nazca
GUN Soldier (The Doom / Lost Impact)GunSoldierData_ark50
GUN Soldier (Death Ruins)GunSoldierData_iseki
GUN Soldier (GUN Fortress)GunSoldierData_kichi
GUN Soldier (Digital - UNUSED)GunSoldierData_ark00
GUN Soldier (Air Fleet - UNUSED)GunSoldierData_densi
GUN Soldier (Iron Jungle - UNUSED)GunSoldierData_jungl

Character Mod Creators

  • NULL.DFF in the root of this project can be used to replace other .DFFs in a .one if an import is an all-in-one DFF instead of separated. This may be useful because Shadow's model is split up into SHADOW_BODY, SHADOW_EYE_L, SHADOW_EYE_R, SHADOW_HAND_L, SHADOW_HAND_R, SHADOW_HAND_SWORD, SHADOW_MABUTA0[X]. For example: If doing a single one-model swap, you could replace SHADOW_BODY with your model that has hands/eyes already part of one file. Then use NULL.DFF to replace the HAND_L, EYE_R, etc. Keep in mind blinking and hand animations would not work though, since they are tied to those models. Another example would be removing the glare on the 2PGunBlue's model - replacing the content of SWMTLBGUNGLARE.DFF with NULL.DFF to remove the glare. For clarity, you do not want to rename the DFF files in the .one you are simply replacing the content with that of NULL.DFF (HeroesONE-R tool does this if you use the Replace feature).
  • HeroesONE-R to open/edit/save .one files
  • ShadowMotionSwapper to swap MTNs between MTPs (including property mapping option)
  • ShadowMTPSharp to extract MTPs (MotionPackage / Motion = Animation / Package = Collection of Animations) to raw files
  • DragonFF Blender plugin to import/edit/export DFF files (models)
  • io_scene_stn_mtn Blender plugin to import/edit/export BON & MTN files (bones & animations)

About

Collection of model/texture replacements

Resources

Stars

6 stars

Watchers

4 watching

Forks

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

CharacterMods

Collection of model replacements for Shadow the Hedgehog

Explanation of Organization

  • The first folder is the character who is replaced. Inside are two categories:
  1. Default BON MTP - These use the default Shadow animations(MTP)/bones(BON). No additional Gecko Codes required typically
  2. Custom BON MTP - These edit or swap BON/MTP files - thus have animations Shadow does not have. Vehicle animations will probably be broken. May require the Custom MTP Crash Fix v4 code (see below). For 2P Mod usage, Yellow Android MTP Animation Override is required. Yellow Android MTP Animation Override is not included in this repo as it is already bundled as part of 2P-ShdTH and 2P-Reloaded.
  • The nested folder after the category is the name of the model change or character.

How to use

To apply character mods, use Dolphin's Extracted Game feature. If you are not familiar you can learn how to easily do it here: https://github.com/ShadowTheHedgehogHacking/2P-ShdTH?tab=readme-ov-file#extraction-of-game--extracted-game-format

  1. Choose the .one file you want from the corresponding folder.
  2. Place chosen files in {EXTRACTED_GAME}/files/character
  3. Enable required Gecko Code(s) if necessary
$Custom MTP Crash Fix v4 [dreamsyntax]
C24188A0 0000000A
3F808057 639C5F80
839C0000 2C1C000A
4182001C 2C1C0010
41820014 2C1C0006
41820010 2C1C0001
4082001C 4E800020
83810114 3C00800B
600053D0 7C1C0000
41A2FFEC 9421FFC0
60000000 00000000
* Fixes crashing after completing stages when using custom MTP model/character mods.
*
*Example:
*If using Omega over Shadow, and then complete a stage Omega appears in (Iron Jungle, Lava Shelter) you have a chance to crash. With this code you will no longer crash.

Character Map

CharacterFile Name
Shadowshadow
2PYellow (Yellow Android)shadow2py
2PGunBlueshadow2pmtlb
2PGunPinkshadow2pmtlp
2PCannonOrangeshadow2pcnno
2PCannonGreenshadow2pcnng
Sonicsonic
Tailstails
Knucklesknuckles
Amyamy
Rougerouge
Omegaomega
Vectorvector
Espioespio
Mariamaria
Charmybee
EggMonitoreggmonitor
Doom's Eyedoomseye
eWorld Shadoweshadow.one (UNUSED)

Enemy Map

CharacterFile Name
Artificial ChaosBKChaosData
Black Arms Giant / OakBkGiantData
Black Arms Larva / Death LeechBkLarvaData
Black Arms AssassinBkNinjaData
Black Arms Soldier / WarriorBkSoldierData
Black Hawk / Black VoltBkWingLargeData
Black WingBkWingSmallData
Black Worm / Blue Worm / Gold WormBkWormData
Egg PawnEggPawnData
Egg Pierrot (Clown)EggPierrotData_pierro
Egg Pierrot (Knight)EggPierrotData_busou
Egg Pierrot (Pumpkin)EggPierrotData_horror
Shadow AndroidEggShadowAndroidData
GUN Beetle / Gold GUN BeetleGunBeetleData
GUN Bigfoot Type A / Type BGunBigfootData
GUN Trooper / Giga TrooperGunRobotData
GUN Soldier (Westopolis / Lethal Highway / Central City)GunSoldierData_citii
GUN Soldier (Glyphic Canyon)GunSoldierData_nazca
GUN Soldier (The Doom / Lost Impact)GunSoldierData_ark50
GUN Soldier (Death Ruins)GunSoldierData_iseki
GUN Soldier (GUN Fortress)GunSoldierData_kichi
GUN Soldier (Digital - UNUSED)GunSoldierData_ark00
GUN Soldier (Air Fleet - UNUSED)GunSoldierData_densi
GUN Soldier (Iron Jungle - UNUSED)GunSoldierData_jungl

Character Mod Creators

  • NULL.DFF in the root of this project can be used to replace other .DFFs in a .one if an import is an all-in-one DFF instead of separated. This may be useful because Shadow's model is split up into SHADOW_BODY, SHADOW_EYE_L, SHADOW_EYE_R, SHADOW_HAND_L, SHADOW_HAND_R, SHADOW_HAND_SWORD, SHADOW_MABUTA0[X]. For example: If doing a single one-model swap, you could replace SHADOW_BODY with your model that has hands/eyes already part of one file. Then use NULL.DFF to replace the HAND_L, EYE_R, etc. Keep in mind blinking and hand animations would not work though, since they are tied to those models. Another example would be removing the glare on the 2PGunBlue's model - replacing the content of SWMTLBGUNGLARE.DFF with NULL.DFF to remove the glare. For clarity, you do not want to rename the DFF files in the .one you are simply replacing the content with that of NULL.DFF (HeroesONE-R tool does this if you use the Replace feature).
  • HeroesONE-R to open/edit/save .one files
  • ShadowMotionSwapper to swap MTNs between MTPs (including property mapping option)
  • ShadowMTPSharp to extract MTPs (MotionPackage / Motion = Animation / Package = Collection of Animations) to raw files
  • DragonFF Blender plugin to import/edit/export DFF files (models)
  • io_scene_stn_mtn Blender plugin to import/edit/export BON & MTN files (bones & animations)

About

Collection of model/texture replacements

Resources

Stars

6 stars

Watchers

4 watching

Forks

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

CharacterMods

Collection of model replacements for Shadow the Hedgehog

Explanation of Organization

  • The first folder is the character who is replaced. Inside are two categories:
  1. Default BON MTP - These use the default Shadow animations(MTP)/bones(BON). No additional Gecko Codes required typically
  2. Custom BON MTP - These edit or swap BON/MTP files - thus have animations Shadow does not have. Vehicle animations will probably be broken. May require the Custom MTP Crash Fix v4 code (see below). For 2P Mod usage, Yellow Android MTP Animation Override is required. Yellow Android MTP Animation Override is not included in this repo as it is already bundled as part of 2P-ShdTH and 2P-Reloaded.
  • The nested folder after the category is the name of the model change or character.

How to use

To apply character mods, use Dolphin's Extracted Game feature. If you are not familiar you can learn how to easily do it here: https://github.com/ShadowTheHedgehogHacking/2P-ShdTH?tab=readme-ov-file#extraction-of-game--extracted-game-format

  1. Choose the .one file you want from the corresponding folder.
  2. Place chosen files in {EXTRACTED_GAME}/files/character
  3. Enable required Gecko Code(s) if necessary
$Custom MTP Crash Fix v4 [dreamsyntax]
C24188A0 0000000A
3F808057 639C5F80
839C0000 2C1C000A
4182001C 2C1C0010
41820014 2C1C0006
41820010 2C1C0001
4082001C 4E800020
83810114 3C00800B
600053D0 7C1C0000
41A2FFEC 9421FFC0
60000000 00000000
* Fixes crashing after completing stages when using custom MTP model/character mods.
*
*Example:
*If using Omega over Shadow, and then complete a stage Omega appears in (Iron Jungle, Lava Shelter) you have a chance to crash. With this code you will no longer crash.

Character Map

CharacterFile Name
Shadowshadow
2PYellow (Yellow Android)shadow2py
2PGunBlueshadow2pmtlb
2PGunPinkshadow2pmtlp
2PCannonOrangeshadow2pcnno
2PCannonGreenshadow2pcnng
Sonicsonic
Tailstails
Knucklesknuckles
Amyamy
Rougerouge
Omegaomega
Vectorvector
Espioespio
Mariamaria
Charmybee
EggMonitoreggmonitor
Doom's Eyedoomseye
eWorld Shadoweshadow.one (UNUSED)

Enemy Map

CharacterFile Name
Artificial ChaosBKChaosData
Black Arms Giant / OakBkGiantData
Black Arms Larva / Death LeechBkLarvaData
Black Arms AssassinBkNinjaData
Black Arms Soldier / WarriorBkSoldierData
Black Hawk / Black VoltBkWingLargeData
Black WingBkWingSmallData
Black Worm / Blue Worm / Gold WormBkWormData
Egg PawnEggPawnData
Egg Pierrot (Clown)EggPierrotData_pierro
Egg Pierrot (Knight)EggPierrotData_busou
Egg Pierrot (Pumpkin)EggPierrotData_horror
Shadow AndroidEggShadowAndroidData
GUN Beetle / Gold GUN BeetleGunBeetleData
GUN Bigfoot Type A / Type BGunBigfootData
GUN Trooper / Giga TrooperGunRobotData
GUN Soldier (Westopolis / Lethal Highway / Central City)GunSoldierData_citii
GUN Soldier (Glyphic Canyon)GunSoldierData_nazca
GUN Soldier (The Doom / Lost Impact)GunSoldierData_ark50
GUN Soldier (Death Ruins)GunSoldierData_iseki
GUN Soldier (GUN Fortress)GunSoldierData_kichi
GUN Soldier (Digital - UNUSED)GunSoldierData_ark00
GUN Soldier (Air Fleet - UNUSED)GunSoldierData_densi
GUN Soldier (Iron Jungle - UNUSED)GunSoldierData_jungl

Character Mod Creators

  • NULL.DFF in the root of this project can be used to replace other .DFFs in a .one if an import is an all-in-one DFF instead of separated. This may be useful because Shadow's model is split up into SHADOW_BODY, SHADOW_EYE_L, SHADOW_EYE_R, SHADOW_HAND_L, SHADOW_HAND_R, SHADOW_HAND_SWORD, SHADOW_MABUTA0[X]. For example: If doing a single one-model swap, you could replace SHADOW_BODY with your model that has hands/eyes already part of one file. Then use NULL.DFF to replace the HAND_L, EYE_R, etc. Keep in mind blinking and hand animations would not work though, since they are tied to those models. Another example would be removing the glare on the 2PGunBlue's model - replacing the content of SWMTLBGUNGLARE.DFF with NULL.DFF to remove the glare. For clarity, you do not want to rename the DFF files in the .one you are simply replacing the content with that of NULL.DFF (HeroesONE-R tool does this if you use the Replace feature).
  • HeroesONE-R to open/edit/save .one files
  • ShadowMotionSwapper to swap MTNs between MTPs (including property mapping option)
  • ShadowMTPSharp to extract MTPs (MotionPackage / Motion = Animation / Package = Collection of Animations) to raw files
  • DragonFF Blender plugin to import/edit/export DFF files (models)
  • io_scene_stn_mtn Blender plugin to import/edit/export BON & MTN files (bones & animations)

About

Collection of model/texture replacements

Resources

Stars

6 stars

Watchers

4 watching

Forks

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

CharacterMods

Collection of model replacements for Shadow the Hedgehog

Explanation of Organization

  • The first folder is the character who is replaced. Inside are two categories:
  1. Default BON MTP - These use the default Shadow animations(MTP)/bones(BON). No additional Gecko Codes required typically
  2. Custom BON MTP - These edit or swap BON/MTP files - thus have animations Shadow does not have. Vehicle animations will probably be broken. May require the Custom MTP Crash Fix v4 code (see below). For 2P Mod usage, Yellow Android MTP Animation Override is required. Yellow Android MTP Animation Override is not included in this repo as it is already bundled as part of 2P-ShdTH and 2P-Reloaded.
  • The nested folder after the category is the name of the model change or character.

How to use

To apply character mods, use Dolphin's Extracted Game feature. If you are not familiar you can learn how to easily do it here: https://github.com/ShadowTheHedgehogHacking/2P-ShdTH?tab=readme-ov-file#extraction-of-game--extracted-game-format

  1. Choose the .one file you want from the corresponding folder.
  2. Place chosen files in {EXTRACTED_GAME}/files/character
  3. Enable required Gecko Code(s) if necessary
$Custom MTP Crash Fix v4 [dreamsyntax]
C24188A0 0000000A
3F808057 639C5F80
839C0000 2C1C000A
4182001C 2C1C0010
41820014 2C1C0006
41820010 2C1C0001
4082001C 4E800020
83810114 3C00800B
600053D0 7C1C0000
41A2FFEC 9421FFC0
60000000 00000000
* Fixes crashing after completing stages when using custom MTP model/character mods.
*
*Example:
*If using Omega over Shadow, and then complete a stage Omega appears in (Iron Jungle, Lava Shelter) you have a chance to crash. With this code you will no longer crash.

Character Map

CharacterFile Name
Shadowshadow
2PYellow (Yellow Android)shadow2py
2PGunBlueshadow2pmtlb
2PGunPinkshadow2pmtlp
2PCannonOrangeshadow2pcnno
2PCannonGreenshadow2pcnng
Sonicsonic
Tailstails
Knucklesknuckles
Amyamy
Rougerouge
Omegaomega
Vectorvector
Espioespio
Mariamaria
Charmybee
EggMonitoreggmonitor
Doom's Eyedoomseye
eWorld Shadoweshadow.one (UNUSED)

Enemy Map

CharacterFile Name
Artificial ChaosBKChaosData
Black Arms Giant / OakBkGiantData
Black Arms Larva / Death LeechBkLarvaData
Black Arms AssassinBkNinjaData
Black Arms Soldier / WarriorBkSoldierData
Black Hawk / Black VoltBkWingLargeData
Black WingBkWingSmallData
Black Worm / Blue Worm / Gold WormBkWormData
Egg PawnEggPawnData
Egg Pierrot (Clown)EggPierrotData_pierro
Egg Pierrot (Knight)EggPierrotData_busou
Egg Pierrot (Pumpkin)EggPierrotData_horror
Shadow AndroidEggShadowAndroidData
GUN Beetle / Gold GUN BeetleGunBeetleData
GUN Bigfoot Type A / Type BGunBigfootData
GUN Trooper / Giga TrooperGunRobotData
GUN Soldier (Westopolis / Lethal Highway / Central City)GunSoldierData_citii
GUN Soldier (Glyphic Canyon)GunSoldierData_nazca
GUN Soldier (The Doom / Lost Impact)GunSoldierData_ark50
GUN Soldier (Death Ruins)GunSoldierData_iseki
GUN Soldier (GUN Fortress)GunSoldierData_kichi
GUN Soldier (Digital - UNUSED)GunSoldierData_ark00
GUN Soldier (Air Fleet - UNUSED)GunSoldierData_densi
GUN Soldier (Iron Jungle - UNUSED)GunSoldierData_jungl

Character Mod Creators

  • NULL.DFF in the root of this project can be used to replace other .DFFs in a .one if an import is an all-in-one DFF instead of separated. This may be useful because Shadow's model is split up into SHADOW_BODY, SHADOW_EYE_L, SHADOW_EYE_R, SHADOW_HAND_L, SHADOW_HAND_R, SHADOW_HAND_SWORD, SHADOW_MABUTA0[X]. For example: If doing a single one-model swap, you could replace SHADOW_BODY with your model that has hands/eyes already part of one file. Then use NULL.DFF to replace the HAND_L, EYE_R, etc. Keep in mind blinking and hand animations would not work though, since they are tied to those models. Another example would be removing the glare on the 2PGunBlue's model - replacing the content of SWMTLBGUNGLARE.DFF with NULL.DFF to remove the glare. For clarity, you do not want to rename the DFF files in the .one you are simply replacing the content with that of NULL.DFF (HeroesONE-R tool does this if you use the Replace feature).
  • HeroesONE-R to open/edit/save .one files
  • ShadowMotionSwapper to swap MTNs between MTPs (including property mapping option)
  • ShadowMTPSharp to extract MTPs (MotionPackage / Motion = Animation / Package = Collection of Animations) to raw files
  • DragonFF Blender plugin to import/edit/export DFF files (models)
  • io_scene_stn_mtn Blender plugin to import/edit/export BON & MTN files (bones & animations)

About

Collection of model/texture replacements

Resources

Stars

6 stars

Watchers

4 watching

Forks

Contributors