Castagne Engine

Documentation (Dev Branch)

Castagne Engine

Getting Started

Editor

Gametypes

Intermediate

Making a Game

Pushing Castagne

Advanced

Modules

Attacks Reference

Specialized module to help with making attacks and combat systems.

Attacks

Config

Attack-ThrowInHitstunFalse[]
Attack-ThrowInBlockstunFalse[]

Functions

AttackRegister[1, 2][AllPhases, Init, Action, Reaction, Manual]Basic
Initiates an attack with default parameters. This should be the first function called for a new attack, then you use other Attack functions to customize it, and finally you use Hitbox to apply it.
  • Arg 1: Type
  • Arg 2: (Optional) Notation
AttackDamage[1][Init, Action, Manual]Basic
Sets the attack's base damage. Proration is set separately.
  • Arg 1: Damage
AttackDuration[1][Init, Action, Manual]Basic
Changes the total duration of the attack. If not specified, a fallback option is there to avoid softlocking the character.
  • Arg 1: Total frames
AttackRearm[0][Init, Action, Manual]
Sets the variables to be able to hit with another attack, and should be used between multihits. Resets the hit detection.
AttackParam[2][Init, Action, Manual]Advanced
Sets a generic attack parameter directly. This is an advanced function and should be used either when you need some really specific adjustment, or when you want to add functionality without a module.
  • Arg 1: Parameter name
  • Arg 2: Parameter value
AttackFlag[1][Init, Action, Manual]Basic
Sets a flag on the attack. All flags are transfered to the hit opponent with the AF prefix (meaning Low become AFLow), and are used by modules during attack checking. See the list of flags for more information.
  • Arg 1: Flag name
AttackUnflag[1][Init, Action, Manual]Intermediate
Removes a flag from an attack.
  • Arg 1: Flag name
AttackRecievedFlag[1][Init, Action, Manual]Advanced
Set an attack flag as if the entity recieved an attack having this flag.
  • Arg 1: Flag name
AttackRecievedUnflag[1][Init, Action, Manual]Advanced
Removes an attack flag from a recieved attack.
  • Arg 1: Flag name
AttackAttribute[0, 1][Init, Action, Manual]Intermediate
Sets an attack's attribute. This is used by the Invul-[Attrib] and Guard-[Attrib] family of flags. The Auto attribute will choose an attribute between Air, Mid, High, Low, Throw, and AirThrow depending on the attacker's state.
  • Arg 1: Attribute. Default: Auto
AttackFrameAdvantage[1, 2][Init, Action, Manual]Basic
Sets an attack's frame advantage automatically on hit and block. This is based on the total duration of the attack and the last use of the multihit flag. Same functionality as AttackSetHitstunBlockstun, but in an easier way.
  • Arg 1: Frame advantage on hit
  • Arg 2: Frame advantage on block
AttackFrameAdvantageHit[1][Init, Action, Manual]Basic
Sets an attack's frame advantage automatically on hit. This is based on the total duration of the attack and the last use of the multihit flag. Same functionality as AttackSetHitstunBlockstun, but in an easier way.
  • Arg 1: Frame advantage on hit
AttackFrameAdvantageBlock[1][Init, Action, Manual]Basic
Sets an attack's frame advantage automatically on block. This is based on the total duration of the attack and the last use of the multihit flag. Same functionality as AttackSetHitstunBlockstun, but in an easier way.
  • Arg 1: Frame advantage on block
AttackHitstunBlockstun[2][Init, Action, Manual]Basic
Sets an attack's hitstun and blockstun. Same functionality as AttackFrameAdvantage, but in a more direct way.
  • Arg 1: Hitstun
  • Arg 2: Blockstun
AttackHitstun[1][Init, Action, Manual]Basic
Sets an attack's hitstun. Same functionality as AttackFrameAdvantage, but in a more direct way.
  • Arg 1: Hitstun
AttackBlockstun[1][Init, Action, Manual]Basic
Sets an attack's blockstun. Same functionality as AttackFrameAdvantage, but in a more direct way.
  • Arg 1: Blockstun
AttackProrationHitstun[2][Init, Action, Manual]Intermediate
Sets an attack's proration for hitstun. The lower it is, the more hitstun will decay with each hit. Values are in permil.
  • Arg 1: First hit proration (used instead of proration for the first hit)
  • Arg 2: Subsequent hit proration
AttackProrationDamage[2][Init, Action, Manual]Intermediate
Sets an attack's proration for damage. The lower it is, the more damage will decay with each hit. Values are in permil.
  • Arg 1: First hit proration (used instead of proration for the first hit)
  • Arg 2: Subsequent hit proration
AttackChipDamage[1][Init, Action, Manual]Intermediate
Sets an attack's chip damage, the damage that gets inflicted when an opponent blocks.
  • Arg 1: The amount of chip damage
AttackMinDamage[1][Init, Action, Manual]Intermediate
Sets an attack's minimum damage.
  • Arg 1: The minimum amount of damage
AttackMomentum[1, 2, 3, 4][Init, Action, Manual]Basic
Sets an attacks's added momentum to the opponent on hit and block.
  • Arg 1: Horizontal grounded momentum
  • Arg 2: (Optional) Vertical grounded momentum
  • Arg 3: (Optional) Horizontal airborne momentum
  • Arg 4: (Optional) Vertical airborne momentum
AttackMomentumHit[1, 2, 3, 4][Init, Action, Manual]Basic
Sets an attacks's added momentum to the opponent on hit.
  • Arg 1: Horizontal grounded momentum
  • Arg 2: (Optional) Vertical grounded momentum
  • Arg 3: (Optional) Horizontal airborne momentum
  • Arg 4: (Optional) Vertical airborne momentum
AttackMomentumBlock[1, 2, 3, 4][Init, Action, Manual]Basic
Sets an attacks's added momentum to the opponent on block.
  • Arg 1: Horizontal grounded momentum
  • Arg 2: (Optional) Vertical grounded momentum
  • Arg 3: (Optional) Horizontal airborne momentum
  • Arg 4: (Optional) Vertical airborne momentum
AttackFloat[1][Init, Action, Manual]Intermediate
Sets the opponent's gravity on hit to the specified value until the next attack.
  • Arg 1: New Gravity
AttackKnockdown[0, 1, 2][Init, Action, Manual]Intermediate
Sets an attack's minimum and maximum time on knockdown. Automatically applies the knockdown attack flag. If no arguments are given, use default values. If only one is given, the second is computed automatically from the difference between defaults.
  • Arg 1: (Optional) The minimum knockdown time
  • Arg 2: (Optional) Maximum knockdown time
AttackGroundbounce[1, 2, 3][Init, Action, Manual]Intermediate
Sets an attack's groundbounce
  • Arg 1: Groundbounce time
  • Arg 2: Groundbounce Momentum
  • Arg 3: (Optional) Maximum ground bounces

Variables

_AttackData{}[ResetEachFrame]
_AttackDuration600[]
_AttackHitEntities[][]
_HitstunDuration0[]
_BlockstunDuration0[]
_ProrationHitstun1000[]
_ProrationDamage1000[]
_KnockdownTimeMin13[]
_KnockdownTimeMax43[]
_GroundbounceTime0[]
_GroundbounceMomentum0[]
_Groundbounces0[]
HP1[]
_AttackMomentumX0[]
_AttackMomentumY0[]

Flags

AFLowMakes an attack unblockable while standing up.
AFOverheadMakes an attack unblockable while crouching.
AFInheritMomentumMakes it so that the attack inherits the attacker's momentum.
AFFloatSet by the AttackFloat function. Tells the opponent to override the usual gravity for the next hit.
Invul-AllCan't by hit by any attacks, they will count as whiffed.
Invul-Air
Invul-High
Invul-Mid
Invul-Low
Invul-Throw
Invul-AirThrow
Invul-Projectile
Guard-AllCan't by hit by any attacks, they will count as blocked.
Guard-Air
Guard-High
Guard-Mid
Guard-Low
Guard-Throw
Guard-AirThrow
Guard-Projectile
Invuled
Guarded

Attack Cancels

Config

AttackCancelPriorityDefault10000[]

Functions

AttackCancel[1, 2, 3, 4][Init, Action, Manual]Intermediate
Adds an attack cancel. These will be active automatically in the sitations given by the 3rd argument.
  • Arg 1: State Name
  • Arg 2: (Optional) Command in numpad notation. See InputTransition for more details. (Default: State Name)
  • Arg 3: (Optional) Cancel situation using ATTACKCANCEL_ON flags (default: ATTACKCANCEL_ON_TOUCH_NEUTRAL)
  • Arg 4: (Optional) Priority (Default: AttackCancelPriorityDefault config key)
AttackAddRegisteredCancels[1, 2, 3][Init, Action, Manual]Intermediate
Adds all attack cancels of a given type.
  • Arg 1: Attack type
  • Arg 2: (Optional) Cancel situation using ATTACKCANCEL_ON flags (default: ATTACKCANCEL_ON_TOUCH_NEUTRAL)
  • Arg 3: (Optional) Priority (Default: AttackCancelPriorityDefault config key)
AttackCancelPrefix[0, 1][Init, Action, Manual]Advanced
Set the prefix used when looking for attack cancels
  • Arg 1: New prefix to use for this frame.
AttackResetDoneCancels[0][Init, Action, Manual]Advanced
Resets the list of used attacks in cancels, meaning you can use them again. Mostly used when returning to neutral.

Variables

ATTACKCANCEL_ON_HIT1[]
ATTACKCANCEL_ON_BLOCK2[]
ATTACKCANCEL_ON_HIT_BLOCK3[]
ATTACKCANCEL_ON_TOUCH3[]
ATTACKCANCEL_ON_WHIFF4[]
ATTACKCANCEL_ON_HIT_WHIFF5[]
ATTACKCANCEL_ON_BLOCK_WHIFF6[]
ATTACKCANCEL_ON_HIT_BLOCK_WHIFF7[]
ATTACKCANCEL_ON_TOUCH_WHIFF7[]
ATTACKCANCEL_ON_NEUTRAL8[]
ATTACKCANCEL_ON_HIT_NEUTRAL9[]
ATTACKCANCEL_ON_BLOCK_NEUTRAL10[]
ATTACKCANCEL_ON_HIT_BLOCK_NEUTRAL11[]
ATTACKCANCEL_ON_TOUCH_NEUTRAL11[]
ATTACKCANCEL_ON_WHIFF_NEUTRAL12[]
ATTACKCANCEL_ON_HIT_WHIFF_NEUTRAL13[]
ATTACKCANCEL_ON_BLOCK_WHIFF_NEUTRAL14[]
ATTACKCANCEL_ON_HIT_BLOCK_WHIFF_NEUTRAL15[]
ATTACKCANCEL_ON_TOUCH_WHIFF_NEUTRAL15[]
_AttackCancelPrefix[ResetEachFrame]
_AttackDoneCancels[][]
_AttackInitialFrame-1[]
_AttackHitconfirm_StateNull[]
_AttackPossibleCancelsWhiff{}[ResetEachFrame]
_AttackPossibleCancelsBlock{}[ResetEachFrame]
_AttackPossibleCancelsHit{}[ResetEachFrame]
_AttackPossibleCancelsNeutral{}[ResetEachFrame]
_AttackHasHitFalse[]
_AttackWasBlockedFalse[]
_AttackHasWhiffedFalse[]
_AttackHasTouchedFalse[]
_HitstunGravityFloat0[]
_LastAttackFlags[][]
Stores the attack flags of the last attack recieved.
_RegisteredAttacksForEntityByType{}[]

Default Attack Params

Config

AttackDefault-Damage100[]
AttackDefault-MinDamage1[]
AttackDefault-Hitstun-1[]
AttackDefault-Blockstun-1[]
AttackDefault-ChipDamage0[]
AttackDefault-HitMomentumX1000[]
AttackDefault-HitMomentumY0[]
AttackDefault-HitMomentumAirX1000[]
AttackDefault-HitMomentumAirY200[]
AttackDefault-BlockMomentumX1000[]
AttackDefault-BlockMomentumY0[]
AttackDefault-BlockMomentumAirX1000[]
AttackDefault-BlockMomentumAirY200[]
AttackDefault-AttributeAuto[]
AttackDefault-Flags[][]
AttackDefault-ProrationDamage700[]
AttackDefault-StarterProrationDamage950[]
AttackDefault-ProrationHitstun900[]
AttackDefault-StarterProrationHitstun950[]
AttackDefault-Hitstop4[]
AttackDefault-Blockstop2[]
AttackDefault-KnockdownTimeMin13[]
AttackDefault-KnockdownTimeMax43[]
AttackDefault-GroundbounceTime30[]
AttackDefault-GroundbounceMomentum1000[]
AttackDefault-MaxGroundbounces3[]
AttackDefault-FloatGravity0[]