Editing
Pack
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{UnderConstruction}} <code>Pack</code> files are resource files the game uses to store and organise components for its functionality. Most <code>Pack</code> files are used to define the functionality of [[List of Actors|actors]], meaning all enemies, objects, items, and even the behaviour of the terrain unit system. <code>Pack</code> files have an internal folder structure, where different component presets are contained that, along with the actor's AI, determine how the actor behaves in the game. From importance is also the <code>[[Filesystem/romfs/Pack|Bootup.Nin_NX_NVN.pack.zs]]</code> file, which is responsible for the game's functionality. == Actor Pack files == The actor <code>pack</code> files are from higher interest as they allow the modification and addition of new actors into the game. Following will be an incomplete list and documentation of known actor components and our currently best understanding of them. === AI === The <code>AI</code> folder contains <code>.ainb</code> files as well as an <code>AIInfo</code> folder, containing an <code>.bgyml</code> file which references the root of the actor's AI system. Information and documentation of <code>.ainb</code> files can be found on https://epd.zeldamods.org/wiki/AINB. An <code>AI</code> component is not necessary for an actor to function, as a lot of <code>MapObj</code> and <code>DV</code> actors don't contain them. <code>AI</code> components are only necessary for more complex behaviour. === Actor === The <code>Actor</code> folder contains at least one <code>.bgyml</code> file which has the name of the actor. It contains references to all components inside the <code>Pack</code> file the actor needs to function properly. === Damage Reaction Table === The <code>DamageReactionTable</code> folder contains information on how the actor reacts to different attack types. Each attack type entry has three different settings listed below. {| class="wikitable" |+Attack Types !Attack Type Name !Explanation |- |BlockBody | |- |Body |Crushed by moving object? |- |BodyHuge |Crushed by very heavy moving object? |- |BodyLarge |Crushed by heavy moving object? |- |BodySmall |Crushed by light moving object? |- |Bomb |Bomb explosion (like Bob-Omb explosion) |- |BombMedium |Big explosion? Bowser Airship Wonder Attack? |- |Bubble |Bubble Flower attack |- |CarriedObject |Attacked by object hold by player (like Koopa Shells) |- |Eat |Eaten by Yoshi |- |Fire |Fire Flower attack |- |HipDropDrill |Ground Pound with Drill Suit |- |Invincible |Player with invincibility star power |- |Lava |Contact with Lava |- |NormalHipDrop |Small player ground pound |- |NormalSpinJumpStamp |Small player spin jump |- |NormalStamp |Small player jump |- |Poison |Contact with Poison |- |PressHuge | |- |PressMedium | |- |Reflect | |- |ReflectLarge | |- |ReflectSmall | |- |Rolling |Spike Ball? |- |ShockWaveOnGround | |- |Slam |Elephant trunk attack |- |SlamHorizontal |Elephant trunk attack while laying down |- |SlopeSlide |Sliding into actor |- |StampHuge |Elephant jump? |- |SuperHipDrop |Super player ground pound |- |SuperSpinJumpStamp |Super player spin jump |- |SuperStamp |Super player jump |- |UpwardImpactDrill |Attack from below with Drill Suit |- |UpwardImpactLarge | |- |UpwardImpactMedium | |- |Water |Contact with Water |} ==== Death Parameter ==== <code>DeathParam</code> (or more specifically its setting <code>DeathType</code>) determines how the actor react upon being killed. The possible values depend on the actor and its AI, though most enemy type actors have a few in common. {| class="wikitable" |+Examples of common Death Types !Death Type Value !Explanation |- |Bubble |The actor get trapped in a bubble (from the Bubble Flower) and shrinks into a coin. |- |DieFall |The actor plays its death effect while falling off-screen. |- |ShotUp, ShotHorizontal |Elephant attack. The actor flies upwards or sideways off-screen. |- |Swallowed |(For <code>Eat</code> damage) The actor gets swallowed by Yoshi. |- |Vanish |The actor disappears without any effect. |- |VanishWithSmokeHuge |The actor disappears into a puff of smoke. |} ==== Reaction Parameter ==== <code>ReactionParam</code>, or more specifically <code>ReactionType</code>, determines how the actor acts upon being attacked without dying. Here as well, possible value depend on the actor and its AI, but many enemy type actors have a few in common. {| class="wikitable" |+Examples of common Reaction Types !Reaction Type Value !Explanation |- |HeldInMouth |(For <code>Eat</code> damage) Yoshi does not swallow the actor after eating. |- |Ignore |The actor does not take damage and bullets (like fire balls and bubbles) pass through the actor. |- |KnockBackSmall, KnockBackMedium, KnockBackLarge |The enemy gets knocked back. |- |NotDamaged |The actor does not take damage but stops bullets. |- |OnlyDamageEffect |Hurts the actor and plays a damage animation (if available). |- |ReflectedSimply, ReflectedSimplySmall, ReflectedSimplyLarge | |- |Stop | |} Along with the <code>ReactionType</code>, <code>ReactionParam</code> can also take a <code>StateTransitionType</code> which controls what the AI does after the actor was hit. Usual values are <code>None</code> and <code>ToState[n]</code>, where <code>[n]</code> is an integer. ==== Recieve Number to Die ==== <code>ReceiveNumToDie</code> sets the amount of time an actor has to be attacked with this attack type until it dies. === Model Bind Parameter === The <code>ModelBindParam</code> folder contains a simple empty <code>.bgyml</code> file. This component allows [[Linking Types|binding]] actors to others to copy their movement. == Information on Component Editing and Component Inheritance == Many component folders contain multiple files. These are usually in a parent-child relationship to each other. Actors usually build upon simpler base actors with base components, and use extra files (often having the name of the actor pack file) to modify or append to these base components. It's important to know when changing values inside these components, is that if multiple actors contain the same files in the same locations, only one will be loaded by the game. This can lead to issues where an edited actor may not change its behaviour, or all actors referring to the same component change their behaviour according to the modification. To circumvent these issues, make sure to edit only the files containing the actor's file name, or add a new file to modify a component as described below. === Adding a modifying file to an actor === In order to avoid situations described above, browse to the files of the component you want to edit. The easiest way of adding a file (assuming you use [https://github.com/KillzXGaming/Switch-Toolbox Switch Toolbox]) is to export the existing file you want to modify as raw data, then add that file to the folder by <code>Right Click on Folder β Add File</code>. Rename the imported file to the actor's file name. Now you are free to modify it to your heart's content. Lastly, browse to the <code>Actor</code> folder and inside the <code>ActorParam</code> file change the reference to the edited component to the new file. Save everything and the game should recognise the component as being separate.
Summary:
Please note that all contributions to WonderWiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
WonderWiki:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Templates used on this page:
Template:Notice
(
edit
)
Template:UnderConstruction
(
edit
)
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Page
Discussion
English
Views
Read
Edit
Edit source
View history
More
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Tools
What links here
Related changes
Special pages
Page information