Pack: Difference between revisions

From WonderWiki
Jump to navigation Jump to search
(Added Pack file page, description and information on a few components.)
 
m (Added ModelBindRef to component list)
 
Line 136: Line 136:
!Death Type Value
!Death Type Value
!Explanation
!Explanation
|-
|Bubble
|The actor get trapped in a bubble (from the Bubble Flower) and shrinks into a coin.
|-
|-
|DieFall
|DieFall
|The actor plays its death effect while falling off-screen.
|The actor plays its death effect while falling off-screen.
|-
|Bubble
|The actor get trapped in a bubble (from the Bubble Flower) and shrinks into a coin.
|-
|-
|ShotUp,
|ShotUp,
ShotHorizontal
ShotHorizontal
|Elephant attack. The actor flies upwards or sideways off-screen.
|Elephant attack. The actor flies upwards or sideways off-screen.
|-
|Swallowed
|(For <code>Eat</code> damage) The actor gets swallowed by Yoshi.
|-
|-
|Vanish
|Vanish
Line 152: Line 155:
|VanishWithSmokeHuge
|VanishWithSmokeHuge
|The actor disappears into a puff of smoke.
|The actor disappears into a puff of smoke.
|-
|Swallowed
|(For <code>Eat</code> damage) The actor gets swallowed by Yoshi.
|}
|}


Line 164: Line 164:
!Explanation
!Explanation
|-
|-
|OnlyDamageEffect
|HeldInMouth
|Hurts the actor and plays a damage animation (if available).
|(For <code>Eat</code> damage) Yoshi does not swallow the actor after eating.
|-
|-
|Ignore
|Ignore
|The actor does not take damage and bullets (like fire balls and bubbles) pass through the actor.
|The actor does not take damage and bullets (like fire balls and bubbles) pass through the actor.
|-
|NotDamaged
|The actor does not take damage but stops bullets.
|-
|-
|KnockBackSmall,
|KnockBackSmall,
Line 178: Line 175:
|The enemy gets knocked back.
|The enemy gets knocked back.
|-
|-
|HeldInMouth
|NotDamaged
|(For <code>Eat</code> damage) Yoshi does not swallow the actor after eating.
|The actor does not take damage but stops bullets.
|-
|OnlyDamageEffect
|Hurts the actor and plays a damage animation (if available).
|-
|-
|ReflectedSimply,
|ReflectedSimply,
Line 193: Line 193:
==== Recieve Number to Die ====
==== 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.
<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 ==
== Information on Component Editing and Component Inheritance ==

Latest revision as of 23:43, 27 November 2024

This page is still under construction.

Pack files are resource files the game uses to store and organise components for its functionality. Most Pack files are used to define the functionality of actors, meaning all enemies, objects, items, and even the behaviour of the terrain unit system.

Pack 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 Bootup.Nin_NX_NVN.pack.zs file, which is responsible for the game's functionality.

Actor Pack files[edit | edit source]

The actor pack 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[edit | edit source]

The AI folder contains .ainb files as well as an AIInfo folder, containing an .bgyml file which references the root of the actor's AI system. Information and documentation of .ainb files can be found on https://epd.zeldamods.org/wiki/AINB. An AI component is not necessary for an actor to function, as a lot of MapObj and DV actors don't contain them. AI components are only necessary for more complex behaviour.

Actor[edit | edit source]

The Actor folder contains at least one .bgyml file which has the name of the actor. It contains references to all components inside the Pack file the actor needs to function properly.

Damage Reaction Table[edit | edit source]

The DamageReactionTable folder contains information on how the actor reacts to different attack types. Each attack type entry has three different settings listed below.

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[edit | edit source]

DeathParam (or more specifically its setting DeathType) 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.

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 Eat 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[edit | edit source]

ReactionParam, or more specifically ReactionType, 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.

Examples of common Reaction Types
Reaction Type Value Explanation
HeldInMouth (For Eat 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 ReactionType, ReactionParam can also take a StateTransitionType which controls what the AI does after the actor was hit. Usual values are None and ToState[n], where [n] is an integer.

Recieve Number to Die[edit | edit source]

ReceiveNumToDie sets the amount of time an actor has to be attacked with this attack type until it dies.

Model Bind Parameter[edit | edit source]

The ModelBindParam folder contains a simple empty .bgyml file. This component allows binding actors to others to copy their movement.

Information on Component Editing and Component Inheritance[edit | edit source]

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[edit | edit source]

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 Switch Toolbox) is to export the existing file you want to modify as raw data, then add that file to the folder by Right Click on Folder → Add File. 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 Actor folder and inside the ActorParam file change the reference to the edited component to the new file. Save everything and the game should recognise the component as being separate.